HTB_ctf

cvestone 发布于 2024-01-01 504 次阅读 2984 字 预计阅读时间: 14 分钟


Hardware

Debugging Interface

考察点

SALEAE Logic分析器的异步串行解码操作

描述

We accessed the embedded device's asynchronous serial debugging interface while it was operational and captured some messages that were being transmitted over it. Can you decode them?
我们在嵌入式设备运行时访问了它的异步串行调试接口,并捕获了通过它传输的一些消息。
你能破译它们吗?

最终解压后是以下两个文件
2024-01-01-07-17-17

简单分析文件

json文件中并没有发现什么有价值的东西,另一个文件显然是一个二进制程序,大部分是人类不容易读的机器码,但是其中也存储着一些可读数据,我们可以用string命令来查看:
2024-01-01-07-36-10
发现除了这个字符串看起来有意义,其他都没有规则,用谷歌搜索后:
2024-01-01-07-44-33
我们了解到它是一个分析器,可以试着下载该程序:
2024-01-01-07-46-38
第一次接触很陌生,我们可以简单地先了解一下这个分析器的原理:

SALEAE Logic分析器是一种用于逻辑分析的硬件设备,用于捕获和分析数字信号。它可以帮助工程师和开发人员理解和调试数字电路和通信协议。
其原理如下:
1. 捕获信号:SALEAE分析器通过其接口连接到被测试的电路或设备上。它可以捕获来自电路的数字信号,例如时钟信号、数据信号等。这些信号可以通过引脚针连接到分析器上,或者通过适配器连接到其他接口(例如USB、Ethernet等)。
2. 采样和存储:一旦信号被捕获,SALEAE分析器会以非常高的速率采样信号。它通常使用FPGA(现场可编程门阵列)来实现高速采样和存储。采样率决定了分析器可以捕获的信号频率范围和细节水平。
3. 数据显示和分析:采样的数据被存储在SALEAE分析器的内存中。使用相应的分析软件,可以将捕获的数据显示为波形图、时序图或其他形式的图表。分析软件还提供了一系列工具和功能,用于对捕获的信号进行分析,例如协议解码、触发器设置、波形比较等。
4. 协议解码:SALEAE分析器通常支持多种常见的通信协议,例如I2C、SPI、UART、CAN等。分析软件可以根据捕获的信号数据对这些协议进行解码,将其显示为易于理解和分析的协议消息和数据。
5. 触发器:SALEAE分析器还提供了灵活的触发功能。触发器允许用户定义特定的事件或条件,当满足这些条件时,分析器将开始捕获信号。这对于只关注特定事件或时间窗口的调试非常有用。
总体而言,SALEAE分析器通过捕获和分析数字信号,帮助工程师和开发人员理解和调试电路和通信协议。它的原理涉及高速采样、存储、数据显示、协议解码和触发器等关键步骤。

以及最初解压的这个.sal文件也感觉很陌生:

.sal文件是SALEAE Logic分析器专用的文件格式,通常使用SALEAE Logic软件来打开和分析。SALEAE Logic软件可以读取.sal文件中的数据,并以波形图、时序图、协议解码等形式进行显示和分析。通过打开.sal文件,你可以重新查看、分析和调试之前捕获的信号数据。

SALEAE捕获分析信号

显然我们可以将.sal文件直接拖动到该分析器窗口:
2024-01-01-07-56-58
这个过程,与当我们把pcap放进wireshark分析流量很相似
可以不断双击来提高其显示精确度,直到这样:
2024-01-01-08-08-12
这个过程,与分析音频波形时也很相似,并且我们发现它的起始点是从0.7ms开始,还有一些频率、宽度等参数信息
回顾题目,有个关键字"异步串行调试接口",并且我们的最终目的是解码,我们可以看看该分析器的用户手册,定位到了相关内容:
2024-01-01-08-25-52
了解完基本需要配置的参数后,尝试一下:
2024-01-01-08-46-06

SALEAE测量比特率

这里最重要的是确定Bit Rate,手册中给了两种方案,这里选择第二种,使用软件自带的测量扩展工具:
2024-01-01-10-52-57

SALEAE异步串行分析器解码

其他选项的配置参考手册中的说明,测量结果显示比特率约等于31230Hz,其中将数字信号波调整回原来的大精度可以通过鼠标滚轮的操作,因此异步串行分析器的配置如下:
2024-01-01-10-59-27
成功解码,并且我们看到了flag!
2024-01-01-11-06-20

HTB{d38u991n9_1n732f4c35_c4n_83_f0und_1n_41m057_3v32y_3m83dd3d_d3v1c3!!52}

补充知识点

关于异步串行通信:

异步串行通信是一种数据传输方式,用于在两个设备之间以串行的方式进行通信。在异步串行通信中,每个数据字节被拆分为多个比特,并以逐个比特的方式进行传输。
异步串行通信的特点是发送和接收设备的时钟不同步,也就是说,发送和接收设备的时钟频率可以不同。这使得异步串行通信更加灵活,适用于不同设备之间以不同速率进行通信的场景。
在异步串行通信中,数据传输需要满足以下要素:
起始位(Start Bit):数据传输的起始标志位。通常为低电平。
数据位(Data Bits):数据字节的比特位。每个数据字节由一系列数据位组成,通常为8位。
校验位(Parity Bit):可选的校验位,用于检测数据传输中的错误。校验位可以是奇校验、偶校验或者不使用校验。
停止位(Stop Bit):数据传输的结束标志位。通常为高电平。可以有一个或多个停止位。

