标签:
样本链接:http://pan.baidu.com/s/1hqo96C0 密码:t7se
一、基本信息
样本名:Sample20150923.v
MD5 :3EAE9CEB85B48804955EB5FF673C2D0C
SHA1 :B0FAA74DD49CACCD365F0A69C0E076C2C1A56980
CRC32:715A63D9
样本发现日期:--
样本类型:“梦幻西游”盗号木马
样本文件大小:28672 bytes
壳信息:UPX壳
脱壳后文件: " 2.exe " 大小: 83456 bytes 占用空间:86016bytes
影响的系统:Win XP
二、简介
“Sample20150923.v ”是一个针对“梦幻西游”用户,通过感染dsound.dll来窃取用户信息的盗号木马。
三、受感染的系统和环境说明
WinXP
四、文件系统变化
创建文件:
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\kb******.sve (*为随机数字)
C:\Program Files\Common Files\System\kb******.bwb(隐藏)
C:\WINDOWS\system32\dsound.dll.dat.XXXX(重命名原dsound.dll,X为随机大写字符)
C:\WINDOWS\system32\dsound.dll.dat(替换dsound.dll)
C:\WINDOWS\system32\DllCache\dsound.dll
C:\WINDOWS\system32\DllCache\ dsound.dll.dat.XXXX
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tempVidio.bat
感染文件:
C:\WINDOWS\system32\dsound.dll
感染前大小:367616 bytes 占用空间:368640 bytes
感染后大小:369664 bytes 占用空间:372736 bytes
删除文件:
exe文件本身
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tempVidio.bat
五、注册表变化
2.EXE:1220
HKLM\SOFTWARE\Microsoft\Cryptography\RNG\Seed = 1D 0C 55 4F 5D D4 10 39 ...
explorer.exe:1960
HKCU\Software\Microsoft\Windows\ShellNoRoam\MUICache\C:\Documents and Settings\Administrator\桌面\2.EXE = "2"
2.EXE:1220
HKLM\SOFTWARE\Microsoft\Cryptography\RNG\Seed = E2 DC A1 FF 0C 9F B4 D5 ...
HKLM\SOFTWARE\Microsoft\Cryptography\RNG\Seed = 3D 94 43 1C B2 12 AC 03 ...
HKLM\SOFTWARE\Microsoft\Cryptography\RNG\Seed = 9B 7A 8E 9F 8D E6 A3 E1 ...
HKLM\SOFTWARE\Microsoft\Cryptography\RNG\Seed = 94 EB EF E8 79 14 F5 20 ...
HKLM\SOFTWARE\Microsoft\Cryptography\RNG\Seed = 47 92 6C 21 57 DA 1C 86 ...
HKLM\SOFTWARE\Microsoft\Cryptography\RNG\Seed = 03 C9 4E 15 49 3D 6B 15 ...
HKLM\SOFTWARE\Microsoft\Cryptography\RNG\Seed = 75 10 4B 7C B9 49 F2 B4 ...
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal = "C:\Documents and Settings\Administrator\My Documents"
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\{acb37fdd-2971-11e5-bcaf-806d6172696f}\\BaseClass = "Drive"
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\{acb37fdb-2971-11e5-bcaf-806d6172696f}\\BaseClass = "Drive"
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\{acb37fda-2971-11e5-bcaf-806d6172696f}\\BaseClass = "Drive"
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Documents = "C:\Documents and Settings\All Users\Documents"
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop = "C:\Documents and Settings\Administrator\桌面"
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Desktop = "C:\Documents and Settings\All Users\桌面"
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\\ProxyBypass = 2(次) 0x1
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\\IntranetName = 2(次) 0x1
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\\UNCAsIntranet = 2(次) 0x1
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Cache = "C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files"
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Cookies = "C:\Documents and Settings\Administrator\Cookies"
HKCU\Software\Microsoft\Windows\ShellNoRoam\MUICache\C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tempVidio.bat = "tempVidio"
cmd.exe:2340
HKLM\SOFTWARE\Microsoft\Cryptography\RNG\Seed = FF 14 24 59 BE 63 95 7D ...
六、网络症状
构造了HTTP协议(post/get)包,一旦“my.exe”(梦幻西游)运行,则设置的钩子生效,向目标地址发送账号信息。(图a)
环境关系暂时还没有分析具体的流量行为,时间允许的条件下应该搭好环境再分析样本更完善。
图 (a)
七、详细分析/功能介绍
1.脱壳
PEID加载样本,可发现样本加了UPX壳(图1.1)。 OD加载样本, F8单步运行, 注意观察ESP变化,当ESP变为0012ffa4时,下断点 hr 0012FFa4。F9运行,从程序断下来的地方开始单步跟踪,附近找到OEP,样本OEP为00404794处(图1.2),在此保存为“2.exe”。
图 1.1
图 1.2
2.采用IDA静态分析和OD动态分析结合的方式对样本进行分析。
IDA加载脱壳后的样本,进入WinMain函数,在OD里找到WinMain函数——2.00403703(图2.1),对应IDA里的函数调试。
图 2.1
3.sub_402A66()函数分析
主要行为:为当前进程提权。
图 3.1
4.sub_402B14()函数分析
n 首先分配了一个大小为260的内存空间,接着调用sub_402B14()函数,向该内存空间写文件"C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\kb******.sve"。在函数sub_402B14()里,程序主要做了以下操作:
获取temp目录,
图 4.1.1
图 4.1.2
图 4.1.3
v18=9 do // 向"%TEMP%\kb******.sve"填充随机数,循环填充9次 { v14[0] = 0; memset(&v14[1], 0, 0x270Cu); *(_WORD *)&v14[9997] = 0; v14[9999] = 0; v4 = rand(); v22 = 0; v25 = 0; v5 = 1000 * (v4 % 10 + 1); if ( (signed int)v5 > 0 ) { do { v6 = rand(); v7 = v25; v8 = v22 + v6; v25 += 4; ++v22; *(_DWORD *)&v14[v7] = v8; } while ( v25 < (signed int)v5 ); } WriteFile(v20, v14, v5, &NumberOfBytesRead, 0);// 填充随机数(个数随机) --v18; } while ( v18 ); v9 = v20; WriteFile(v20, lpBuffer, Buffer - 8, &NumberOfBytesRead, 0); WriteFile(v9, &Buffer, 4u, &NumberOfBytesRead, 0); WriteFile(v9, &v16, 4u, &NumberOfBytesRead, 0);
int __cdecl sub_401E53(char *Str, int a2, int a3, int a4, char *SubStr) // [arg.1] = buffer // [arg.2] = 0x80000002 = -2147483646. // [arg.3] = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\梦幻西游_is1" // [arg.4] = "InstallLocation" // [arg.5] = "\my.exe"
"C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\kb******.sve" -—〉 "C:\Program Files\Common Files\system\\kb******.bwb"
5.sub_40333C()函数分析
%temp%下创建批处理文件tempVidio.bat,利用该文件删除下面两个文件:
tempVidio.bat内容为:
@echo off :try del C:\DOCUME~1\ADMINI~1\桌面\2.EXE if exist C:\DOCUME~1\ADMINI~1\桌面\2.EXE goto try del C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tempVidio.bat
6.“C:\Program Files\Common Files\System\kb******.bwb”分析
a) 脱壳
这是一个UPX加壳的dll文件,首先contrl+s ,查找下面的命令:
xchg ah,al rol eax,10 xchg ah,al add eax,esi
找到在106617F6处,在其上面两处下断点,这里实在重定位表的RVA,重定位完后106617EC处跳转(图 6.1),在10661810处下断,F8单步观察大跳的jump,不久找到OEP(10004F3E)。在此用OD脱壳,保存为dumpedkbX.bwb.dll。(图 6.3)
图 6.1
图 6.2
图 6.3
b) ImportREC修复IAT数据
c) 分析“dumpedkbX.bwb_.dll”
IDA加载该dll文件,ctrl+E查找程序入口函数,发现入口函数有三个(图 6.4):
图 6.4
其中DllEntryPoint里面首先判断该dll由什么程序加载,将调用程序先后与“ctfmon.exe”、“my.exe”、“QQLogin.exe”、“DNF.exe”进行对比,当调用程序为“my.exe”时创建一个线程,即在检测到调用该dll的程序为“梦幻西游”时创建了这个线程,在线程里面实现盗取了用户的登陆密码。(图 6.5)(具体细节还没有弄得特别清楚,暂且不写入文档,搞清楚了再更新)
其中LoadDll里面设置了WH_GETMESSAGE类型的全局钩子,与所有线程关联,在目标出程序之前获得控制权,监视从GetMessage or PeekMessage函数返回的消息,以此监视鼠标和键盘输入,以及其他发送到消息队列中的消息。(图 6.6)
在CancelDll里面UnhookWindowsHookEx。(图 6.7)
图 6.5
图 6.6
图 6.7
7.分析感染后的dsound.dll
加载了“C:\Program Files\Common Files\System\kb******.bwb”(图 7.1、图7.2)
图 7.1
图7.2
八、总结
a) 先用自动化工具跑一遍程序,观察调用了哪些敏感的API,这些地方在后面分析的时候要多加注意。
b) 当有释放文件的时候,一定要想文件从哪里释放来的,释放这个文件的目的是什么,对释放和受到感染的文件也要仔细分析。
c) 初次修复数据,感觉还挺好玩的~~
d) 待改进的:
-Vi 大师见笑,欢迎指正.
标签:
原文地址:http://www.cnblogs.com/Viwilla/p/4912837.html