LSG见习成员 样本分析 by tuimaochang[LSG]
本帖最后由 是昔流芳 于 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: ; ole32.CoCreateInstance
004027E2 FF15 8C414100 call dword ptr ds: ; SHELL32.SHGetSpecialFolderPathW
004027E8 68 84464100 push virus.00414684 ; UNICODE "Improve Your PC.lnk"
004027F4 FF15 9C414100 call dword ptr ds: ; 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"。
由上述过程判断样本为下载者。
本帖最后由 是昔流芳 于 2011-2-21 22:31 编辑
附件为楼主分析样本
本帖最后由 tuimaochang 于 2011-9-6 14:20 编辑
下载地址:
LSG见习成员考核样本分析动画_by_tuimaochang.7z
http://115.com/file/bla1bp05# 代码看起来有点乱,好好排版下就好了,代码使用代码框会好看很多. 本帖最后由 tuimaochang 于 2011-2-28 12:55 编辑
好吧,我下次试试 学习一下。。。一点点看 很不错的东东 呵呵,有机会好好看下 自身行为分析包括
1.文件:exe lnk
2.注册表:
3.进程:
当然更底层的还有驱动分析,一些技巧,原理,驱动逆向等..好好学习... 回复 tuimaochang 的帖子
链接过期,麻烦更新下。
页:
[1]
2