首页
社区
课程
招聘
[原创]2022CISCN初赛 ez_usb WriteUp
发表于: 2022-7-6 23:29 14082

[原创]2022CISCN初赛 ez_usb WriteUp

2022-7-6 23:29
14082

最上面这个就是标准的串口实现,可以通过USB连接STM32或ESP8266这些MCU

中间这个可以做BadUSB(实现键盘模拟输入)

最下面这个应该是访问U盘

每一种USB设备,尤其是人机交互设备和存储设备,都有一串特殊的数字,这串数字被称为厂商ID和产品ID。这两个数字一般是成对出现的。厂商ID用于标明该产品是由哪一个制造商所生产的,而产品ID是产品的标识符。

有关协议的详细说明:USB初学(一)---USB-HID的初步认识【转】

HID设备的描述符除了5个USB的标准描述符(设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符)外,还包括三个HID设备类特定的描述符:HID描述符、报告描述符、实体描述符。

  除了HID的三个特定描述符组成对HID设备的解释外,5个标准描述符中与HID设备有关的部分有:

当时做到时候由于不熟悉usb流量分析,网上资料也看的云里物理,找了篇题解进行分析

CTF-BUUCTF-MISC-USB

buu usb 1分题

首先,修复rar的文件头

里面有一张233.png

233.png通过stegsolver可以提取出一张二维码出来

2022-07-06_21-07

用草料二维码可以提取出一段字

ci{v3erf_0tygidv2_fc0}

另外还有一个fkm文件,发现503B这个zip文件头,另存为zip然后解压

提到了可以用tshark把指令提取出来

但我实际用UsbKeyboardDataHacker出结果

image-20220706214409739

维吉尼亚密码,密码为xinan

fa{i3eei_0llgvgn2_sc0}

离flag很近,具备栅栏密码的特征

还真是

image-20220706215234037

根据标识符,找到设备的情况:

2.4.0 未知设备

2.8.0 keyboard

2.10.0 logitech

2.3.0 Lite-on Technology

2.4.0 Intel Bluetooth

用usb.addr作为过滤条件筛出数据,然后分组导出

2.8.1 里藏了一个压缩包,有着rar文件头的标记

image-20220706221003241

把<cap>标识去掉,新建hex文件

tips:010editior的hex粘贴需要从Edit进入

image-20220706221406518

2.10.1 里藏了密码35c535765e50074a,应该是鼠标信号

image-20220706220912894

解压即可得到flag

当时十分莽撞的直接拿现成脚本去试,结果什么都没有

image-20220706221645171

照猫画虎x2,用提取不少帖子用tshark提取capdata

然后很不幸的得到了一个空的txt

看了hid部分以后,想了一下抓的应该是usbhid.data

有结果了

image-20220706225419916

找到一个处理冒号和空格的脚本(忘记从哪里找来的)

数据整理完成,开始转换

然后得到同样一个带有rar文件头的数据包

image-20220706230035160

当时为了修复这个包,花了不少力气。但事后来看,只要所有数据混到一块就全部木大。

运气好的话,没准可以用binwalk分离出来。

这类题目的套路就是把数据藏到capdata,然后找脚本读取就OK

当时在场上有把zip包从USB中提取出来,但是没把2.8.1的信息单独分离出来,即使修复文件头依然无法解压文件。只能说准备确实还不够充分,留下了遗憾。

https://github.com/WangYihang/UsbKeyboardDataHacker/blob/master/UsbKeyboardDataHacker.py

当时现场做不出来,使足力气Bing+Google,赛后发现自己没少看资料,就整理了出来

深入理解USB流量数据包的抓取与分析

CTF解题技能之压缩包分析基础篇

Wireshark官方对USB的描述

关于usb流量分析

【技术分享】从CTF中学USB流量捕获与解析

内存取证&USB流量分析 —— 【高校战“疫”】ez_mem&usb

l USB UART
l USB HID
l USB Memory
l USB UART
l USB HID
l USB Memory
 
 
 
 
 
 
bInterfaceProtocol的取值(十进制) 含义
0 None
1 键盘
2 鼠标
3-255 保留
 
 
 
 
 
 
 
 
 
 
tshark -r key.pcap -T fields -e usb.capdata > usbdata.txt
tshark -r key.pcap -T fields -e usb.capdata > usbdata.txt
 
 
 
 
 
 
 
 
 
 
 
 
usb.addr== "2.8.1"
usb.addr== "2.10.1"
usb.addr== "2.8.1"
usb.addr== "2.10.1"
 
 
 
 
 
 
 
 

[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

最后于 2022-7-6 23:30 被wx_莫克斯编辑 ,原因:
上传的附件:
收藏
免费 4
支持
分享
打赏 + 50.00雪花
打赏次数 1 雪花 + 50.00
 
赞赏  Editor   +50.00 2022/07/22 恭喜您获得“雪花”奖励,安全圈有你而精彩!
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//