-
-
[原创]练习1个Kimsuky样本
-
发表于:
2022-6-8 20:27
16796
-
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样本启动
MD
946f787c129bf469298aa881fb0843f4
时间戳
2021-09-11 15:33:3
CPU架构
X64
一阶样本中包含大量加密字符串,字符串通过解密函数解出所需函数。样本运行后释放1个诱饵文档和二阶样本。
导入表中看到LoadLibraryA、GetProcAddress函数,推测样本可能使用动态加载方式加载DLL和函数。
图 导入表
拖入IDA,查看LoadLibraryA、GetProcAddress交叉引用,找到调用的函数sub_140001130。查找调用sub_140001130的函数,发现调用该函数前皆传入字符串。推测传入字符串用于解密调用DLL和函数。
图 加密字符串
图 动态加载函数
查看sub_140001360,由于该函数堆栈不平衡,无法使用f5反汇编代码,所以先平衡堆栈,随后动态调试确定各字符串含义(或者写脚本解密字符串)。
图 堆栈平衡后代码
使用wsprintf拼接字符串,组成路径C:\ProgramData\Icon.pif。随后再拼接一个命令“C:\ProgramData\Icon.pif iDmzQtvReUSCdTn”。
图 命令拼接
创建1个文件C:\ProgramData\210927 xxx.hwp并写入数据。创建C:\ProgramData\Icon.pif并写入数据后执行。
图 样本创建
图 样本写入
图 样本执行
至此一阶样本调试完成
MD5
E33A34FA0E0696F6EAE4FEBA11873F56
时间戳
2021-09-11 09:13:44
CPU架构
X64
二阶样本通过2种参数执行不同功能。参数“iDmzQtvReUSCdTn”用于写入注册表添加自启动功能,期间拷贝自身并重命名为“smss.exe”并传入参数“zWbTLWgKymXMDwZ”启动新进程。参数“zWbTLWgKymXMDwZ”使用post方式请求域名movie.youtoboo.kro[.]kr,连接成功过后等待传入指令,共计19种指令。
二阶样本获取当前进程路径并在该路径下创建system32目录,拷贝Icon.pif到该目录并改名为smss.exe,写入注册表“reg add hkcu\\software\\microsoft\\windows\\currentversion\\run”实现自启动,最后启动smss.exe并传入参数“zWbTLWgKymXMDwZ”,连接CC等待指令。
图 目录创建
图 创建smss.exe
图 写入注册表
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!