如何从串口获取到设备的shell

VSole2021-12-19 09:50:55
当一个设备没有telnet,没有ftp,没有ssh,那我们怎么获取到此设备的调试能力呢?拆!

UART接口

拆开设备,绿的一块黑的一块,第一次看确实有点无从下手,别慌,仔细在板子上寻找连着的3个口或者4个口,很容易就能找到它----UART,UART是个什么玩意儿呢?UART的全称为 UniversalAsynchronousReceiver/Transmitter,中文名字叫通用异步传输收发传送器,它充其量就是一个设备之间的传输协议,那何为异步呢?异步就是没有时钟信号来同步发送端和接收端,用通俗一点的话来说就是发送端可以在任何时候向接收端发送数据,什么意思呢?我们思考在Windows下进行键盘输入这个例子,我们什么时候按下键盘,操作系统是不会知道的,当我们按下某个键的时候,比如按下z,键盘就会往消息队列发送消息也就是z的ascii码,这就是异步传输.

那它是怎么知道一个消息的开头的呢?答:start bit会告诉它,不传输数据的时候它保持高电平,当开始传输的时候,它将拉低电平通知设备准备接收数据,可问题又来了,它不与设备同步,那接收数据的时候怎么知道传输的速率是多少呢?答:波特率,当设备接收到电平从高电平向低电平跃迁的时候,就以波特率所对应的频率进行接收数据(波特率是事先就设置好的)

下图d后面两位分别是奇偶校验,校验的方法和TCP/IP协议里的奇偶校验一样,不做赘述, stop bit则是将低电平拉高到高电平的信号,具体可以参考下面的链接:

UART:了解通用异步接收器/发送器的硬件通信协议

回归基础:通用异步接收器/发送器 (UART)

总算有点眉目了:同步传输与异步传输

数据包结构图:

介绍完了UART,来讲讲为什么要找到它,其实刚刚已经讲了一半出来----它是与设备进行通信的接口,我们想得到设备的shell,那必然要跟它进行通信,UART就扮演着这么个角色,如果你要问为什么会留下这样的一个接口给我们拿shell呢?答案也很明了,即开发人员也是要调试的?!所以就留下这么一个接口

寻找UART接口

下图是TP-LINK TL-WR841N路由器的UART示意图(红色框框里面的就是),有几种方法可以定位UART在哪:

  • 有些板子上直接印有字
  • 拿手电筒照一下板子
  • 试着用万用表测一下

找到之后,那么这四个口是什么东西呢?这就需要用到万用表来测试了!

GND

介绍:GND是电线接地端的简写,代表地线或0线。这个地并不是真正意义上的地,是出于应用而假设的一个地,对于电源来说,它就是一个电源的负极

识别:拔下设备的电源,将万用表扭到蜂鸣裆,黑色探针接触板卡上的金属,红色探针依次与四个口触碰,当听到万用表发出"bi~bi"或者"di~di"(或者其他声音)的声音就是GND

VCC

介绍:C=circuit表示电路的意思,即接入电路的电压

识别:插上设备的电源,将万用表扭到20v,黑色探针接到刚刚测出来的GND,红色探针去触碰剩下的三个口,直到有测到有个口的电压为3.3V或者5V,就是VCC

TX(transmission of data)

介绍:发送数据

识别:插上设备的电源,将万用表扭到20v,在路由器启动的一段时间中,用黑色探针接到GND,分别红色探针去触碰剩下的俩个口,电压变化较大的即为TX

RX(receiving of data)

介绍:接收数据

识别:识别完上面的接口,剩下的就是咯!

找到接口之后,就可以拿杜邦线来连接UART,买了下面的针脚和TTL转USB,为什么要用FT232呢?因为电脑没有转化电平信号的硬件,下图是淘宝买的FT232:

需要注意的是RX和TX与FT232上的RX和TX反着接,就像下图一样,先不要焊排针上去,先不要焊排针上去!!!先用手定住测试一下,没问题了,再焊上去!

连接完成之后就可以使用串口调试工具来获取一个shell,有好几个工具,都大差不差:

  • putty
  • 利用 Putty 的 Serial 功能来连线串口设备
  • 串口调试助手
  • WIN10上串口调试助手
  • SecureCRT
  • SecureCRT使用指南

