首页
社区
课程
招聘
[原创]老树开花,一例新上传的KimSuky老样本分析
发表于: 2020-9-9 12:11 4426

[原创]老树开花,一例新上传的KimSuky老样本分析

2020-9-9 12:11
4426


这个样本是之前在Twitter看到的,报告写好了一直没发,后来创宇的老哥先发了,但是跟我分析的角度不同,所以在这里分享一下我对这个样本的分析思路。


首先,KimSuky最早应该是由卡巴披露的朝鲜背景的APT组织,最早发布于13年,至今已经连续活跃了7年左右了。

image.png



kimsuky APT组织(又名Mystery Baby, Baby Coin, Smoke Screen, BabyShark, Cobra Venom) ,该组织一直针对于韩国的智囊团,政府组织,新闻组织,大学教授等等进行活动.并且该组织拥有windows平台的攻击能力,载荷便捷,阶段繁多。并且该组织十分活跃.其载荷有带有漏洞的hwp文件,恶意宏文件,释放载荷的PE文件等(这部分都是网上有的,我直接抄的 哈哈)


笔者在日常的Twitter情报收集的时候,发现了这样一个带有KimSuky标签的恶意样本:

image.png


在VT查一下样本可以发现这看起来是一个"新样本"。2020年8月13编译,9月2日被上传到VT。

image.png




样本下载到本地使用IDA加载,通过Start函数可知这是一个由VC系编译器编译的样本。image.png


直接来到winMain分析一下样本的代码。

image.png



这里可以看到,程序进到winMain之后,首先是call了sub_404140,急着是通过LoadLibrary和GetProcAddress获取了一些API的地址。特别是在后面,程序还调用了FindResourceA和SizeofResource这种操作资源的API。


所以我们可以顺便查看一下样本的资源信息:

image.png



这里可以看到,样本有一个名为JUYFON的资源名。

以这个资源的数据作为条件去VT搜索可以找到一个同类样本:

image.png



回到IDA中,我们看下第一个call做了什么,关于资源,等下调一下就知道到底解出来是什么了。



sub_404140的功能很简单,就是LoadLibrary kernel32,然后获取了一些API的地址。

image.png


后面的第二个call sub_4041D0也是同理,不过这个call里面获取的是网络请求相关的一些API

image.png



这两个函数执行完之后,程序会通过FindResource去找到刚才我们看到的名为JUYFON的资源

image.png



如果找到了资源资源,则计算资源的大小,然后跳转到后面去进行解密:

image.png



解密的算法还有点点长,我们等下直接去调试器中调试一下即可。


先静态往下看看。

资源解密了之后,看起来像是要删除原始文件,然后创建从资源解密出来的文件,通过ShellExecute函数的open打开释放的文件,最后CreateThread加载到新线程中。这样看来,资源解密出来的文件应该是一个忧郁诱惑用户的文件

image.png


于是我们来调试器里面看一下。


解出来之后,发现是一个PK压缩包

image.png


然后将这个文件写入到%temp%目录下

image.png



但是这里可以看到,程序是在在temp目录下释放了一个docx文件。这里的文件名由于操作系统的原因导致乱码显示了。

image.png


这里通过ShellExecute函数open打开了刚才释放的docx文件,然后通过CreateThread函数跳转到新线程去执行。

image.png


所以样本外层的功能就是,读取资源解密得到一个docx,打开这个docx迷惑用户,然后跳转到新线程执行后面的功能。

释放的docx文档内容如下:

image.png



翻译一下可以得到如下的内容:

image.png





根据邮件内容,基本上可以确定这是针对韩国庆熙大学的攻击,比较符合KimSuky的攻击目标。

image.png



我们来到新线程的代码

image.png



新线程进来,程序首先是通过SHGetSpecialFolderPathA获取了csid为26的系统路径,即:C:/Documents and Settings/当前用户/Application Data




获取%appdata%环境路径之后,程序会尝试将\\Microsoft\\HNC拼接到获取到的路径之后形成一个新的路径:

image.png


然后有两个call需要调试器里面看一下:

image.png



第一个是CreateDirectory

这里是创建刚才拼接好的路径

image.png



第二个call是GetShortPathName,这里是获取刚才路径的短路径

image.png




接下来格式化得到一个新的路径,这里看样子后续又会生成一个wcl.docx

image.png


此外还会在格式化出一个在这个路径下的tcf.bin的路径:

image.png




然后call sub_404250进入到4250函数。



4250函数进来首先会通过memset清空一些内存

然后通过GetEnvironmentVariableA获取COMSPEC这个环境变量路径,也就是cmd.exe的路径


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 3
支持
分享
最新回复 (3)
雪    币: 389
活跃值: (565)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
2
什么开花??
2020-9-9 14:46
0
雪    币: 2275
活跃值: (2391)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
自然dashen 什么开花??
老树开花 哈哈~
2020-9-9 14:55
0
雪    币: 73
活跃值: (3095)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
4
这个样本我也看了。hhh
2020-9-14 11:31
0
游客
登录 | 注册 方可回帖
返回
//