加入收藏 | 设为首页 |

雷火电竞平台-Pyshark:使用了WirdShark的Python数据包解析东西(Tshark)

海外新闻 时间: 浏览:447 次

Pyshark

Pyshark是一款针对tshark的Python封装器,在Pyshark的协助下,广阔研究人员能够运用wireshark的解析器来进行Python数据包解析。

扩展文档:【Pyshark】

扩展文档:【Pyshark】

尽管现在社区也有多款针对Python包的解析模块,但Pyshark与它们不同的是,它本身并不会解析任何数据包,它只会运用tshark的功用(Wireshark指令行实用东西)来导出XML并完结包解析。

东西装置 针对全渠道

广阔用户能够直接运用pip来从pypi装置Pyshark:

pip install pyshark

或许,咱们也能够直接从该项意图GitHub库直接将项目代码克隆至本地:

git clone https://github.com/KimiNewt/pyshark.git

cd pyshark/src

python setup.py install

Mac OS X

在macOS上,你或许还需求装置libxml,假如你在运转clang指令时遇到了过错,或体系弹出了关于libxml的过错,你就需求运转下列指令了:

xcode-select--install

pip install libxml

东西运用 从捕捉到cap文件中读取解析内容:

>>>import pyshark

>>>cap = pyshark.FileCapture('/tmp/mycapture.cap')

>>>cap

>雷火电竞平台-Pyshark:使用了WirdShark的Python数据包解析东西(Tshark);>>print cap[0]

Packet(Length: 698)

LayerETH:

Destination: BLANKED

Source: BLANKED

Type: IP (0x0800)

LayerIP:

Version: 4

Header Length: 20 bytes

Differentiated Services Field: 0x00(DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))

Total Length: 684

Identification: 0x254f (9551)

Flags: 0x00

Fragment of雷火电竞平台-Pyshark:使用了WirdShark的Python数据包解析东西(Tshark)fset: 0

Time to live: 1

Protocol: UDP (17)

Header checksum: 0xe148 [correct]

Source: BLANKED

Destination: BLANKED

...

其他选项:

paramkeep_packets: 在读取完内容后是否保存包;

paraminput_file: 判别途径或文件目标是否包括包文件(PCAP、PCAP-NG…)或TSharkXML;

paramdisplay_filter: 是否需求在读取包内容前装备过滤器;

paramonly_summaries: 生成包归纳数据,速度快,但信息少;

paramdisable_protocol: 禁用协议勘探功用 (tshark > version 2);

paramdecryption_key: 用于加密和解密捕捉流量的密钥;

paramencryption_type: 捕捉流量中的规范加密('WEP', 'WPA-PWD', 或'WPA-PWK',默以为WPA-PWK);

paramtshark_path: tshark代码途径;

从活动接口读取包内容:

>>>capture = pyshark.LiveCapture(interface='eth0')

>>>capture.sniff(timeout=50)

>>>capture

>>>capture[3]

for packet in capture.sniff_continuously(packet_count=5):

print 'Just arrived:', packet

运用环状缓冲区从活动接口读取包内容:

>>>capture = pyshark.LiveRingCapture(interface='eth0')

>>>capture.sniff(timeout=50)

>>>capture

>>>capture[3]

for packet in capture.sniff_continuously(packet_count=5):

print 'Just arrived:', packet

从长途活动接口读取包内容:

>>>capture = pyshark.RemoteCapture('192.168.1.101', 'eth0')

>>>capture.sniff(timeou雷火电竞平台-Pyshark:使用了WirdShark的Python数据包解析东西(Tshark)t=50)

>>>capture

拜访包数据

咱们能够经过多种方法拜访数据,Python包被划分红到了多个层,首要咱们需求拜访特定的层,然后挑选相应的数据区域。

>>>packet['ip'].dst

192.168.0.1

>>>packet.ip.src

192.168.0.100

>>>packet[2].src

192.168.0.100

判别数据包中是否包括某一层,咱们能够运用下列指令:

>>>'IP' in packet

True

如需检查一切的数据区域,能够运用“packet.layer.field_names”特点,例如“packet.ip.field_names”。当然了,咱们还能够直接获取到数据区域的原始代码数据以及注释信息:

>>>p.ip.addcruiser.showname

Sourceor Destination Address: 10.0.0.10 (10.0.0.10)

# Andsome new attributes as well:

>>>p.ip.addr.int_value

167772170

>>>p.ip.addr.binary_value

'\n\x00\x00\n'

雷火电竞平台-Pyshark:使用了WirdShark的Python数据包解析东西(Tshark)

解密捕捉到的包

Pyshark支撑自动化解密,支撑的加密规范有WEP、WPA-PWD和WPA-PSK,默以为WPA-PWD:

>>>cap1 = pyshark.FileCapture('/tmp/capture1.cap', decryption_key='password')

>>>cap2 = pyshark.LiveCapture(interface='wi0', decryption_key='password',encryption_type='wpa-psk')

除此之外,Pyshark还支撑以元组的方式传递支撑的加密规范:

>>雷火电竞平台-Pyshark:使用了WirdShark的Python数据包解析东西(Tshark)>pyshark.FileCapture.SUPPORTED_ENCRYPTION_STANDARDS

('wep','wpa-pwd', 'wpa-psk')

>>>pyshark.LiveCapture.SUPPORTED_ENCRYPTION_STANDARDS

('wep','wpa-pwd', 'wpa-psk')

项目地址

Pyshark:【GitHub传送门】

Pyshark:【GitHub传送门】

*参阅来历:KimiNewt,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM