当前位置: 首页 > news >正文

20250725_QQ_ezusb

Tags:流量分析,USB,pyshark,Base64,kamasutra,DASCTF

0x00. 题目

附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件

附件名称:20250725_QQ_ezusb.zip

0x01. WP

1. 分析USB流量

有两个USB设备流量,

1.1.1usb.capdata

1.2.1usb.hiddata

image

2. 使用脚本分别抽取两个流量

# -*- coding: utf-8 -*-
import os
# os.system("tshark -r flag.pcapng -T fields -e usbhid.data > usbhdata.txt")
# os.system("tshark -r flag.pcapng -T fields -e usb.capdata > usbdata.txt")
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>"}# 常规键盘流量解析脚本
nums = []
keys = open('usbhdata.txt')
for line in keys:# print(len(line))if len(line) != 17:continuenums.append(line[0:2]+line[4:6]) 
# print(nums)
keys.close()output = ""
for n in nums:if n[2:4] == "00" :continueif n[2:4] in normalKeys:if n[0:2] == "02":output += shiftKeys [n[2:4]]else :output += normalKeys [n[2:4]]else:output += '[unknown]'
print('Part1 :' + output)
print('\n')# usb.capdata流量解析脚本
nums = []
keys = open('usbdata.txt')
for line in keys:# print(len(line))if len(line) != 15:continueif line[2:4] == "00":continuenums.append(line[2:4])
keys.close()print('Part2 :',''.join(nums).replace("02","0").replace("01","1"))# Part1 :congratulations,you<SPACE>finlly<SPACE>find<SPACE>me,but<SPACE>what<SPACE>i<SPACE>want<SPACE>to<SPACE>tell<SPACE>you<SPACE>is<SPACE>that<SPACE>roman<SPACE>roland<SPACE>once<SPACE>said<SPACE>thar<SPACE>there<SPACE>is<SPACE>only<SPACE>one<SPACE>kind<SPACE>of<SPACE>heroism<SPACE>in<SPACE>the<SPACE>worlld,that<SPACE>is<SPACE>to<SPACE>know<SPACE>the<SPACE>cruelty<SPACE>of<SPACE>the<SPACE>life<SPACE>but<SPACE>still<SPACE>love<SPACE>it.<CAP><CAP>ok,<CAP><CAP>get<SPACE>to<SPACE>the<SPACE>point;the<SPACE>[]-<SPACE>three<SPACE>symbols<SPACE>were<SPACE>added<SPACE>to<SPACE>the<SPACE>front<SPACE>of<SPACE>the<SPACE>base64<SPACE>table<SPACE>and<SPACE>handed<SPACE>to<SPACE>caesar.if<SPACE>you<SPACE>can<SPACE>decrypto<SPACE>the<SPACE>sercet<SPACE>you<SPACE>can<SPACE>get<SPACE>the<SPACE>half<SPACE>of<SPACE>flag.
#
# Part2 : 010010110110010101111001011000100011000001110010011000010110010001011111010000000110111001100100010111110101010101010011010000100010000101111101
# BIN2CHR=>Keyb0rad_@nd_USB!}

3. 解码secret.txt

E_RBUG}KtruA4ZrxABZ4rZsAZOeAlztrdA{}_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

[]-替换为{}_形成基于Base64的字典,使用随波逐流工具的kamasutra爱经解密得到明文为DASCTF{JUST_3aSY_Ca3SaR_aND_MaUSE_

image

http://www.rkmt.cn/news/12230.html

相关文章:

  • .netcore 程序启动时的核心类 - 指南
  • HP激光墨盒换墨粉
  • 详细介绍:《 Linux 点滴漫谈: 一 》开源之路:Linux 的历史、演进与未来趋势
  • 深入解析:P4779 【模板】单源最短路径(标准版)
  • [更新完毕]2025华为杯B题数学建模研赛B题研究生数学建模思路代码文章成品:无线通信系统链路速率建模 - 指南
  • redis-bitMap类型基本命令
  • 基于SpringBoot及PostgreSQL的国家减肥食谱管理项目(上):区域与省份安装搭建
  • 基于BP神经网络的激光焊接数据预测
  • Pandawiki:企业知识管理的全能管家
  • 鹿鼎记豪侠传:Rust 重塑 iOS 江湖(下) - 指南
  • 树的重心(邻接表)
  • 语音芯片怎样接? 语音芯片有哪些常见接口类型?
  • 详细介绍:2025华为杯A题B题C题D题E题F题选题建议思路数学建模研研究生数学建模思路代码文章成品
  • AtCoder Beginner Contest 424
  • ======================================分割线======================================
  • OpenLayers地图交互 -- 章节六:范围交互详解 - 实践
  • 游戏在高负载场景下,整机功耗控制在多少
  • 打印机状态错误,怎么恢复正常打印?
  • 牛客刷题-Day5
  • VonaJS多租户同时支持共享模式和独立模式
  • 实用指南:【C语言】统计二进制中1的个数:三种方法的比较与分析
  • vite-vue3 项目优化首屏加载速度
  • 深入解析:小九源码-springboot050-基于spring boot的苏蔚家校互联管理系统
  • 各种软件的官方文档和安装包下载地址记录
  • 基于导频的OFDM系统的信道估计(使用LS估计算法)
  • 快递100
  • python+springboot+uniapp微信小代码“美好食荐”框架 美食推荐 菜谱展示 用户互动 评论收藏框架
  • 领嵌iLeadE-588网关AI边缘计算盒子一键部署二次开发
  • 深入解析:PyTorch 神经网络工具箱核心内容
  • 【英语启蒙动画合集】0基础宝宝必看的动画,超全!直接下载~