老久没来发博客,主要是自己这点皮毛还得练练,找了个大佬云集的地方学习了一下技术。这次分析了一个魔诃草APT 组织的样本,学习到了一些东西,记录一下,万一哪天脑袋不好使忘了,还可以过来翻翻记录。
样本描述:关于魔诃草组织的描述网上挺多的,这里就不说了。说回这个样本,本次出现的样本是魔诃草的一个比较新的样本,与以往攻击方式相比发生了一点变化。样本以描述中印两国军事力量为诱饵文件诱导受害者点击,当受害者点击后,携带的EPS 脚本执行并利用CVE 2017-0261漏洞执行shellcode 载荷。详细分析如下:
诱饵文档:MD5:6d63dc5cdb504f3365403c1296e696a0
对诱饵文件解压缩,找到携带的eps 脚本文件
将样本移动到虚拟机内执行,并且开启进程监控,观察一下进程执行行为。观察执行过程中产生的进程树。可以发现当打开文档后,FLTLDR.EXE 执行,而FLTLDR.EXE被用于渲染包含该漏洞的嵌入式EPS文件,也就是说,此时恶意代码已经处于执行状态。那具体是怎样执行恶意代码呢?上面通过解压文件得到EPS 文件,然后使用loadEps 工具对该文件进行加载,附加loadEps 通过断下特定的断点,跳转到shellcode 进行调试,详细操作。之后F7 跟进,并且在堆栈窗口留意VirtualAlloc 函数的调用,Address 所指向地址就是shellcode 地址。之后就是对这段数据进行dump 放入IDA 进行静态分析,同时OD 进行动态调试,对比IDA 静态分析,分析shellcode 功能。之后就是刺(枯)激(燥)的调试时间。通过紧(无)张(聊)刺(枯)激(燥)的分析,基本可以总结该段shellcode 的功能。首先在shellcode 执行时,会对所需要使用到的函数地址进行获取,并返回地址表的首地址。接着会尝试在%windir%\temp 下创建一个tmp 文件,并且马上删除。之后会遍历当前进程,检测WINWORD.EXE 进程是否存在,若不存在则退出。再之后就是在系统内创建恶意文件并开始执行。shellcode 本身携带有多个加密过的PE 结构数据,这些数据在使用前都会通过与0x16082019 异或进行解密。通过shellcode 还会在%ProgramData%\Microsoft\DeviceSync 释放一个和诱饵文件同名的文件迷惑受害者。最后,通过向explorer 进程注入shellcode 启动生成的后门程序MSBuild.exe。除上述的描述以外,该样本还会利用CVE-2019-0808、CVE-2016-7255 进行提权。CVE-2016-7255:CVE-2019-0808:如果当前进程不属于x64 进程,shellcode 会释放针对CVE-2019-0808 漏洞的pri.dll 到文件。pri.dll 使用UPX 进行加壳,对其进行脱壳后分析。以下时与github 开源项目的比对shellcode 中释放的MSBuild.exe 为该组织常用FakeJLI 后门。MD5:8b498b56fd71467657104c301a558f06在程序执行时,会使用一段时长接近一分半的循环并在循环内执行printf() 方法,延缓启动时间,干扰检测。进入恶意代码主体后,样本真正的执行其恶意操纵。首先样本创建互斥体,实现样本的单例运行。然后样本获取受害者计算机信息,信息包括但不限于受害者计算机用户名、计算机名称、当前计算机系统版本、计算机主机地址等,并且将这些数据拼接为字符串便于后续进行加密上传。 而后通过使用CreateThread API 函数创建线程,用于对受害者键盘操作进行记录。在对用户操作进行记录的同时,还会创建一条线程用于实现与服务器的通信,包括向服务器发送数据包和接受服务器回传的指令。 该条线程所对应的回调函数在接受服务器回传数据前,会对收集的受害者信息进行加密并且生成请求数据,通过socket 向主机地址为:176.107.181.213 的地址发送数据包。在数据包发送成功宏,接受服务器回传指令,实现对受害者计算机远程操作。部分指令及功能如下:攻击者通过下发指令把一些执行命令后的缓存文件上传到C&C服务器上;下表为缓存的文件和记录的内容的对照表: 通过对往先该组织同类型样本的比对,该样本在代码结构上做出了部分调整,功能上也做出了一些改动。
差不多就上面这些,害,这图因为截完就复制到云笔记上,在拔下来糊的不要不要的。其实主要是记录一下对前面shellcode 的分析。
接着摸鱼了~
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
奋进的小杨 样本,从哪里下载的啊
楼主分析的原始样本在这里,解压密码:infected ,请勿真机点开。
可以去https://app.any.run/下载