iot

学习拆机调试路由器

记一次拆路由器

Posted by X1ng on December 6, 2020

上周为了复现强网杯的cisco RV110W 路由器题目买了路由器,在复现的时候直接用telnet弱口令进入路由器调试了,这周来试试焊接调试串口进行调试,顺便水篇笔记,记录一下过程

找到调试串口

在拆开路由器后,在电路板上找到UART串口,UART有4个pin(VCC, GND, RX, TX), 用的TTL电平, 低电平为0(0V)、高电平为1(3.3V或以上)

看标注

有些电路板上会印上UART的四个口,RV110W就是这样的

如果没有标注的话,需要用万用表测

万用表测

RX与VCC为高电平,TX与GN为低电平

找到两篇相关文章

  1. 路由器基本调试一 UART定位

    定位GND

    GND和至少和一根外接天线是连接相通的,将万用表的档位调整至蜂鸣档,一只表笔置于天线的焊锡点,一只表笔置于串口,如果发出蜂鸣声,就是GND。

    定位VCC

    给路由器通电,VCC是供电引脚,路由器的VCC电压始终未3.30不会发生变化,找到它可以帮助我们排除RXD、TXD。

    将万用表调整到直流20V上。将一只表笔放在GND上,测试其他哪只引脚电压为3.3V, 该引脚就为VCC。

    定位TXD

    输出引脚TXD,每次有数据传输的时候该引脚电压都会发生变化。什么时候有数据传输呢?根据个人经验路由器开机的时候有启动信息会从这个引脚输出,这时候电压就会发生变化,此引脚即为TXD。

    定位RXD

    输入引脚RXD,每次有外部数据传输到路由器的时候,RXD的电压都都会发生变化。这里其他3个引脚都确定了就剩下一个很容易的确定了RXD

  2. 5分钟教程:如何通过UART获得root权限

    识别GND

    关掉设备,把你的万用表调到‘连续模式‘,把黑色探针接地(或接其他金属),然后把红色探针依次与上述四个针脚进行接触,如果发出了“哔哔”声,则说明这个针脚为GND。

    识别VCC

    把万用表调到“DC Voltage(V-)”,把黑色探头接到GND,然后用红色探头去检查UART针脚。然后接点,如果哪个针脚能够出现恒定的高电压(约3.3V或5V),则说明这个针脚就是VCC。

    识别TX

    在启动过程中的10-15秒时间里,TX针脚会引起非常大的电压波动,因为启动过程中有很多数据需要传输,方法跟寻找VCC针脚的方法相同。

    识别RX

    RX针脚在整个过程中电压是最低的,相比不用解释太多了。

找了一台DIR-823 pro

看到四个一排的串口,猜测是UART串口

  1. 没有发现方形的串口
  2. 先断开电源,用万用表蜂鸣档分别连接测试天线和四个串口,只有一根天线有裸露可以接触的地方,连接一个串口和天线发出蜂鸣声,找到GND
  3. 开始接上电源,用万用表电压档分别连接测试GND和其他三个串口,找到电压在变化的TX
  4. 用万用表电压档分别连接测试GND和其他两个串口,找到保持在3.3V的VCC
  5. 剩下的电压稳定为低电平的即为RX

连接串口

我用的是FT232模块 USB转TTL的转接头

在路由器通电的时候vcc口可以不用连(不通电调试什么。。。

接着只要直接把排针插进去焊上,将TX-RXD、RX-TXD、GND-GND连接就可以了

驱动与连接

下载驱动(mac端)

下载SecureCRT for mac提取码: faes

安装驱动跟着向导走就可以了

在终端输入ls /dev/cu.*

看到/dev/cu.usbserial-AR0JKZBI安装成功

安装SecureCRT后选择Connect->Quick Connect

设置ProtocolSerialPort/dev/cu.usbserial-AR0JKZBIBaud rate为115200

连接后重启即可看到路由器启动的过程

完成后按回车就可以拿到shell了,之后就可以上传gdbserver快乐调试了

当然并不是所有设备的uart串口都可以拿到shell的

参考链接

https://yaseng.org/iot-security-hardware-debuging.html

https://pbxbook.com/other/mac-tty.html#screen