buuctf [第九章][9.4.1 鼠标流量分析]鼠标流量分析writeup

博客围绕USB流量取证分析展开,介绍了前置知识,如鼠标流量四个字节的含义,包括按键及水平、垂直移动偏移的表示。解题部分展示了通过tshark命令从pcapng文件提取数据生成txt文件,再转换为xy坐标,最后用gnuplot工具绘图的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前置知识

参考USB流量取证分析_usb取证_lemonl1的博客-优快云博客

 

tshark -r usb.pcap -T fields -e usb.capdata > usbdata.txt
如果提取出来的数据有空行,可以将命令改为如下形式:
tshark -r usb2.pcap -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt

一般的鼠标流量都是四个字节

第一个字节代表按键:

当取0x00时,代表没有按键,当取0x01时,代表按左键,当取0x02时,代表当前按键为右键。

第二个字节可以看成是一个signed byte类型,其最高位为符号位:

当这个值为正时,代表鼠标水平右移多少像素 当这个值为负时,代表鼠标水平左移多少像素。

三个字节与第二字节类似,代表垂直上下移动的偏移。

4222a7ac652947198245a9ecdc5e7424.png

 

解题

1.得到usbdata.txt

tshark -r atta3.pcapng -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata3.txt

2.得到out.txt

f=open('usbdata.txt','r')
fi=open('out.txt','w')
while 1:
    a=f.readline().strip()
    if a:
        if len(a)==16: # 键盘流量len=16,鼠标流量len=8
            out=''
            for i in range(0,len(a),2):
                if i+2 != len(a):
                    out+=a[i]+a[i+1]+":"
                else:
                    out+=a[i]+a[i+1]
            fi.write(out)
            fi.write('\n')
    else:
        break

fi.close()

3.转换为xy坐标

nums = []
keys = open('out.txt','r')
f = open('xy.txt','w')
posx = 0
posy = 0
for line in keys:
    if len(line) != 12 :
        continue
    x = int(line[3:5],16)
    y = int(line[6:8],16)
    if x > 127 :
        x -= 256
    if y > 127 :
        y -= 256
    posx += x
    posy += y
    btn_flag = int(line[0:2],16)  # 1 for left , 2 for right , 0 for nothing
    if btn_flag == 2 : # 1 代表左键
        f.write(str(posx))
        f.write(' ')
        f.write(str(posy))
        f.write('\n')

f.close()

4.用gnuplot工具绘图

plot "xy.txt"

f1d9ef5142be451db89b82ea65bda13a.png

flag{Hello}

9e8b037ad2f24736a226d78d8873e3fc.png

 

 

Wireshark是一款开源的网络协议分析软件,可以用来捕获和分析网络流量。通过Wireshark流量分析,我们可以了解网络中传输的数据包的内容、协议类型、源与目的地址、数据大小等信息,从而帮助我们诊断网络问题、优化网络性能、检测网络安全问题等。 Wireshark可以捕获各种网络协议的数据包,包括TCP、UDP、HTTP、FTP等。我们可以通过Wireshark来捕获特定源或目的地址的数据包,也可以过滤特定的协议类型或数据内容,以便更好地观察和分析网络流量。 当我们进行Wireshark流量分析时,首先需要选择合适的网络接口进行数据包捕获。然后,我们可以开始捕获数据包,并在Wireshark的界面上观察捕获到的数据包的详细信息。通过查看数据包的各种字段,我们可以分析出数据包的来源与目的地、传输的协议类型、通信过程中的状态等信息。 除了对网络流量进行实时分析外,Wireshark还提供了一些统计功能,可以帮助我们对捕获的数据包进行更细致的分析。例如,我们可以查看某个特定协议在流量中的占比,或者分析某个特定源地址或目的地址的通信情况等。 总之,通过Wireshark流量分析,我们可以深入了解网络中的数据传输情况,发现潜在的网络问题,提高网络性能,确保网络安全。因此,Wireshark是网络工程师和安全专家必不可少的利器。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值