查看原文
其他

练习1个Kimsuky样本

戴夫的小推车 看雪学苑 2022-07-13


本文为看雪论坛优秀文章
看雪论坛作者ID:戴夫的小推车




ATP简介


Kimsuky是被认为来自朝鲜的APT组织。该组织善于利用复杂的东北亚地缘政治局势信息作为诱饵,主要针对韩国政府及韩美智库等机构进行钓鱼攻击。





概述


初始样本是一个伪装成PDF的EXE程序,运行后释放诱饵文档xxx.hwp(韩文文档)以及另一样本Icon.pif,随后运行Icon.pif并传入参数“iDmzQtvReUSCdTn”:写入注册表使样本能自启动。随后复制自身到“C:\\ProgramData\\system32”目录下,修改名字为“smss.exe”并传入参数“zWbTLWgKymXMDwZ”,样本运行后会请求movie[.]youtoboo.kro.kr等待指令传入。





行为分析


开启监控程序,运行木马,样本行为:
1. 设置4个注册表键值;
2. 创建文件C:\ProgramData\210927 xxx.hwp
3. 运行“C:\ProgramData\Icon.pif iDmzQtvReUSCdTn”和“C:\\ProgramData\\system32\\smss.exe zWbTLWgKymXMDwZ”
图 4个注册表键值设置


图 文件创建


图 Icon.pif样本

图 smss.exe样本启动




一阶样本


1)基本信息


一阶样本中包含大量加密字符串,字符串通过解密函数解出所需函数。样本运行后释放1个诱饵文档和二阶样本。


2)功能推测


导入表中看到LoadLibraryA、GetProcAddress函数,推测样本可能使用动态加载方式加载DLL和函数。
图 导入表

拖入IDA,查看LoadLibraryA、GetProcAddress交叉引用,找到调用的函数sub_140001130。查找调用sub_140001130的函数,发现调用该函数前皆传入字符串。推测传入字符串用于解密调用DLL和函数。
图 加密字符串

图 动态加载函数

查看sub_140001360,由于该函数堆栈不平衡,无法使用f5反汇编代码,所以先平衡堆栈,随后动态调试确定各字符串含义(或者写脚本解密字符串)。
图 堆栈平衡后代码


3)动态调试


使用wsprintf拼接字符串,组成路径C:\ProgramData\Icon.pif。随后再拼接一个命令“C:\ProgramData\Icon.pif iDmzQtvReUSCdTn”。

图 命令拼接

创建1个文件C:\ProgramData\210927 xxx.hwp并写入数据。创建C:\ProgramData\Icon.pif并写入数据后执行。

图 样本创建

图 样本写入
图 样本执行

至此一阶样本调试完成。





二阶样本


1)基本信息


二阶样本通过2种参数执行不同功能。参数“iDmzQtvReUSCdTn”用于写入注册表添加自启动功能,期间拷贝自身并重命名为“smss.exe”并传入参数“zWbTLWgKymXMDwZ”启动新进程。参数“zWbTLWgKymXMDwZ”使用post方式请求域名movie.youtoboo.kro[.]kr,连接成功过后等待传入指令,共计19种指令。

2)第一个参数


二阶样本获取当前进程路径并在该路径下创建system32目录,拷贝Icon.pif到该目录并改名为smss.exe,写入注册表“reg add hkcu\\software\\microsoft\\windows\\currentversion\\run”实现自启动,最后启动smss.exe并传入参数“zWbTLWgKymXMDwZ”,连接CC等待指令。
图 目录创建
图 创建smss.exe
图 写入注册表
图 样本启动


3)第二个参数


运行后样本将尝试使用post方式请求域名movie.youtoboo.kro.kr并使用UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36。样本一旦与CC连接成功后,将等待传入指令,样本有19种接收参数。

表 功能说明

图 指令3 获取当前目录

图 指令4 修改文件日期

图 指令5 结束特定进程

图 指令6 获取特定进程信息

图 指令7 删除文件

图 指令8 创建新线程并尝试移动一个文件,失败则破坏

图 指令9 创建进程

图 指令10 注册DLL

图 指令11 分配内存空间,具体功能未知

图 指令12 读取文件

图 指令13 写入文件

图 指令14、15 获取系统时间

图 指令16 删除注册表

图 指令17 获取主机名,计算机名,网卡信息

图 指令18 全局信息时间

图 指令19 获取%temp%目录

图 指令20、21 读取PMS*文件信息




看雪ID:戴夫的小推车

https://bbs.pediy.com/user-home-952303.htm

*本文由看雪论坛 戴夫的小推车 原创,转载请注明来自看雪社区



# 往期推荐

1.Akamai保护的相关网站(IHG,TI)学习记录

2.Il2Cpp恢复符号过程分析

3.CVE-2016-3309提权漏洞学习笔记

4.2022腾讯游戏安全初赛一题解析

5.一文读懂PE文件签名并手工验证签名有效性

6.CNVD-2018-01084 漏洞复现报告(service.cgi 远程命令执行漏洞)






球分享

球点赞

球在看



点击“阅读原文”,了解更多!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存