YVnopLlM.exe木马分析:流量分析到调式解密传输文本内容
2024-8-3 19:9:21 Author: www.freebuf.com(查看原文) 阅读量:10 收藏

前言

往年笔记:这篇文章将深入分析近期发现的一个恶意软件样本——YVnopLlM.exe,它是一款变种木马病毒,属于特洛伊木马家族。然后直接通过分析它的指标信息、沙盒行为以及流量数据,在通过一些方式发现其主要功能,并探讨可能存在的潜在威胁。文章将重点关注该木马病毒在不同操作系统环境下的行为差异,以及它与C&C服务器的通信方式,并尝试解密其加密的通信内容,以更深入地了解其运作机制。

指标

Target:YVnopLlM.exe
Size:524KB
MD5:f5a77ac2b0d38484b59f60483404cc57
SHA1:a729d4c284ca2e377350d74574b19c454cd5486b
SHA256:58327386f79b956190c72352fa5d95e5c51c77a060de3800c250edf7c3ccac98
SHA512:d6f7164c434f9817f027058c709d42d49965f20256dc48907e846c0c5af4ddddc7ec2ed15268e3725e19d63559e409471d48a41d6f9f9f59510169f6857bb227
SSDEEP:6144:0ngQpqhQlD1r3fW06kxfbGCclpAkSlyBhtkEWU9/:cNu0ZxBEA+X/x

Trojan:MSIL/Razy.PSHE!MTB

恶意软件(木马类型)

目前这款恶意软件被多个安全软件厂家、沙盒标签定为:trojan.msil/lazy,家族为特洛伊木马,这款是变种木马,Trojan相当于是一个大类包括(Backdoor、Keylogger、Spyware、RAT (Remote Access Trojan)、Banking Trojan)等等都是根据不的变体,根据Trojan.msil这款恶意软件,我通过搜索和参考了解到了这款款木马的一些主要功能。

Trojan.MSIL/Lazy木马的主要功能可以包括以下方面:

  1. 持久性感染:Trojan.MSIL/Lazy木马可以在系统中建立持久性存在,以确保在系统启动时自动运行并保持活动状态。

  2. 远程控制:木马可能与远程命令和控制服务器建立连接,使攻击者能够远程控制受感染系统并执行各种指令。

  3. 数据窃取:Trojan.MSIL/Lazy木马可以窃取受感染系统中存储的敏感数据,如个人身份信息、登录凭据、金融信息等。

  4. 启动其他恶意活动:木马可以作为入侵的起点,为其他恶意软件的传播和执行提供后门或入口。

  5. 远程执行代码:攻击者可以通过木马向受感染系统发送和执行任意代码,以实现特定的恶意活动,如文件操作、系统操作等。

  6. 反防御功能:Trojan.MSIL/Lazy木马可能会尝试绕过安全软件和防御机制,以保持其存在并避免被检测和删除。

那么我也发现了其它家族的木马,Trojan:MSIL/Razy.PSHE!MTB、Trojan.MSIL.Injuke、Trojan.MalPack.MSIL这类的,每款的变种功能都是不一致例如Trojan.MSIL.Injuke是通过钓鱼邮件的方式、注入有效木马病毒,加密PC端的文件后PC桌面留个赎金文本,这种是以勒索为主,也有以监听、数据盗取、加密货币盗窃等目的。

沙盒以及安全软件分析

我是下载了样本放到微步沙盒进行分析一下,后来发现火绒报的病毒类型好像有点不一致,我把ID和名称放出来,后续在跟进,我们继续

病毒名称:VirTool/MSIL.Obfuscator.als
病毒ID:275FE89466BB73DD

微步报告

刚好吧上面写完,微步分析报告出来了,我们在根据微步的报告进行分析一下,我直接把报告贴出来,可以跟着一起看比较顺畅,MD5/SHA依然是不变的,需要通过主文件收集子文件,微步报告:https://s.threatbook.com/report/file/58327386f79b956190c72352fa5d95e5c51c77a060de3800c250edf7c3ccac98

win7(32bit)环境动态分析

在win7(32bit)的情况下并未释放文件,在ccac98.exe文件下PID:4064还存在反逆向反调试

微步动态分析了2个进程详情
ccac98.exe(PID:4064)
 "C:\tmpiyry8u\ccac98.exe"
     powershell.exe(PID:540)
        "C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe"

win10(64bit)环境动态分析

根据动态分析结果在win10环境下,这个恶意软件才会完全触发,在powershell.exe运行后对45.93.201.62进连接,在win7环境并未链接45.93.201.62这个地址,看来这款恶意软件有点挑食了。

