电脑管家第一时间在 国际杀毒网站VirusTotal上检出一枚复杂的Downloader ,这类样本从指定的URL下载两个有害文件,加载下载下来的DLL,并运行新下载的EXE,从而导致系统感染其他木马,其中DLL是个 stealer,EXE是个CTB-Locker。
该样本在VirusTotal上的首次扫描结果:
整体流程图如下:
混淆加密:
该样本用了很多混淆的技术,首先样本本身是被用加密器加密过的文件,样本在运行中,会将数据节里的PE文件解密出来,并直接加载到内存中。
其次在被解密过的PE文件里,字符串也都是被加密的,程序运行中,在要用某字符串之前会将其解密,用完之后,立刻将字符串加密。
以上都是技术上的混淆,除此之外样本还会在自己的资源节里放置一个rtf文件,在程序运行中打开该文本文件,此文件是个干净文件(图1)。
下载
样本会链接以下11个URL,通过WinHttpReadData等一系列API下载样本。
URL:
sintjoep.nl/images/efax.jpg
philippineswebservices.com/testing/efax.jpg
bmws1vc.altervista.org/listini/efax.jpg
www.ambiente4u.eu/aglextra/efax.jpg
pupillenwijhe92.nl/diversen/efax.jpg
piccolochef.com/wp-content/efax.jpg
stocksandstares.co.uk/docs/efax.jpg
scottwall.com/logs/efax.jpg
amberaffair.org.au/wp-content/efax.jpg
sompex.de/system/efax.jpg
scalextric.hostei.com/pub/efax.jpg
piccolochef.com/wp-content/efax.jpg这个链接能下载到样本(图2)。
图2,下载样本
下载下来的代码是被加密的,结构如下:
typedef struct _Download_Code{
DWORD checksum;// the checksum of the code which offset from +8 to the end
DWORD szTwoPeInfo;// the size of code which offset from +8 to the end
DWORD szFirstPE;// the size of the first PE file
BYTE[] First_PE;//
DWORD szSecondPE;// the size o the second PE file
BYTE[] Second_PE;
}
样本通过简单的异或解密出下载代码后,会验证偏移8到尾部的校验和,以确保下载下来的代码的完整性。
运行下载文件
根据样本代码,可以 得出这个downloader 所下载下来的第二个文件是个DLL且有个名为Grab_Psw的导出函数,样本把该DLL直接加载到内存当中,运行DLL 入口,调用Grab_Psw。需要提到的是,该DLL下载下来后并没有写到硬盘上,所以被感染的用户找不到此DLL.
这个DLL的主要功能是盗号、盗取软件信息。涉及到的软件有:
Far Manager
CuteFTP
Windows Commander
Total Commander
FlashFXP
FileZilla
BPFTP
TurboFTP
FFFTP
CoffeeCup
COREFTP
FTP Explorer
UltraFXP
Cryer
ExpanDrive
ClassicFTP
Fling
FTPClient
LeapFTP
Martin Prikryl
WebDrive
Opera
AceBIT
Firefox
SeaMonkey
LeechFTP
ALFTP
Adobe
Chrome
BlazeFtp
EasyFTP
Robo-FTP
LinasFTP
PuTTY
NovaFTP
Windows Live Mail
RimArts
IncrediMail
Pocomail
RIT
Internet Account Manager
Outlook
木马通过注册表信息或者一些配置文件来窃取软件账户密码。将获取的信息加密后,发送到随机一个远端服务器上(上述的11个URL中的一个),发送的内容格式如下(图3):
------%08X%08X
Content-Disposition: form-data; name="uploaded"; filename="%08x.jpg
Content-Type: image/jpeg
[Grab Info]
------%08X%08X--
图3,发送盗取信息
远端服务器接收成功后,会返回数据-“Confirmed”
此后,样本将下载下来的第一个文件(EXE),保存到硬盘%TEMP%/<random.exe>处,通过调用ShellExecuteW API来运行此文件。这个文件是个CTB-Locker.
目前腾讯电脑管家已经可以查杀这类样本: