恶意代码安全攻防
Rootkit的定义
- 一类隐藏性恶意代码形态,通过修改现有的操作系统软件,使 攻击者获得访问权并隐藏在计算机中。
- Rootkit与特洛伊木马、后门
- Rootkit也可被视为特洛伊木马
- 获取目标操作系统上的程序或内核代码,用恶意版本替换 它们
- Rootkit往往也和后门联系在一起
- 植入Rootkit目的是为攻击者提供一个隐蔽性的后门访问
- 定义特性:隐藏性
- Rootkit分类: 用户模式、内核模式
分析一个自制恶意代码样本
- 1.提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息。
- 2.找出并解释这个二进制文件的目的。
- 3.识别并说明这个二进制文件所具有的不同特性。
- 4.识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术。
- 5.对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由。
- 6.给出过去已有的具有相似功能的其他工具。
- 奖励问题:
- 7.可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
准备工作
1确认文件完整性
2确认二进制文件格式
这里看出他是图像界面的
3取得文件中的可打印字符串
乱码,可以猜测是加壳了
4使用监控软件process explorer与wireshark
5反汇编工具PEID分析,这里可以看到文件的入口点、偏移、文件类型、EP段、汇编程序以及加壳类型。
可以看到其加壳类型
6、利用超级巡警自动脱壳工具脱壳
7、再次查看是否脱壳成功
可以看到产生大量函数调用名及其他有用字符串,可以从中寻找有用的信息。
8、进一步使用IDA分析
解答:
问题1解答
样本摘要及基本信息
- 大小:20,992字节
- MD5: md5sum计算 caaa6985a43225a0b3add54f44a0d4c7
- PE文件格式 运行在Windows 2000, XP and 2003及以上 版的操作系统中
- UPX加壳并进行了壳伪装处理
- UPX段改名为JDR
- 版本号从1.25改为0.99
问题2解答
找出并解释这个二进制文件的目的
- 后门工具 -> HTTP Bot?
- 能够使远程的攻击者完全地控制系统
- 它采用的通信方式使得只要系统能够通过浏览器上网,就能够获得来自攻击者的指令。
备注
网络行为
通过HTTP协议请求10.10.10.10\RaDa\RaDa_commands.html
行为解读
将自身复制至感染主机系统盘,并激活自启动
尝试获取一个HTML页面‖commands‖ 猜测是否后门接收控制指令?
问题3解答
识别并说明这个二进制文件所具有的不同特性
RaDa.exe被执行时,它会将自身安装到系统中,并通过修改注册表的方式使得每次系统启动,它都能够被启动,启动后循环执 行一下操作:
- ⑴从指定的web服务器请求指定的web页面;
- ⑵解析获得的web页面,获取其中的指令
- ⑶执行解析出来的指令
- ⑷等待一段时间
- ⑸返回第⑴步
启动后,RaDa一直在后台运行,不会弹出任何窗口。它支持以下指令:
- exe 在宿主主机中执行指定的命令
- put 将宿主主机中的指定文件上传到服务器
- get 将服务器中的指定文件下载到宿主主机中
- screenshot 截取宿主主机的屏幕并保存到tmp文件夹
- sleep 停止活动一段时间
默默运行在后台,会定期给IP为10.10.10.10发出链接请求
问题4解答
识别并说明这个二进制文件所采用通讯方法
- 通过HTTP协议进行通信,RaDa通过调用隐藏的IE实例向web服务器发送请求,获取命令。
- Snort规则
alert tcp any any -> any $HTTP_PORTS (msg:"RaDa Activity Detected - Commands Request"; flow:to_server,established;
content:"GET /RaDa/RaDa_commands.html"; depth:30; classtype:trojan-activity; sid:1000001; rev:1;)
alert tcp any $HTTP_PORTS -> any any (msg:―RaDa Activity Detected - Commands Page‖; flow:from_server,established;
content:―NAME=exe‖; nocase; depth:1024; classtype:trojan-activity; sid:1000003; rev:1;) alert tcp any any -> any $HTTP_PORTS (msg:"RaDa Activity Detected - Multipart Message"; flow:to_server,established;
content:"boundary=--------------------------0123456789012"; depth:1024; classtype:trojan-activity; sid:1000004; rev:1;)
问题5解答
识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术
-
⑴、这个二进制文件使用UPX加壳之后又做了手工修改,使得难以脱壳,而不脱壳又会影响反汇编。
-
⑵、脱壳之后,可以在文件中找到字符串“Starting DDoS Smurf remote attack.”这会使分析者误以为样本可以发动DDos攻击,而实际上它没有提供任何用以发动DDos攻击的子程序。
-
⑶、提供了—help参数,但是使用这个参数之后,除了输出版权信息外并没有提供其他有用的信息。--verbose参数也没有什么用处, GUI窗口中的“Show config”及“Show usage”也显示与— help参数相同的信息。
-
⑷、通过查看网卡的MAC地址以及查看VMware Tools的注册表项来判断操作系统是否运行在VMware虚拟机上,如果是,则使用— authors参数时将不会输出作者信息。
问题6、7解答
对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由
-
这是一个后门程序,运行并按照攻击者命令进行工作;如果是多对1控制,则可认为是HTTP Bot
-
这个样本不具有传播和感染的性质,所以它不属于病毒和蠕虫
-
它也没有将自己伪装成有用的程序以欺骗用户运行,所以他也不属于木马
-
给出过去已有的具有相似功能的其他工具
- Bobax – 2004年发现的木马,也是使用HTTP协议从指定的服务器下载命令文件,然后解析并执行其中的指令。Setiri及其前辈GatSlag
问题9解答-bonus
可能调查出这个二进制文件的开发作者吗? 如果可以,在什么样的环境和什么样的限定 条件下?
-
可以直接从脱壳后的二进制程序中直接获取
-
利用监视工具process explorer 可以查看结构信息,可以看出copyright (C)2004 baul siles &david perez