来自地狱犬的追踪:安全狗深度分析Labrador病毒

近日,安全狗Hellhound分析系统获取到了一个感染量非常大的病毒样本Labrade(Hellhound-20157516)。该病毒可通过感染大量的exe程序,使得运行中的进程所对应的PE文件被感染、注册表被修改等,对用户威胁巨大。

0×00 病毒概览

1)病毒行为如下图所示

08221056_BZQC.jpg

如图所示,该病毒会对其他进程的section进行感染,并对一些进程进行远端线程注入。由其他进程执行修改注册表,网络连接,进程监听等恶意行为。该病毒具有如下特征:

1. 隐蔽性强。通过线程注入进行,而恶意行为都是由其他被感染的进程执行,使得跟踪最原始的样本不会有很明显的恶意行为。

2. 开机启动方式。该病毒不是改变注册表的run启动项来实现启动(这样很容易被发现),而是通过感染其他开机启动程序的PE文件。机器一重启,又会重新对其他进程的内存进行感染。

3. 传播能力强。通过explore程序,一旦发现进程列表中对应的程序被访问(打开,拷贝等),就会修改对应PE文件的text段,_WinMainCRTStartup函数,新增reloc段。且被感染的程序又拥有完全相同的感染能力。

2)被感染的文件结构

08221057_fnVg.jpg

被感染的PE文件结构如上图所示,text段末尾的0×00填充空白处被感染,

修改_WinMainCRTStartup中的指令跳转到text段末尾,增加reloc段,通过text段的代码对其进行解压。

3)病毒代码层级的行为

08221057_caEb.jpg

1. 对病毒的静态代码分析,只能看到一大段的加密代码,无法找到任何病毒真正目的的字符串或者API信息。

2. 该病毒是一段段解压代码的,执行完上一段才会解压下一段代码。

3. Section感染与线程注入是在新分配的临时空间进行,其他恶意行为由被感染的进程执行,难以用普通脱壳的方式修复出完整的程序。

0×01中毒的症状

感染进程的PE文件

08221057_N9bh.jpg

08221057_GcMZ.jpg

运行着的进程对应的PE文件都会被感染。常见的如wininit.exe,services.exe,explorer.exe,

winlogon.exe等,病毒运行时,正在运行的进程的PE文件都会被感染。

修改注册表

包括修改防火墙(给后续的恶意行为放行)

08221057_nRsM.jpg

修改网络代理设置(连接到国外的网站)

08221057_lkDK.jpg

修改winlogon程序(窃取登录信息)

08221057_Mi2L.jpg

TCP连接到一个波兰的机器 — sinkhole.cert.pl

08221057_B4ph.jpg

0×02病毒分析

1. 代码修改处(新增reloc段, 代码插入text段的末尾空白处, 修改_WinMainCRTStartup中的指令跳转到text中被修改处)

Reloc段如下所示

08221127_SdjD.jpg

修改了_WinMainCRTStartup函数的第10条指令,跳转到恶意程序的代码中执行。

08221127_4whn.jpg

正常文件的100B764处为text段为对齐的0×00填充数据

08221128_0UvZ.jpg

2. 解压代码

Text段插入的代码对reloc的数据进行解压

08221128_KIsr.jpg

解压后跳转到10369a4,此次开始的代码已经不同了。

08221128_Qh30.jpg

08221128_Qmwf.jpg

将retn指令修改成call指令,打开下一个入口

08221128_gb0h.jpg

3. 第二次解压代码

08221128_21sR.jpg

08221129_EcS1.jpg

08221129_4kwU.jpg

4. 内存中搜索API

内存中搜索API,构建IAT表

08221129_eis6.jpg

恶意程序会使用到的API列表如下

08221129_2bHl.jpg

7721CF41  GetModuleHandleA  7721A19F lstrcatA 77234BE7 lstrcatW 77212249 lstrcmpiA 77208BFA lstrcpyW 7721A611 lstrlenA 7721D9E8 lstrlenW 7721CA7C CloseHandle 7723532C CopyFileA 77210EF7 CreateEventA 7721CEE8 CreateFileA 772197E9 CreateFileMappingA 771D2082 CreateProcessA 7725F33B CreateRemoteThread 7722375D CreateThread 7720F731 CreateToolhelp32Snapshot 772DF611  7721D9D0 FreeLibrary 77208739 GetDriveTypeA 77221DE6 GetFileAttributesA 77210273 GetFileSize 77210F6F GetFileTime 772233F6  GetModuleFileNameA  77218FC5  GetSystemDirectoryA  7721CED8 GetSystemTime 77222FDE GetSystemTimeAsFileTime 7723695F GetTempFileNameA

77236A65 GetTempPathA 7721BA60 GetTickCount 7721154E GetVersion 77223861 GetVersionExA 772341AA GetVolumeInformationA 77235D02 GetWindowsDirectoryA 77219CE1  GlobalAlloc 7722395C LoadLibraryA 7721899B MapViewOfFile 772159D7 OpenProcess 7723443D Process32First 77234505 Process32Next 772196FB ReadFile 7721BCB4 ResetEvent 77212319  SetEndOfFile 7721BCCC SetEvent 77208CB9 SetFileAttributesA 7721DB36 SetFilePointer 7720BE16 SetFileTime 7725E962 SetProcessAffinityMask 7721BA46 Sleep  7721CECB SystemTimeToFileTime  7721DB13  UnmapViewOfFile  77222FB6 VirtualAlloc 7721BA90  WaitForSingleObject  77221400  WriteFile

这些函数里面包含了大量的病毒经常使用的函数,比如遍历进程,远端线程注入等

08221129_sB1g.jpg

ZwAdjustPrivilegesToken  ZwCreateFile  ZwCreateProcess  ZwCreateProcessEx ZwCreateSection  ZwCreateUserProcess  ZwDeviceIoControlFile  ZwMapViewOfSection  ZwOpenFile  ZwOpenProcessToken  ZwOpenSection  ZwProtectVirtualMemory  ZwQueryInformationProcess  ZwQueryInformationToken  ZwQuerySystemInformation  ZwWriteVirtualMemory  RtlUnicodeStringToAnsiString

调用了大量的内核写内存,内存映射的函数

5. 分配新的内存空间

08221129_DUHt.jpg

通过zwMapViewOfSection 将之前准备的代码映射到其他内存中

08221129_A8cu.jpg

6. 真正的入口通过jmp eax进入

08221130_q5DX.jpg

08221130_Otk2.jpg

220000~220300

7. 进入到新的内存空间, 先将代码从原来的空间复制到新的内存空间

08221130_gWOb.jpg

8. 感染当前运行的进程, 对部分程序进行远程线程注入

遍历当前运行的进程,进行setion注入

08221130_zLpT.jpg

对几个重要进程进行远端线程注入

08221130_tuFT.jpg

0×03 总结

该病毒在感染了大量的exe程序后,会使其感染的exe程序又拥有相同的感染能力,行为巧妙且隐蔽,值得关注。目前该病毒已被完美检测并查杀。

* 作者:安全狗攻防实验室(企业账号),转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)


转载于:https://my.oschina.net/safedog/blog/541150

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值