【APT】海莲花组织DLL样本分析

前言

样本来源Twitter,之前的文章已经完整分析过一个类似的DLL样本,这次做个简单记录。

样本分析

样本信息如下:

DLL文件共有40个导出函数:

导出函数内容基本一致,恶意代码都在DllMain函数中实现:

执行后首先获取当前模块基址并解析PE文件: 

然后通过Hook IAT(导入地址表)地址执行恶意功能函数:

备注:这里多了一个Hook操作,此前样本是直接读取资源数据加载执行的。

获取”LOGS”资源数据,申请缓冲区后跳转到Shellcode执行:

Shellcode执行后会通过多了Loop指令边执行边解密后续代码:

调试的时候会有很多这样的循环代码结构,不用单步跟踪直接在循环结束的地方下断F9运行就可以:

或者顺着代码一直往下寻找像这样的动态CALL指令调用,快速定位关键代码:

解密完成后Shellcode会动态调用API创建线程关联服务主函数:(线程参数就是服务控制函数地址)

然后从”C:\Windows\Temp\gh943h.tmp”文件中读取数据:
备注:正常情况下该文件会包含经过加密的Shellcode数据,但是由于该文件由其它模块组件释放,如果只有当前DLL样本的话是无法获取后续载荷的。
这里就不往下分析了,后续的操作可以参考之前的分析文章

总结

分析Shellcode的时候可以在关键的地方多打几个快照,然后对几个常用API函数下断,根据当前环境上下文大胆猜测后续可能执行的功能细心求证,这样可以节省时间加快分析效率。

IOCS

MD5:3aac297222bd691edb2b9c3ccb5b7e4c

 

posted @ 2021-06-23 11:18  SunsetR  阅读(312)  评论(0编辑  收藏  举报