【APT】海莲花组织DLL样本分析
2024-10-20 11:35:56
前言
样本来源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
最新文章
- UILAbel 设置了attributedText 后省略号不显示
- 优化SqlServer--数据压缩
- 求二叉树的深度和宽度[Java]
- linux 远程 windows 命令:rdesktop vs windows mstsc
- Xampp 添加 SSL
- Firefox浏览器设置字符编码格式
- 1051 Wooden Sticks
- 【甘道夫】HBase基本数据操作的详细说明【完整版,精绝】
- java_IO读写模版
- 微信小程序环境搭建
- HDU 4085 Steiner树模板称号
- c++ Constructor FAQ 继续
- CHD 2015迎新杯题解
- class path resource [config.xml] cannot be opened because it does not exist
- Git版本管理荟萃
- TypeScript 异步代码类型技巧
- JavaScript 版数据结构与算法(二)队列
- pandas小记:pandas高级功能
- Socket编程实践(6) --TCP服务端注意事项
- Spring MVC(二)基于标注的MVC
热门文章
- Android版本历史
- SSD1306 屏幕使用-Micropython
- centos NTP时间同步
- C++11之线程库
- vim多视窗操作
- 【Windows】Microsoft Store 应用列表
- 如何让一个 div 左右各空一定距离然后 div 占满剩下的宽度?
- 5-6:实现多窗口之异常(AttributeError: 'list' object has no attribute 'click')
- C# List 分页代码
- 在Vue中实现app拍照-选取本地图库-图片上传成功后预览