SuperAPI AI 工具集

analyzing-outlook-pst-for-email-forensics

安全与审计

查看项目

更新于 10-15 16:35

技能介绍

用途

本技能面向数字取证与安全事件响应场景,用于分析 Microsoft Outlook 的 PST(Personal Storage Table)和 OST(Offline Storage Table)文件。PST/OST 文件以基于 MAPI(Messaging Application Programming Interface)属性系统的专有二进制格式存储邮件、日历事件、联系人、任务和便笺,是数字取证调查中的关键证据来源。通过对这些文件的取证分析,可以恢复已删除邮件(来自 Recoverable Items 文件夹)、提取邮件头以追踪消息路由、分析附件中的恶意软件或外泄数据,并重建通信模式。

主要能力

  • 解析 PST/OST 文件中的邮件内容、邮件头、附件、已删除项目及 MAPI 元数据。
  • 使用 libpff / pffexport 导出全部项目、仅邮件或已恢复/已删除项目,并通过 pffinfo 获取 PST 文件信息。
  • 使用 Python 的 pypff 或 libratom 库编写取证分析脚本,递归遍历文件夹、提取消息元数据、导出附件并生成 JSON 报告。
  • 邮件头分析:Received(消息路由链,自下而上阅读)、X-Originating-IP(发件人实际 IP)、Message-ID(关联用唯一标识)、Date(发送时间戳)、Return-Path(退信地址,可能与 From 不同)、DKIM-Signature(域认证签名)、Authentication-Results(SPF、DKIM、DMARC 验证结果)、X-Mailer(所用邮件客户端)。
  • 识别钓鱼/可疑邮件、数据外泄迹象(如向个人邮箱发送加密附件)以及关键词命中。

使用方式

前置条件包括:libpff/pffexport(开源 PST 解析器)、Python 3.8+ 及 pypff 或 libratom 库、MailXaminer / Forensic Email Collector / SysTools PST Forensics(商业工具,可选)、Microsoft Outlook(可选,用于原生 PST 访问),以及足够的磁盘空间用于存放提取内容。

PST 文件常见位置:Outlook 2016+ 默认位于 %USERPROFILE%\Documents\Outlook Files*.pst;旧版 Outlook 位于 %LOCALAPPDATA%\Microsoft\Outlook*.pst;OST 缓存位于 %LOCALAPPDATA%\Microsoft\Outlook*.ost;归档位于 %USERPROFILE%\Documents\Outlook Files\archive.pst。

使用 libpff / pffexport 的示例命令:

# 导出 PST 文件中的所有项目
pffexport -m all evidence.pst -t exported_pst

# 仅导出邮件消息
pffexport -m items evidence.pst -t exported_emails

# 导出已恢复/已删除项目
pffexport -m recovered evidence.pst -t recovered_items

# 获取 PST 文件信息
pffinfo evidence.pst

Python 分析示例(节选):

import pypff
import os
import json
import hashlib
import email
import sys
from datetime import datetime
from collections import defaultdict

class PSTForensicAnalyzer:
    """Forensic analysis of Outlook PST/OST files."""

    def __init__(self, pst_path: str, output_dir: str):
        self.pst_path = pst_path
        self.output_dir = output_dir
        os.makedirs(output_dir, exist_ok=True)
        self.pst = pypff.file()
        self.pst.open(pst_path)
        self.messages = []
        self.attachments = []
        self.stats = defaultdict(int)

脚本可通过 python process.py <pst_file> <output_dir> 方式运行,生成 pst_forensic_report.json 报告,输出总消息数、总附件数与解析错误数。

适用场景

  • 调查需要分析 Outlook PST 进行邮件取证的安全事件。
  • 为该领域构建检测规则或威胁狩猎查询。
  • SOC 分析师需要针对此类分析的结构化流程。
  • 验证相关攻击技术的安全监控覆盖情况。

限制

现代 PST 文件使用 Unicode 格式,采用 4KB 页面,最大可达 50GB;旧版 ANSI 格式上限为 2GB。分析需要足够的磁盘空间存放提取内容。部分商业工具(MailXaminer、Forensic Email Collector、SysTools PST Forensics)为可选依赖,其具体功能、收费与价格暂未提供。