在异步串行通信中,发送和接收设备之间需要预先约定好的波特率(波特率指每秒传输的比特数),以确保数据传输的正确性。发送设备按照约定的波特率发送数据,接收设备则根据波特率进行接收和解析。

The Needle

考察点

binwalk提取固件、固件中挖掘敏感信息

描述

As a part of our SDLC process, we've got our firmware ready for security testing. Can you help us by performing a security assessment?
作为SDLC流程的一部分,我们已经为安全测试准备好了固件。你能帮助我们进行安全评估吗?

简单分析文件

2024-01-02-00-51-46
这是一个用于ARM架构的Linux内核引导可执行文件,采用了zImage格式,并且是针对大端字节序的系统设计的

binwalk提取文件

由于这是关于硬件安全的题目,我们可以尝试用binwalk提取该固件中包含的内容:
2024-01-02-00-58-12
在桌面上生成了名为_firmware.bin.extracted的文件夹,但是暂时无从下手,先放着

题目还给了远程实例,nc连接看看:
2024-01-02-01-03-02
显然我们有了方向,我们可以尝试在提取的大量文件中筛选出所有和用户凭据相关的内容,因为有存在泄露的可能性

尝试搜索敏感内容

我们可以用刚才连接的远程实例中出现过的关键词来搜索,因为远程运行的程序和题目中给的程序显然是一致的,这和pwn题目部署一致,我们可以搜索如"login"、"Password":

grep -rnE 'login|Password' ./_firmware.bin.extracted > grep_results.txt

2024-01-02-01-13-01
其中,-r是递归模式查找,-E用于启用扩展正则表达式语法,可以使用管道符号|进行逻辑或运算,匹配包含"login"或"Password"的字符串,-n用于打印所在行号。
我们定位到了泄露的用户名Device_Admin

./_firmware.bin.extracted/squashfs-root/etc/scripts/telnetd.sh:9:		telnetd -l "/usr/sbin/login" -u Device_Admin:$sign	-i $lf &

这里的$sign尝试后并不是密码,但看起来像个定义的变量,猜测可能是指向某个文件,可以用find命令查找文件:

find ./ -name sign

结果:

./_firmware.bin.extracted/squashfs-root/etc/config/sign
./_firmware.bin.extracted/sign

它们都指向了同一个密码:
2024-01-02-01-22-11
qS6-X/n]u>fVfAt!
拿到flag:
2024-01-02-01-24-10
HTB{4_hug3_blund3r_d289a1_!!}

Photon Lockdown

考察点

unsquashfs提取固件镜像、固件中挖掘敏感信息

描述

We've located the adversary's location and must now secure access to their Optical Network Terminal to disable their internet connection. Fortunately, we've obtained a copy of the device's firmware, which is suspected to contain hardcoded credentials. Can you extract the password from it?
我们已经找到了对手的位置,现在必须确保访问其光学网络终端以禁用其Internet连接。 幸运的是,我们获得了该设备固件的副本,该固件被怀疑包含硬编码凭证。 您可以从中提取密码吗?

简单分析文件

解压后的文件如下:
2024-01-02-13-41-17
其他两个文件主要是显示该固件的版本,这里最重要的是rootfs文件:

rootfs(根文件系统)是计算机系统中的一个概念,用于描述操作系统的根目录所在的文件系统;根文件系统通常是一个镜像文件或者一个分区,它包含了操作系统内核、基本的系统工具、设备驱动程序等文件。当计算机启动时,引导加载程序(bootloader)会加载根文件系统,并将控制权交给操作系统内核。在嵌入式系统中,根文件系统通常是一个压缩的文件系统镜像,如上图中file分析后的文件格式SquashFS

显然我们需要进一步分析该rootfs文件,我们既可以通过挂载该镜像后访问,也可以通过unsquashfs命令提取:

unsquashfs -d extracted ./rootfs

2024-01-02-13-48-22

尝试搜索敏感内容

根据题目提示,我们可以直接尝试搜索flag,即包含"HTB"字符串的内容:
2024-01-02-13-51-27
HTB{N0w_Y0u_C4n_L0g1n}
这题显然很简单,和上面的题目类似

Mission Pinpossible

考察点

描述

Our field agent cannot access the enemy base due to the password-protected internal gates, but observed that the password seemed to be partially displayed as it was typed into the security keypad. Thanks to an audacious mission, we were able to implant an embedded device into the wiring for the keypad's monitor, and intercepted some data. Your mission is to recover the password from the collected data.
由于受密码保护的内部门,我们的现场代理无法访问敌方基地,但观察到当密码输入到安全键盘中时,密码似乎已部分显示。 由于大胆的任务,我们能够将嵌入式设备植入键盘显示器的接线中,并拦截了一些数据。 您的任务是从收集的数据中恢复密码。

简单分析文件

解压后,给了该键盘显示器的内部图片和.logicdata文件
2024-01-02-14-04-28

.logicdata 文件是由 Saleae Logic 软件创建的文件格式,该文件包含了通过逻辑分析仪采集的信号数据。它可以包含多个通道的数据,每个通道都记录了在特定时间范围内的数字信号变化。这些数据可以用于分析和调试电子系统中的信号。

但是当我们用最新版的logic尝试打开该.logicdata文件,提示不支持logic1文件。因为最新版的是logic2,已经废弃了.logicdata格式,取而代之的是.logic2data。.logicdata是由logic1生成的,因此我们可以尝试下载logic1.x
打开后如下:
2024-01-02-14-29-12

  • alipay_img
  • wechat_img
此作者没有提供个人介绍
最后更新于 2024-01-02