前言
NetGear 厂商的路由器设备中,拆解开经常会带有UART 调试串口,并且以往的NetGear 设备UART调试口往往只需要正确的检测出UART引脚的类型,设置波特率为115200,然后直接用串口调试软件配合FT232就可以直接获取设备内部的shell。但是Nightawk 夜鹰 RAX40V2 路由器在接入UART调试串口时,却有所不同。本篇文章,将带来对NetGear RAX40v2 在路由器开发板上的UART 获取shell的过程中遇到的一些问题,如何进行解决,循序渐进的开启设备的telnet,让我们拭目以待。
设备分析
产品名称:Nighthawk AX4 4-Stream WiFi Router
固件版本:V1.0.2.82_2.0.50
发布日期:2020年
首先我们从设备侧入手,拆解的过程以及设备硬件的配置,这不属于本片文章的重点,这里就不做过多的讲解。
设备串口分析
引脚分析,这款设备的引脚已经给了针脚,也免去了另外焊接针脚的工作,根据万用表和逻辑分析仪的识别(其实没用到逻辑分析仪)
从上到下依次是 VCC 引脚、GND引脚 (红线)、TXD引脚(黄线)、RXD引脚(橙线)
波特率识别
首先识别FTD 232 USB “ls -ll /dev/tty“
接下来使用devttys0 的小工具baudrate.py 来识别波特率,只需要简单的使用上下键,就可以识别不同的波特率。如下图所示,设备识别为115200。 这也是NetGear 常用的波特率,其他的厂商的波特率也很多使用这个波特率。
tip: 这里顺带提一下,baudrate.py 识别的波特率是设置好的常见波特率,但是里面只设置了几个可以识别的波特率,如果需要增加识别广度,需要在脚本内部的BAUDRATES 参数中增加想要识别的波特率值。
获取启动log
现在我们已经知道了波特率,接下来获取设备在启动的时候的log 信息,分析这些log 对设备分析有的时候会非常有用。但是常常 UART 的log 信息会非常多并且启动比较快。因此需要想办法将这些log 保存下来,以便后续分析。
我们使用minicom 打开,选择 “Serial port setup” —> 设置 ”A—-Serial Device“ 和 ”E “的波特率,minicom 使用的方法搜索一下有详细的使用说明。
保存串口log 为文件,关闭也是一样的。最终可以看到生成的文件,文本编辑器打开生成的文件。
tips: 非正常关闭minicom,会在/var/lock下创建几个文件LCK*,这几个文件阻止了minicom的运行,将它们删除后即可恢复。
查看设备启动的log ,log 很多,这里截选了部分的log信息。
squashfs: version 4.0 (2009/01/31) Phillip Lougher
jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.
fuse init (API version 7.23)
SGI XFS with security attributes, no debug enabled
io scheduler noop registered (default)
brd: module loaded
loop: module loaded
nand