EdvinPiirsalu/baddoc-static-analysis
GitHub: EdvinPiirsalu/baddoc-static-analysis
该项目通过 VirusTotal、ExifTool 和 strings 对一个恶意 Office 文档进行静态分析,演示了在不执行样本的情况下提取入侵指标和识别恶意行为的完整流程。
Stars: 1 | Forks: 0
# baddoc-static-analysis
使用 VirusTotal、ExifTool 和 string 分析对恶意 Microsoft Office 文档进行静态恶意软件分析。
# 可疑文档的静态分析 (baddoc.doc)
## 静态分析
静态分析是在不执行文件的情况下对其进行检查的过程。其目标是识别入侵指标 (IOC)、可疑代码、元数据以及其他可能表明恶意行为的特征。
分析的样本是 `baddoc.doc`。
此项分析是使用 LetsDefend 虚拟机完成的实验室练习。
## 1. Hash 分析与 VirusTotal
第一步是生成文件的加密 hash 以对其进行唯一标识。
使用终端:
```
md5sum baddoc.doc
```
输出:
```
a3b613d128aace09241504e8acc678c2
```
接下来,生成 SHA-256 hash:
```
sha256sum baddoc.doc
```
输出:
```
8b92c23b29422131acc150fa1ebac67e1b0b0f8cfc1b727805b842a88de447de
```
然后在 VirusTotal 上搜索 MD5 hash。
VirusTotal 报告称有 49 家安全供应商将该文件识别为恶意文件,这有力地表明该文档包含恶意软件。
“Details”标签页显示:
- MD5 和 SHA-256 hash
- 文件创建和提交历史
- 首次出现和首次提交日期
- 该样本使用的已知文件名
“Relations”标签页显示恶意软件连接的 IP 地址。
“Behavior”标签页显示沙箱分析结果,包括:
- DNS 解析
- 网络流量
- 连接的 IP 地址
- 释放的文件
- 注册表修改
- 进程树
这些信息为了解恶意软件的行为提供了有价值的见解,而无需在本地执行。
## 2. 使用 ExifTool 进行元数据分析
接下来,使用以下命令检查文档元数据:
```
exiftool baddoc.doc
```
ExifTool 提供详细的元数据,包括:
- 文件名
- 文件大小
- 修改日期
- 文件权限
- 文件类型
- 文件扩展名
- 语言
- 使用的模板
- 创建和修改日期
几个可疑的发现非常引人注目:
- 文档语言为俄语,这可能表明其来源或预期目标。
- 模板为 .dotm,其中“m”表示该模板支持宏。由于恶意 Office 文档通常滥用宏来执行代码,这大大增加了其可疑程度。
总体而言,ExifTool 提供的有用上下文信息有助于识别潜在的恶意文档。
## 3. String 分析
下一步是从文件中提取可读的 string:
```
strings -n 5 baddoc.doc
```
此命令显示长度为五个或更多字符 (>=5) 的所有可打印 string。
在此分析过程中,我会寻找以下指标:
- IP 地址
- URL 和域名
- 可疑文件路径
- PowerShell 命令
- 可疑的文件位置
- 恶意文件和代码
- 网络通信
- User-Agent string
我们识别出了几个可疑指标:
- `\AppData\Local\Temp\`
- 表明恶意软件可能会将文件写入临时目录。
- `SELECT * FROM Win32_OperatingSystem`
- 一个常用于收集系统信息的查询。
- IP 地址 `91.220.131...`
- 用于网络通信的硬编码 IP 地址。
- `If objXMLHTTP.Status = 200 Then`
- 表明文档执行了 HTTP 请求,并在收到成功响应后执行额外代码。
- `$url = 'http://91.220.131...'`
- 对同一恶意 IP 地址的相同引用。
- `ping 1.1.2.2 -n`
- 恶意软件常用的休眠技术,用于延迟执行并规避自动沙箱检测。
- `User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X...)`
- Office 文档内出现 HTTP User-Agent string 意味着它会与远程服务器进行通信。
- `Start-Sleep -s 15`
- 延迟执行的 PowerShell 命令,这是另一种常见的反分析技术。
- `AutoOpen`
- 一个 Microsoft Office 宏函数,在打开文档或启用宏时自动执行。
## 结论
静态分析识别出了许多通常与恶意 Office 文档相关的指标。
这些包括:
- 被 VirusTotal 上的 49 家防病毒供应商检测到。
- 启用宏的模板 (.dotm)。
- 硬编码的 IP 地址。
- 通过 HTTP 请求进行的网络通信。
- PowerShell 命令。
- 用于系统侦察的查询。
- 使用 AutoOpen 宏自动执行。
- 旨在规避沙箱检测的延迟执行技术。
基于这些发现,可以合理地断定 baddoc.doc 是一个恶意文档,旨在一旦启用嵌入的宏,就会执行恶意软件。
然后在 VirusTotal 上搜索 MD5 hash。
VirusTotal 报告称有 49 家安全供应商将该文件识别为恶意文件,这有力地表明该文档包含恶意软件。
“Details”标签页显示:
- MD5 和 SHA-256 hash
- 文件创建和提交历史
- 首次出现和首次提交日期
- 该样本使用的已知文件名
“Relations”标签页显示恶意软件连接的 IP 地址。
“Behavior”标签页显示沙箱分析结果,包括:
- DNS 解析
- 网络流量
- 连接的 IP 地址
- 释放的文件
- 注册表修改
- 进程树
这些信息为了解恶意软件的行为提供了有价值的见解,而无需在本地执行。
## 2. 使用 ExifTool 进行元数据分析
接下来,使用以下命令检查文档元数据:
```
exiftool baddoc.doc
```
ExifTool 提供详细的元数据,包括:
- 文件名
- 文件大小
- 修改日期
- 文件权限
- 文件类型
- 文件扩展名
- 语言
- 使用的模板
- 创建和修改日期
几个可疑的发现非常引人注目:
- 文档语言为俄语,这可能表明其来源或预期目标。
- 模板为 .dotm,其中“m”表示该模板支持宏。由于恶意 Office 文档通常滥用宏来执行代码,这大大增加了其可疑程度。
总体而言,ExifTool 提供的有用上下文信息有助于识别潜在的恶意文档。
## 3. String 分析
下一步是从文件中提取可读的 string:
```
strings -n 5 baddoc.doc
```
此命令显示长度为五个或更多字符 (>=5) 的所有可打印 string。
在此分析过程中,我会寻找以下指标:
- IP 地址
- URL 和域名
- 可疑文件路径
- PowerShell 命令
- 可疑的文件位置
- 恶意文件和代码
- 网络通信
- User-Agent string
我们识别出了几个可疑指标:
- `\AppData\Local\Temp\`
- 表明恶意软件可能会将文件写入临时目录。
- `SELECT * FROM Win32_OperatingSystem`
- 一个常用于收集系统信息的查询。
- IP 地址 `91.220.131...`
- 用于网络通信的硬编码 IP 地址。
- `If objXMLHTTP.Status = 200 Then`
- 表明文档执行了 HTTP 请求,并在收到成功响应后执行额外代码。
- `$url = 'http://91.220.131...'`
- 对同一恶意 IP 地址的相同引用。
- `ping 1.1.2.2 -n`
- 恶意软件常用的休眠技术,用于延迟执行并规避自动沙箱检测。
- `User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X...)`
- Office 文档内出现 HTTP User-Agent string 意味着它会与远程服务器进行通信。
- `Start-Sleep -s 15`
- 延迟执行的 PowerShell 命令,这是另一种常见的反分析技术。
- `AutoOpen`
- 一个 Microsoft Office 宏函数,在打开文档或启用宏时自动执行。
## 结论
静态分析识别出了许多通常与恶意 Office 文档相关的指标。
这些包括:
- 被 VirusTotal 上的 49 家防病毒供应商检测到。
- 启用宏的模板 (.dotm)。
- 硬编码的 IP 地址。
- 通过 HTTP 请求进行的网络通信。
- PowerShell 命令。
- 用于系统侦察的查询。
- 使用 AutoOpen 宏自动执行。
- 旨在规避沙箱检测的延迟执行技术。
基于这些发现,可以合理地断定 baddoc.doc 是一个恶意文档,旨在一旦启用嵌入的宏,就会执行恶意软件。标签:Ask搜索, DAST, VirusTotal, 云安全监控, 威胁情报, 安全分析报告, 开发者工具, 恶意软件分析, 文档分析, 静态分析