【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