转载

静态分析一款锁首的RootKit样本

* 本文作者:0zapt4toM,本文属FreeBuf原创奖励计划,未经许可禁止转载

闲来无事,分析一个Rootkit(MD5:973fe1392e8145daf907fad7b4fbacdc)病毒驱动,样本来源于52pojie论坛。分析此样本的目的在于增加自己的逆向分析能力和加深对windows内核的认识。(可能有分析的不对的地方,请大家指正)

病毒整体逻辑

整体的病毒逻辑如下图所示。

静态分析一款锁首的RootKit样本

1,创建病毒设备对象//Device//93218ec2da92e0af。
2,hook多处系统函数。
3,下载并执行盗号木马。
4,初始化锁首所需的html文件。
5,解密锁首所需的网址。
6,创建映像加载回调。
7,执行主要的锁首逻辑。
8,注册mimifilter。
9,创建一个线程,检查更新以及以上逻辑是否都正确执行。

下面详细介绍每一个病毒逻辑。

创建驱动对象

创建设备名为//Device//93218ec2da92e0af的设备,并且注册了关机回调。

静态分析一款锁首的RootKit样本

HOOK系统函数

静态分析一款锁首的RootKit样本

使用同样的方法hook了ntdll的ZwCreateThreadEx,NtCreateThreadEx,ZwProtectVirtualMemory,NtProtectVirtualMemory,ZwReadVirtualMemory,NtReadVirtualMemory,ZwWriteVirtualMemory,NtWriteVirtualMemory以及kernel32的WinExec和ZwClose多处API。

下载执行盗号木马

该病毒会下载执行盗号病毒(MD5:0769a5098f7e95e1d9bd4bd0acce8eae),该病毒主要用与收集windows登陆凭证的hash,以及各种服务器的账号密码。

a,收集NTLM哈希。

静态分析一款锁首的RootKit样本

b,收集各种账号密码

静态分析一款锁首的RootKit样本

这个样本在vt的检出率为55.2%。

静态分析一款锁首的RootKit样本

解密锁首需要的网址

解密逻辑分为两步,第一步调用decode_funA()解密key,然后使用key解密内存中被加密的url得到明文url,并将全局变量lockpage_flag设置为1。

静态分析一款锁首的RootKit样本

锁定浏览器主页

我们查看解密出的url的交叉引用,可以看到有三处调用逻辑。

静态分析一款锁首的RootKit样本

lockpage_logic1:

静态分析一款锁首的RootKit样本

lock_logic2:

静态分析一款锁首的RootKit样本

lock_logic3:

静态分析一款锁首的RootKit样本

创建映像加载和进程回调

创建映像加载和进程回调,在指定进程运行时,运行相关的病毒逻辑。

静态分析一款锁首的RootKit样本

注册minifilter

逻辑如下:

静态分析一款锁首的RootKit样本

更新及检测各逻辑是否都正常执行

静态分析一款锁首的RootKit样本

这里有三个全局变量,updata_flag,run_spyware_flag和lockpage_flag,检测这几个flag位是否正常,特别注意的是lockpage_flag,如果此标志位不为1,则表示加密的url位正常解密,则会再次执行锁首逻辑。

额,大部分的功能都分析完了,一部分觉得没必要的就省去了,还有一部分分析的不透,也没写上了,内核这块还是不太熟悉,大佬们勿喷。

* 本文作者:0zapt4toM,本文属FreeBuf原创奖励计划,未经许可禁止转载

原文  http://www.freebuf.com/articles/system/168650.html
正文到此结束
Loading...