目录
Scapy
scapy是python中一个可用于网络嗅探的非常强大的第三方库,可以用它来做 packet 嗅探和伪造 packet。 scapy已经在内部实现了大量的网络协议。如DNS、ARP、IP、TCP、UDP等等,可以用它来编写非常灵活实用的工具。
换言之,Scapy 是一个强大的操纵报文的交互程序。它可以伪造或者解析多种协议的报文,还具有发送、捕获、匹配请求和响应这些报文以及更多的功能。Scapy 可以轻松地做到像扫描(scanning)、路由跟踪(tracerouting)、探测(probing)、单元测试(unit tests)、攻击(attacks)和发现网络(network discorvery)这样的传统任务。它可以代替 hping 、arpspoof 、arp-sk、arping,p0f 甚至是部分的Namp、tcpdump 和 tshark 的功能。
最简单的一个发包
from scapy.all import *
data='hello,word!'
pkt=IP(src='10.96.10.208',dst='10.96.10.209')/TCP(sport=12345,dport=12345)/data
send(pkt,inter=1,count=5) #每隔一秒发包,发5次
scapy的安装和使用
scapy默认是不安装的,安装命令:pip install scapy
安装完后:
- ls() 命令可以查看所有支持的协议
- ls(IP) 命令列出ip协议头部字段格式,只要想查看哪个协议的参数,括号里就填哪个协议
- IP().show() 列出ip包的信息
- lsc() 命令列出scapy的所有命令
- conf 命令列出scapy 的配置参数
发包的包格式: 层的协议(参数)/上一层的协议(参数) /要发送的数据 ,比如如下
IP(src='10.96.10.208',dst='10.96.10.209')/TCP(sport=12345,dport=12345)/data
发包
发送三层包:send(pkt, inter=0, loop=0, count=1, iface=N)
发送二层包:sendp(pkt, inter=0, loop=0, count=1, iface=N)
使用tcpreplay在第二层以更快的速度发送数据包 :sendpfast(pkt, pps=N, mbps=N, loop=0, iface=N)
def send(x, inter=0, loop=0, count=None, verbose=None, realtime=None, return_packets=False, socket=None,*args,**kargs)
def sendp(x, inter=0, loop=0, iface=None, iface_hint=None, count=None, verbose=None, realtime=None,
return_packets=False, socket=None,*args,**kargs)
def sendpfast(x, pps=None, mbps=None, realtime