ARM-X物联网仿真框架与CTF挑战赛深度解析

本文详细介绍了ARM-X物联网设备仿真框架的技术架构与应用场景,包含基于QEMU的固件仿真、漏洞挖掘方法和CTF挑战赛设计。文章还展示了DVAR脆弱路由器的实战案例,涉及ARM汇编、ROP链构建和动态分析工具使用。

ARM-X与全新的物联网CTF挑战

几天前,我发布了ARM-X固件仿真框架。我的目标是尽可能接近实现物联网虚拟机的功能。ARM-X具有多种应用场景:我编写它用于仿真和渗透测试物联网设备,并在我的ARM物联网漏洞开发实验室培训中用于教学。ARM-X还可用于对物联网目标进行模糊测试以及举办物联网CTF挑战赛!

ARM-X预览版虚拟机

我于2019年10月23日发布了ARM-X预览版虚拟机及代码。该镜像是使用Alpine Linux作为主机操作系统的VMWare虚拟机(纯粹因为我无法容忍systemd)。ARM-X预览版预装了两个仿真的物联网设备:

  • DVAR - 该死的脆弱ARM路由器(最初以TinysploitARM名称发布)
  • Trivision 227WF IP摄像头

ARM-X CTF挑战赛 #1

正如预期那样,Trivision IP摄像头存在严重漏洞。目前我们已知存在三个漏洞,可能还有更多隐藏漏洞。首个成功利用并提交技术分析报告的作者将获得我特别准备的Ringzer0"零日漏洞礼盒"!

接下来几天,我将陆续发布关于如何使用gdb和gdbserver调试ARM-X的技巧,包括strace、ltrace等动态分析工具的使用方法。关注@therealsaumil获取更新。


DVAR ROP挑战赛 - 奖励关卡解锁!

当我首次发布该死的脆弱ARM路由器时,曾承诺会宣布DVAR奖励挑战。我一直在等待首个栈溢出练习的成功完成后再宣布奖励挑战。@JatanKRaval提供了首个可行解决方案,因此现在正式解锁奖励关卡!

DVAR挑战的第二部分是利用"/usr/bin/lightsrv"(交通信号灯服务器)中的栈溢出漏洞。lightsrv在启动时自动运行,监听8080端口。

你的任务是:

  1. 找到lightsrv的缓冲区溢出向量
  2. 使程序崩溃并获取pc=0x41414140
  3. 逐步构建完整的ROP链(已启用XN保护!)
  4. 获得可用shell!

提示:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
exploitlab-DVAR:~# ps
  PID USER  VSZ STAT COMMAND
  245 root  656 S    /usr/bin/miniweb
  246 root  640 S    /usr/bin/lightsrv <------- [目标]
  292 root 1016 S    -ash
  321 root 1012 R    ps

exploitlab-DVAR:~# cat /proc/$(pidof lightsrv)/maps
00010000-00012000 r-xp 00000000 08:00 512   /usr/bin/lightsrv
00022000-00023000 rw-p 00002000 08:00 512   /usr/bin/lightsrv
40000000-40064000 r-xp 00000000 08:00 185   /lib/libc.so
40064000-40065000 r-xp 00000000 00:00 0     [sigpage]
40073000-40074000 r--p 00063000 08:00 185   /lib/libc.so
40074000-40075000 rw-p 00064000 08:00 185   /lib/libc.so
40075000-40077000 rw-p 00000000 00:00 0
40078000-40089000 r-xp 00000000 08:00 2791  /lib/libgcc_s.so.1
40089000-4008a000 rw-p 00009000 08:00 2791  /lib/libgcc_s.so.1
befdf000-bf000000 rw-p 00000000 00:00 0     [stack]
ffff0000-ffff1000 r-xp 00000000 00:00 0     [vectors]

如果尚未体验过DVAR,可从此处下载:http://blog.exploitlab.net/2018/01/dvar-damn-vulnerable-arm-router.html


DVAR - 该死的脆弱ARM路由器

该死的脆弱ARM路由器(DVAR)是一个基于Linux的仿真ARM路由器,运行存在漏洞的Web服务器,可用于提升ARM栈溢出技能。

DVAR在tinysploitARM VMWare虚拟机中运行,基于完整的QEMU ARM路由器镜像。只需解压ZIP文件并通过tinysploitARM.vmx启动虚拟机。启动后,虚拟机的IP地址和默认URL将显示在控制台。使用主机浏览器访问该URL并按照说明和线索操作。虚拟网络适配器设置为NAT模式。

你的目标是为运行在DVAR tinysploitARM目标上的Web服务器编写可工作的栈溢出利用程序。DVAR还包含奖励挑战,关注Twitter账号@therealsaumil获取奖励挑战公告。

下载地址:exploitlab_DVAR_tinysploitARM.zip - 47.4MB VMWare镜像 SHA256: bc6eb66b7f5c0c71ca418c809213eb452e3fbf90654856ebb0591e164d634e2b

DVAR最初作为ARM物联网漏洞实验室的预备练习项目开发。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计