四根铜焊盘听出root:TP-LinkTL-WR845NUART未认证调试口

admin 2026-09-24 05:28:15 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文展示通过UART调试口物理获取TP-LinkTL-WR845N路由器未认证rootshell的过程。作者使用万用表识别四根铜焊盘引脚角色,连接CP2102转接器,在115200波特率下获取启动日志并直接进入rootshell。文章强调物理接触可绕过软件安全措施,并提供Jtagulator自动化找脚经验与踩坑教训。建议重视硬件调试接口暴露风险,加强物理访问控制。 综合评分: 78 文章分类: IoT安全,渗透测试,硬件安全


四根铜焊盘听出 root:TP-Link TL-WR845N UART 未认证调试口

黑卷 黑卷

赛博安全攻防日记

2026年9月23日 13:34 上海

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

四根铜焊盘听出 root:TP-Link TL-WR845N UART 未认证调试口

做 IoT 安全的人,很容易把设备当成「软件黑盒」:以为安全全靠固件强度和密码学复杂度。可软件不是空中楼阁,它得跑在硅片上。硅片要是愿意说话,你只要会听,调试口往往比 Web 后台诚实得多。

这篇跟着 IoTSec Forum 上 sanisapatrikar 的实操:拆开一台 TP-Link TL-WR845N v4.0,用万用表把四根无名铜焊盘认成 GND / VCC / TX / RX,再从 UART 直接拿到未认证 root shell。重点不是炫操作,而是提醒:量产板留着开发期调试口,物理接触面前,门户密码学经常直接失效。

工器具

开干前先把台子摆齐:

  • 目标路由:

    TP-Link TL-WR845N(v4.0)

目标机:TP-Link TL-WR845N v4.0

  • CP2102 USB-to-TTL:

    把板子 3.3 V 电平的串口波形,翻成笔记本认得的 USB 数据

CP2102 USB-to-TTL

  • Jtagulator:

    可编程「接线总机」,用来暴力枚举隐藏调试脚

台架:路由与 Jtagulator

  • PC:

    PuTTY / Picocom 一类终端,抓启动日志、交互串口

目标与思路

撬开塑料壳,经典三件套就在眼前:MediaTek SoC、Zentel SDRAM、以及 4MB 的 SPI Flash。

很多人第一反应是焊掉 Flash 直接 dump。静态固件经常打包、压缩甚至加密;可 SoC 要真正跑起来,总得把固件解到 RAM。若能在系统「醒来之后、上锁之前」搭上一根线,看到的就是明文活系统——这就是 UART 的价值。

万用表四步认脚

SoC 旁边躺着一组未焊接的 4 针焊盘:没丝印、没标注,就四块裸铜。上逻辑分析仪之前,先用万用表把物理角色摸清楚。

  • 锚点 GND:

    通断档,一端贴网口金属屏蔽,另一端点焊盘;响的那根就是地。

  • 电源轨 VCC:

    改直流电压档,板上电后稳稳 3.3 V 的那根。

  • 心跳 TX:

    黑表笔钉住 GND,红表笔点第三脚再重启;开机前几秒电压在 2.8~3.3 V 乱跳——那是启动日志在往外喷,这就是 TX。

  • 听众 RX:

    剩下那根静静趴在 0 V 附近的,就是等输入的 RX。

血泪教训: 用 CP2102 桥到电脑时,只接 GND,TX↔RX 交叉,VCC 坚决不接。板子自供电再外灌电,轻则 USB 控制器抽风,重则把 SoC 灌死。

启动日志泄密

接线就绪,PuTTY 开到这台路由的 115200,上电——电噪声忽然变成干净 ASCII。U-Boot 把架构底牌摊开:CPU 频率、内存大小,还有完整 MTD 分区表;内核日志则标清 U-Boot、kernel、SquashFS root 各自落在哪块。

压轴戏更直白。/etc/init.d/rcS 跑完,系统不询问用户名密码,直接甩出:

starting pid 78, tty '/dev/ttyS1': '/bin/sh'

回车一下,提示符变成 #——活文件系统上的未认证 root。Web 门户上再漂亮的密码策略,在这四根铜脚面前都显得多余。

自动化找脚:踩坑与被动监听

不是每块板都摆得这么规矩。面对更「硬」的目标,作者上了 Jtagulator 做引脚暴力枚举。

从手测切到自动化,自己也会掉坑。典型是「双串口陷阱」:Jtagulator 对主机死守 115200,对目标脚却在动态改速——忘了这点,日志全是噪音。

主动扫描(U 模式)一度空手。主动模式会按引脚排列组合扫波特率,而启动日志只在上电后闪几秒,窗口很容易错过。可真正翻 error 日志才发现:扫描根本没起步。配 U 模式要走一串提示;某处 CLI 只要小写 y,敲成大写 Y 会默默把配置弄崩。再试又撞上 Value out of range!,扫描在「按空格开始」之前就死了。

Jtagulator:配置阶段 Value out of range,扫描未真正发出

可靠做法是别跟配置死磕,改被动连续监听(T 命令):上电瞬间抓住 TX 噪音,同时估出波特率。再切 UART Passthrough(P),Jtagulator 就变成透明桥,重新回到那个 root shell。

顺手提一句通用经验:嵌入式 Linux shell 认的是真换行 \x0A,不是 Windows 式 \x0D。对它说「Windows」,它只会干瞪眼。

小结

编译出来的「理论安全」,和焊盘上的物理现实,中间差着一条沟。软件默认自己跑在隔离气泡里;你一旦摸到硅片,规则就改由你定。

不一定非要硬刚密码学。有时,听听线上的低语就够了。

作者:sanisapatrikar / IoTSec Forum


免责声明:

本人所有文章均为技术分享,均用于防御为目的的记录,请勿用于其他用途,否则后果自负。

更多 IoT / 车联网 / 机器人 / AI 安全资料在星球里,扫码进「车联网攻防日记」。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。

本文转载自:赛博安全攻防日记 黑卷 黑卷《四根铜焊盘听出 root:TP-Link TL-WR845N UART 未认证调试口》

评论:0   参与:  0