neta

wireshark

  • exp
frame contains "WriteRequest"
# 多重筛选连接用&&
dns && (dns.qry.name == "engws.plant.local")
# 筛选dns
ip.src == 10.0.0.5 && ip.dst == 10.0.0.8
# 筛选ip
http.request
# 筛选HTTP请求
http.request.method == "POST"
# 筛选http的post请求
http contains "POST"
# 模糊筛选
  • 导出HTTP对象:点击菜单栏的 “文件” > “导出对象” > “HTTP”。
  • 导出为json便于搜索
tshark -r E:\平航杯工作位置\BLE.pcapng -T json > BLE.json
  • 搜索脚本(但要在官网找字段名【待】)
import re
def extract_device_names(file_path):
# 设备名称的集合(自动去重)
device_names = set()
# 正则表达式模式,用于匹配设备名称
pattern = re.compile(r'"btcommon\.eir_ad\.entry\.device_name":\s*"([^"]+)"')
with open(file_path, 'r', encoding='utf-8') as file:
for line in file:
# 在每一行中查找所有匹配项
matches = pattern.findall(line)
for match in matches:
# 将找到的设备名称添加到集合中(自动处理重复)
device_names.add(match)
# 输出结果
print("提取的设备名称列表:")
for name in sorted(device_names): # 按字母顺序排序输出
print(name)
# 文件路径
file_path = "BLE.json"
extract_device_names(file_path)

https://seeker-fang.github.io/2025/02/23/Misc的基本解题思路/
通用方法与思路:
先看文件分组数,如果分组数较少,说明考点较直接,杂包过滤不是重点。如果过多,通过协议分级看到各协议的比例,如果流量中存在Telnet、FTP、ICMP等明文传输协议,建议通过追踪流或过滤的方法,优先看这些的通信过程。
如果没有上述协议,而是存在大量(字节占比较大)的HTTP,就通过”统计-HTTP-请求“工具查看请求或者载荷。
如果离线文件中均没有上述协议,就需要结合题目的描述进行分析。例如,若题目中存在大量DNS协议,就需要重点关注查询的域名以及对该域名的响应。假如存在USB协议,则需要结合协议载荷判断设备类型,再根据设备通信规则复原出传输的信息。
本次练习题中有一道DNS
通过查询协议分级,几何题目考虑重点查看DNS。在显示过滤器中输入“dns”后,可以发现每个异常的域名都请求了2次,把所有可疑域名提取出来,去除所有的”.192.168.191.129”(IP地址),重复项仅保留一个,再拼接到一起,将得到的文段用16进制转字符串,再用Base64解码,就可以得到flag。