前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >两道蓝牙相关的CTF题目

两道蓝牙相关的CTF题目

作者头像
yichen
发布2022-11-11 16:28:17
1.1K0
发布2022-11-11 16:28:17
举报

题目附件,密码:yichen

https://wwi.lanzoup.com/b017uwjrc

CVVD2022:蓝牙钥匙的春天

下载下来是一个蓝牙流量包,随便翻翻发现存在 SMP 协议,全称是 Secure Manager Protocol,是蓝牙用来定义配对和密钥分发的

配对后的流量是被加密的,但是有个工具 crackle 是可以解密这种数据包的,这个工具解密蓝牙流量有三个前提,这也在官方的 FAQ 中提到了:

https://github.com/mikeryan/crackle/blob/master/FAQ.md

首先要有完整的配对过程流量,要使用链路层加密(有些开发者会自己实现加密),且只适合于传统配对(legacy pairing)

安装 crackle

代码语言:javascript
复制
git clone https://github.com/mikeryan/crackle.git
cd crackle
make
make install

如果提示下图则需要安装相关依赖

代码语言:javascript
复制
sudo apt-get install libpcap-dev

安装完成后我们使用 crackle 解密发现如下提示,它不支持 BLUETOOTH_LE_LL

但是在它的 issues 中发现有人讨论过这个问题

用这个人的 crackle 再解一遍发现已经可以识别

加个参数 -o 可以保存出解密的数据包

代码语言:javascript
复制
crackle -i uploads_2022_04_11_h5kAcZEg_ble.pcapng -o de.pcapng

保存出来的数据包用 wireshark 打开后发现了一些值

把这些值提取出来之后发现一共有四组不同的,对他们进行两次十六进制编码后拼接,得到了 flag

未知比赛:low_energy_crypto

仿的 Cyber Apocalypse 2021 Low Energy Crypto

wireshark 打开后并没有发现类似上一题那样的配对流量,但是翻了翻流量,发现了一些交互,RX 收到了下面这些信息

复制出来是一个公钥,直接保存为 pub.key:

代码语言:javascript
复制
-----BEGIN PUBLIC KEY-----
MGowDQYJKoZIhvcNAQEBBQADWQAwVgJBAKKPHxnmkWVC4fje7KMbWZf07zR10D0m
B9fjj4tlGkPOW+f8JGzgYJRWboekcnZfiQrLRhA3REn1lUKkRAnUqAkCEQDL/3Li
4l+RI2g0FqJvf3ff
-----END PUBLIC KEY-----

往下翻翻,发现了一些 TX 的数据,应该是用私钥加密后发出来的

密码学不太懂,直接用 RsaCtfTool 来解密,把密文复制出来的时候选择 as a Hex Stream:

然后用 winhex 创建一个新文件 enc,直接贴过来 ASCII Hex 格式

然后把后面的一堆 0 删掉,它正好是对齐的

用脚本直接跑出来

代码语言:javascript
复制
python RsaCtfTool.py --publickey ./pub.key --uncipherfile ./enc
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 陈冠男的游戏人生 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CVVD2022:蓝牙钥匙的春天
  • 未知比赛:low_energy_crypto
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档