0x00 说明 萌新一枚,刚开始学病毒分析,学到第九章,明显感觉到开始比前面的内容要难很多,这个病毒分析了好几天,分析完后,又感觉不是那么难,收获很多,所以发个贴,在鼓励一下自己的同时,总结一下分析过程,第一次发帖,不足之处望大佬们谅解,并能在评论区多多指点我一下,共同学习。
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.exe conime.exe是Windows的一个系统进程,一般伴随着命令行启动,路径在C:\Windows\System32下是控制台输入法编辑器相关程序,也有可能是bfghost1.0远程控制后门程序。 发现程序打开cmd.exe运行命令删除了自己。
用IDA和OD打开程序进行详细分析 程序开头,判断输入参数个数是否为1,如果为1会检查是否已经注册,不然删除自身, 经多次调试发现这里的[ebp+Parameter]的值为参数个数加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 总结
整个流程算是分析完了,发现这个样本程序通过参数和密码验证来安装自己,安装成功后是一个后门程序,用来远程执行执行命令。
|