安全路透社
当前位置:安全路透社 > 网络转载 > 正文

针对白俄罗斯军事通讯社的APT样本分析

*本文原创作者:菠菜 

近日,互联网上出现一起针对白俄罗斯军事网站的渗透活动,攻击者通过电子邮件做为诱饵,在电子邮件的附件中嵌入漏洞利用的文档,在受害者打开文档后,文档中嵌入的shellcode得以执行,实现对目标系统的控制。本文分析的样本的shellcode只是生成pe文件,并将pe文件加入到启动项之中,比较有趣的是,样本并不直接启动这个PE文件,而是在等待受害者重启计算机后执行PE文件。在受害者重启计算机后,通过操作系统的启动项加载PE文件,进行后续的渗透攻击。

从我们最初得到的email来看,攻击者针对是白俄罗斯共和国国防部武装部队军事通讯社进行的定向攻击

Email信息

image001.png

攻击者第一步是向白俄罗斯共和国国防部武装部队军事通讯社发送邮件。邮件主题“Куда идёт Беларусь”翻译成中文是”白俄罗斯将何去何从?”

收件人邮箱对应的网站为http://www.mil.by/ ,为白俄罗斯共和国国防部武装部队军事通讯社的网站,网站截图如下。

而发件人则显示来自俄罗斯外交部外交事务杂志网站

image002.png

文档信息

附件中的“Куда идёт Беларусь.doc”文档为CVE -2012-0158漏洞利用样本。当受害者打开文档时,在未打相应补丁的office系列产品的的情况下,会触发WORD软件的漏洞加载运行shellcode。

打开文档显示的内容如下:

image003.png

文档内容通过google翻译的结果图如下

image003.png

漏洞利用

样本利用CVE-2012-0158漏洞,该漏洞是一个栈溢出漏洞,该漏洞是由于Microsoft Windows Common Controls的MSCOMCTL.TreeView、MSCOMCTL.ListView2、MSCOMCTL.TreeView2、MSCOMCTL.ListView控件(MSCOMCTL.OCX)中存在错误,可被利用破坏内存,导致任意代码执行。

漏洞利用成功后,会执行下面的shellcode。关于这个漏洞的成因及利用,网络上有很多文章进行过分析,我们在本文就不再展开分析。对此漏洞不太熟悉的朋友,可自行google了解。

Shellcode

漏洞成功利用后,嵌入在文档中的shellcode得以执行,shellcode几个功能点如下

1.通过rol5算法得到函数地址

image005.png

2.得到文件句柄:

从0开始,通过GetFileSize,ReadFile等函数得到文件尾部的0×10字节内容,文件尾部的0×10字节为检验标志。通过下面算法进行校验:

1).取最后一个DWORD的值,将该值+1,ror 3后,比较是否与倒数第二个DWORD的值相等;

2).取倒数第三个DWORD的值,将该值+1,ror 3后,比较是否与倒数第四个DWORD的值相等;

如果1)和2)都满足,就说明当前数值就就句柄号

image006.png

3).将文件中F39C0D处的32C大小的字节,异或9E后,得到下一阶段运行的shellcode,随后跳转到下一阶段的shellcode运行;

image007.png

对应的文档中的加密过的内容如下:

image008.png

4).通过ror13算法得到函数地址;

image009.png

使用的函数列表如下:

kernel32!GetEnvironmentVariableAStub

kernel32!CopyFileA

kernel32!WriteFileImplementation

kernel32!CloseHandleImplementation

kernel32!TerminateProcessStub

kernel32!GetSystemDirectoryAStub

kernel32!CreateFileA

kernel32!lstrlenStub

kernel32!lstrcatA

kernel32!GetModuleFileNameAStub

kernel32!CreateFileMappingA

kernel32!MapViewOfFileStub

kernel32!GetFileSizeStub

kernel32!SleepStub

SHLWAPI!SHSetValueA

SHLWAPI!SHDeleteKeyA

5).通过kernel32.dll中的函数将system目录下的rundll32.exe拷贝到%appdata%目录下;

6).解码生成comct132.dll文件;

解密算法为:每个字节异或上0x5A后,加上0xA5

image010.png

7).在函数地址+5处调用函数,防止inline hook;

image011.png

8).删除Software\Microsoft\Office\11.0\Word\Resiliency注册表项,防止打开文件时出现”文档恢复”提示;

9).加入开机启动项。

加入的启动项:

image012.png

comct132.dll

至此,攻击者的第一步目标就已经完成,随后,只需等待受害者机器重启后,comct132.dll才会得以加载执行,这与常见的直接进行下一步渗透或者直接窃取信息的攻击手法大大不同,堪称APT攻击中的一股清流。这也体现出攻击对攻击行为足够的耐心,这或许也是攻击者对自己攻击手法和成功的自信。

对comct132.dll代码分析

1.创建互斥体{3765-4591-E8DF-99EJ},防止重复运行;

image013.png

2.创建线程,在新线程中进行主要的恶意动作;

敏感字符串都进行了简单加密,加密算法:

image014.png

3.会连接aued.kilwwoy.com /bin/System/update.tmp下载文件,保存到本地的%appdata%目录下,连接地址已经失效,但这并不影响我们后续的分析;

image015.png

4.对下载回来的文件,会判断文件类型,文件类型有三种:类型1表示是个PE文件,类型2表示返回的数据是编码后的PE文件,类型3表示程序不支持的文件类型。

对于不同的文件类型进行不同的动作。

对于类型1:

如果是PE就直接执行

image016.png

如果不是PE,就使用rundll32.exe调用dll文件的Enter导出函数

image017.png

对于类型2:

直接调用LoadLibrary

image018.png

对于类型3:

调用DeleteFile进行删除

image019.png

IOC:

样本下载进一步攻击负载的地址为:aued.kilwwoy.com/bin/System/update.tmp,通过对网上公开的威胁情报分析,没有找到对应的攻击组织。但从样本的代码分析,可以看到这个样本与paloalto公司公布的针对蒙古国政府的攻击应该为同一组织。

这个攻击组织的技术水平总体来看是偏低的,利用的都是已知漏洞,也没有使用其他未知的植入利用技术。但是可以看出攻击者对社工相关的信息做了更用心的准备,同时在攻击过程中可以在等待受害者重启机器后进入进一步的攻击,也显示出攻击组织的耐心与沉静,而这些在一定程度上也提升了植入的成功率。

相关链接:

Digital Quartermaster ScenarioDemonstrated in Attacks Against the Mongolian Government

*本文原创作者:菠菜

未经允许不得转载:安全路透社 » 针对白俄罗斯军事通讯社的APT样本分析

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册