Changeset 33095


Ignore:
Timestamp:
Aug 10, 2017, 7:37:01 PM (11 days ago)
Author:
brainslayer
Message:

show only warning if spoof was detected

Location:
src/linux/universal
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/linux/universal/linux-3.10/net/ipv4/arp.c

    r32517 r33095  
    13931393        memcpy(&sip, arp_ptr, 4);
    13941394
    1395         for(i = 0;  i < MAX_ARP_SPOOFING_TABLE; i++)
    1396         {
    1397                 if(szIPMac[i].szIPaddr == 0)
    1398                 {
     1395        for(i = 0;  i < MAX_ARP_SPOOFING_TABLE; i++) {
     1396                if(szIPMac[i].szIPaddr == 0) {
    13991397                        break;
    14001398                }
    14011399                               
    1402                 if(sip == szIPMac[i].szIPaddr)
    1403                 {
    1404                         printk("ip=%x match mac %02x:%02x:%02x:%02x:%02x:%02x= %02x:%02x:%02x:%02x:%02x:%02x\n", sip,
     1400                if(sip == szIPMac[i].szIPaddr) {
     1401                        if(szIPMac[i].szMac[0]== *sha && szIPMac[i].szMac[1]== *(sha+1) &&
     1402                                szIPMac[i].szMac[2]== *(sha+2) && szIPMac[i].szMac[3]== *(sha+3) &&
     1403                                szIPMac[i].szMac[4]== *(sha+4) && szIPMac[i].szMac[5]== *(sha+5) ) {
     1404                                return 0;
     1405                        } else {
     1406                                unsigned char *ip = (unsigned char)&sip;
     1407                                printk(KERN_ERR "arp spoofing detected ip=%d.%d.%d.%d mac is %02x:%02x:%02x:%02x:%02x:%02x but should be %02x:%02x:%02x:%02x:%02x:%02x\n", ip[0]&0xff,ip[1]&0xff,ip[2]&0xff,ip[3]&0xff,
    14051408                                szIPMac[i].szMac[0], szIPMac[i].szMac[1], szIPMac[i].szMac[2], szIPMac[i].szMac[3], szIPMac[i].szMac[4], szIPMac[i].szMac[5],
    14061409                                *sha, *(sha+1), *(sha+2), *(sha+3), *(sha+4), *(sha+5));
    1407                         if(szIPMac[i].szMac[0]== *sha && szIPMac[i].szMac[1]== *(sha+1) &&
    1408                                 szIPMac[i].szMac[2]== *(sha+2) && szIPMac[i].szMac[3]== *(sha+3) &&
    1409                                 szIPMac[i].szMac[4]== *(sha+4) && szIPMac[i].szMac[5]== *(sha+5) )
    1410                         {
    1411                                 return 0;
    1412                         }
    1413                         else
    1414                         {
    14151410                                return 1;
    14161411                        }
  • src/linux/universal/linux-3.18/net/ipv4/arp.c

    r32517 r33095  
    14101410        memcpy(&sip, arp_ptr, 4);
    14111411
    1412         for(i = 0;  i < MAX_ARP_SPOOFING_TABLE; i++)
    1413         {
    1414                 if(szIPMac[i].szIPaddr == 0)
    1415                 {
     1412        for(i = 0;  i < MAX_ARP_SPOOFING_TABLE; i++) {
     1413                if(szIPMac[i].szIPaddr == 0) {
    14161414                        break;
    14171415                }
    14181416                               
    1419                 if(sip == szIPMac[i].szIPaddr)
    1420                 {
    1421                         printk("ip=%x match mac %02x:%02x:%02x:%02x:%02x:%02x= %02x:%02x:%02x:%02x:%02x:%02x\n", sip,
     1417                if(sip == szIPMac[i].szIPaddr) {
     1418                        if(szIPMac[i].szMac[0]== *sha && szIPMac[i].szMac[1]== *(sha+1) &&
     1419                                szIPMac[i].szMac[2]== *(sha+2) && szIPMac[i].szMac[3]== *(sha+3) &&
     1420                                szIPMac[i].szMac[4]== *(sha+4) && szIPMac[i].szMac[5]== *(sha+5) ) {
     1421                                return 0;
     1422                        } else {
     1423                                unsigned char *ip = (unsigned char)&sip;
     1424                                printk(KERN_ERR "arp spoofing detected ip=%d.%d.%d.%d mac is %02x:%02x:%02x:%02x:%02x:%02x but should be %02x:%02x:%02x:%02x:%02x:%02x\n", ip[0]&0xff,ip[1]&0xff,ip[2]&0xff,ip[3]&0xff,
    14221425                                szIPMac[i].szMac[0], szIPMac[i].szMac[1], szIPMac[i].szMac[2], szIPMac[i].szMac[3], szIPMac[i].szMac[4], szIPMac[i].szMac[5],
    14231426                                *sha, *(sha+1), *(sha+2), *(sha+3), *(sha+4), *(sha+5));
    1424                         if(szIPMac[i].szMac[0]== *sha && szIPMac[i].szMac[1]== *(sha+1) &&
    1425                                 szIPMac[i].szMac[2]== *(sha+2) && szIPMac[i].szMac[3]== *(sha+3) &&
    1426                                 szIPMac[i].szMac[4]== *(sha+4) && szIPMac[i].szMac[5]== *(sha+5) )
    1427                         {
    1428                                 return 0;
    1429                         }
    1430                         else
    1431                         {
    14321427                                return 1;
    14331428                        }
  • src/linux/universal/linux-4.4/net/ipv4/arp.c

    r32517 r33095  
    13511351        memcpy(&sip, arp_ptr, 4);
    13521352
    1353         for(i = 0;  i < MAX_ARP_SPOOFING_TABLE; i++)
    1354         {
    1355                 if(szIPMac[i].szIPaddr == 0)
    1356                 {
     1353        for(i = 0;  i < MAX_ARP_SPOOFING_TABLE; i++) {
     1354                if(szIPMac[i].szIPaddr == 0) {
    13571355                        break;
    13581356                }
    13591357                               
    1360                 if(sip == szIPMac[i].szIPaddr)
    1361                 {
    1362                         printk("ip=%x match mac %02x:%02x:%02x:%02x:%02x:%02x= %02x:%02x:%02x:%02x:%02x:%02x\n", sip,
     1358                if(sip == szIPMac[i].szIPaddr) {
     1359                        if(szIPMac[i].szMac[0]== *sha && szIPMac[i].szMac[1]== *(sha+1) &&
     1360                                szIPMac[i].szMac[2]== *(sha+2) && szIPMac[i].szMac[3]== *(sha+3) &&
     1361                                szIPMac[i].szMac[4]== *(sha+4) && szIPMac[i].szMac[5]== *(sha+5) ) {
     1362                                return 0;
     1363                        } else {
     1364                                unsigned char *ip = (unsigned char)&sip;
     1365                                printk(KERN_ERR "arp spoofing detected ip=%d.%d.%d.%d mac is %02x:%02x:%02x:%02x:%02x:%02x but should be %02x:%02x:%02x:%02x:%02x:%02x\n", ip[0]&0xff,ip[1]&0xff,ip[2]&0xff,ip[3]&0xff,
    13631366                                szIPMac[i].szMac[0], szIPMac[i].szMac[1], szIPMac[i].szMac[2], szIPMac[i].szMac[3], szIPMac[i].szMac[4], szIPMac[i].szMac[5],
    13641367                                *sha, *(sha+1), *(sha+2), *(sha+3), *(sha+4), *(sha+5));
    1365                         if(szIPMac[i].szMac[0]== *sha && szIPMac[i].szMac[1]== *(sha+1) &&
    1366                                 szIPMac[i].szMac[2]== *(sha+2) && szIPMac[i].szMac[3]== *(sha+3) &&
    1367                                 szIPMac[i].szMac[4]== *(sha+4) && szIPMac[i].szMac[5]== *(sha+5) )
    1368                         {
    1369                                 return 0;
    1370                         }
    1371                         else
    1372                         {
    13731368                                return 1;
    13741369                        }
Note: See TracChangeset for help on using the changeset viewer.