一、样本概况
文件: svchost.exe1.exe
所属家族:未知
大小: 38400 bytes
修改时间: 2022年5月15日, 14:04:08
MD5: 9A50980AFB1C6A43CF38872E694BB7DB
SHA1: 237AA3EE8C912E6F8326782B790327562CEF8DD9
CRC32: C4F48BF1
编译器版本:VC6.0
加壳情况:未加壳
二、样本浅析
导入表:
网络相关高级API
https://s21.ax1x.com/2024/08/17/pACWJ6s.webp
https://s21.ax1x.com/2024/08/17/pACWltS.webp
遍历文件API,获取磁盘信息API
https://s21.ax1x.com/2024/08/17/pACWQk8.webp
找到特定窗口获取句柄的API,剪切板用的API
https://s21.ax1x.com/2024/08/17/pACWGlj.webp
加密用的API
https://s21.ax1x.com/2024/08/17/pACW1fg.webp
Com组件API
https://imgse.com/i/pACW4hD
注册表相关操作API
[img=975,594]https://s21.ax1x.com/2024/08/17/pACWGlj.webp[/img]
总结一下,这个样本可能有网络行为,遍历文件,查询窗口获取特定窗口句柄,加密解密,操作注册表(猜测会有写入自身路径到run键实现开机自启动的操作),Com组件调用等功能
资源表:
资源表未见异常
https://s21.ax1x.com/2024/08/17/pACWI9e.webp
数据目录表:
数据目录表中未见TLS表,该样本并没有TLS表,一般TLS可以用作反调试,所以我们要关注到这点。另外其它也未见异常
样本行为监测:
尝试建立TCP连接,并通过HTTP协议的get方法请求相应的资源,下图中的地址分别葡萄牙与美国的IP,猜测是通过http协议下载一些恶意代码进行本地执行
禁用Windows安全中心的一些功能
有对一些浏览器临时浏览产生的文件的一些操作,也有对Cookie的一些操作,猜测是在提取恶意程序
改名运行后发现自启动项,加到了run键
三、代码分析
在IDA中分析,先找到Winmain入口函数
通过F5生成伪C代码,我们先分析第一段,发现大量重复操作都是将文件的内容移动后,在将文件删除掉,然后进行相应的休眠,猜测是为了恶意代码执行的更为流畅。如下图所示
下如图,判断是否为乌克兰的主机,如果是乌克兰的主机的话就直接退出。之后对一些变量进行了初始化。猜测病毒作者可能是个乌克兰人,亦或者是一种栽赃手段
如下图,Check_IP_Get_GPS_402960() 这个函数主要是通过http://api.wipmania.com/ 网址来获取当前中招主机所在的地理位置信息,如果是UA也就是乌克兰的话,return 1,不是的话return 0
http://api.wipmania.com 是一个判断国家区域的网址,关键字符 UA 是乌克兰的缩写
如下图,Check_SystemTime_Get_Linguistic_context_402910() 这个函数主要是通过获取系统语言环境对比关键字是否为UKR也就是乌克兰是的话 return1 否则 return 0
如下图,继续往下分析,做了Com库的初始化,同时生成了事件种子,并且获取了CSP密钥容器环境,获取了当前病毒进程的完整路径,并病毒文件名检测是否包含svchost.
如下图,创建随机值目录,自我复制到C:\随机数\svchost.exe中,并打开防火墙的白名单,设置防火墙白名单,设置自启动项Run键。复制成功则运行exe文件,否则退出进程
如下图,通过解密字符串得到需要设置的键值对,这里应该是杀软相关操作,只不过针对的是微软的安全防护相关的服务。操作有: 关,关闭 AntiSpyware,关闭实时扫描,关闭访问保护,关闭行为监控,关闭 AntiVirus/防火墙/系统更新及通知,关闭 实时保护,并使用解密出来的注册表键值进行设置
OD中动态解密字符串如下所示
其中解密函数是以Tldr为密钥按位进行异或后取反得到,如下图所示:
如下图,下面的部分是在循环中不停的拼接URI然后去请求相应的资源,可以访问的话,将执行加密签名操作并执行恶意程序,猜测是免杀操作,如果不能访问则,继续循环拼接URI及访问它
经过分析后可得文件结构如下:
DWORD
0x2153474E(特殊标识)
DWORD
记录密钥部分大小(若此数大于 0x10 则按 0x10 算)
BYTE[0-16]
文件部分密钥(大小为 0-16 个字节)
BYTE
原程序加密后数据
样本核心操作,创建了两个线程
第一个线程功能是替换剪切板里的内容,猜测是替换一些虚拟货币的地址,如比特币
该病毒保存了多个地址,有一套过滤规则,如果符合规则就替换为准备好的地址,经 OD 调试该线程也验证 了猜测,部分规则如下:
复制 3JHbgxWSZzvG73eeMZuTvV8La0000SwH5e,粘贴时候就为 3JHbgxWSZzvG73eeMZuTvV8LaCwPaSwH5e
第二个线程功能是遍历驱动器找出可移动或远程磁盘,以扩展名过滤待删除文件,并移动其余文件或文件 夹到根目录下的文件夹“__”中,其中有过 COM 组件的一些函数调用,但环境不匹配就不在分析了
每个待处理磁盘都会新建“__”文件夹,并将自身复制到其中命名为 DriveMgr.exe,还会在根目录下新建 autorun.inf (双击盘符自动运行 DriveMgr.exe),代码如下所示:
其中的 comFuncUnknown_401EF0 函数中有 COM 组件的调用,但虚拟机环境没有对应组件,代码如下所示:
调用时用了两个 ID:
CLSID :00021401-0000-0000-C000-000000000046 IID :000214F9-0000-0000-C000-000000000046 其中的 CLSID 指向 shell32.dll,IID 是没找到,如下所示:
处理文件的动作是将“”,autorun.inf,卷名.lnk 之外的所有文件(会对根目录下的文件进行后缀筛选,符 合条件就删除)或文件夹移动到“”中,代码如下所示:
以下是根目录下需删除文件的后缀及过滤条件的设置:
四、病毒行为
该病毒会判断主机是否为乌克兰的主机,是乌克兰的主机直接退出,不是的话,会关闭微软的安全服务、更新服务、和防火墙服务,并通过预先设定好URI请求恶意资源,本地免杀后执行下载的恶意程序。在根目录下创建文件夹"__ "设置属性系统、只读、隐藏为同时自我复制为DriverMgr.exe,劫持剪切板过滤内容将比特币的地址替换为自己的地址。