python抓包 -- 用wireshark抓包、解析--scapy、PyShark

07-17 1423阅读

一、 安装scapy模块

1、打开DOS命令行

python -m pip install scapy

2、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(filter='src host 192.168.1.124 && dst port 80', prn=lambda x:x.summary())
# sniff(filter='src host 192.168.2.116 && dst port 80', iface='WLAN', prn=lambda x: x.summary())

二、WireShark

安装: https://www.wireshark.org/download.html

1、开始抓包示例

打开主界面,选择对应的网卡,右键,会出现Start Capture(开始捕获),点击即可进行捕获该网络信息,开始抓取网络包

python抓包 -- 用wireshark抓包、解析--scapy、PyShark

执行需要抓包的操作,如ping www.baidu.com。

说明:ip.addr == 180.101.49.11 and icmp 表示只显示ICPM协议且源主机IP或者目的主机IP为119.75.217.26的数据包。

python抓包 -- 用wireshark抓包、解析--scapy、PyShark

python抓包 -- 用wireshark抓包、解析--scapy、PySharkpython抓包 -- 用wireshark抓包、解析--scapy、PyShark

2、表达式规则

类型Type(host、net、port)

方向Dir(src 源端 、dst 目的端)

协议Proto(ether、ip、tcp、udp、http、icmp、ftp等)

逻辑运算符(&& 与、|| 或、!非)

序列号:Sequence Number

确认应答信号:Acknowledgement Number

2.1 抓包过滤器语法和实例:

(1)协议过滤:直接在抓包过滤框中直接输入协议名即可。

tcp,只显示TCP协议的数据包列表

http,只查看HTTP协议的数据包列表

icmp,只显示ICMP协议的数据包列表

(2)IP过滤

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)比较操作符

== 等于、!= 不等于、> 大于、= 大于等于、

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]