当前位置:网站首页>buuctf misc USB
buuctf misc USB
2022-07-07 07:43:00 【[mzq]】
USB
Title address : https://buuoj.cn/challenges#USB
There are two documents in the title, one 233.rar One key.ftm file , First decompress rar The file gets a flag.txt Ridicule from the author

use 010editor Open discovery rar The file block of should be 74 instead of 7A , hold 7A It is amended as follows 74

After repairing and decompressing, you get a 233.png , use stegsolve open , Find the QR code
Scan the code to get
ci{v3erf_0tygidv2_fc0}

stay key.ftm Found in the file zip file , extract zip Decompress the compressed package to get key.pcapng

use UsbKeyboardDataHacker Decrypt usb Traffic
#!/usr/bin/env python
import sys
import os
DataFileName = "usb.dat"
presses = []
normalKeys = {
"04":"a", "05":"b", "06":"c", "07":"d", "08":"e", "09":"f", "0a":"g", "0b":"h", "0c":"i", "0d":"j", "0e":"k", "0f":"l", "10":"m", "11":"n", "12":"o", "13":"p", "14":"q", "15":"r", "16":"s", "17":"t", "18":"u", "19":"v", "1a":"w", "1b":"x", "1c":"y", "1d":"z","1e":"1", "1f":"2", "20":"3", "21":"4", "22":"5", "23":"6","24":"7","25":"8","26":"9","27":"0","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>","2d":"-","2e":"=","2f":"[","30":"]","31":"\\","32":"<NON>","33":";","34":"'","35":"<GA>","36":",","37":".","38":"/","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}
shiftKeys = {
"04":"A", "05":"B", "06":"C", "07":"D", "08":"E", "09":"F", "0a":"G", "0b":"H", "0c":"I", "0d":"J", "0e":"K", "0f":"L", "10":"M", "11":"N", "12":"O", "13":"P", "14":"Q", "15":"R", "16":"S", "17":"T", "18":"U", "19":"V", "1a":"W", "1b":"X", "1c":"Y", "1d":"Z","1e":"!", "1f":"@", "20":"#", "21":"$", "22":"%", "23":"^","24":"&","25":"*","26":"(","27":")","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>","2d":"_","2e":"+","2f":"{","30":"}","31":"|","32":"<NON>","33":"\"","34":":","35":"<GA>","36":"<","37":">","38":"?","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}
def main():
# check argv
if len(sys.argv) != 2:
print("Usage : ")
print(" python UsbKeyboardHacker.py data.pcap")
print("Tips : ")
print(" To use this python script , you must install the tshark first.")
print(" You can use `sudo apt-get install tshark` to install it")
print("Author : ")
print(" WangYihang <[email protected]>")
print(" If you have any questions , please contact me by email.")
print(" Thank you for using.")
exit(1)
# get argv
pcapFilePath = sys.argv[1]
# get data of pcap
os.system("tshark -r %s -T fields -e usb.capdata 'usb.data_len == 8' > %s" % (pcapFilePath, DataFileName))
# read data
with open(DataFileName, "r") as f:
for line in f:
presses.append(line[0:-1])
# handle
result = ""
for press in presses:
if press == '':
continue
if ':' in press:
Bytes = press.split(":")
else:
Bytes = [press[i:i+2] for i in range(0, len(press), 2)]
if Bytes[0] == "00":
if Bytes[2] != "00" and normalKeys.get(Bytes[2]):
result += normalKeys[Bytes[2]]
elif int(Bytes[0],16) & 0b10 or int(Bytes[0],16) & 0b100000: # shift key is pressed.
if Bytes[2] != "00" and normalKeys.get(Bytes[2]):
result += shiftKeys[Bytes[2]]
else:
print("[-] Unknow Key : %s" % (Bytes[0]))
print("[+] Found : %s" % (result))
# clean the temp data
os.system("rm ./%s" % (DataFileName))
if __name__ == "__main__":
main()

String obtained with QR code , Conduct
Vigeneredecode ,key yesxinan
Vigenere : https://atomcated.github.io/Vigenere/
Then proceed Railfence Decrypt The number of columns is 2

边栏推荐
- 抽丝剥茧C语言(高阶)数据的储存+练习
- 3、 High quality programming and performance tuning practical youth training camp notes
- gatk4中的interval是什么??
- ../ And/
- [semantic segmentation] - multi-scale attention
- [2022 ACTF]web题目复现
- gslx680触摸屏驱动源码码分析(gslX680.c)
- Weibo publishing cases
- Dynamics CRM server deployment - restore database prompt: the database is in use
- The metauniverse of the platofarm farm continues to expand, with Dao governance as the core
猜你喜欢

1、 Go knowledge check and remedy + practical course notes youth training camp notes

通信设备商,到底有哪些岗位?

图解GPT3的工作原理

Implementing data dictionary with JSP custom tag

1140_ SiCp learning notes_ Use Newton's method to solve the square root

Wechat applet full stack development practice Chapter 3 Introduction and use of APIs commonly used in wechat applet development -- 3.9 introduction to network interface (IX) extending the request3 met

The metauniverse of the platofarm farm continues to expand, with Dao governance as the core

抽丝剥茧C语言(高阶)指针进阶练习

【webrtc】m98 screen和window采集

MobaXterm
随机推荐
1141_ SiCp learning notes_ Functions abstracted as black boxes
机器人技术创新与实践旧版本大纲
vus.SSR在asynData函数中请求数据的注意事项
How to reduce inventory with high concurrency on the Internet
[SUCTF 2019]Game
The metauniverse of the platofarm farm continues to expand, with Dao governance as the core
4、 High performance go language release optimization and landing practice youth training camp notes
2022-07-06:以下go语言代码是否会panic?A:会;B:不会。 package main import “C“ func main() { var ch chan struct
Tianqing sends instructions to bypass the secondary verification
Invalid table alias or column reference`xxx`
【性能压测】如何做好性能压测?
图解GPT3的工作原理
Is the test cycle compressed? Teach you 9 ways to deal with it
Simple example of ros2 planning system plansys2
外包幹了三年,廢了...
[UTCTF2020]file header
After the interview, the interviewer roast in the circle of friends
三、高质量编程与性能调优实战 青训营笔记
为什么要了解现货黄金走势?
聊聊异步编程的 7 种实现方式