共分析了2个进程
YVnopLlM.exe(PID:5460)
 "C:\tmpgslro7\YVnopLlM.exe"
   powershell.exe(PID:3776)
     "C:/Windows/SysWOW64/WindowsPowerShell/v1.0/powershell.exe"

在powershell后去链接的45.93.201.62这个恶意IP地址,标签都已经被打上了,HTTP进程指向了:http://45.93.201.62/docs/750SOhFfNdBuADhDhNSZLwDL0yHP8R.txt,因为我这边访问不了,所以找到之前的文章参考找到了http://45.93.201.62/docs/的目录截图。

在下面一张图可以看到最新的有效负载的一个文本,通常这类的需要通过加解密才可进行下一步工作,所以我们先放一放后面在弄,这篇文章内容较多。

文本内容是这样的

目标主机通信样本活跃度,通过该方式可以判断恶意软件的活跃度,以及追踪画了红框的是我今天下午才上传都微步的样本,关联到了目标IP,说明该恶意软件是活跃的,而且隐匿并不强,可以更加方便的进行追踪。https://x.threatbook.com/v5/ip/45.93.201.62

Virustotal报告

我是最先是通过Virustotal这个报告来定义恶意软件的家族类型,我先把报告放出来:https://www.virustotal.com/gui/file/58327386f79b956190c72352fa5d95e5c51c77a060de3800c250edf7c3ccac98/detection

检测、释放、连接都差不多是一致的,可以通过上面那张图看到我是使用SHA256进行搜索的,那么我可以通过这个主文件的方式去搜索关系文件,可以称为子文件,不管是否活动时间在2022年或者更久以前,只要沙箱有其他人提交了样本或者相关指纹匹配到了有关联那么基本都有结果了。放上连接:https://www.virustotal.com/graph/58327386f79b956190c72352fa5d95e5c51c77a060de3800c250edf7c3ccac98

上图内容可以通过微步报告中可以发现相关其3个IP通信目标情况,然而45.93.201.62这个通信IP并不打算隐匿,没有任何防护直接暴露出马脚,参与攻击详情内容:XDR, 레드라인 스틸러를 사용한 접대 업계를 대상으로 스피어 피싱 캠페인 공개 관련 IOC 20개 발견、Spear-Phishing Campaign Targeting Hospitality Industry Using RedLine Stealer、这两项是酒店行业鱼叉攻击的,通过搜索可找到相关的内容,那么还可以继续通过相关的攻击进行深入分析该组织的恶意行为。

为了不跑题,其余不在说,相关链接已放有空可以自行去研究、分析,回到主题。

YVnopLlM.exe木马流量分析

通过SHA256搜索可以找到相关的流量样本,关于怎么快速去判定恶意流量

  1. 关注异常流量行为:观察网络流量中是否存在异常的行为,如大量的重复连接、频繁的连接尝试、异常的数据包大小或频率等。这些异常行为可能暗示着恶意活动。

  2. 查看未知协议或非标准端口:注意网络流量中出现的未知协议或使用非标准端口的通信。这可能是恶意软件使用的定制协议或隐藏的通信方式。

  3. 分析通信模式:检查通信模式是否符合正常网络通信的行为,如异常的数据量、不寻常的通信频率或流量方向的变化。这些可以是恶意软件通信的指标。

  4. 关注异常的响应码或错误消息:检查响应码或错误消息中是否存在异常或不寻常的内容,如HTTP响应码4xx或5xx、DNS查询失败等。

  5. 分析数据包内容:仔细检查数据包的内容,特别是与恶意活动相关的协议或通信。这可能包括恶意软件的命令和控制通信、恶意下载或上传的数据等。

  6. 使用威胁情报数据:结合Wireshark和威胁情报数据,比对已知的恶意IP地址、域名或URL。这有助于识别和标记与已知恶意活动相关的流量。

还有一点就是在审查的时候看个人喜欢,怎么顺手怎么来吧,也可以通过特定命令对IP进行筛选来审,总之怎么顺手怎么来。我还是老样子,使用顺序从头看到尾。

(受害者)受害源地址为 10.127.0.213,(攻击者)目的地址为 45.93.201.62
(受害者)源端口号为49755,(攻击者)目标端口号为80

中马时间:2023年1月27日早上06:31:45
PS:这个时间是运行及与目的地址为 45.93.201.62进行通信时间,如需要大概那么可以往上审查或者往前几分钟都是没问题的。

