2024第一届Solar杯应急响应挑战赛 内存取证
字数 1753 2025-08-22 12:22:43

Solar杯应急响应挑战赛内存取证教学文档

1. 内存取证基础

内存取证是数字取证的重要组成部分,通过分析系统内存转储文件可以获取系统运行时的状态信息,包括进程、网络连接、文件操作等关键证据。

常用工具

  • Volatility:开源内存取证框架,支持多种操作系统
  • Magnet RAM Capture:商业内存捕获工具
  • Rekall:另一款内存分析框架

2. 题目解析与解题方法

内存取证1:查找RDP连接的跳板地址

目标:找到RDP(远程桌面协议)连接的跳板IP地址

解题方法

  1. 使用Volatility的netscan插件扫描网络连接
  2. 过滤3389端口(RDP默认端口)

命令

python2 vol.py -f ../SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 netscan | grep 3389

关键点

  • 确认正确的profile参数(本例为Win7SP1x64)
  • RDP默认使用3389端口
  • 结果格式为flag{IP地址}

内存取证2:查找攻击者下载黑客工具的IP地址

目标:找到下载恶意工具的源IP

解题方法

  1. Magnet分析
    • 直接查看浏览器缓存记录
  2. Volatility分析
    • 使用cmdscan插件查看命令行记录
    • 查找mimikatz等工具的下载记录

关键点

  • 关注浏览器历史记录和下载记录
  • 检查命令行中出现的下载命令
  • 结果格式为flag{IP地址}

内存取证3:获取FusionManager节点操作系统帐户密码

目标:找到业务帐户的密码

解题方法

  1. Volatility分析
    • 使用cmdscan查看攻击者访问的pass.txt文件
    • 提取文件内容获取账号密码
  2. Magnet分析
    • 直接查看剪贴板内容

关键点

  • 查找pass.txt等敏感文件
  • 检查剪贴板历史记录
  • 结果格式为flag{密码明文}

内存取证4:查找攻击者创建的用户

目标:识别攻击者创建的后门账户

解题方法

  1. 枚举系统用户账户
  2. 对比正常账户与可疑账户
  3. 使用mimikatz查看账户信息

关键点

  • 检查用户创建时间
  • 查找非常规用户名
  • 结果格式为flag{用户名}

内存取证5:确定攻击者利用跳板RDP登录的时间

目标:找到RDP登录的准确时间

解题方法

  1. Volatility分析
    • 使用pslist找到rdp进程的创建时间
    • 注意时区转换(UTC+8)
  2. Magnet分析
    • 在界面右下角选择北京时区

关键点

  • 时区转换是关键(原始时间+8小时)
  • 查找rdp.exe或相关进程的创建时间
  • 结果应为完整的时间戳

内存取证6:获取攻击者创建用户的密码哈希值

目标:提取后门账户的密码哈希

解题方法

  1. 使用mimikatz提取账户密码信息
  2. 获取NT哈希值

关键点

  • 需要提取NT哈希而非明文密码
  • 结果格式为flag{哈希值}

3. 高级技巧与注意事项

  1. 时区处理

    • 内存取证中时间戳通常是UTC时间
    • 北京时间需要+8小时
    • 在Magnet中可直接设置时区
  2. 多工具验证

    • 同时使用Volatility和Magnet进行交叉验证
    • 不同工具可能提供互补信息
  3. 敏感信息查找

    • 检查剪贴板、临时文件、浏览器缓存
    • 关注常见敏感文件名(如pass.txt)
  4. 用户账户分析

    • 对比系统默认账户与新增账户
    • 检查账户权限变化
  5. 网络连接分析

    • 关注异常端口连接
    • 记录连接建立和持续时间

4. 实战流程建议

  1. 首先确定内存镜像的操作系统profile
  2. 扫描网络连接,查找异常连接(特别是3389端口)
  3. 检查进程列表,识别可疑进程
  4. 分析命令行历史,查找攻击痕迹
  5. 提取敏感文件内容(密码文件等)
  6. 检查用户账户变更情况
  7. 提取密码哈希信息
  8. 综合所有证据,重建攻击时间线

5. 常见问题解决

  1. Profile识别错误

    • 使用imageinfo命令确认正确的profile
    • 错误profile会导致插件无法正常工作
  2. 时间戳混乱

    • 明确工具显示的时间是UTC还是本地时间
    • 必要时进行时区转换
  3. 数据提取不完整

    • 尝试多种插件获取同一信息
    • 例如用户信息可通过hivelisthashdump等多种方式获取
  4. 工具兼容性问题

    • 某些Volatility插件需要Python 2环境
    • 新版本工具可能不兼容旧内存格式

