首页
论坛
专栏
课程

[调试逆向] [原创]前段时间,电脑中毒,好大胆!!

zhengsyou 2016-5-10 23:41 3647
样本名称:DesktopLayer

样本类型:W32.Ramnit

样本大小:187 KB (192,000 字节)

传播方式:修改整个硬盘的.DLL .EXE .HTML .HTM文件和U盘启动
               
样本具体行为:
1.创建IE进程,并修改IE进程的入口点
a)挂钩ZwWriteVirtualMemory函数,在创建进程时,CreateProcess中会调用ZwWriteVirtualMemory,在ZwWriteVirtualMemory有进程句柄,在这个时候进行挂钩
b)在挂钩函数中先调用原始ZwWriteVirtualMemory函数,然后写入数据到20010000H(主要功能代码)的位置,和30000H、40000H(填写IAT表并调用主要功能代码)、50000H、60000H、70000H并修改入口点代码,使入口点调用 40000H处的代码
2.注入代码后,退出了当前进程,流程就转移到了IE进程中,在IE进程中首先填写IAT表,然后创建互斥对象互斥对象用于识别样本是否运行
3.创建7个线程
a)第一个线程(设置开机自动启动)循环每隔一秒,修改注册表ASCII "Software\Microsoft\Windows NT\CurrentVersion\Winlogon"中ASCII "Userinit"的值为ASCII "c:\windows\system32\userinit.exe,,c:\program files\microsoft\desktoplayer.exe"
b)第二个线程(判断网络是否通畅)尝试连接google.com:80, bing.com:80, yahoo.com:80这3个服务器是否能够连接
c)第三个线程在IE目录中写入当前时间(文件名称为dmlconf.dat)
d)第四个线程检查是否能连接上服务器fget-career.com:47873,如果能连上就会创建TCP套接字服务器,并对每个accept的连接创建线程进行网络通信
e)第五个线程,向服务器(fget-career.com:47873)发送当前硬盘信息,等待接受数据,再发送系统版本名称信息到服务器中,再次接收数据,
a)在通讯过程中,会到服务器(fget-career.com:47873)下载可执行文件,并运行可执行文件
b)并且是从服务器循环下载,只要有文件就从服务器下载到本机中
f)第六个线程,每隔10秒,这个线程被显示的设置为最低优先级,检查全盘.exe .dll .html .htm文件,并修改
a)如果文件是.exe .dll,再检查文件的导入表中是否有LoadLibraryA和GetProcAddress,如果有就增加一个名称为”.rmnet”的节,并修改入口点指向新增加的节
i.修改后的入口点,先打开互斥对象,如果如果互斥对象创建成功,就释放一个跟当前样本数据一模一样的可执行文件(.exe)名称为当前映像名称后面加”Srv.exe”,然后运行这个程序
b)  如果是.html .htm文件,检查最后9个字节是否是”</script>”,如果不是,则在文件后面写入一段HTML脚本
i.   脚本中创建一个名称为“svchost.exe”的可执行文件,这个可执行文件数据跟当前样本一模一样,然后使用VBScript脚本运行该文件
g)   第七个线程,检查U盘,使U盘在插入电脑时自动,自动启动一个EXE程序
a).   如果有则检查是否有“AUTORUN.INF”文件
b)   再检查这个文件是否是“RmN”字符串开头
c)    如果不是,则创建路径“C:\$RECYCLE.BIN\S-1-5-18\xxxx.exe”,这个路径指向回收站中的一个文件
b).  再创建一个名称为AUTORUN.INF的文件,并写入本样本数据加密后的字符串格式数据,然后在加入以下数据(使U盘被插入到电脑时自动运行样本文件):
[autorun]
action=Open
icon=%WinDir%\system32\shell32.dll,4
shellexecute=.\RECYCLER\S-0-7-45-8808527661-5665125701-805876443-1681w\ghYbOeHf.exe
shell\explore\command=.\RECYCLER\S-0-7-45-8808527661-5665125701-805876443-1681w\ghYbOeHf.exe
USEAUTOPLAY=1
shell\Open\command=.\RECYCLER\S-0-7-45-8808527661-5665125701-805876443-1681w\ghYbOeHf.exe

清理方式
病毒清理步骤:
1、创建注册表HKEY_LOCAL_MACHINE  ASCII "Software\WASAntidot"(禁用样本对硬盘数据的遍历)
2、首先检查系统进程中是否有DesktopLayer.exe进程,如果有进程,则需要结束掉
3、检查所有进程所在可执行文件路径,检查是否包含名称为".rmnet"的节,如果有则结束进程,如果有这个节,需要在这个节+328H的位置找到跳转到OEP的差值,然后用当前入口地址减去差值得到OEP,并修改入口点为OEP
3、检查IE进程,内存地址20010000H的位置是否有效,如果有效,也需要关闭IE进程了。删除IE目录中的”dmlconf.dat”文件
4、检查注册表"Software\Microsoft\Windows NT\CurrentVersion\Winlogon" 中ASCII "Userinit"的值为是否有样本的启动信息                              ASCII "c:\windows\system32\userinit.exe,,c:\program files\microsoft\desktoplayer.exe",如果有则需要删除掉样本的启动信息
5、删除C:\Progma Files\Microsoft\DesktopLayer.exe文件
6、检查U盘中是否有AUTORUN.INF文件,如果文件首部3个字节是否是“RmN”,如果是,删除该文件中shellexecute字段所指向的路径的可执行文件,并且删除当前文件
7、遍历全盘文件除开System32和Windows路径的.exe .dll .html .htm后缀的文件
8、如果后缀为.exe .dll文件,那么检查是否有名称为".rmnet"的节,如果有,则表示该文件被感染,需要删除
9、如果后缀为.html .htm文件,则检查文件结尾9字节是否是”</script>”,如果是,检查脚本中是否有“WriteData”字段和“4D5A900003000000040”,如果有则需要把最后一个<script>到</script>中的的数据删除,再保存回去
10、删除注册表HKEY_LOCAL_MACHINE  ASCII "Software\WASAntidot"

第一次发技术性文档,很多不足之处,希望各位指教,完整的样本和专杀都在附件中(特别提醒,如果有朋友中招,在使用专杀前,先备份一下重要资料

[防守篇]2018看雪.TSRC CTF 挑战赛(团队赛)11月1日征题开启!

上传的附件:
最新回复 (3)
yy虫子yy 2016-5-11 00:01
2

0

好大胆,也好邪恶
病毒行为分析得很详细
礁石的爱 2016-5-17 17:22
3

0

谢谢分析,
最后于 2018-4-17 18:20 被礁石的爱编辑 ,原因:
allex02 2016-5-23 23:09
4

0

病毒遇到对手了!
返回