一款面试中遇到的病毒
本帖最后由 speciaN 于 2024-8-17 17:04 编辑# 一、样本概况
### 文件: 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
https://s21.ax1x.com/2024/08/17/pACWGlj.webp
总结一下,这个样本可能有网络行为,遍历文件,查询窗口获取特定窗口句柄,加密解密,操作注册表(猜测会有写入自身路径到run键实现开机自启动的操作),Com组件调用等功能
## 资源表:
资源表未见异常
https://s21.ax1x.com/2024/08/17/pACWI9e.webp
## 数据目录表:
数据目录表中未见TLS表,该样本并没有TLS表,一般TLS可以用作反调试,所以我们要关注到这点。另外其它也未见异常
样本行为监测:
尝试建立TCP连接,并通过HTTP协议的get方法请求相应的资源,下图中的地址分别葡萄牙与美国的IP,猜测是通过http协议下载一些恶意代码进行本地执行
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/0db67979-a58e-4f86-a014-9e6d3bb42f5f.png)
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/a74c24e6-e0d3-4cfd-bdb2-438e5bb42760.png)
禁用Windows安全中心的一些功能
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/b20baf89-194c-471b-bd14-1cf91b8399c3.png)
有对一些浏览器临时浏览产生的文件的一些操作,也有对Cookie的一些操作,猜测是在提取恶意程序
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/bdb5fbf2-886d-46a0-9576-61a563a5d9b8.png)
改名运行后发现自启动项,加到了run键
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/13e71474-8552-409d-b402-b27d81b5f2db.png)
# 三、代码分析
在IDA中分析,先找到Winmain入口函数
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/042f1aec-dfe7-48c7-b604-0e95688e049f.png)
通过F5生成伪C代码,我们先分析第一段,发现大量重复操作都是将文件的内容移动后,在将文件删除掉,然后进行相应的休眠,猜测是为了恶意代码执行的更为流畅。如下图所示
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/fa2e3bba-d0b9-4c6e-ad56-be133b9535a7.png)
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/c4f73063-a1fb-4950-9604-7b7a65fa8448.png)
下如图,判断是否为乌克兰的主机,如果是乌克兰的主机的话就直接退出。之后对一些变量进行了初始化。猜测病毒作者可能是个乌克兰人,亦或者是一种栽赃手段
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/2f2af89d-4888-4412-9211-3f35b0107b43.png)
如下图,Check_IP_Get_GPS_402960()这个函数主要是通过(http://api.wipmania.com/) 网址来获取当前中招主机所在的地理位置信息,如果是UA也就是乌克兰的话,return 1,不是的话return 0
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/d70639ca-2aef-4725-b893-0a717c311c34.png)
http://api.wipmania.com 是一个判断国家区域的网址,关键字符 UA 是乌克兰的缩写
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/14ddb330-d67c-456a-8ff5-577c364d436d.png)
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/36b85728-d628-4809-99e7-24ac9d6c6038.png)
如下图,Check_SystemTime_Get_Linguistic_context_402910() 这个函数主要是通过获取系统语言环境对比关键字是否为UKR也就是乌克兰是的话 return1 否则 return 0
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/a09ebc66-409f-4dec-a65f-966e9dc861c3.png)
如下图,继续往下分析,做了Com库的初始化,同时生成了事件种子,并且获取了CSP密钥容器环境,获取了当前病毒进程的完整路径,并病毒文件名检测是否包含svchost.
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/bf804111-58ef-4c74-84e7-4f72074f2cd4.png)
如下图,创建随机值目录,自我复制到C:\随机数\svchost.exe中,并打开防火墙的白名单,设置防火墙白名单,设置自启动项Run键。复制成功则运行exe文件,否则退出进程
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/a0f0d9cc-6da5-4783-b330-b1263827d264.png)
如下图,通过解密字符串得到需要设置的键值对,这里应该是杀软相关操作,只不过针对的是微软的安全防护相关的服务。操作有: 关,关闭 AntiSpyware,关闭实时扫描,关闭访问保护,关闭行为监控,关闭 AntiVirus/防火墙/系统更新及通知,关闭 实时保护,并使用解密出来的注册表键值进行设置
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/828bf48d-ae4a-441d-8708-a894832a0ab9.png)
OD中动态解密字符串如下所示
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/2ad6904b-869f-4a13-80c0-d6dff90fe17c.png)
其中解密函数是以Tldr为密钥按位进行异或后取反得到,如下图所示:
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/7c3e73d8-436e-4df4-a0e8-c5363fbf8855.png)
如下图,下面的部分是在循环中不停的拼接URI然后去请求相应的资源,可以访问的话,将执行加密签名操作并执行恶意程序,猜测是免杀操作,如果不能访问则,继续循环拼接URI及访问它
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/5e9690fc-bc65-4118-99c0-3d0d40122b02.png)
经过分析后可得文件结构如下:
DWORD
0x2153474E(特殊标识)
DWORD
记录密钥部分大小(若此数大于 0x10 则按 0x10 算)
BYTE
文件部分密钥(大小为 0-16 个字节)
BYTE
原程序加密后数据
样本核心操作,创建了两个线程
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/f66fd38b-0d91-4933-b580-0b4f6fa03b28.png)
第一个线程功能是替换剪切板里的内容,猜测是替换一些虚拟货币的地址,如比特币
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/ad85b2be-82ca-4136-8612-47a86d296469.png)
该病毒保存了多个地址,有一套过滤规则,如果符合规则就替换为准备好的地址,经 OD 调试该线程也验证 了猜测,部分规则如下:
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/fa83e017-c8f2-4e38-834f-779f8b1cc3d8.png)
复制 3JHbgxWSZzvG73eeMZuTvV8La0000SwH5e,粘贴时候就为 3JHbgxWSZzvG73eeMZuTvV8LaCwPaSwH5e
第二个线程功能是遍历驱动器找出可移动或远程磁盘,以扩展名过滤待删除文件,并移动其余文件或文件 夹到根目录下的文件夹“__”中,其中有过 COM 组件的一些函数调用,但环境不匹配就不在分析了
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/52557b67-a9fe-4478-acc7-4639576fd46b.png)
每个待处理磁盘都会新建“__”文件夹,并将自身复制到其中命名为 DriveMgr.exe,还会在根目录下新建 autorun.inf (双击盘符自动运行 DriveMgr.exe),代码如下所示:
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/af0e0d7d-9f2f-468a-a146-46d5969b0722.png)
其中的 comFuncUnknown_401EF0 函数中有 COM 组件的调用,但虚拟机环境没有对应组件,代码如下所示:
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/9b508309-4e74-4a3d-b40e-5fd56f59af71.png)
调用时用了两个 ID:
CLSID :00021401-0000-0000-C000-000000000046 IID :000214F9-0000-0000-C000-000000000046 其中的 CLSID 指向 shell32.dll,IID 是没找到,如下所示:
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/b3f60800-cb44-4bf9-9aab-df2a29e05426.png)
处理文件的动作是将“__”,autorun.inf,卷名.lnk 之外的所有文件(会对根目录下的文件进行后缀筛选,符 合条件就删除)或文件夹移动到“__”中,代码如下所示:
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/3c72fe27-4096-440f-ba14-f064332a49ba.png)
以下是根目录下需删除文件的后缀及过滤条件的设置:
![](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/Wmeona8y7j1mlXxj/img/90e344a6-8c1a-42e5-8955-03245175ad5c.png)
# 四、病毒行为
该病毒会判断主机是否为乌克兰的主机,是乌克兰的主机直接退出,不是的话,会关闭微软的安全服务、更新服务、和防火墙服务,并通过预先设定好URI请求恶意资源,本地免杀后执行下载的恶意程序。在根目录下创建文件夹"__ "设置属性系统、只读、隐藏为同时自我复制为DriverMgr.exe,劫持剪切板过滤内容将比特币的地址替换为自己的地址。 这个病毒能改造成 一键关闭微软的安全服务、更新服务、和防火墙服务的小工具么{:1_909:} 乌克兰病毒 楼主牛皮 楼主厉害了 哈哈,看到乌克兰有点蚌埠住了。。 文章写的很好,感谢分享。 学习了,属实想不到面试居然还能遇到病毒 厉害了厉害了 乌克兰发出的病毒?? 什么情况 面试 大佬牛逼