Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Xiaomi-C200-Firmware-Analysis — 从UART到Root:通过U-Boot攻入小米C200 | Kitploit
工具/GitHubGitHub/h3xdum/xiaomi-c200-firmware-analysis
嵌入式系统安全权限提升物联网安全漏洞利用逆向工程数据恢复硬件黑客硬件安全固件分析
GitHubh3xdum/xiaomi-c200-firmware-analysis

Xiaomi-C200-Firmware-Analysis

从UART到Root:通过U-Boot攻入小米C200

1111079个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

范围

在本仓库中,我将展示我是如何在没有常见的暴露引脚/测试点的情况下访问 UART 接口的,利用 U-Boot 和一些技巧在早期阶段获得 root 权限,并最终转储固件。

初步侦察

pcb 从 PCB 上可以明确看出几个关键点:

  • 芯片 → T31 君正处理器
  • 闪存 → SOIC-8 SPI NOR 类型
  • 潜在的 UART 测试点

首先,我尝试了那些最直接的 UART 访问候选点,有 4 个排成一排的测试点,看起来像是 Tx、Rx、地线和电源,但用万用表测试时读数不对,如图所示。我尝试了大多数其他测试点,仍然找不到正确的读数,因此我不得不改变策略。

获得立足点

由于板上既没有连接器,也没有可用的测试点,我决定从源头入手,直接连接到处理器引脚,以此获得 UART shell。我查阅了该处理器的数据手册,并确定了 UART 协议引脚。 T31 现在我们只需在板上找到地线,然后连接:

  • Tx → Rx
  • Rx → Tx
  • GND → GND

我使用了一些 PCBite 探针和 USB 转 TTL 适配器来完成这个设置。 pcb_uart

U-Boot 与 Root

现在我们可以使用 picocom 来获得我们想要的 UART shell。

sudo picocom -b 115200 /dev/ttyUSB0

如果不做任何操作,我只能在启动过程结束时看到启动日志,而不会获得 shell,所以我必须立刻按回车键中断 U-Boot。在进入 U-Boot shell 后,我首先打印了环境变量。 U-Boot_1 对我们重要的内容有:

  • bootargs → 显示 init 命令是运行 linuxrc 二进制文件,以及固件布局(分区及其用途/大小/槽位)
  • bootcmd → 从闪存加载内存到 RAM 并启动设备的命令

为了快速获得 root 权限,我可以利用 setenv 修改 init 命令的技巧,这样我会得到一个 shell,而不是运行 linuxrc 二进制文件,然后我可以手动加载内存并启动设备(本质上就是复制 bootcmd 命令)。 U-Boot_1 现在,当启动完成后,我将进入一个早期 shell,系统上几乎没有运行任何东西,所以我将在后台运行原始的 linuxrc 二进制文件,并检查系统上是否有开放的端口。 root_netstat 运气不佳!该摄像头只与其云服务器 " 47.237.75.249 " 通信,没有可供摆弄的 Web 管理界面。 由于逆向云通信二进制文件不在我的研究范围内,因此我决定在此结束我的研究 :)

固件提取

给对玩固件感兴趣的读者一个额外内容,以下是如何获取固件。 与之前的 UART 设置相同,但这次只探测并将闪存中的数据加载到 RAM,而不启动进入系统。 然后,你可以打印 RAM 内存中的数据,并记录终端输出(这次使用 minicom)保存到文件,再用 python 稍作清理,即可获得固件,结合 binwalk 和 bootargs 帮助命名每个分区。 Firmware

下载工具