前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一道鼠标流量分析题

记一道鼠标流量分析题

作者头像
回天
发布2023-04-25 15:05:07
4160
发布2023-04-25 15:05:07
举报
文章被收录于专栏:Ga1@xy's W0r1d

是一道较为少见的将鼠标流量混淆的题,值得一做 ~

HexionCTF T&J

附件链接:https://pan.baidu.com/s/1fpg74JkqogQflV0z6xTVHA 提取码:x2v4

前言

有关USB流量的知识点详解可见:USB流量知识点小结

上文提到的内容在本篇文章中将不再赘述~

题目详解

下载附件得到流量包,打开看到Protocol一栏清一色的USB,很显然是USB流量,tshark提取一下

代码语言:javascript
复制
tshark -r jerry.pcapng -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt

得到长度为16的流量数据,不带冒号可以加一下冒号

代码语言:javascript
复制
f=open('usbdata.txt','r')
fi=open('out.txt','w')
while 1:
    a=f.readline().strip()
    if a:
        if len(a)==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()

观察得到的数据,8字节的长度理论上应该是键盘流量,跑一下键盘流量的脚本,却没有输出

再看得到的数据,可以发现第一字节大部分都是01,而在鼠标流量中第一字节的01恰好代表了鼠标左键的按键信息,但是鼠标流量数据长度只有四字节,我们可以尝试一下用鼠标流量脚本提取前四字节的数据,看看能否得到按键坐标的信息

代码语言:javascript
复制
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 == 1 : # 1 代表左键
        f.write(str(posx))
        f.write(' ')
        f.write(str(posy))
        f.write('\n')

f.close()

打开生成的xy.txt文件,可以看到很工整的坐标,正是转换鼠标流量的结果

也就是说这道题出题人将本应该四字节长度的鼠标流量混淆成八字节的长度,以此来增加题的难度

其实题目的标题和题目附件的名字也都有一些提示:T&J暗示猫和老鼠,而jerry的名字也暗示了鼠标

将得到的坐标用gnuplot转换成图片

  • 注意plot后一定要用双引号包含文件的名称

得到图像,看似为上下颠倒的flag,convert命令翻转一下即可

代码语言:javascript
复制
convert -flip 1.png 2.png

得到flag:hexCTF{y3t_an0th3r_pc4p_ch4ll3nge}

总结

总体来看本题并不难,一个单纯的鼠标流量分析,出题人将数据长度稍加混淆,如果可以辨别出来数据的真实面目,就可以轻松解决这道题了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HexionCTF T&J
  • 前言
  • 题目详解
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档