上周为了复现强网杯的cisco RV110W 路由器题目买了路由器,在复现的时候直接用telnet弱口令进入路由器调试了,这周来试试焊接调试串口进行调试,顺便水篇笔记,记录一下过程
找到调试串口
在拆开路由器后,在电路板上找到UART串口,UART有4个pin(VCC, GND, RX, TX), 用的TTL电平, 低电平为0(0V)、高电平为1(3.3V或以上)
看标注
有些电路板上会印上UART的四个口,RV110W就是这样的
如果没有标注的话,需要用万用表测
万用表测
RX与VCC为高电平,TX与GN为低电平
找到两篇相关文章
-
定位GND
GND和至少和一根外接天线是连接相通的,将万用表的档位调整至蜂鸣档,一只表笔置于天线的焊锡点,一只表笔置于串口,如果发出蜂鸣声,就是GND。
定位VCC
给路由器通电,VCC是供电引脚,路由器的VCC电压始终未3.30不会发生变化,找到它可以帮助我们排除RXD、TXD。
将万用表调整到直流20V上。将一只表笔放在GND上,测试其他哪只引脚电压为3.3V, 该引脚就为VCC。
定位TXD
输出引脚TXD,每次有数据传输的时候该引脚电压都会发生变化。什么时候有数据传输呢?根据个人经验路由器开机的时候有启动信息会从这个引脚输出,这时候电压就会发生变化,此引脚即为TXD。
定位RXD
输入引脚RXD,每次有外部数据传输到路由器的时候,RXD的电压都都会发生变化。这里其他3个引脚都确定了就剩下一个很容易的确定了RXD
-
识别GND
关掉设备,把你的万用表调到‘连续模式‘,把黑色探针接地(或接其他金属),然后把红色探针依次与上述四个针脚进行接触,如果发出了“哔哔”声,则说明这个针脚为GND。
识别VCC
把万用表调到“DC Voltage(V-)”,把黑色探头接到GND,然后用红色探头去检查UART针脚。然后接点,如果哪个针脚能够出现恒定的高电压(约3.3V或5V),则说明这个针脚就是VCC。
识别TX
在启动过程中的10-15秒时间里,TX针脚会引起非常大的电压波动,因为启动过程中有很多数据需要传输,方法跟寻找VCC针脚的方法相同。
识别RX
RX针脚在整个过程中电压是最低的,相比不用解释太多了。
找了一台DIR-823 pro
看到四个一排的串口,猜测是UART串口
- 没有发现方形的串口
- 先断开电源,用万用表蜂鸣档分别连接测试天线和四个串口,只有一根天线有裸露可以接触的地方,连接一个串口和天线发出蜂鸣声,找到GND
- 开始接上电源,用万用表电压档分别连接测试GND和其他三个串口,找到电压在变化的TX
- 用万用表电压档分别连接测试GND和其他两个串口,找到保持在3.3V的VCC
- 剩下的电压稳定为低电平的即为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
设置Protocol
为Serial
,Port
为/dev/cu.usbserial-AR0JKZBI
,Baud rate
为115200
连接后重启即可看到路由器启动的过程
完成后按回车就可以拿到shell了,之后就可以上传gdbserver快乐调试了
当然并不是所有设备的uart串口都可以拿到shell的
参考链接
https://yaseng.org/iot-security-hardware-debuging.html
https://pbxbook.com/other/mac-tty.html#screen