博文

目前显示的是 2019的博文

逆向华为路由器-part2(翻译)

图片
在第1部分中,我们找到了一个调试通用异步收发器端口,它允许我们访问一个Linux外壳。在这一点上,我们可以像开发人员一样访问路由器来调试问题、控制系统等。 该系统的第一个概述很容易访问,不需要昂贵的工具,并且通常会产生非常有趣的结果。如果你想进行一些硬件黑客攻击,但没有时间把你的手弄脏,这通常是你停止深入硬件,开始在更高层次的接口上工作的时候:网络漏洞,互联网服务提供商配置协议,等等。 这些帖子是面向硬件的,所以我们将使用这个访问来收集一些随机的数据。任何能帮助我们理解这个系统或者以后会派上用场的东西。 从我们停下的地方继续 我们启动串行终端应用程序并在计算机中运行,然后启动路由器。 我们按回车键,从三磷酸腺苷命令行界面获得登录提示;介绍凭证管理员:admin,我们在可承诺量命令行中。执行命令外壳,我们就可以进入BusyBox命令行界面(稍后将详细介绍BusyBox)。 ------------------------------- -----Welcome to ATP Cli------ ------------------------------- Login: admin Password: #Password is ‘admin' ATP>shell BusyBox vv1.9.1 (2013-08-29 11:15:00 CST) built-in shell (ash) Enter 'help' for a list of built-in commands. # ls var usr tmp sbin proc mnt lib init etc dev bin 至此,我们已经看到了Ralink集成电路中的3个基本固件层:  U-boot:设备的引导加载器。它了解设备的内存映射,启动主固件执行,并处理其他一些低级任务  Linux:路由器运行Linux来保持对硬件的整体控制,协调并行进程等。可承诺量命令行界面和BusyBox都在它上面运行  Busybox:一个小的二进制文件,包括多个linux命令的简化版本。它还提供了我们调用这些命令的外壳。 较低级别的接口不太直观,可能无法访问所有数据,增加了阻塞设备的机会;从BusyBox...

逆向华为路由器-part1(翻译)

图片
这是逆向华为HG533路由器的系列教程 首先 ,这是最基本的逆向工程。我们只是简单地寻找一个串行端口,设计该设备的工程师将其留在电路板上,用于调试和潜在的技术支持。 尽管我会用路由器来解释这个过程,但它可以应用于大量的家庭嵌入式系统。从打印机到知识产权相机,如果有点复杂,很可能运行某种形式的linux。它也可能有隐藏的调试端口,就像我们在这篇文章中要寻找的那样 寻找串行接口 大多数UART有4到6个引脚,通常排列整齐,以某种方式标记在印刷电路板上。它们不适合最终用户,所以它们不会连接引脚或连接器。 查看电路板后,发现有两组未使用的焊盘,无论如何,在我焊接图中的引脚之前,它们是未使用的 该设备似乎有两个不同的串行端口与两个不同的集成电路通信。根据电路板上的位置并遵循它们的轨迹,我们可以找出哪一个连接到主集成电路。这是最有可能拥有有趣数据的一个 在这种情况下,我们只需尝试联系他们两个,并找出他们每个人能提供什么。 识别无用引脚 所以我们发现了两行引脚——乍一看——可能是UART端口。你要做的第一件事就是找出这些联系是否无用。我用一个非常简单的技巧来帮助找到无用的焊盘:从印刷电路板的背面闪一个强光,从正上方看。看起来是这样的: 我们可以看到印刷电路板的任何一层是否与焊盘中间的焊料滴接触。 与某样东西相连接(我们可以看到“两点钟”的痕迹) 未连接 100%连接到平面或厚迹线。这几乎可以肯定是一个电源引脚,要么是GND,要么是Vcc 各方面的联系。这个很可能是另一个电源引脚。调试端口中的数据引脚没有理由连接到4个不同的走线,但是焊盘被一个平面包围可以解释这些连接 与某样东西连接 易于接触线路的焊接引脚 在上图中,我们可以看到两个串行端口, 这些端口中的焊盘是通孔,但是孔本身被非常硬、熔点非常高的焊料块填充。 我试着将引脚焊接在焊盘上,但是他们使用的焊料不容易使用。对于第二个串行端口,我决定用Dremel和针状钻头钻穿焊料块。这样,我们可以将引脚穿过这些孔,并将其正确焊接在印刷电路板的背面。它非常有效。 识别引脚排列 所以我们有两个连接器,每个只有3个有用的引脚。我们仍然没有验证端口是否工作,也没有识别设备使用的串行协议,但是引脚的数量和排列暗示了异步收发器 让我们回顾一下UART协议。规范中有6种引脚类型:...