首先199行-201行的数据流量相当是运行exe后建立一个请求连接目的地址IP,然后exe释放一个powershell.exe,powershell运行命令返回到通信地址,而且在微步报告还是Virustotal报告中都有这个流程。

上面那一步完成后,直接通过powershell执行命令向http://45.93.201.62/docs/750SOhFfNdBuADhDhNSZLwDL0yHP8R.txt建立一个HTTP请求

Frame 202: 250 bytes on wire (2000 bits), 250 bytes captured (2000 bits)
Ethernet II, Src: f6:de:28:fd:18:f9 (f6:de:28:fd:18:f9), Dst: ba:1d:1d:17:cb:22 (ba:1d:1d:17:cb:22)
Internet Protocol Version 4, Src: 10.127.0.213, Dst: 45.93.201.62
Transmission Control Protocol, Src Port: 49755, Dst Port: 80, Seq: 1, Ack: 1, Len: 196
Hypertext Transfer Protocol
    GET /docs/750SOhFfNdBuADhDhNSZLwDL0yHP8R.txt HTTP/1.1\r\n
        [Expert Info (Chat/Sequence): GET /docs/750SOhFfNdBuADhDhNSZLwDL0yHP8R.txt HTTP/1.1\r\n]
            [GET /docs/750SOhFfNdBuADhDhNSZLwDL0yHP8R.txt HTTP/1.1\r\n]
            [Severity level: Chat]
            [Group: Sequence]
        Request Method: GET
        Request URI: /docs/750SOhFfNdBuADhDhNSZLwDL0yHP8R.txt
        Request Version: HTTP/1.1
    User-Agent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.19041.1237\r\n
    Host: 45.93.201.62\r\n
    Connection: Keep-Alive\r\n
    \r\n
    [Full request URI: http://45.93.201.62/docs/750SOhFfNdBuADhDhNSZLwDL0yHP8R.txt]
    [HTTP request 1/1]
    [Response in frame: 2339]

到最后一个数据包中攻击IP向受害IP建立了一个请求,请求中访问了一个URL: http://45.93.201.62/docs/750SOhFfNdBuADhDhNSZLwDL0yHP8R.txt,URL内容是WMB0wNDNCu2ZmOSowHp80lvINCkYGfd42KmyHIW0SaP99R72YDOE2X0DfNvHK0dkpkOGvnnoHMZeIwr5ySy3iKTj9qOBeBc95UPACjW/0dHlQRfXQKr2luDDy1ZgDgzWrREfCkPx02+M6LwK7bSeTqgmnzRPzmNl4Wpn+rSYyzpZjLzXGBplntKCWuNxyhF1+Sz1I76Y3aJ45uXe+hWiI8EIR1TqiiDqDv,这段内容被加密了

Frame 2339: 1368 bytes on wire (10944 bits), 1368 bytes captured (10944 bits)
Ethernet II, Src: ba:1d:1d:17:cb:22 (ba:1d:1d:17:cb:22), Dst: f6:de:28:fd:18:f9 (f6:de:28:fd:18:f9)
Internet Protocol Version 4, Src: 45.93.201.62, Dst: 10.127.0.213
Transmission Control Protocol, Src Port: 80, Dst Port: 49755, Seq: 1875441, Ack: 197, Len: 1314
[1386 Reassembled TCP Segments (1876754 bytes): #204(1360), #205(1360), #206(1360), #207(1360), #208(1360), #209(1360), #210(1360), #211(1360), #212(1360), #213(1360), #219(1360), #220(1360), #221(1360), #222(1360), #223(1360), #224(1360), ]
Hypertext Transfer Protocol
    HTTP/1.1 200 OK\r\n
        [Expert Info (Chat/Sequence): HTTP/1.1 200 OK\r\n]
            [HTTP/1.1 200 OK\r\n]
            [Severity level: Chat]
            [Group: Sequence]
        Response Version: HTTP/1.1
        Status Code: 200
        [Status Code Description: OK]
        Response Phrase: OK
    Server: nginx/1.18.0\r\n
    Date: Thu, 26 Jan 2023 22:31:45 GMT\r\n
    Content-Type: text/plain\r\n
    Content-Length: 1876480\r\n
        [Content length: 1876480]
    Connection: keep-alive\r\n
    Last-Modified: Tue, 20 Dec 2022 10:16:37 GMT\r\n
    ETag: "1ca200-5f03fbb29137e"\r\n
    Accept-Ranges: bytes\r\n
    Vary: Accept-Encoding\r\n
    \r\n
    [HTTP response 1/1]
    [Time since request: 3.370852000 seconds]
    [Request in frame: 202]
    [Request URI: http://45.93.201.62/docs/750SOhFfNdBuADhDhNSZLwDL0yHP8R.txt]
    File Data: 1876480 bytes
Line-based text data: text/plain (1 lines)
     [truncated]WMB0wNDNCu2ZmOSowHp80lvINCkYGfd42KmyHIW0SaP99R72YDOE2X0DfNvHK0dkpkOGvnnoHMZeIwr5ySy3iKTj9qOBeBc95UPACjW/0dHlQRfXQKr2luDDy1ZgDgzWrREfCkPx02+M6LwK7bSeTqgmnzRPzmNl4Wpn+rSYyzpZjLzXGBplntKCWuNxyhF1+Sz1I76Y3aJ45uXe+hWiI8EIR1TqiiDqDv

木马YVnopLlM.exe调试-解密HTTP传输的文本

直接进入主题

Process类是用于与操作系统中的进程进行交互的类。它提供了一组方法和属性,用于启动、停止、监视和与外部进程进行通信。

在代码中,process_0变量可能是一个Process对象的实例,而process_0.StartInfo属性则可能用于设置要启动的进程的相关信息,例如可执行文件路径、命令行参数等。

StreamWriter standardInput = process_0.StandardInput;这行代码用于获取与正在运行的进程相关联的标准输入流,并将其分配给名为standardInputStreamWriter对象。

在这个上下文中,process_0是一个Process对象,表示正在运行的进程。StandardInput属性是Process类的一个属性,它表示与进程关联的标准输入流。通过将其赋值给standardInput变量,可以在代码中使用standardInput来向进程的标准输入流写入数据。

通过这种方式,可以与正在运行的进程进行交互,向其发送输入数据。这对于与外部进程进行通信或控制外部进程的执行非常有用。

代码块处于一个循环中,根据num的值来执行不同的逻辑。在这里,case 0可能是获取某个字符串,并将其赋值给string_6,然后在case 1中将string_6的内容写入流中。

在根据使用的一个方法找到相关命名在打上端点就OK了,找smethod_7方法

  1. 调用process_0.Start()方法,启动process_0进程。

  2. num的值设置为Math.Abs(-9)的结果,然后继续循环。

process_0.Start()方法用于启动一个进程,它会执行与process_0关联的可执行文件或命令。通过调用这个方法,可以启动一个新的进程并开始执行相应的任务。在这段代码中,当num的值为 0 时,会启动process_0进程,并将num的值更新为Math.Abs(-9)的结果,然后继续循环。

应该OK了,直接启动调试

点继续-继续找string_3

点继续-继续找string_4

找到String_4直接复制值

String_6一样,但是需要点击一下继续就复制一段,而且不是完整的。

解密环节

通过上面的操作,IV和KEY结果出来了,复制出来,稍微整理。

通过解密后文本的负载是释放这个相关文件:https://www.virustotal.com/gui/file/81cc8e439194bb4349d76b87933684c288b855e4ff07d16263ff28c034ad0fc6/details

Basic properties
MD5	5be56d52f7563020f5ebd9c605031d8b
SHA-1	4faec9ad61c7a40aac0f7182dc8d97ff8ba66a7d
SHA-256	81cc8e439194bb4349d76b87933684c288b855e4ff07d16263ff28c034ad0fc6

下面这张图的关系报告地址;https://www.virustotal.com/graph/81cc8e439194bb4349d76b87933684c288b855e4ff07d16263ff28c034ad0fc6,可以看到81cc8e439194bb4349d76b87933684c288b855e4ff07d16263ff28c034ad0fc6这个主文件通过一个ZIP文件在到达一个俄罗斯的目的地IP,而且这个文件多了一个韩国的目的IP。

结束语

通过对这个YVnopLlM.exe木马的分析,我们可以看到它利用Powershell进行远程控制,并通过加密的HTTP请求与目标服务器通信,最终释放一个新的恶意文件。分析过程从样本的识别、沙盒和安全软件分析、动态分析、流量分析、到最终解密,展现了恶意软件分析的一般流程。值得注意的是,这个恶意软件使用了较明显的C2地址,没有进行过多的隐藏,这可能意味着攻击者并不想隐蔽自己的行动,也可能意味着其攻击目标更加明确。此外,通过Virustotal的分析结果,我们可以推断该恶意软件可能与酒店行业鱼叉攻击有关,这值得我们进一步深入研究。


文章来源: https://www.freebuf.com/articles/system/407751.html
如有侵权请联系:admin#unsafe.sh