社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 6511阅读
  • 2回复

[分享]一款面试中遇到的病毒

楼层直达
z3960 
级别: 茶馆馆主
发帖
770867
飞翔币
207694
威望
215657
飞扬币
2511641
信誉值
8



一、样本概况



文件: svchost.exe1.exe



所属家族:未知



大小: 38400 bytes



修改时间: 2022年5月15日, 14:04:08



MD5: 9A50980AFB1C6A43CF38872E694BB7DB



SHA1: 237AA3EE8C912E6F8326782B790327562CEF8DD9



CRC32: C4F48BF1



编译器版本:VC6.0



加壳情况:未加壳



二、样本浅析



导入表:


网络相关高级API


遍历文件API,获取磁盘信息API

找到特定窗口获取句柄的API,剪切板用的API

加密用的API

Com组件API

注册表相关操作API

总结一下,这个样本可能有网络行为,遍历文件,查询窗口获取特定窗口句柄,加密解密,操作注册表(猜测会有写入自身路径到run键实现开机自启动的操作),Com组件调用等功能

资源表:


资源表未见异常


数据目录表:


数据目录表中未见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,劫持剪切板过滤内容将比特币的地址替换为自己的地址。
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。
级别: 超级版主
发帖
833819
飞翔币
226630
威望
224648
飞扬币
2443961
信誉值
0

只看该作者 1 发表于: 2022-06-26
来看一下
级别: 超级版主
发帖
833819
飞翔币
226630
威望
224648
飞扬币
2443961
信誉值
0

只看该作者 2 发表于: 2022-06-26
不错,了解了