路由器参数中的ver是什么,路由器的逻辑id是啥
*** 次数不足,请联系开发者***
路由器参数中的ver是什么,路由器的逻辑id是啥首先感谢Tenda 提供的对Tenda AX12 路由器的测评资格和提供的路由器设备。今天这篇文章就来讲述如何对路由器设备进行设备分析,以及在分析设备过程中要注意的点,在Tenda设备上的UART串口中获取shell。
Tenda AX12 路由器是我们的个目标,Tenda AX12 从外观上看,塑料的外壳透露着金属的质感,中间的金log在灯光下非常好看,而且这款路由器的外壳特别坚硬,在使用过程中应该不容易被一些东西砸到而产生变形,影响外观,整体设备有四根天线,根据设备的官方说明,设备支持5G和2.4G的WiFi信号。从外观上看,还看不出来设备有几根5G 的天线。需要将设备拆下来。并且设备的LED状态灯只有一个,不像以前的路由器,有专门WiFi、LAN口、WAN口、和电源的状态信号灯。
这一款Tenda设备拆卸开还是很轻松,背部只有两颗梅花螺丝,使用螺丝刀套装拧开螺丝,接着用塑料卡片一点一点的从边缘撬开,把顶上的塑料盖拿下来之后,这个时候就可以看到设备开发板,我移除了最外面的散热器,还有金属屏蔽层没有拆下来,从开发板上可以看到最右侧貌似是一个串口,然后是SOP8 flash 芯片,这边还看不清除具体是什么型号,并且在开发板上看到两个WiFi的芯片组,分别有2,4G和5G,并且每一个WiFi天线分别配备一个WiFi芯片,感觉WiFi的信号稳定性应该很不错。
用螺丝刀将芯片上的金属屏蔽层打开,打开金属屏蔽层有一个小窍门,要从屏蔽层的边缘,可以看到一个小缝隙,用扁头螺丝刀轻轻网上翘即可,撬开之后用棉签蘸点洗板水清洁一下芯片,这样能更清除的看清楚芯片型号,或者轻微的将台灯的灯光侧向一方,能看的更清楚,由于手机的渣像素,拍的依旧还是不清楚。
1 号芯片:S0374L87 SLN23
2 号芯片:S0393N23 SLMQ3
3号芯片:winbond 25Q128JVSQ 2104
2号芯片下面的芯片:ESMT M15T1G1664A
最右边的串口在板子上标注依次是 “3v3”,”OUT”,”IN”,”GND”,根据以往的路由器串口,大体上可以猜测出这是开发板上提供调试的UART 串口。那么根据UART 串口对引脚的定义,从上到下依次应该是 “VCC”、”TXD“、”RXD“、”GND“
智能设备的固件存在一般flash里,flash没有保护固件被非法读取的措施。现在大多数设备的FLASH和RAM、CPU分别独立,这样是特别容易被提取固件的,拆下FLASH用编程器直接能读到flash里面的内容了。如果FLASH和RAM集成在CPU上,并且开启了加密的话这样就会比较难提取固件,也使设备更加安全。
这里主要关心的是winbond 25Q128JVSQ 2104 芯片,在识别出了芯片型号,可以在搜索引擎中输入芯片型号,可以下载设备的datasheet(芯片数据手册)。芯片在winbond 华邦的官网中可以找到芯片的datasheet。
固件存在flash里,flash没有保护固件被非法读取的措施。现在大多数设备的FLASH和RAM、CPU分别独立,这样是特别容易被提取固件的,拆下FLASH用编程器直接能读到flash里面的内容了。如果FLASH和RAM集成在CPU上,并且开启了加密的话这样就会比较难提取固件,也使设备更加安全
根据datasheet 手册的信息,可以了解到winbond 25Q128JVSQ 芯片是一款25系列的SPI flash 芯片,并且是128mbit 内存。
下图是芯片的引脚定义,这一部分在提取flash芯片内的固件会用到。
由于在路由器板子上看到的疑似UART串口。使用FT232 接入设备,TXD —> IN,RXD —> OUT,GND —> GND 。由于手头上没有逻辑逻辑分析仪,波特率用常用的115200来尝试。打开SecureCRT ,设备通电。看到设备的启动的log信息,这里放出一部分的UART log信息。
根据log信息中的line 20看到,按ESC可以终端boot的自启。在line 67 的 Kernel command line 值可以了解到设备的固件文件类型是squash,设备的波特率是115200,和内核初始化的一些参数。在line 89 可以看到不同的分区所在的偏移区间,根据这些信息,可以从固件中提取指定偏移区间内的文件信息,比如可以提取 0x000000300000-0x000000f00000 偏移地址区间内的rootfs 文件系统。
由于无法获取到设备的UART shell,我开始考虑从芯片中获取固件,这里我犯了一个经验性的失误,因为以前分析过一些Tenda的设备,比较新的固件是识别不出来,解不开,并且以前提取Tenda F6设备flash 芯片中的固件时,使用飞线来提取,但是芯片有过电保护,无常提取固件,于是这一款设备我直接没有考虑从官网下载固件,而是把flash 芯片拆卸下来读取固件。
由于手头上没有热风枪,所以没办法直接把flash 芯片直接吹下来,所以采用电洛铁滴锡的方法来拆解Flash芯片进行固件读取。
1、将电烙铁加热加上锡,对准芯片一侧上锡,此时使用镊子将上锡的一侧轻轻翘起。2、对准芯片另一侧上锡,此时使用镊子将上锡的另一侧轻轻翘起,使用镊子轻轻夹出。
然后把芯片焊到底座上,方便编程器提取。
到这里,我并没有继续往下提取,因为我突然想起来在UART log信息中显示的squashfs 信息,我联想起来,这个设备的固件是squashfs文件系统类型的,那么就可以直接用binwalk -Me直接提取。
如果要继续往下提取,那就是根据flash芯片datasheet 中的信息确定芯片的1号引脚,和编程器一一对应,直接就可以提取了,另外winbond 的芯片,现在物美价廉的土豪金CHA341A编程器就可以提取出来。
这里我在Tenda官网中下载了固件进行提取,不出所料,这一款设备的固件很成功的就提取出来。
我把固件解开之后,首先在/etc/shadow 看到用户名和加密后的hash。一般来说,这一块是设备的UART 登录口令。但是很遗憾被MD5加密了。
hash值存储方式为:以MD5哈希算法为例,存储为$1$salt$encrypted;以SHA哈希算法为例,存储为$6$salt$encrypted
接了来使用hashcat 对shadow进行爆破
hashcat -m 500 -a 0 ./test_shadow.txt ./500_passwords.txt --force尝试使用hashcat爆破的方式,解开密码,但是换了许多个密码字典一直都没有成功,于是我想到了Tenda设备AC15的历史漏洞CVE-2020–10988,密码为root/ Fireitup ,于是加入到设备的爆破词典里面,如下图所示,密码正确。
使用获取到的登录口令,成功获取到设备的shell 中。
另外,设备的telnet 服务在UART提供的串口进行开启,远程连接,也是使用和UART 接入的登录口令是一样的。
本片文章主要是对设备的硬件进行分析,如何来辨别设备上的芯片,从设备上的芯片获取有用的信息,还有对UART如何进行接入,并且根据Tenda的历史漏洞信息,获取到了设备的登录口令和密码。
路由器逻辑