Python使用scapy进行网络底层操作

1.网络嗅探

sniff(iface="Qualcomm Atheros AR956x Wireless Network Adapter",prn=lambda x:x.show())

sniff函数可以作为网络嗅探,获取本地网卡的网络包,以下为参数:

iface:网卡名称,在windows上没有eth0、eth1等名称,所以要使用ipconfig /all,取获取的网卡信息的描述作为网卡名称

prn:打印包的函数

filter:抓包过滤器,采用wireshark语法,比如icmp,注意不能大写

 

2.伪造源IP

#创建IP头
ip = IP()
ip.src = "192.168.1.3"
ip.dst = "192.168.1.5"

可以直接设置IP头的src和dst,其他字段IP头会采用默认值,如checksum

 

3.发送ICMP

from scapy.all import *

#创建IP头
ip = IP()
ip.src = "192.168.1.3"
ip.dst = "192.168.1.5"
 
#创建ICMP头 
icmp = ICMP() 
icmp.type = 0#0代表echo ping回复
icmp.code = 0

#创建ICMP数据
data = "xxxxxxxxxxxxxxxxxxxx"

#发送数据的形式是 ip协议头/icmp协议头/icmp数据
send(ip/icmp/data)

发送时每一层协议的头顺序拼接在一起,注意,前面只有数据头,ICMP载荷单独作为最后一层

你可能感兴趣的:(python,scapy,python)