0x00 前言准备
kimsuky APT组织(又名Mystery Baby, Baby Coin, Smoke Screen, BabyShark, Cobra Venom) ,该组织一直针对于韩国的智囊团,政府组织,新闻组织,大学教授等等进行活动.并且该组织拥有windows平台的攻击能力,载荷便捷,阶段繁多。并且该组织十分活跃.其载荷有带有漏洞的hwp文件,恶意宏文件,释放载荷的PE文件等。
实验环境:win10
分析工具:火绒剑
IDA
x32dbg
die
procmon
0x01 样本基本信息
样本从微步云获取
0x02 行为分析
我们运行程序看看
一个模仿word文档的界面,没学过韩语,哪位大佬懂可以翻译一下。
用火绒剑监视一下看看有什么恶意行为
1、temp文件夹下释放docx文件
2、启动隐藏进程
启动了一个隐藏的进程,我们并没有看到这个进程的界面。
0x03 逆向分析
老规矩,上来先查壳了解信息
无壳,VC写的。区块有6个很值得注意
果然有个不常见的gfids模块,一会要留意一下
拖进IDA,看一下winmain函数
先是在用getprocess去调用API,我们能看到的是与注册表相关的API,4140和41D0里面也一样,但是分别去调用文件和网络请求相关的API。
在看下面,一些相关调用资源的API,调用的名是JUYFON,去看一下这个资源
现在还不知道是什么,可能是个加密的PE文件,先不管,看看后面怎么用
再往下是对刚才说的资源进行解密,一会我们动态跟看看解密之后是什么。直接看解密后的代码。
一个我们看到的行为,在temp下释放文件。更值得我们注意的是一个创建线程的CreateThread,这应该有什么有意思的东西,我们先把上面的资源解密一下是个啥。
一个PK文件,就是放在temp文件夹下的那个。
接下来我们看看新线程里的代码
首先是SHGetSpecialFolderPathA这个API,该api用来获取指定的系统路径,我们动调看看过去到的是什么路径
可以看到是C:\\Users\\Lenovo\\AppData\\Roaming,然后把这个和\\Microsoft\\HNC拼接到一块。然后下面CreateDirectoryA创建这个路径,GetShortPathNameA_0获取到这个路径。下面两个wsprintfA在格式化两个新路径,看样子后来还会有这俩文件。然后就进入404250了,我们看看。
先用GetEnvironmentVariableA获取COMSPEC的环境变量,也就是cmd。然后又是SHGetSpecialFolderPathA,这里传参是0,对应的桌面,获取到桌面的路径,然后是拼接一个cmd命令,动态看看什么命令。
获取桌面文件写到对应文件去。下面的程序相似,获取的路径不同,SHGetSpecialFolderPathA对应的是8和38,也就是C:/Documents and Settings/当前用户/Recent和C:/Program Files,最后还有一个systeminfo,也写入到对应文件中。然后一个sleep,函数退出。大体看来,这个函数在获取电脑信息。
出这个函数后有一个半小时的sleep,好家伙,真够睡一觉的了。
我们看看49E0这个函数
先获取wcl.docx的文件长度,如果长度为0,则删除该文件。
我们看不为0的,把文件内容读过来
然后下面一堆字符串
我们还是动调过去看看
把字符串拼接起来,我们目前很懵,不知到这字符串有什么用,注意一下4DD0,跟进去看看
很明显是网络请求相关的函数,我们可以猜测到,刚才那一堆是请求信息。我们也可以看到请求地址是pingguo2.atwebpages.com,路径为home/jpg/post.php
post请求完整信息大概如下。所以这个函数功能比较明显,就是上传本地收集到的信息到服务器。
我们看一下最后一个函数,45C0
很容易看出来,也是与网络有关的函数。这里进来就尝试访问download.php下载一个文件,地址和之前一样。
这里要注意的是这里,把下载的数据都写入了这里,并且运行,我们动态跟过来看看这是什么文件(注,因为要断网测,所以自己改跳转)
我们可以看到是tcf.bin,然后通过loadlibrary加载,应该是个dll。
这个函数我们也分析完了,最后又是一个大sleep,然后这个程序就结束了。
0x04 总结
这个样本其实只是一个简单的downloader,收集一些机器信息然后下载tcf.bin才是真正的病毒文件,因为我没有联网(就算开网估计服务器也崩了),所以不能进行后续分析。虽然这样,我们在逆向过程中也是能学到很多新东西的,逆向学习吗,就是多动手去实践。