scapy是python的一个可以让用户发送、监听和解析并伪装网络报文的程序
可以扫描,监测,和攻击网络的一个工具
功能比hping、arping、arpspoof功能更加强大一些
scapy是kali自带的,下载可以通过pip3 install scapy
在Scapy中,每一个协议就是一个类。只需要实例化一个协议类,就可以创建一个该协议的数据包
查看一个协议的参数:协议().show() 或者协议().display()
1.IP()协议
src源地址
dst目的地址
2.ARP()地址解析查看参数
hwtype 硬件类型
ptype 协议类型
hwlen 硬件地址长度
plen 协议地址长度
op=who has who-has查询
hwsrc 源mac地址
psrc 源IP地址
hwdst 目的mac
pdst 目的ip
3.其他类
TCP().show()
ls(TCP()) 也可以使用该命令查看
UDP().show()
ls(UDP())
ICMP().show()
ls(ICMP())
Ether().show()
ls(Ether())
4.发送数据包函数:send()和sendp()
send()是用来发送IP数据包的,而sendp()是用来发送Ether数据包的
send()和sendp()只发送不接收数据包
5.发送和接受数据包的函数:sr()、sr1()、srp()
sr()和sr1()主要用于第三层,例如IP和ARP等,而srp()用于第二层。
发送和接收ARP()数据包
发送一个数据包
收到一个数据包
源mac地址:hwsrc (发送给我的)
源ip:192.168.152.136 (谁发送给我的)
发送并接收ping()数据包
探测某个192.168.152.136的端口是否开放,采用半开扫描(SYN)的办法
TCP回复中flags=RA,表示端口不通 、flags=SA,表示端口开放
使用Scapy来实现一次ACK类型的端口扫描:
http://t.csdn.cn/WNRRW