0x01 取证背景
近日,实验室部署的天穹威胁监测系统监测到IoT蜜罐系统中的某视摄像头遭受了外部的一次成功攻击。实验室相关人员对该次成功攻击事件展开了取证实践,顺利获取到攻击样本,并以此展开深入取证分析。
0x02取证过程
1. 取证环境完善
为了进一步获取到有效的线索,我方研究人员通过公司自研的物联网取证系统获取到了该摄像头的Linux Root Shell。由于该设备自带的Busybox已经过厂商裁剪,部分取证所需命令缺失,于是上传相应架构的完整Busybox用于后续取证。
2. 系统环境检查
首先,针对设备文件系统进行了检查,特别是/tmp目录,均未发现可疑的新增文件。因为物联网设备常用的文件系统如squashfs等属于只读文件系统,攻击者无法将恶意程序上传到此文件系统内,而/tmp目录对应的则是一种临时文件系统tmpfs,该文件系统是一种基于内存的文件系统,可允许写入操作,所以一般攻击者常见的操作是会将恶意程序放置在此目录然后运行。
于是,想到另一种可能即程序在运行起来后会被删除,查看进程信息,找到了如下图所示的可疑进程,查看/proc目录下该进程的exe文件,发现该程序是从/tmp目录启动的,具有非常大的可疑性。
![图片[1]-物联网取证之某国产摄像头入侵事件取证实践-NGC660 安全实验室](https://image.3001.net/images/20220707/1657164542_62c652fe5dddceb1203c9.png!small)
至此,我方研究人员在设备中发现了一个原始二进制程序被删除且从/tmp目录启动的程序,该程序具有极大的可疑性,于是立即对此证据进行固定,以便后续展开详细的分析。
3. 可疑证据固定
由于设备存在重启导致进程结束的可能性,也为了进一步对线索展开更深入的分析,需将可疑程序外传至可控环境中。
我们使用工具nc来实现将证据外传至服务器,首先在设备端通过nc监听某一端口并将样本程序重定向至该通道,接着在可控服务器端通过nc连接该设备监听的端口并将结果重定向至新文件,最终完成从设备上将可疑证据外传至我方服务器上,为后续证据有效性分析提供环境。
4. 证据有效性确认
虽然通过查看系统进程信息发现一个从可写目录/tmp启动的进程,并且原始二进制程序在启动后被删除,具有较大的可疑性,但还需对该程序做更深入的分析来判断其是否真正具有恶意行为,以及程序的具体行为来协助我们后期对该事件进行溯源。
程序信息
通过file
命令查看程序基本信息,发现该程序未被stripped。
静态分析
- 构造回连C&C的HTTP请求
a.根据程序启动时外部参数个数不同,构造不同的urib. 通过ioctl函数获取设备网卡mac地址,并拼接到uri尾部
c.获取当前程序运行路径拼接到uri尾部
- 向C&C发送请求获取响应
a. 构造发送到C&C的HTTP请求
b. 发送请求并接收响应
- 解析响应数据获取下发的命令,该C&C响应内容有3个字段,通过A、B、C三个字段进行区分,其中A字段为循环请求C&C的睡眠时间;B字段为攻击者指定的反弹shell的地址;C字段为攻击者下发的命令
a. 提取字段A的内容
![图片[2]-物联网取证之某国产摄像头入侵事件取证实践-NGC660 安全实验室](https://image.3001.net/images/20220707/1657185258_62c6a3eabd0e37037b63b.png!small)
b. 提取字段B的内容,根据后续分析,字段B表示的是反弹目标的IP和端口
![图片[3]-物联网取证之某国产摄像头入侵事件取证实践-NGC660 安全实验室](https://image.3001.net/images/20220707/1657185333_62c6a43573bde937f24d2.png!small)
c. 提取字段C的内容,根据后续分析,字段C是攻击者下发的命令
![图片[4]-物联网取证之某国产摄像头入侵事件取证实践-NGC660 安全实验室](https://image.3001.net/images/20220707/1657185821_62c6a61d748dc988239cc.png!small)
- 执行攻击者下发的命令
![图片[5]-物联网取证之某国产摄像头入侵事件取证实践-NGC660 安全实验室](https://image.3001.net/images/20220707/1657199011_62c6d9a3bd6bcea649e1a.png!small)
![图片[6]-物联网取证之某国产摄像头入侵事件取证实践-NGC660 安全实验室](https://image.3001.net/images/20220707/1657199029_62c6d9b5905877061550e.png!small)
![图片[7]-物联网取证之某国产摄像头入侵事件取证实践-NGC660 安全实验室](https://image.3001.net/images/20220707/1657199099_62c6d9fb2f508e1de7274.png!small)
- 反弹shell到目标地址,shell_func函数的参数v12根据其在栈中的位置推算,与data_paste函数第一个参数v11相差8个字节,而v11+8是在data_paste函数中存储了B字段中的IP内容,v12[10]即v11+8+2×10则是在data_paste函数中存储了B字段中的port内容。
![图片[8]-物联网取证之某国产摄像头入侵事件取证实践-NGC660 安全实验室](https://image.3001.net/images/20220707/1657199189_62c6da55a583f02898c04.png!small)
![图片[9]-物联网取证之某国产摄像头入侵事件取证实践-NGC660 安全实验室](https://image.3001.net/images/20220707/1657199283_62c6dab3c9bd0dada5f90.png!small)
![图片[10]-物联网取证之某国产摄像头入侵事件取证实践-NGC660 安全实验室](https://image.3001.net/images/20220707/1657199302_62c6dac6630e7cd5e6579.png!small)
- 等待攻击者指定的时间后再继续请求任务
![图片[11]-物联网取证之某国产摄像头入侵事件取证实践-NGC660 安全实验室](https://image.3001.net/images/20220707/1657199374_62c6db0e5468fbb9116ab.png!small)
动态分析
模拟C&C任务下发服务以及反弹shell监听,实际运行效果与我们静态分析一致。
![图片[12]-物联网取证之某国产摄像头入侵事件取证实践-NGC660 安全实验室](https://image.3001.net/images/20220707/1657199423_62c6db3fb70a78f1de214.png!small)
分析总结
该样本功能较为简单,但基本满足攻击者对受控设备的持久化控制需求,首先通过向C&C服务器获取任务信息,任务分为3块内容,第一为程序该次请求到下次请求的等待时间;第二是攻击者下发的命令;第三则是指定受控设备反弹shell的目标地址。接着会通过sh -c执行攻击者下发的命令,再反弹shell到指定的地址,最后sleep指定的时间,此后继续循环。
0x03 取证总结
此次取证实践起因是天穹威胁监测系统检测到蜜罐系统中某摄像头遭受到一次成功攻击,我方研究人员利用设备漏洞获取到系统权限,之后检查了系统多种运行环境,发现了一可疑进程,固定了可疑进程的二进制程序进行了深入分析,最终摸清了攻击者所植入的木马的具体行为。
- 银弹实验室研究团队专注于物联网+关键信息基础设施的硬件、固件、无线电、云平台、App等方面的安全漏洞研究与解决方案制定。团队持续完善自身的安全能力矩阵以应对层出不穷的安全挑战,现已具备成熟的二进制逆向分析、漏洞挖掘、攻击诱捕、 安全评估、蓝军演练、溯源取证、应急处理等安全能力。
- 目前,上述安全能力已成功应用于物联网固件安全检测、物联网攻击事件监测、大规模IoT僵尸网络监测、APT检测与监测、物联网攻击溯源与取证、物联网安全测评、物联网安全培训等产品或服务,并与多家政府和企事业单位在物联网与关基安全领域展开长期合作,获得了合作伙伴和客户的高度认可。
本文作者:银弹实验室, 转载请注明来自FreeBuf.COM
昶之琴![资深玩家 徽章-资深玩家-NGC660 安全实验室](http://ngc660.cn/wp-content/themes/zibll/img/thumbnail-null.svg)
2年前0
我以为只要提交就行了好想告诉你![备受喜爱 徽章-备受喜爱-NGC660 安全实验室](http://ngc660.cn/wp-content/themes/zibll/img/thumbnail-null.svg)
2年前0
花巨资看一下