恶意代码分析与实战Lab 9-1分析
0x00 说明萌新一枚,刚开始学病毒分析,学到第九章,明显感觉到开始比前面的内容要难很多,这个病毒分析了好几天,分析完后,又感觉不是那么难,收获很多,所以发个贴,在鼓励一下自己的同时,总结一下分析过程,第一次发帖,不足之处望大佬们谅解{:1_936:},并能在评论区多多指点我一下{:1_893:},共同学习。0x01 样本信息
MD5 b94af4a4d4af6eac81fc135abda1c40c
SHA-1 d6356b2c6f8d29f8626062b5aefb13b7fc744d54
SHA-256 6ac06dfa543dca43327d55a61d0aaed25f3c90cce791e0555e3e306d47107859
File type Win32 EXE
File size 60 KB (61440 bytes)
PEID Microsoft Visual C++
0x02 环境与工具
Vmware、win xp、OD、IDA、procmon
0x03 分析
查看病毒字符串
打开procmon,监测病毒程序运行
双击运行后发现,程序本身被删除,在此期间打开了两个进程,conime.exe和cmd.execonime.exe是Windows的一个系统进程,一般伴随着命令行启动,路径在C:\Windows\System32下是控制台输入法编辑器相关程序,也有可能是bfghost1.0远程控制后门程序。发现程序打开cmd.exe运行命令删除了自己。
用IDA和OD打开程序进行详细分析程序开头,判断输入参数个数是否为1,如果为1会检查是否已经注册,不然删除自身,经多次调试发现这里的的值为参数个数加1,因此直接无参运行程序会自我删除。
如果参数不等于1,比较密码是否正确,然后根据不同参数来采取不同操作
密码逆向分析:这个比较简单
在输入参数为-cc abcd时打印注册表配置键如下:此时证明恶意代码服务已经安装
在服务安装后,重新打开程序,如果没有提供任何参数,代码会执行到402b0c处调用sub_402360如下图为函数内部:
进入函数sub_402020查看:发现这个函数里面是提供了一个后门程序,进去先检查注册表服务,然后比较输入字符串,来确定接下来要执行的操作popen函数如果失败,返回NULL否则返回标准I/O流。
然后判断sub_401790这个函数里面有三个参数name,v12,v13;动态调试发现name为http://www.practicalmalwareanalysis.com
进入函数内部:发现将输入命令发送给目标主机
如果命令为DOWNLOAD,读取文件,并通过端口发送给目标主机。(产生的行为,与命令不一致)
如果命令为UPLOAD,创建一个文件,将接收过来的信息写入文件。(行为正好与上一个命令相反)
剩下的sleep就是程序睡眠数秒,nothing什么也不做
0x04 总结
整个流程算是分析完了,发现这个样本程序通过参数和密码验证来安装自己,安装成功后是一个后门程序,用来远程执行执行命令。
无闻无问 发表于 2019-10-9 20:13
i春秋,恶意代码分析实战,只是一些基本原理,针对未加壳变形的,像今天这个壳子满天飞的时代……脱壳才是 ...
师傅,vmp和se也是硬着头皮刚的嘛 wyp123 发表于 2019-10-9 19:55
我也想知道,你的教程怎么来的,可以分享一下么
自己分析的,有些不太懂的地方参考了书后面的答案,书名《恶意代码分析实战》 你是在哪学?有视频还是书?书分享!!! 我也想知道,你的教程怎么来的,可以分享一下么 分析的好详细,通俗易懂{:301_1003:} i春秋,恶意代码分析实战,只是一些基本原理,针对未加壳变形的,像今天这个壳子满天飞的时代……脱壳才是王道啊 学习了,我要慢慢领悟慢慢掌握 感谢楼主分享,希望后面再出一个视频版的学习一下 0xpojie 发表于 2019-10-10 12:57
自己分析的,有些不太懂的地方参考了书后面的答案,书名《恶意代码分析实战》
好的,谢谢啊,非常感谢