被入侵主机易失性证据采集实战指南:基于 RFC 3227 顺序的 Live Forensic 完整工作流(Anthropic Cybersecurity Skills)
【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills
导读:本技术指南围绕 Anthropic Cybersecurity Skills 开源仓库中的collecting-volatile-evidence-from-compromised-host技能展开,系统讲解在确认主机被入侵后、关机与隔离之前,如何依据 RFC 3227 定义的"易失性顺序"(Order of Volatility)采集内存、网络状态、进程、用户会话与系统配置等瞬时证据。读完本文,你将掌握一套可直接落地执行的跨平台(Windows/Linux/macOS)证据采集清单、哈希与监管链(Chain of Custody)完整性规程,以及仓库内配套自动化采集脚本的底层实现原理。
一、为什么必须"先采集、后处置":易失性证据的本质
当安全事件被确认、被入侵主机被定位之后,响应团队面临一个无法回避的矛盾:关机与隔离虽能遏制攻击,却也同步销毁了大部分关键证据。无文件型(fileless)攻击、内存驻留型恶意软件、活跃的 C2 会话、以及认证票据与令牌,全部只存在于运行态之中——系统一旦断电,它们即刻消失。
这正是本技能在 SKILL.md 中强调的使用时机:在任何隔离、关机或修复动作开始之前,先完成证据采集。该技能的前置描述(frontmatterdescription)明确了三类典型触发场景:
- 怀疑存在无文件型或内存驻留型恶意软件;
- 需要进行根因分析(root cause analysis),而证据仅存于易失性数据中;
- 证据可能需要进入法律程序(legal proceedings),要求完整的取证保全。
此外,该技能在 frontmatter 中映射了 MITRE ATT&CK 相关技术(T1059.001 命令与脚本解释器、T1057 进程发现、T1049 系统网络连接发现、T1003.001 LSASS 内存凭据转储、T1543.003 创建或修改系统进程),以及 NIST CSF 2.0 的响应类能力(RS.MA-01/RS.MA-02 缓解、RS.AN-03 分析定界、RC.RP-01 恢复计划),说明该工作流在框架层面锚定于事件响应(Respond)与取证分析两大能力域。
二、核心原则:RFC 3227 易失性顺序与 Live Forensics 基础
2.1 RFC 3227 顺序
易失性证据采集的全部方法论基石,是 RFC 3227(Guidelines for Evidence Collection and Archiving)。api-reference.md 以表格形式给出了完整的优先级与持久性对照:
| 优先级 | 数据源 | 持久性 |
|---|---|---|
| 1 | CPU 寄存器、缓存 | 纳秒级 |
| 2 | 物理内存(RAM) | 电源周期 |
| 3 | 网络状态 | 秒~分钟 |
| 4 | 运行中的进程 | 分钟级 |
| 5 | 磁盘(文件系统) | 持久 |
| 6 | 远程日志 / 监控 | 持久 |
| 7 | 物理配置 | 持久 |
| 8 | 归档介质 | 长期 |
standards.md 进一步补充了 RFC 3227 的原始顺序描述:寄存器与缓存 → 路由表、ARP 缓存、进程表、内核统计、内存 → 临时文件系统 → 磁盘 → 远程日志与监控数据 → 物理配置与网络拓扑 → 归档介质。其三大核心原则是:最小化数据变更(minimize data alteration)、记录一切动作(document actions)、仅使用可信工具(trusted tools)。
2.2 Live Forensics 与取证可靠性框架
除 RFC 3227 外,standards.md 梳理了与本工作流直接相关的证据标准体系:
- NIST SP 800-86(集成取证技术指南):定义了"采集 → 检验 → 分析 → 报告"四阶段取证流程,强调通过正确采集手段保障数据完整性;
- NIST SP 800-61 Rev. 3(事件响应指南):对应响应(Respond)功能中的 RS.AN-03——通过分析确定事件范围;
- ACPO 数字证据良好实践指南的四条原则:不改变设备数据、必要时有资质人员访问原始数据、对所有取证过程保留审计轨迹、负责人确保全程合规;
- ISO/IEC 27037:规范了第一响应人与取证专家处理数字证据(含易失性与非易失性)的识别、采集、获取与保全程序;
- SANS DFIR 最佳实践:按易失性从高到低采集、使用外部可信工具、采集后立即哈希、记录系统时间与 UTC 的偏移、最小化对受感染系统的操作痕迹。
上述标准共同指向一个结论:易失性证据采集不是"敲几个命令",而是一套有顺序、有记录、可复验的工程化流程。仓库中的 workflows.md 正是把这一流程落成了可勾选的六优先级操作序列与双平台清单。
三、采集前置条件:可信工具包与授权边界
在触碰键盘之前,SKILL.md 要求确认以下前置条件:
- 取证工具包(trusted toolkit):放在 USB 或网络共享上的可信工具,绝不允许把工具安装到被入侵系统磁盘上;
- 内存采集工具:WinPmem / LiME 等(详见第五节);
- 写保护器或取证工作站:用于磁盘镜像(本流程侧重易失性证据,磁盘镜像为延伸项);
- 监管链记录表单:chain of custody 文档;
- 安全的证据存储:具备完整性校验能力的外部存储;
- 采集授权:对于内部人员案件,需要法律/HR 审批;对外部系统需要明确的书面授权。
3.1 现场准备与环境初始化
SKILL.md 给出了准备阶段的参考命令:
# 挂载取证 USB 工具包(切勿在受感染系统上安装工具) # 校验工具包完整性 sha256sum /mnt/forensic_usb/tools/* > /tmp/toolkit_hashes.txt diff /mnt/forensic_usb/tools/known_good_hashes.txt /tmp/toolkit_hashes.txt # 创建带时间戳的证据输出目录 EVIDENCE_DIR="/mnt/evidence/$(hostname)_$(date +%Y%m%d_%H%M%S)" mkdir -p "$EVIDENCE_DIR" echo "Collection started: $(date -u)" > "$EVIDENCE_DIR/collection_log.txt" echo "Collector: $(whoami)" >> "$EVIDENCE_DIR/collection_log.txt" echo "System: $(hostname)" >> "$EVIDENCE_DIR/collection_log.txt"这里体现了三个关键实践:工具哈希预校验(确保采信工具未被篡改)、UTC 时间戳目录命名(主机名_时间戳,便于多主机证据归档)、实时写入采集日志(谁、何时、对哪台主机执行了采集)。这与 ACPO 原则 3 的"审计轨迹"要求直接对应。
四、六优先级采集序列详解
workflows.md 将采集过程组织为6 个优先级阶段,从最高易失性(内存)到最低(临时/缓存数据),每一阶段都规定了必须记录的元数据与哈希动作。下面逐级展开,并给出完整命令实现。
4.1 优先级 1:内存采集(最高易失性,必须最先执行)
内存是黑客活动的"主战场":PowerShell 无文件攻击脚本、注入的恶意代码、明文凭据、Kerberos 票据与认证令牌,都只存在于 RAM 中。本阶段的操作序列为:
- 连接装有内存采集工具的取证 USB;
- 从 USB 运行内存转储工具(绝不能从受感染的系统磁盘运行);
- 将内存镜像保存到外部存储;
- 记录开始时间、结束时间与内存镜像大小;
- 立即生成内存镜像的 SHA256 哈希;
- 记录采集过程中的任何错误。
SKILL.md 给出了三平台的完整命令:
# Windows - WinPmem 内存采集 winpmem_mini_x64.exe "$EVIDENCE_DIR\memdump_$(hostname).raw" # Linux - LiME 内核模块内存采集 insmod /mnt/forensic_usb/lime.ko "path=$EVIDENCE_DIR/memdump_$(hostname).lime format=lime" # Linux - 替代方案,使用 /proc/kcore dd if=/proc/kcore of="$EVIDENCE_DIR/kcore_dump.raw" bs=1M # macOS - osxpmem osxpmem -o "$EVIDENCE_DIR/memdump_$(hostname).aff4" # 立即对内存转储文件进行哈希 sha256sum "$EVIDENCE_DIR/memdump_"* > "$EVIDENCE_DIR/memory_hash.sha256"api-reference.md 汇总了主流内存采集工具:
| 工具 | 平台 | 命令 |
|---|---|---|
| AVML | Linux | avml /path/to/output.lime |
| WinPmem | Windows | winpmem_mini_x64.exe output.raw |
| LiME | Linux | insmod lime.ko "path=/tmp/mem.lime format=lime" |
| Magnet RAM Capture | Windows | GUI 采集 |
从源码结构看,仓库的自动化脚本 agent.py 将内存定义为优先级 1 数据源(Linux 侧工具为avml,Windows 侧为winpmem_mini_x64.exe),并在采集清单中显式跳过内存转储,注释注明"内存转储需要提权与专用工具"——这印证了内存采集与普通命令采集的隔离设计:内存必须由专门的提权工具完成,不可混入普通脚本流程。
4.2 优先级 2:网络状态
网络状态在秒~分钟级就会变化,C2 会话、横向移动连接稍纵即逝。操作序列:
- 抓取所有活动 TCP/UDP 连接及对应进程 ID;
- 抓取 ARP 缓存(IP→MAC 映射);
- 抓取 DNS 解析器缓存;
- 抓取路由表;
- 抓取活动防火墙规则;
- 抓取监听端口及关联进程;
- 对全部网络证据文件执行哈希。
SKILL.md 的完整命令:
# 活动网络连接 # Windows netstat -anob > "$EVIDENCE_DIR/netstat_connections.txt" 2>&1 Get-NetTCPConnection | Export-Csv "$EVIDENCE_DIR/tcp_connections.csv" -NoTypeInformation Get-NetUDPEndpoint | Export-Csv "$EVIDENCE_DIR/udp_endpoints.csv" -NoTypeInformation # Linux ss -tulnp > "$EVIDENCE_DIR/socket_stats.txt" netstat -anp > "$EVIDENCE_DIR/netstat_all.txt" 2>/dev/null cat /proc/net/tcp > "$EVIDENCE_DIR/proc_net_tcp.txt" cat /proc/net/udp > "$EVIDENCE_DIR/proc_net_udp.txt" # ARP 缓存 arp -a > "$EVIDENCE_DIR/arp_cache.txt" # 路由表 route print > "$EVIDENCE_DIR/routing_table.txt" # Windows ip route show > "$EVIDENCE_DIR/routing_table.txt" # Linux # DNS 缓存 ipconfig /displaydns > "$EVIDENCE_DIR/dns_cache.txt" # Windows # Linux: 因解析器而异,检查 systemd-resolve 或 nscd systemd-resolve --statistics > "$EVIDENCE_DIR/dns_stats.txt" 2>/dev/null # 活动防火墙规则 netsh advfirewall show allprofiles > "$EVIDENCE_DIR/firewall_rules.txt" # Windows iptables -L -n -v > "$EVIDENCE_DIR/iptables_rules.txt" # Linux注意cat /proc/net/tcp与cat /proc/net/udp的使用——这是直接从内核 proc 文件系统读取原始连接表,属于"绕过用户态工具、直达内核状态"的取证手法,即便目标系统上的netstat/ss被攻击者替换,proc 文件系统的内核数据仍然可信。
4.3 优先级 3:运行进程
进程数据揭示攻击者的执行痕迹:恶意进程、父进程链、注入的模块、打开的文件句柄。操作序列:
- 列出所有进程及其完整命令行;
- 列出父子进程关系(进程树);
- 列出每个进程加载的模块/DLL;
- 列出每个进程打开的文件句柄;
- 按 PID 列出进程网络连接;
- 抓取进程创建时间戳;
- 对全部进程证据文件执行哈希。
命令实现(节选自 SKILL.md):
# Windows - 详细进程列表 tasklist /V /FO CSV > "$EVIDENCE_DIR/process_list_verbose.csv" wmic process list full > "$EVIDENCE_DIR/wmic_process_full.txt" Get-Process | Select-Object Id,ProcessName,Path,StartTime,CPU,WorkingSet | Export-Csv "$EVIDENCE_DIR/ps_processes.csv" -NoTypeInformation # Windows - 带命令行与父进程的进程信息 wmic process get ProcessId,Name,CommandLine,ParentProcessId,ExecutablePath /FORMAT:CSV > \ "$EVIDENCE_DIR/process_commandlines.csv" # Linux - 完整进程树 ps auxwwf > "$EVIDENCE_DIR/process_tree.txt" ps -eo pid,ppid,user,args --forest > "$EVIDENCE_DIR/process_forest.txt" cat /proc/*/cmdline 2>/dev/null | tr '\0' ' ' > "$EVIDENCE_DIR/proc_cmdline_all.txt" # 已加载模块/DLL # Windows listdlls.exe -accepteula > "$EVIDENCE_DIR/loaded_dlls.txt" # Linux for pid in $(ls /proc/ | grep -E '^[0-9]+$'); do echo "=== PID $pid ===" >> "$EVIDENCE_DIR/proc_maps.txt" cat "/proc/$pid/maps" 2>/dev/null >> "$EVIDENCE_DIR/proc_maps.txt" done # 打开的文件句柄 handle.exe -accepteula > "$EVIDENCE_DIR/open_handles.txt" # Windows (Sysinternals) lsof > "$EVIDENCE_DIR/open_files.txt" # Linux关键取证点:命令行(CommandLine)与父进程 ID(ParentProcessId)是还原攻击者执行链的核心字段——例如 PowerShell 通过-enc执行 Base64 脚本、异常进程以系统服务身份启动等模式,都依赖这两类数据才能识别。ps auxwwf的ww参数确保命令行不被截断。
4.4 优先级 4:用户会话
攻击者的登录会话、远程连接与映射驱动器,揭示了访问范围与横向移动路径。操作序列:
- 列出当前所有已登录用户;
- 列出活动远程会话(RDP、SSH、SMB);
- 列出映射的网络驱动器;
- 抓取最近的认证事件;
- 列出活动令牌与会话密钥(如可访问)。
命令实现:
# Windows query user > "$EVIDENCE_DIR/logged_in_users.txt" query session > "$EVIDENCE_DIR/active_sessions.txt" net session > "$EVIDENCE_DIR/net_sessions.txt" 2>&1 net use > "$EVIDENCE_DIR/mapped_drives.txt" 2>&1 # Linux who > "$EVIDENCE_DIR/who_output.txt" w > "$EVIDENCE_DIR/w_output.txt" last -50 > "$EVIDENCE_DIR/last_logins.txt" lastlog > "$EVIDENCE_DIR/lastlog.txt" cat /var/log/auth.log | tail -200 > "$EVIDENCE_DIR/recent_auth.txt" 2>/dev/nullnet session能列出通过 SMB 建立会话的远程主机,是发现"谁正连在这台机器上"的高价值命令;w与who则捕捉瞬时登录状态。认证事件(Windows 事件日志或/var/log/auth.log)为后续时间线重建提供依据。
4.5 优先级 5:系统配置
系统配置类证据用于支撑时间线校准与持久化分析。操作序列:
- 抓取系统时间与 UTC 偏移;
- 导出自启动/持久化位置(注册表 Run 键、crontab);
- 列出所有服务及状态;
- 抓取环境变量;
- 列出已安装软件;
- 导出相关事件日志条目。
命令实现:
# 系统时间(时间线校准的关键) date -u > "$EVIDENCE_DIR/system_time_utc.txt" w32tm /query /status > "$EVIDENCE_DIR/ntp_status.txt" # Windows ntpq -p > "$EVIDENCE_DIR/ntp_status.txt" # Linux # 环境变量 set > "$EVIDENCE_DIR/environment_vars.txt" # Windows env > "$EVIDENCE_DIR/environment_vars.txt" # Linux # 计划任务 / Cron schtasks /query /fo CSV /v > "$EVIDENCE_DIR/scheduled_tasks.csv" # Windows crontab -l > "$EVIDENCE_DIR/crontab_current.txt" 2>/dev/null # Linux ls -la /etc/cron.* > "$EVIDENCE_DIR/cron_dirs.txt" 2>/dev/null # 服务 sc queryex type=service state=all > "$EVIDENCE_DIR/services_all.txt" # Windows systemctl list-units --type=service --all > "$EVIDENCE_DIR/systemd_services.txt" # Linux # Windows 注册表 - 关键自启动位置 reg export "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" "$EVIDENCE_DIR/reg_run_hklm.reg" /y reg export "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" "$EVIDENCE_DIR/reg_run_hkcu.reg" /y reg export "HKLM\SYSTEM\CurrentControlSet\Services" "$EVIDENCE_DIR/reg_services.reg" /y其中系统时间(含 UTC 偏移)是整个取证时间线的锚点:如果目标主机时钟与真实时间偏差数小时,所有日志时间戳的解读都会失真,因此必须在采集早期独立记录。reg export以.reg格式导出持久化键,保证后续可在取证工作站离线查看而不触碰现场。
4.6 优先级 6:临时/缓存数据
最后一类易失性相对较低的数据,视调查相关性决定是否采集:
- 抓取浏览器历史与缓存(如相关);
- 抓取剪贴板内容(如可访问);
- 抓取临时目录内容;
- 抓取最近文件列表;
- 抓取 prefetch 文件(Windows)。
此阶段与 workflows.md 中的定义完全对应,强调"按需采集"——只有与案件相关才执行,避免无谓扩大证据面。
五、平台差异化执行流程:Windows / Linux 检查清单
workflows.md 将上述六优先级浓缩为可直接勾选的平台清单,实战中可作为"打勾即完成"的操作卡:
5.1 Windows 采集检查清单
[ ] Memory: WinPmem/Magnet RAM Capture [ ] Processes: tasklist /V, wmic process, Get-Process [ ] Network: netstat -anob, Get-NetTCPConnection [ ] Users: query user, net session [ ] Registry: Run keys, Services, Startup [ ] Services: sc queryex, Get-Service [ ] Scheduled Tasks: schtasks /query [ ] DNS Cache: ipconfig /displaydns [ ] ARP: arp -a [ ] Firewall: netsh advfirewall [ ] Event Logs: wevtutil (Security, System, Application) [ ] Prefetch: %SystemRoot%\Prefetch\* [ ] Time: w32tm /query /status5.2 Linux 采集检查清单
[ ] Memory: LiME kernel module or /proc/kcore [ ] Processes: ps auxwwf, /proc/*/cmdline, /proc/*/maps [ ] Network: ss -tulnp, /proc/net/tcp, /proc/net/udp [ ] Users: who, w, last [ ] Cron: crontab -l, /etc/cron.* [ ] Services: systemctl list-units [ ] DNS: systemd-resolve, /etc/resolv.conf [ ] ARP: ip neigh [ ] Firewall: iptables -L -n -v, nftables [ ] Logs: /var/log/auth.log, /var/log/syslog [ ] Open Files: lsof [ ] Time: timedatectl [ ] Loaded Modules: lsmod两份清单的共同逻辑与前面六优先级一一对应:内存 → 进程 → 网络 → 用户 → 系统配置(服务/计划任务/防火墙/时间)→ 日志与缓存。ip neigh(Linux ARP 等价物)、systemd-resolve(DNS)、timedatectl(时间)是 Linux 侧对应 Windows 命令的现代替代品。事件日志的导出(wevtutil与/var/log/*)虽然在 RFC 3227 中属持久性数据,但在易失性采集窗口内一并导出可避免后续磁盘镜像阶段的风险。
六、证据完整性保障:哈希协议与监管链
证据只有在"未被篡改、可追溯"时才有法律与调查价值。本流程在 workflows.md 中给出了两条硬性规程。
6.1 哈希协议
- 每个采集到的文件在创建后立即哈希;
- 使用 SHA256(最低要求)——法律案件优先 SHA512;
- 哈希清单(hash manifest)单独存放于独立文件;
- 任何传输前后都必须重新校验哈希;
- 哈希值纳入监管链文档。
汇总收尾时的清单生成(SKILL.md):
# 为所有采集证据生成 SHA256 哈希 cd "$EVIDENCE_DIR" sha256sum * > evidence_manifest.sha256校验命令(api-reference.md):
# 稍后校验 sha256sum -c /evidence/checksums.sha2566.2 监管链(Chain of Custody)要求
- 记录每项证据的采集人;
- 记录精确的采集时间(UTC);
- 记录采集方法与工具版本;
- 记录证据的任何转移;
- 记录存储位置与访问控制;
- 记录针对副本(绝不动原始件)执行的分析操作。
SKILL.md 提供了可直接生成的监管链文档模板:
cat > "$EVIDENCE_DIR/chain_of_custody.txt" << EOF CHAIN OF CUSTODY RECORD ======================== Case ID: IR-YYYY-NNN Collection Date: $(date -u) Collected By: $(whoami) System: $(hostname) System IP: $(hostname -I 2>/dev/null || ipconfig | grep IPv4) Collection Method: Live forensic collection via trusted USB toolkit Evidence Items: $(ls -la "$EVIDENCE_DIR/" | grep -v chain_of_custody) SHA256 Manifest: evidence_manifest.sha256 Transfer: [TO BE COMPLETED] Storage Location: [TO BE COMPLETED] EOF完整的字段化报告模板见 template.md,其中包含:案件信息、采集汇总表(每类证据的状态:Collected/Failed/Skipped)、证据清单表(文件名/SHA256/大小/类别)、监管链时间表(谁在何时对证据做了什么)、系统时间校验表、采集过程中的显著发现、工具信息与采集人认证声明——即"本人证明上述证据使用取证可靠的方法、由外部可信工具采集,且所有证据在采集后立即哈希"。该模板可作为正式取证报告的骨架。
七、常见陷阱:八条红线
workflows.md 总结了八个最常见的失败模式,几乎每一条都对应一个真实的证据失效案例:
- 从受感染系统的磁盘运行采集工具——恶意软件可替换工具或污染输出;
- 忘记立即哈希证据——无法证明证据未被篡改;
- 未记录系统时间与 UTC 的偏移——时间线分析失去基准;
- 在被入侵系统上安装采集工具——既污染现场,又给攻击者留下更替后的"后门工具";
- 在内存采集前重启系统——最高价值证据(RAM)彻底丢失;
- 浏览文件系统导致时间戳被修改——
ls/cat都可能更新 atime,破坏时间线证据; - 未实时记录采集步骤——事后补记的日志可信度大打折扣;
- 未经授权采集证据——违反法律程序,证据可能被法庭排除。
这些陷阱与 Locard 交换原理(每一次接触都会留下痕迹)一脉相承:采集者的操作本身也是一种痕迹,必须最小化并完整记录。
八、自动化纵深:仓库源码级实现
该技能不仅提供手工命令清单,还附带两套 Python 自动化采集实现,从源码层面印证了上述工作流的工程化落地。
8.1 轻量级采集代理 agent.py
该脚本将 RFC 3227 顺序编码为数据结构VOLATILITY_ORDER——一个按priority递增的十级清单(内存 → 网络连接 → 进程 → 打开文件 → 网络接口 → 路由表 → ARP → DNS → 登录用户 → 计划任务),每一项都同时给出 Linux 与 Windows 的工具命令,例如:
- 内存(P1):Linux
avml/ Windowswinpmem_mini_x64.exe - 网络连接(P2):Linux
ss -tunap/ Windowsnetstat -anob - 进程(P3):Linux
ps auxwwf/ Windowstasklist /V /FO CSV - 打开文件(P4):Linux
lsof -nP/ Windowshandle64.exe -a
从源码结构看,其执行逻辑collect_artifact()以platform.system()判定平台并选取对应命令,通过subprocess.run无 shell 执行(规避注入风险),将输出落盘并在采集现场即时计算 SHA256;run_collection()则按priority排序逐项执行,最终产出 JSON 格式的collection_manifest.json(含采集起止时间、主机名、平台、每项证据的状态/输出行数/退出码/SHA256)。特别值得注意的设计是:内存项在脚本中被显式跳过并标注"需要提权与专用工具"——与手工流程中"内存采集必须由 USB 上的专用工具完成"的原则保持一致,普通命令采集器不越权触碰内存。
8.2 完整采集器 process.py
与轻量代理不同,process.py基于psutil实现更细粒度的证据结构化采集,其EvidenceCollector类覆盖了本工作流的核心证据类别:
collect_network_connections():通过psutil.net_connections()抓取全部连接,并反查每个连接的进程名(PID → 进程名映射),同时输出 CSV 与文本两种格式;collect_running_processes():抓取每个进程的 PID、PPID、用户名、完整命令行(截断至 500 字符)、可执行路径、创建时间、状态、CPU/内存占用、线程数与网络连接数,并生成process_tree.txt文本进程树;collect_open_files():遍历所有进程的打开文件句柄(路径、fd、模式);collect_logged_in_users():基于psutil.users()采集登录用户(用户名、终端、来源主机、登录时间);collect_services()/collect_scheduled_tasks():Windows 用sc queryex/schtasks,Linux 用systemctl/crontab -l;finalize():汇总生成evidence_manifest.json与sha256_manifest.txt(<sha256> <filename>格式,与sha256sum输出兼容),并完整记录collection_log.json操作审计日志。
其命令行接口为:
python3 process.py --case-id IR-2026-001 --output-dir ./evidence_collection [--skip-memory] [--collect-all]--skip-memory参数与 8.1 的设计一脉相承:内存采集永远交由专用工具(WinPmem/LiME)从取证 USB 完成。两个脚本共同体现了仓库对"脚本化采集 + 专用内存工具分离 + 全程哈希 + 审计日志"这一取证可靠性的代码级承诺。
九、工具矩阵与典型场景
9.1 常用工具矩阵
| 工具 | 用途 |
|---|---|
| WinPmem | Windows 内存采集 |
| LiME(Linux Memory Extractor) | Linux 内核内存采集 |
| Sysinternals Suite | Windows 进程、句柄与 DLL 分析 |
| Velociraptor | 大规模远程取证采集 |
| KAPE(Kroll Artifact Parser) | Windows 自动化痕迹采集 |
| CyLR | 跨平台应急响应采集 |
| GRR Rapid Response | 远程取证框架 |
9.2 五大典型应用场景
SKILL.md 给出了本技能最常见的落地场景:
- 无文件恶意软件攻击:基于 PowerShell、磁盘上无文件的攻击。内存转储是包含恶意脚本的关键证据;
- 活跃 C2 会话:攻击者持有实时连接。网络连接与进程数据可揭示 C2 基础设施;
- 内部人员数据窃取:员工复制文件。进程列表、映射驱动器与网络连接可显示外泄活动;
- 被入侵的 Web 服务器:检测到 WebShell。内存中可能包含尚未落盘的额外后门;
- 横向移动进行中:攻击者在系统间移动。内存中的认证令牌与网络会话可揭示攻击范围。
十、输出产物清单
一次完整的易失性证据采集,最终应交付以下产物:
- 内存转储文件(
.raw或.lime格式)及 SHA256 哈希; - 网络状态抓取(连接、ARP、DNS、路由);
- 含命令行与父进程信息的进程列表;
- 用户会话与认证数据;
- 系统配置快照;
- 含 SHA256 校验和的证据清单(evidence manifest);
- 监管链文档。
对照 template.md 的报告骨架,上述产物可以直接映射为报告中的"证据清单表"与"监管链表",形成"采集产物 → 哈希清单 → 监管链记录 → 取证报告"的完整证据闭环。
结语:把"先采证、后处置"固化为制度
易失性证据采集是事件响应中最具时间压力、也最不允许出错的环节。以 RFC 3227 顺序为纲、以本技能的双平台检查清单为操作卡、以哈希与监管链规程为底线,再配合仓库提供的自动化脚本与报告模板,即可将"先采证、后处置"从一句口号固化为可重复执行的标准化流程。若你正在建设 SOC 或 DFIR 团队的事件响应能力,可将该技能直接作为标准作业程序(SOP)的蓝本,并结合组织的授权流程与法律环境进一步裁剪落地。
延伸阅读:本技能的标准与框架映射见 standards.md,命令速查见 api-reference.md,报告模板见 template.md,完整技能定义与工作流见 SKILL.md。
【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考