0x00 前言
样本是在app.any.run首页看到的
看样子是个韩国样本,就下载了分析一下
样本的执行流程大概如下:
0x01 原始样本分析
首先exeinfo发现文件无法,vc编译:
在start函数末尾处通过call [ebp+var_10] 跳转到新开辟的内存执行
VirtualAlloc了一个009B0000开始的空间
循环写入,然后通过VirtualProtect更改属性
最后复制文件,并且通过VirtualFree清空解密的内存
0x02 dump样本分析
依旧是vc++编译
main函数入口点如下:
首先是检索有关本地计算机的当前硬件配置文件的信息
获取GUID:
拼接获取到的信息:
创建互斥体,互斥体名称为上面组装的字符串:
解密一些会用到的字符串
所有字符串终于解密完了,字符串包含了一些sqlite的sql语句
然后是一些软件的关键路径
生成一个随机文件名:
然后拼接路径:
然后通过CreateDirectoryA创建该路径
生成子目录 \files并创建
解密出请求地址:
likeanimals.net/276
添加多类请求头:
设置Content-Type:
Content-Type: multipart/form-data; boundary=1BEF0A57BE110FD467A\r\n
设置Content-Length=25
发起请求:
抓包可以看到
请求数据就是—1BEF0A57BE110FD467A—\r\n
服务器响应:
如果成功请求,则会在西面的sub_409ac3函数通过InternetReadFile下载文件到本地
这里是尝试请求下载freeb13.dll
通过代码发现,下载的dll一共有:
freebl3.dll
mozglue.dll
msvcp140.dll
nss3.dll
softokn3.dll
vcruntime140.dll
之后建立了TCP连接,一直通信:
最后可以看到,是在本地通过post请求向CC发送了一个压缩包
将数据流提取出来,解压压缩包,可以看到如下的目录结构:
很明显,这里是将用户主机上搜索到的数据全部以文件形式存储并打包上传了。
Autofill | 暂时未知 |
---|---|
CC | 暂时未知 |
Cookies | 本机上所有浏览器的Cookies信息 |
Downloads | 下载文件信息 |
Files | 暂时未知 |
History | 浏览记录信息 |
cookie_list.txt | cookie_list |
information.txt | 计算机的所有信息,包括运行的所有软件,软件版本等 |
outlook.txt | outlook密码信息等 |
passwords.txt | 本机密码信息 |
screenshot.jpg | 当前屏幕截屏信息 |
这里基本上可以确定该样本是一例窃密木马了。
接着往下看看代码,看还有没有其他功能啥的。
下载dll文件:
收集一些关键目录下的文件信息:
执行完之后删除下载的dll文件:
通过http://ip-api.com/line/获取本机的出口ip
然后创建information.txt收集本机的一些基本信息
收集了所有信息之后,生成压缩包:
压缩包和在上一级目录:
写入数据
接着在sub_40A171函数处将压缩包上传到CC
最后一个长休眠
这里是一个大的while(1)循环,sleep之后程序还会继续走一遍上面的流程
进程结束的条件在if(v149>=2)里面
如果信息收集上传完成,程序就会删除本地的压缩包:
并且调用cmd命令kill指定进程:
0x03 关联分析
VT上查询样本hash,可以知道该样本是在19年12月29日第一次上传,且通过之前的分析可以得知,该C2还是存活的
关联的C2只有一个:http[:]//likeanimals[.]net/
域名解析ip:169.239.129.65
可以看到该ip在19年12月开始有如下解析:
通过对该样本的分析以及这些域名的请求格式,基本可以确定是同源样本:
整理的过程中发现https://ti.qianxin.com/v2/search?type=ip&value=169.239.129.65
界面好像改了,现在很一目了然,而且数据关联的很好,推荐大家使用。