好友
阅读权限40
听众
最后登录1970-1-1
|
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子! 病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途! 禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 是昔流芳 于 2011-2-21 22:30 编辑
环境配置:
家里不能上网,去网吧下了东东回来再弄……郁闷的吐血了。
分析期间去网吧下载了WhiteSmokeTranslator_rev1.exe和whitesmoke-silent.exe。在win2003中添加,模拟真实网络环境。
http://www.reg-booster.com/L10n/geo-ws-597-di.php打不开,倒是有个www.regbooster.com,是个注册表清理软件。
1.VMware:XPsp3+52OD,win2003+DNS+PHP环境。
2.虚拟机网络均为 自定义:vmnet1(host-only)。
XPsp3的IP:192.168.153.3,DNS:192.168.153.4
win2003的IP:192.168.153.4,DNS:192.168.153.4
在win2003的DNS中添加www.reg-booster.com和get.whitesmoke.com的记录,在XPsp3中访问成功。
--------------------------------------------------------------------------------------------------------------------------------------------------------
样本分析:
我之前看了论坛LSG版块里诸位高手的分析,不过自己动手分析倒是第一次,有错误的地方请不吝指出,感激不尽!
查壳,upx的。ESP定律搞定,脱完壳后显示Microsoft Visual C++ 8。
查看参考字符串:
00426564 http://get.whitesmoke.com/Transl ... Translator_rev1.exe
004265F4 http://get.whitesmoke.com/TranslatorTools/whitesmoke-silent.exe
明天去网吧把这两个下回来看看,今天先用NOTEPAD.EXE和regedit.exe来替代看看会发生什么。
我的思路是查看程序的调用模块,在可疑的API上下断,看看程序干了什么。
00403474 FF15 50404100 call dword ptr ds:[<&kernel32.GetTem>; kernel32.GetTempPathW
堆栈地址=00DCFC50, (UNICODE "C:\temp\")
我把%temp%设置在C:\temp\这里方便查看
00403495 FF15 4C404100 call dword ptr ds:[<&kernel32.Create>; kernel32.CreateDirectoryW
00DCFC30 00DCFC50 |Path = "C:\temp\~nsu.tmp"
在%temp%里创建目录\~nsu.tmp
00402106 FF15 2C404100 call dword ptr ds:[<&kernel32.Create>; kernel32.CreateFileW
00DCFE38 00064350 |FileName = "C:\temp\~nsu.tmp\wsget.exe"
在%temp%里创建\~nsu.tmp\wsget.exe,往上翻,可以看到LoadResource等函数,调用了自身资源
00402124 FF15 28404100 call dword ptr ds:[<&kernel32.WriteF>; kernel32.WriteFile
把自身资源107写入\~nsu.tmp\wsget.exe
004027B3 FF15 00424100 call dword ptr ds:[0x414200] ; ole32.CoCreateInstance
004027E2 FF15 8C414100 call dword ptr ds:[0x41418C] ; SHELL32.SHGetSpecialFolderPathW
004027E8 68 84464100 push virus.00414684 ; UNICODE "Improve Your PC.lnk"
004027F4 FF15 9C414100 call dword ptr ds:[0x41419C] ; SHLWAPI.PathAppendW
00DCFA2C 00DCFC64 |Path = "C:\Documents and Settings\Administrator\桌面"
在桌面创建快捷方式,图标为 C:\temp\~nsu.tmp\boost.ico,指向http://www.reg-booster.com/L10n/geo-ws-597-di.php
00402106 FF15 2C404100 call dword ptr ds:[<&kernel32.Create>; kernel32.CreateFileW
00DCF9F4 00DCFA58 |FileName = "C:\temp\~nsu.tmp\boost.ico"
00402124 FF15 28404100 call dword ptr ds:[<&kernel32.WriteF>; kernel32.WriteFile
在%temp%里创建\~nsu.tmp\boost.ico
00402D55 FF15 44404100 call dword ptr ds:[<&kernel32.Create>; kernel32.CreateProcessW
00DCFDB8 00075000 |CommandLine = ""C:\temp\~nsu.tmp\wsget.exe" "C:\Program Files\WhiteSmoke Translator""
为wsget..exe创建进程,参数是"C:\Program Files\WhiteSmoke Translator"
00402026 FF15 04404100 call dword ptr ds:[<&advapi32.RegCre>; advapi32.RegCreateKeyExW
00DCFDF0 80000002 |hKey = HKEY_LOCAL_MACHINE
00DCFDF4 0041458C |Subkey = "SOFTWARE\WhiteSmokeTranslator"
创建注册表……
004022CB FF15 10404100 call dword ptr ds:[<&advapi32.RegSet>; advapi32.RegSetValueExW
00DCFE30 004145C8 |ValueName = "InstallOption"
00DCFE2C 0041457C |ValueName = "DistID"
设定键值……
00402026 FF15 04404100 call dword ptr ds:[<&advapi32.RegCre>; advapi32.RegCreateKeyExW
00DCFDE8 80000001 |hKey = HKEY_CURRENT_USER
00DCFDEC 0041458C |Subkey = "SOFTWARE\WhiteSmokeTranslator"
创建注册表……
0040225B FF15 10404100 call dword ptr ds:[<&advapi32.RegSet>; advapi32.RegSetValueExW
00DCFE28 0041457C |ValueName = "DistID"
设定键值……
0040CAC4 FF15 68414100 call dword ptr ds:[<&kernel32.ExitPr>; kernel32.ExitProcess
退出了?
下面是对wsget..exe的分析,一样在可疑的调用函数上下断。先分析下,下好断点,待会附加的时候可以断下来了。
这个附加的批处理是在看雪http://bbs.pediy.com/showthread.php?t=67852的forgot的基础上加了2行,实现不断检测附加。若手慢不能及时终止,容易把机子卡死……可是由于批处理的速度问题,每次附加的位置都不一样……这个wsget..exe分析也是好几次才凑起来的。
004013B9 |. FF15 1CB04000 call dword ptr ds:[<&KERNEL32.Create>; \CreateFileW
01B4C06C 01B4FB58 |FileName = "C:\temp\~nsu.tmp\whitesmoke-silent.exe"
把这货创建了……
0040147C |. FF15 A8B14000 |call dword ptr ds:[<&WININET.Intern>; WININET.InternetReadFile
004014B1 |. FF15 18B04000 |call dword ptr ds:[<&KERNEL32.Write>; \WriteFile
01B4C07C 00002800 |nBytesToWrite = 2800 (10240.)
这有个循环,不断的从http://get.whitesmoke.com/TranslatorTools/whitesmoke-silent.exe读数据,写到whitesmoke-silent.exe里面,一次10K,一共245K
00402155 |. FF15 1CB04000 call dword ptr ds:[<&KERNEL32.Create>; \CreateFileW
01B4BE20 01B4BE50 |FileName = "C:\temp\~nsu.tmp\whitesmoke-silent.exe.part"
这算不算临时文件?
00401BB1 |. FF15 28B04000 call dword ptr ds:[<&KERNEL32.CreateProcessW>; \CreateProcessW
01B4F2B4 01B4FB70 |ModuleFileName = "C:\temp\~nsu.tmp\whitesmoke-silent.exe"
01B4F2B8 01B4F964 |CommandLine = ""C:\temp\~nsu.tmp\whitesmoke-silent.exe" /DEFAULTSEARCH /TOOLBAR /DEFAULTS>
下载完了,就创建进程whitesmoke-silent.exe
004013B9 |. FF15 1CB04000 call dword ptr ds:[<&KERNEL32.Create>; \CreateFileW
024DC06C 024DFB58 |FileName = "C:\temp\~nsu.tmp\WhiteSmokeTranslator_rev1.exe"
创建WhiteSmokeTranslator_rev1.exe
0040147C |. FF15 A8B14000 |call dword ptr ds:[<&WININET.Intern>; WININET.InternetReadFile
循环,从http://get.whitesmoke.com/Transl ... Translator_rev1.exe读数据,现在是写入WhiteSmokeTranslator_rev1.exe,一共4.84M
00402155 |. FF15 1CB04000 call dword ptr ds:[<&KERNEL32.Create>; \CreateFileW
024DBE20 024DBE50 |FileName = "C:\temp\~nsu.tmp\WhiteSmokeTranslator_rev1.exe.part"
这也是临时文件?
00401BB1 |. FF15 28B04000 call dword ptr ds:[<&KERNEL32.Create>; \CreateProcessW
024DF2B4 024DFB70 |ModuleFileName = "C:\temp\~nsu.tmp\WhiteSmokeTranslator_rev1.exe"
024DF2B8 024DF964 |CommandLine = ""C:\temp\~nsu.tmp\WhiteSmokeTranslator_rev1.exe" "C:\Program Files\WhiteSmoke Translator""
下载完了,就创建进程WhiteSmokeTranslator_rev1.exe,参数为"C:\Program Files\WhiteSmoke Translator",这货是个安装包,参数就是安装路径?
------------------------------------------------------------------------------------------------------------------------------------------------------------
总结一下:
这个样本运行后在临时目录%temp%里创建目录~nsu.tmp,调用自身资源生成wsget.exe。样本在桌面创建快捷方式,图标为 boost.ico,指向http://www.reg-booster.com/L10n/geo-ws-597-di.php。在临时目录%temp%里创建boost.ico。样本为wsget..exe创建进程,参数是"C:\Program Files\WhiteSmoke Translator"。样本创建注册表位于"HKEY_LOCAL_MACHINE\SOFTWARE\WhiteSmokeTranslator",键值分别为ValueName = "InstallOption"和ValueName = "DistID"。样本创建注册表位于HKEY_CURRENT_USER\SOFTWARE\WhiteSmokeTranslator,键值为ValueName = "DistID"。样本程序结束。
Wsget.exe从http://get.whitesmoke.com/TranslatorTools/whitesmoke-silent.exe读数据写入%temp%\~nsu.tmp\whitesmoke-silent.exe,下载完成后,就创建进程whitesmoke-silent.exe。从http://get.whitesmoke.com/Transl ... Translator_rev1.exe读数据写入%temp%\~nsu.tmp\WhiteSmokeTranslator_rev1.exe,下载完成后,就创建进程WhiteSmokeTranslator_rev1.exe,安装在"C:\Program Files\WhiteSmoke Translator"。
由上述过程判断样本为下载者。
样本分析报告.doc
(36.5 KB, 下载次数: 106)
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|