Python复现Wireshark中Payload的字符串显示函数

Wireshark Payload显示函数探索

Github地址

https://github.com/sunbcy/Wireshark_Hex_String_Display

背景

由于工作的原因需要看大量的数据包,一开始还行,随着数量越来越多,人越来越疲惫,感到人力分析有限,很多时候需要反复翻看数据包定位问题,然而往往耗费大量时间。人生苦短,想到可不可以用Python来做下数据包的相关分析。于是开启Bing大法,看了些帖子后发现有Scapy网络安全分析库,可以用来读取分析数据包(看起来很有搞头!!!经过一番尝试,确实算是发现了一块新大陆,可以鼓捣鼓捣,弄个小工具出来。实际这个模块的功能很全,应用很广,不止于数据包分析。也能构造以及修改数据包相关信息,这些内容以后有空可以多撰几篇帖子)。

环境准备

  1. 需要安装scapy模块,这个很easy,一般能无视地形安装成功:
pip2 install scapy
pip3 install scapy
from scapy.all import *
  1. 看帖子的过程中发现,如果是分析HTTPS/SSL的流,需要安装另一个模块scapy_ssl_tls,这个模块的安装似乎有点费劲,在不同系统不同Python版本下安装方式有差异,直接使用pip可能会报错。作者一开始安装的是scapy-2.4.5和scapy_ssl_tls-2.0.0。在Windows系统python2环境下运行的,后来作者一番尝试,发现python3下这两个模块也能安装上去。本篇在此不过多讲该模块的安装,后面有空在补充帖文。
from scapy_ssl_tls.ssl_tls import *

主题

本篇的主题是探讨Wireshark中Payload的字符串显示函数在Python语言中的复现,此处我的环境以Windows下的Python3为主。

先来看看,关于Wireshark中Payload的字符串显示效果是怎样的:
在这里插入图片描述

左边是平平无奇的Hex字符串,右边是部分解码的可视化的字符串。
我们今天的目的就是在Python3环境下,已知左边部分的字符串,解码出右边的字符串。
那么 肉眼观察下右边的字符串可以发现几乎都是Ascii码(0~127)中可视的字符串:
在这里插入图片描述

那么问题就简单了,对hex字符做判断,如果在ASCii的可视化范围内(0x20~0x7e)就用一下urllib.parse.unquote解码,如果不是,就用"."英文逗号来代替。

我们准备的字符串,就是上面左边红框区域内的string:

504f5354202f6d6d746c732f303030303465653020485454502f312e310d0a4163636570743a202a2f2a0d0a43616368652d436f6e74726f6c3a206e6f2d63616368650d0a436f6e6e656374696f6e3a20636c6f73650d0a436f6e74656e742d4c656e6774683a203436390d0a436f6e74656e742d547970653a206170706c69636174696f6e2f6f637465742d73747265616d0d0a486f73743a2065787473686f72742e77656978696e2e71712e636f6d0d0a557067726164653a206d6d746c730d0a557365722d4167656e743a204d6963726f4d657373656e67657220436c69656e740d0a582d4f6e6c696e652d486f73743a2065787473686f72742e77656978696e2e71712e636f6d0d0a0d0a19f10400a10000009d0104f10100a8111084f1b70d588d9ae34d7e79b2c0d2997f78b8364be5b8e2f08ae5156ece896256f4490000006f010000006a000f01000000630100093a80000000000048000cca765c99e511090ecec8597f0048d670bf4e217402bdf6a3636ad8caef0e5ba0a966c9f8fae13ee25a6ca68f0fed1f3eaa989d34b850af6d69f209d44f97a1149c0cb07d9d10328049505c0371909e844b36034519b219f10400243658566d4c28660b719792835c27368edc7dad468f84e9e194f987a4f4ab2dc54eed5cd417f10400e592d0f27f2dc12ac89be062d79a4c2c23069064c5158959dc20a50dc440394148dd7fcd0e130a746e9b7b621e36cc2d1bbfbb501f9d5469d3130f326671adbed395e49f67c443bb69cfc1b1e6d8bb1abd49d63c1f9abfb925834d4daaf49142f6c1789fe2605ba05099c3c400ee9926952c4f8d5c5e3e71da4efc2bf0bc5c0df09fe6700e2adad11c95685e7364821ce2a507e3e29bfa2b5d764428604f65e16afdd6f54f5fa4afb434f2ba98e719c9d4a7cf17bc26b1c5c8226a6474a1712d648bd5301cc3f4304d00aeededc4e09640b73a982d49ce79971b19de26bd80f6cb832edc91fc15f1040017b6a1de6b2513db2403d9bb5ea89fc2616fb14178eb4733

代码生成的效果:
在这里插入图片描述

Wireshark查询字符串的方法是使用"查找"功能。你可以在Wireshark的界面上找到一个搜索框。在这个搜索框,你可以输入你想要查找的字符串Wireshark会自动搜索并显示包含该字符串的数据包。你可以在"Packet List"或"Packet Details"找到这些数据包。默认情况下,Wireshark会在"Packet List"搜索。如果你想要在"Packet Details"搜索,你需要在搜索框输入"string"作为关键字。例如,如果你想要过滤查看包含某字符串的HTTP数据包,你可以在搜索框输入"http contains “string”"。如果你想要过滤查看请求某一URL的流量,你可以在搜索框输入"http.request.uri == “path”"或"http.request.uri contains “path”"。这样,Wireshark就会显示包含相应字符串或URL的数据包。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Wireshark搜索/查找字符串失败](https://blog.csdn.net/u014552102/article/details/125113380)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [wireshark查找字符串](https://blog.csdn.net/caiqiiqi/article/details/72859514)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunbcy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值