网站如何做百度百科,wordpress 悬赏功能,凡科网站代码,慈溪公司做网站一、 安装scapy模块
1、打开DOS命令行
python -m pip install scapy2、sniff()函数 功能#xff1a;数据嗅探 参数#xff1a; iface: 指定在哪个网络接口上抓包
count: 表示要捕获数据包的数量。默认为0(不限制数量)
filter: 流量的过滤规则。使用的是 BPF 的语法
prn:…一、 安装scapy模块
1、打开DOS命令行
python -m pip install scapy2、sniff()函数 功能数据嗅探 参数 iface: 指定在哪个网络接口上抓包
count: 表示要捕获数据包的数量。默认为0(不限制数量)
filter: 流量的过滤规则。使用的是 BPF 的语法
prn: 定义回调函数使用lambda表达式来写回调函数(当符合filter的流量被捕获时就会执行回调函数)
【BPF过滤语法举例】 只捕获某个IP主机进行交互的流量host 192.168.1.124
只捕获某个MAC地址主机的交互流量ether src host 00:87:df:98:65:d8
只捕获来源于某一IP的主机流量src host 192.168.1.125
只捕获去往某一IP的主机流量dst host 192.168.1.154
只捕获80端口的流量port 80
只捕获除80端口以外的其他端口流量!port 80
只捕获ICMP流量ICMP
只捕获源地址为192.168.1.125且目的端口为80的流量src host 192.168.1.125 dst port 80
应用
只捕获源地址为192.168.1.124且目的端口为80的流量
from scapy.all import *
sniff(filtersrc host 192.168.1.124 dst port 80, prnlambda x:x.summary())# sniff(filtersrc host 192.168.2.116 dst port 80, ifaceWLAN, prnlambda x: x.summary())二、WireShark
安装 https://www.wireshark.org/download.html
1、开始抓包示例
打开主界面选择对应的网卡右键会出现Start Capture(开始捕获)点击即可进行捕获该网络信息开始抓取网络包 执行需要抓包的操作如ping www.baidu.com。 说明ip.addr 180.101.49.11 and icmp 表示只显示ICPM协议且源主机IP或者目的主机IP为119.75.217.26的数据包。 2、表达式规则
类型Typehost、net、port 方向Dirsrc 源端 、dst 目的端 协议Protoether、ip、tcp、udp、http、icmp、ftp等 逻辑运算符 与、|| 或、非
序列号Sequence Number 确认应答信号Acknowledgement Number
2.1 抓包过滤器语法和实例
1协议过滤直接在抓包过滤框中直接输入协议名即可。
tcp只显示TCP协议的数据包列表 http只查看HTTP协议的数据包列表 icmp只显示ICMP协议的数据包列表
2IP过滤
host 192.168.1.104 src host 192.168.1.104 dst host 192.168.1.104
3端口过滤 port 80 src port 80 dst port 80
4逻辑运算符与、|| 或、非 src host 192.168.1.104 dst port 80 抓取主机地址为192.168.1.80、目的端口为80的数据包
host 192.168.1.104 || host 192.168.1.102 抓取主机为192.168.1.104或者192.168.1.102的数据包
broadcast 不抓取广播数据包
2.2 显示过滤器语法和实例
1比较操作符 等于、 不等于、 大于、 小于、 大于等于、小于等于
2协议过滤 直接在Filter框中直接输入协议名即可。注意协议名称需要输入小写。
tcp只显示TCP协议的数据包列表
http只查看HTTP协议的数据包列表
icmp只显示ICMP协议的数据包列表
3 ip过滤 ip.src 112.53.42.42 显示源地址为112.53.42.42的数据包列表
ip.dst112.53.42.42, 显示目标地址为112.53.42.42的数据包列表
ip.addr 112.53.42.42 显示源IP地址或目标IP地址为112.53.42.42的数据包列表
4端口过滤 tcp.port 80, 显示源主机或者目的主机端口为80的数据包列表。
tcp.srcport 80, 只显示TCP协议的源主机端口为80的数据包列表。
tcp.dstport 80只显示TCP协议的目的主机端口为80的数据包列表。
5 http模式过滤 http.request.method“GET”, 只显示HTTP GET方法的。
6逻辑运算符为 and/or/not 过滤多个条件组合时使用and/or。比如获取IP地址为192.168.0.104的ICMP数据包表达式为ip.addr 192.168.0.104 and icmp
7按照数据包内容过滤 假设我要以ICMP层中的内容进行过滤可以单击选中界面中的码流在下方进行选中数据。
2.3 常见用显示过滤需求及其对应表达式
数据链路层 筛选mac地址为04:f9:38:ad:13:26的数据包
eth.src 04:f9:38:ad:13:26
筛选源mac地址为04:f9:38:ad:13:26的数据包----
eth.src 04:f9:38:ad:13:26
网络层 筛选ip地址为192.168.1.1的数据包
ip.addr 192.168.1.1
筛选192.168.1.0网段的数据
ip contains “192.168.1”
传输层 筛选端口为80的数据包
tcp.port 80
筛选12345端口和80端口之间的数据包
tcp.port 12345 tcp.port 80
筛选从12345端口到80端口的数据包
tcp.srcport 12345 tcp.dstport 80
应用层 特别说明: http中http.request表示请求头中的第一行如GET index.jsp HTTP/1.1 http.response表示响应头中的第一行如HTTP/1.1 200 OK其他头部都用http.header_name形式。
筛选url中包含.php的http数据包
http.request.uri contains “.php”
筛选内容包含username的http数据包
http contains “username”
三、用Scapy解析pcap格式数据
读取 pcapng 文件有两种方式
3.1 一次性读入内存
from scapy.all import *
pkts rdpcap(‘test.pcap’)
//循环读
for pkt in pkts:if IP in pkt and TCP in pkt:if pkt[IP].dst tcp_ip and pkt[TCP].dport tcp_port:# print(666)print(pkt[TCP].dport)pkt 中有多个数据包。pkt可当做列表顺序访问。 例如访问第n个包pkts[n]
访问每层里的内容pkt[‘每层的名字’].内容名如pkt[‘IP’].dport pkt[‘TCP’].sport 等
3.2 逐行读 pr PcapReader(./tcp.pcapng)pkt pr.read_packet()pkt.show() #//显示格式化数据包IP pkt[IP]print(IP)每次调用read_packet() 都会读入下一个新的包到内存中, 现在一个数据包装入了pkt变量中。
3.3 提取 TCP 数据包的原始数据 print(raw(pkt)) # 获取数据包的原始字节print(bytes(pkt))print(bytes_hex(pkt)) # 以可读格式打印数据包的原始字节print(bytes_hex(pkt)[24:28])四、PyShark
https://blog.csdn.net/youyouxiong/article/details/138327285
安装 PyShark 库它提供了 Wireshark 的 Python 接口 pip install pyshark 分析
PyShark 可以读取 Wireshark 生成的 .pcap 或 .pcapng 文件并进行分析
import pysharkcap pyshark.FileCapture(path_to_packet_file.pcapng, display_filterhttp)
for packet in cap:print(f{packet.ip.src} accessed {packet.http.host} at {packet.http.request.full_uri})这段代码将分析指定路径的抓包文件并打印出每个 HTTP 请求的源 IP 地址、目标主机和访问的 URI。