通过以上方法和技巧,可以系统性地分析内存取证挑战赛中的各类问题,有效提取关键数字证据。

Solar杯应急响应挑战赛内存取证教学文档 1. 内存取证基础 内存取证是数字取证的重要组成部分,通过分析系统内存转储文件可以获取系统运行时的状态信息,包括进程、网络连接、文件操作等关键证据。 常用工具 Volatility :开源内存取证框架,支持多种操作系统 Magnet RAM Capture :商业内存捕获工具 Rekall :另一款内存分析框架 2. 题目解析与解题方法 内存取证1:查找RDP连接的跳板地址 目标 :找到RDP(远程桌面协议)连接的跳板IP地址 解题方法 : 使用Volatility的 netscan 插件扫描网络连接 过滤3389端口(RDP默认端口) 命令 : 关键点 : 确认正确的profile参数(本例为Win7SP1x64) RDP默认使用3389端口 结果格式为flag{IP地址} 内存取证2:查找攻击者下载黑客工具的IP地址 目标 :找到下载恶意工具的源IP 解题方法 : Magnet分析 : 直接查看浏览器缓存记录 Volatility分析 : 使用 cmdscan 插件查看命令行记录 查找mimikatz等工具的下载记录 关键点 : 关注浏览器历史记录和下载记录 检查命令行中出现的下载命令 结果格式为flag{IP地址} 内存取证3:获取FusionManager节点操作系统帐户密码 目标 :找到业务帐户的密码 解题方法 : Volatility分析 : 使用 cmdscan 查看攻击者访问的pass.txt文件 提取文件内容获取账号密码 Magnet分析 : 直接查看剪贴板内容 关键点 : 查找pass.txt等敏感文件 检查剪贴板历史记录 结果格式为flag{密码明文} 内存取证4:查找攻击者创建的用户 目标 :识别攻击者创建的后门账户 解题方法 : 枚举系统用户账户 对比正常账户与可疑账户 使用mimikatz查看账户信息 关键点 : 检查用户创建时间 查找非常规用户名 结果格式为flag{用户名} 内存取证5:确定攻击者利用跳板RDP登录的时间 目标 :找到RDP登录的准确时间 解题方法 : Volatility分析 : 使用 pslist 找到rdp进程的创建时间 注意时区转换(UTC+8) Magnet分析 : 在界面右下角选择北京时区 关键点 : 时区转换是关键(原始时间+8小时) 查找rdp.exe或相关进程的创建时间 结果应为完整的时间戳 内存取证6:获取攻击者创建用户的密码哈希值 目标 :提取后门账户的密码哈希 解题方法 : 使用mimikatz提取账户密码信息 获取NT哈希值 关键点 : 需要提取NT哈希而非明文密码 结果格式为flag{哈希值} 3. 高级技巧与注意事项 时区处理 : 内存取证中时间戳通常是UTC时间 北京时间需要+8小时 在Magnet中可直接设置时区 多工具验证 : 同时使用Volatility和Magnet进行交叉验证 不同工具可能提供互补信息 敏感信息查找 : 检查剪贴板、临时文件、浏览器缓存 关注常见敏感文件名(如pass.txt) 用户账户分析 : 对比系统默认账户与新增账户 检查账户权限变化 网络连接分析 : 关注异常端口连接 记录连接建立和持续时间 4. 实战流程建议 首先确定内存镜像的操作系统profile 扫描网络连接,查找异常连接(特别是3389端口) 检查进程列表,识别可疑进程 分析命令行历史,查找攻击痕迹 提取敏感文件内容(密码文件等) 检查用户账户变更情况 提取密码哈希信息 综合所有证据,重建攻击时间线 5. 常见问题解决 Profile识别错误 : 使用 imageinfo 命令确认正确的profile 错误profile会导致插件无法正常工作 时间戳混乱 : 明确工具显示的时间是UTC还是本地时间 必要时进行时区转换 数据提取不完整 : 尝试多种插件获取同一信息 例如用户信息可通过 hivelist 和 hashdump 等多种方式获取 工具兼容性问题 : 某些Volatility插件需要Python 2环境 新版本工具可能不兼容旧内存格式 通过以上方法和技巧,可以系统性地分析内存取证挑战赛中的各类问题,有效提取关键数字证据。