随便一个工具都可以连接,确定好COM口号,就可以使用指定的波特率来连接,这里波特率多试几个常见的就好,一般都可以试出来的

查看COM口的方法:此电脑 => 管理 => 设备管理器 => 端口

等待加载完成,按下回车就进入shell的界面,泪目了,看到这个shell的激动程度不亚于用树莓派提取固件,一直尝试,一直不行,换了好几台设备,终于在这台CISCO上拿到了shell

试过可以拿到shell的时候就可以焊上排针了,焊完之后就成了下面这个样子(老爸帮忙焊的,我在旁边看着真不错?):

总结

在失败了这么多次之后,总结一下失败的经验:

  • 可能一: RX和 TX线接错了
  • 解决办法:由于根据其他大师傅的说法,在启动一段时间里面电压变化较大的为 TX,但是两个接口都差不多,没办法确认是否接正确了(听说可以将旁边的 3.3 伏特的 15K 电阻器将 TX 拉高),只能换着接,还有就是注意TX和RX要反着接,具体看上面的图
  • 可能二:焊接问题
  • 解决办法:只能重新焊,多焊几次就熟悉了....,一般情况下焊上去就可以了,但也不排除焊坏的情况
  • 可能三:波特率选错
  • 解决办法:多试几次,因为测试的脚本根本不顶用...,拿常见的波特率先试,一般都能试到的
uart树莓派串口
本作品采用《CC 协议》,转载必须注明作者和本文链接
Bluetooth学习之esp32
2022-05-08 18:39:25
Bluetooth学习之esp32旨在寻找IOT设备的攻击面之
答案也很明了,即开发人员也是要调试的?!GND介绍:GND是电线接地端的简写,代表地线或0线。找到接口之后,就可以拿杜邦线来连接UART,买了下面的针脚和TTL转USB,为什么要用FT232呢
raspi-config是一个用户空间工具,它允许我们配置树莓的各个方面,其中之一是启用各种外部接口。我们将使用raspi-config来启用UART接口,首先启动工具,如下所示: sudo raspi-config 这将导致出现以下结果:
相关的应用程序或工具有: UART(Universal Asynchronous Receiver Transmitter,通用异步收发器): UBoot; Depthcharge; SPI (Serial Peripheral Interface,串行外设接口): Flashrom; I2C(Inter-Integrated Circuit,集成电路总线): i2cdetect;
uart 进入uboot shell某路由器设备拆开后定位到uart接口,将uart引脚通过TTL接入到电脑,路由器上电启动,观察启动日志。从上面设备的部分启动日志可以看出,uboot shell可以被中断,路由器上电后快速按任意键可进入。为了方便后续逆向工作,最好能进入路由器系统,但目前是console已关闭,且未发现telnet、ssh等服务,只能从uboot shell为切入点进一步分析。
Segway Ninebot miniPRO是一款高速、自平衡、两轮、免提的电动滑板车,也被称为悬停板SUV,它还允许乘客通过Ninebot智能手机应用程序远程控制悬停板。Ninebot智能手机应用程序允许车手调整灯光颜色、修改安全功能、运行车辆诊断、设置防盗警报,甚至远程命令miniPRO滑板车移动。
0x01 前言最近 UPnP 比较火,恰好手里有一台 Cisco RV110W,在 2021 年 8 月份思科官方公布了一个 Cisco RV 系列关于 UPnP 的 0day,但是具体的细节并没有公布出来。
Bitdefender实验室发现流行的博世恒温器型号BCC100容易受到网络安全威胁CVE-2023-49722。此漏洞可能允许远程攻击者操纵设置并在设备上安装恶意软件。
本研究是针对特斯拉 Model X 无钥匙系统的实用安全评估。所分析的无钥匙系统采用了由通用标准认证的安全元件实现的安全对称密钥和公钥密码原语。本文记录了该系统的内部工作原理,包括遥控钥匙、车身控制模块和配对协议。此外,还介绍了相关逆向工程技术和几个安全问题。其中,遥控钥匙固件更新机制和遥控钥匙配对协议中发现的问题导致绕过了所有已实施的加密安全措施。此研究还开发了一种完全远程的概念验证攻击(PoC
近日,美国能源部桑迪亚国家实验室发布消息称,随着电动汽车变得越来越普遍,对电动汽车充电设备和系统进行网络攻击的风险和危害也在增加。
VSole
网络安全专家