difr000/incident-response-cheatsheet
GitHub: difr000/incident-response-cheatsheet
一份事件响应最佳实践速查表,提供从发现到恢复的全流程指导与工件清单。
Stars: 1 | Forks: 0
# 2026年事件响应速查表 作者 Matt "difr000" Sabaj
本文件展示了事件响应领域的一些最佳实践。
但需要注意的是,这些只是指导方针或展示最佳实践的影响,旨在提升DFIR流程的专业化水平。
## 介绍
在2026年,事件响应已不能局限于单个主机和单个日志。 Palo Alto Unit 42 的资料显示:
- 超过750起重大事件被用于构建趋势报告
- 87%的事件涉及多个攻击面
- 近48%的事件包含浏览器组件
- 身份识别和认证弱点在近90%的分析中扮演了重要角色
- 超过90%的入侵利用了可缓解的漏洞:缺乏可见性、过度权限、登录不一致、细分薄弱以及过度的内部信任
实用的结论很简单:第一阶段的事件响应必须同时涵盖主机、身份、网络、日志、基础设施、服务提供商、虚拟化、备份和浏览器痕迹。此速查表旨在引导从首次电话和访谈,到保护材料,再到Windows和Linux/Unix的快速分析。
## 通用规则
```
1. Evidence first, recovery second, chyba że życie/bezpieczeństwo lub ciągłość krytyczna wymaga inaczej.
2. Nie wyłączaj hosta odruchowo, jeżeli możesz jeszcze zebrać volatile evidence.
3. Izoluj logicznie, nie niszcząc RAM: VLAN, ACL, EDR isolation, odpięcie od segmentu.
4. Pracuj z jednego katalogu sprawy i zapisuj każdą czynność.
5. Zawsze haszuj artefakty i prowadź chain of custody.
6. Zabezpieczaj to, co rotuje się najszybciej: RAM, procesy, połączenia, logi lokalne, logi brzegowe.
7. Szukaj centralnych kolektorów logów i systemów kopii zanim zaczniesz działać lokalnie.
8. Zakładaj, że incydent może obejmować tożsamość, edge, RDP/VPN, SaaS, AD i backupy.
9. Traktuj backupy, logi uszkodzone i dane zaszyfrowane jako nadal wartościowe dowodowo.
10. Dziel działania na: wywiad, zabezpieczenie, analiza, containment, eradication, recovery.
```
## 快速决策流程图
```
START
1. Potwierdź zakres: host / user / serwer / edge / AD / backup / hypervisor / kilka segmentów
2. Oceń priorytet: evidence first vs recovery first
3. Ustal, które maszyny nadal pracują i czy warto chronić RAM
4. Zidentyfikuj logi lokalne, centralne i sieciowe
5. Ustal, czy działają backupy i czy nie nadpisują danych
6. Zabezpiecz dane ulotne i logi na systemach krytycznych
7. Zabezpiecz nośniki, snapshoty, obrazy i klucze odszyfrowujące
8. Zbuduj hipotezy: user / edge / VPN / web / RDP / usługa / konto uprzywilejowane
9. Zbuduj timeline i scope
10. Wdróż containment na hostach, kontach, segmentach i usługach
11. Przeprowadź eradication
12. Recovery + hardening + rotacja haseł/kluczy + poprawa telemetryki
END
```
## 必备工件
```
- data/czas z timezone
- hostname, FQDN, IP, MAC, OS/build/kernel, machine-id
- zalogowani użytkownicy i sesje
- procesy, parent process, cmdline, ścieżki, hashe, uchwyty, połączenia
- usługi, taski, startup, cron, timers, autoruns, GPO, Run/RunOnce
- konta lokalne i domenowe, grupy uprzywilejowane, sudo/admini
- firewall, ARP, routing, DNS, shares, RDP, SMB, WinRM, SSH, VPN
- logi: Security, System, Application, IIS, auth, syslog, journal, auditd, bramy, VPN, WAF, proxy, backup
- artefakty użytkownika: browser, downloads, jumplists, prefetch, shell history, RDP cache
- artefakty systemowe: MFT, UsnJrnl, SRUM, Amcache, NTUSER, UsrClass, SAM, SYSTEM, SOFTWARE, NTDS, PageFile
- RAM, obraz dysku lub snapshot, hashe, metadane obrazowania
```
## 事件通知与首次联系
### 首次通话需要确认的信息
- 事件被发现的时间及发现人。
- 停止工作的内容:公共服务、邮件、文件、域名、备份、Hypervisor。
- 是否有机器仍在运行且未重启。
- 已采取的自身行动:重启、断网、杀毒扫描、删除文件、修改密码。
- 是否存在集中日志:SIEM、Syslog、Windows事件转发、防火墙/VPN日志。
- 是否存在轮换日志或覆盖副本的风险。
- 环境是否包含AD、VPN、公共服务、虚拟化、备份设备、OT/IoT分段。
- 可能受到影响的数据类型:个人数据、财务数据、医疗数据、客户数据、关键国家数据。
### 通知矩阵与协调
- `CERT Polska`:当规模、向量或影响足以证明需要国家支持时。
- `警方 / 执法机关`:当发生入侵、勒索、破坏或数据泄露时。
- `UODO`:当存在个人数据泄露风险时。
- `CEZ / 行业监管机构 / 关键服务运营商`:当事件涉及受监管环境时。
- `供应商和制造商`:当需要日志、快照、恢复密钥、硬件或云支持时。
- `ISP / 托管 / 云服务商`:当需要确定流量来源、阻止数据发布或保护遥测数据时。
- `法务团队和管理层`:当需要决定对外沟通策略和可接受的操作风险时。
### 前60分钟该做什么
- 保持协调渠道和事件所有者的连贯性。
- 阻止自行重启和“清理”操作,除非IR团队同意。
- 标记需要证据优先的系统。
- 标记需要恢复优先的系统。
- 保护集中日志、备份和边界设备。
- 确定保护材料的优先顺序。
## 访谈与范围界定
### 预备信息
根据本地知识,第一阶段访谈应涵盖三个领域:
1. 当前状况。
2. 基础设施。
3. 处理的数据类型及合规影响。
### 关于当前状况的问题
- 确切看到什么:加密、无法访问、EDR告警、异常登录、服务中断。
- 管理员和用户在联系IR团队之前做了什么。
- 受损方是否能指出大概的攻击向量。
- 是否有机器仍在运行。
- 是否出现勒索便条、异常账户、新服务、任务、异常出站流量。
### 关于基础设施的问题
- 组织的主要网络分段以及关键系统所在位置。
- 哪些网关向互联网公开了服务。
- 远程访问如何工作:VPN、RDP网关、服务发布、端口转发。
- 环境是否包含AD、多域、可信域、远程办公室。
- 使用哪些Hypervisor:Hyper-V、VMware、KVM、Proxmox。
- 备份如何组织,存储库在哪里,谁有访问权限。
- 是否存在集中式系统日志和网络日志收集器。
### 关于数据和影响的问题
- 可能受到影响的数据类型。
- 环境是否属于关键基础设施,或与政府机构合作。
- 是否存在正式报告义务及报告时限。
## 机构基础设施:必检项目
### 边界和边缘设备
- 防火墙、WAF、反向代理、路由器、VPN网关和站点到站点隧道是丢失可见性的最常见地点。
- 网关既是防护点,也是极具吸引力的攻击目标。
- 检查配置、规则、NAT、端口转发、会话日志和软件更新。
### 远程访问
- 公共服务和端口转发本身不是安全保障。
- 从互联网进行的管理访问需要格外谨慎,因为它通常伴随着广泛权限和大范围暴露。
- 收集已发布服务列表、地址、端口、管理账户和MFA策略。
### 活动目录环境
- 控制域控制器意味着几乎可以控制整个域。
- 保护 `NTDS`、`SYSTEM`、身份验证日志、更改特权组成员、登录RDP和系统服务痕迹。
- 评估信任关系、服务账户、委托、权限滥用和横向移动路径。
### 虚拟化
- Hyper-V、VMware、KVM、Proxmox应被视为关键层。
- 收集VM列表、快照、数据存储、主机和管理账户。
- 对Hypervisor或管理系统的攻击可能同时影响多项服务。
### 备份
- 备份是事件的一部分,而不仅仅是恢复机制。
- 即使被删除、损坏或部分加密,备份仍可能包含可恢复的数据。
- 暂停可能覆盖未分配空间或后续版本的操作。
### 供应商
- 外部供应商可能拥有日志、快照、会话历史、流量数据和锁定共享内容的机制。
- 从一开始就准备向ISP、托管商、设备制造商、云和备份运营商提出的请求清单。
### 分段
- 物理或逻辑分段限制了影响范围并便于隔离。
- 在事件响应中,需要确定实际的分段情况以及真实的通信路径。
## 常见攻击向量假设
- 用户作为攻击向量:网络钓鱼、文件执行、浏览器接管、令牌窃取。
- 边缘设备或公共服务中的漏洞。
- 单因素身份验证到VPN或管理面板。
- 端口转发到防护薄弱的系统。
- 合法凭证和会话的滥用。
## 存储介质与成像
### 证据介质之间的差异
#### HDD
- 容量大,每GB成本低。
- 恢复已删除数据时价值高(前提是未被覆盖)。
- 机械敏感,镜像速度较慢。
#### SSD
- 成像速度快,运输抗性好。
- 关键风险:`TRIM`可能永久删除已擦除数据。
- 更适合快速保护,较难恢复已删除文件。
#### M.2 / NVMe / SATA / mSATA / PCIe / U.2 / SAS / IDE
- 连接前需确认接口类型、键控、供电和适配器兼容性。
- `M.2`可能代表SATA或NVMe;插槽本身不能保证兼容性。
- `SAS`和`SATA`在操作上容易混淆,但并非完全可互换。
- 较旧的`IDE/PATA`仍可能存在于旧系统或工业设备中。
#### 存储卡
- `SD`、`CFast`、`CFexpress`常用于移动设备、相机、无人机和工业设备。
- 需要专用读卡器,并在保护适配器时格外小心。
### 成像规则
```
1. Zawsze używaj blokera zapisu lub sprzętu gwarantującego read-only.
2. Najpierw zidentyfikuj nośnik źródłowy i docelowy.
3. Sprawdź typ interfejsu i potrzebne adaptery.
4. Zweryfikuj pojemność i wolne miejsce na nośniku docelowym.
5. Dokumentuj model, numer seryjny, interfejs i fizyczny kontekst nośnika.
6. Preferuj format E01/EWF z metadanymi i weryfikacją.
7. Licz hash obrazu i pakietu wynikowego.
8. Jeśli nośnik jest szyfrowany, zabezpiecz klucze odzyskiwania zanim odłączysz system.
```
### 成像与实时响应工具
- `Tableau TX1`:便携式写阻断器和成像设备。
- `ewf-tools`:Linux下的`E01`成像和验证工具。
- `Guymager`:来自Live发行版的便捷成像工具。
- `CAINE`、`Tsurugi`、`Paladin`:适用于采集和分类的Live发行版。
- `Ventoy`:创建包含多个ISO镜像的多系统USB启动盘。
### Linux实时/eWF-tools最小流程
```
lsblk
fdisk -l
mkdir -p /mnt/obrazowanie/src /mnt/obrazowanie/dst
mount -o ro,show_sys_files,streams_interface=windows /dev/sdXN /mnt/obrazowanie/src
df -h
sudo ewfacquire -t /mnt/obrazowanie/dst/host_disk /dev/sdX
ewfinfo /mnt/obrazowanie/dst/host_disk.E01
ewfverify /mnt/obrazowanie/dst/host_disk.E01
sha256sum /mnt/obrazowanie/dst/host_disk.E01
```
## 分析:最重要的工具与应用
### 用于检查和转换Windows工件的工具
- `EvtxECmd`:将`EVTX`转换为`CSV/JSON/XML`;是日志快速分类和事件映射的关键。
- `Timeline Explorer`:对Zimmerman等工具的CSV结果进行过滤和分析。
- `Registry Explorer`:分析`SYSTEM`、`SOFTWARE`、`SAM`、`NTUSER.dat`、`UsrClass.dat`
- `AmcacheParser`:转换`Amcache.hve`。
- `PECmd`:分析`Prefetch`。
- `JLECmd`:分析`Jump Lists`。
- `MFTECmd`:分析`$MFT`、`$UsnJrnl`、`$LogFile`、`$Boot`、`$I30`。
- `SrumECmd`:分析`SRUDB.dat`。
- `SumECmd`:分析`User Access Logging`。
- `ntdsextract2`:从`ntds.dit`提取用户、组、计算机和时间线。
- `DB Browser for SQLite`:浏览SQLite数据库,例如浏览器历史。
- `EseDatabaseView`:快速浏览`ESE`数据库。
- `BrowsingHistoryView`和`BrowserDownloadsView`:浏览历史与下载。
- `bmc-tools` + `RdpCacheStitcher`:提取并拼接RDP客户端缓存。
- `bulk_extractor`:从镜像中提取数据,包括未分配空间中的痕迹。
- `Mimikatz`:分析`LSASS`转储和凭据(如果找到转储文件)。
### 用于Linux/Unix的工具与技术
- `grep`和`ripgrep`:快速搜索日志、配置和文本转储。
- `journalctl`:分析`systemd-journal`。
- `ausearch`和`aureport`:分析`auditd`。
- `ps`、`lsof`、`ss`、`netstat`、`ip`、`find`、`sha1sum`、`systemctl`、`crontab`。
- `logrotate`、`rsyslog`、`journald.conf`:验证保留策略、轮换和远程收集器。
## 分析:特别有价值的工件
### Windows
- `C:\Windows\System32\winevt\Logs`
- `C:\inetpub\logs\LogFiles`
- `C:\Windows\AppCompat\Programs\Amcache.hve`
- `C:\Windows\Prefetch`
- `C:\Windows\System32\sru\SRUDB.dat`
- `C:\Windows\System32\LogFiles\sum`
- `C:\Windows\NTDS\nTDS.dit`
- `C:\PageFile.sys`
- `C:\Users\\NTUSER.dat`
- `C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations`
- `C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations`
- `C:\Users\\AppData\Local\Microsoft\Terminal Server Client\Cache`
### Linux/Unix
- `/var/log/`
- `/var/log/journal/`
- `/var/log/audit/audit.log`
- `/etc/rsyslog.conf`、`/etc/rsyslog.d/*`、`/etc/syslog.conf`
- `/etc/systemd/journald.conf`、`/etc/systemd/journal-upload.conf`
- `/etc/crontab`、`/etc/cron*`、`/var/spool/cron`
- `/etc/systemd/system`、`/usr/lib/systemd/system`
- `/home/*/.bash_history`、`/root/.bash_history`
- `/home/*/.ssh/authorized_keys`、`/root/.ssh/authorized_keys`
- `/home/*/.local/share/recently-used.xbel`
## Linux/Unix:从开始到结束的算法
### 1. 准备案件目录
```
sudo -i
export CASE=IR_$(hostname)_$(date +%F_%H%M%S)
export IR_DIR=/root/$CASE
mkdir -p "$IR_DIR"/{live,logs,network,processes,persistence,fs,users,web,hashes,system,users_export}
exec > >(tee -a "$IR_DIR/live/console.log") 2>&1
date -Ins
hostnamectl
uname -a
```
### 2. 保护系统基本信息
```
hostname | tee "$IR_DIR/system/hostname.txt"
uname -a | tee "$IR_DIR/system/uname.txt"
cat /etc/*release* 2>/dev/null | tee "$IR_DIR/system/os-release.txt"
cat /etc/hostname 2>/dev/null | tee "$IR_DIR/system/etc-hostname.txt"
cat /etc/passwd | tee "$IR_DIR/system/passwd.txt"
cat /etc/group | tee "$IR_DIR/system/group.txt"
ip a | tee "$IR_DIR/network/ip_a.txt"
ip route | tee "$IR_DIR/network/ip_route.txt"
ip neigh | tee "$IR_DIR/network/ip_neigh.txt"
cat /etc/resolv.conf | tee "$IR_DIR/network/resolv.conf.txt"
cat /etc/hosts | tee "$IR_DIR/network/hosts.txt"
```
### 3. 临时文件与进程
```
date -Ins | tee "$IR_DIR/live/date.txt"
uptime | tee "$IR_DIR/live/uptime.txt"
who -a | tee "$IR_DIR/users/who-a.txt"
w | tee "$IR_DIR/users/w.txt"
last -a | head -200 | tee "$IR_DIR/users/last.txt"
lastlog | tee "$IR_DIR/users/lastlog.txt"
ps auxwwf | tee "$IR_DIR/processes/ps_auxwwf.txt"
pstree -ap | tee "$IR_DIR/processes/pstree_ap.txt"
find -L /proc/[0-9]*/exe -print0 2>/dev/null | xargs -0 sha1sum 2>/dev/null | tee "$IR_DIR/processes/process_sha1.txt"
find /proc/[0-9]*/cmdline | xargs head 2>/dev/null | tee "$IR_DIR/processes/process_cmdline.txt"
lsof +c0 -M -R -V -w -n -P | tee "$IR_DIR/processes/process_opened_files.txt"
```
### 4. 网络、会话和活动连接
```
ss -pantul | tee "$IR_DIR/network/ss_pantul.txt"
ss -panto state established | tee "$IR_DIR/network/ss_established.txt"
lsof -nP -i | tee "$IR_DIR/network/lsof_i.txt"
netstat -nap 2>/dev/null | tee "$IR_DIR/network/netstat_nap.txt"
arp -a | tee "$IR_DIR/network/arp.txt"
iptables -L -n -v | tee "$IR_DIR/network/iptables_Lnv.txt"
iptables -S | tee "$IR_DIR/network/iptables_S.txt"
nft list ruleset | tee "$IR_DIR/network/nft_ruleset.txt" 2>/dev/null
```
立即搜索:
```
grep -E '(:4444|:5555|:8080|:8443|:1337|:9001|:53 |:443 )' "$IR_DIR/network/ss_pantul.txt"
grep -E 'nc |ncat |socat |bash -i|sh -i|/dev/tcp/|curl |wget |python -c|perl -e|php -r|ruby -e' /proc/*/cmdline 2>/dev/null
```
### 5. 日志与登录系统
#### 如果系统使用`systemd`
```
journalctl --no-pager -b | tee "$IR_DIR/logs/journal_boot.txt"
journalctl --no-pager --since '7 days ago' | tee "$IR_DIR/logs/journal_7d.txt"
cat /etc/systemd/journald.conf 2>/dev/null | tee "$IR_DIR/logs/journald.conf.txt"
cat /etc/systemd/journal-upload.conf 2>/dev/null | tee "$IR_DIR/logs/journal-upload.conf.txt"
cat /etc/machine-id 2>/dev/null | tee "$IR_DIR/system/machine-id.txt"
```
#### 如果系统使用`syslog/rsyslog`
```
ls -la /var/log | tee "$IR_DIR/logs/varlog_listing.txt"
cat /etc/rsyslog.conf 2>/dev/null | tee "$IR_DIR/logs/rsyslog.conf.txt"
cat /etc/syslog.conf 2>/dev/null | tee "$IR_DIR/logs/syslog.conf.txt"
find /etc/rsyslog.d -type f -maxdepth 1 -exec sed -n '1,200p' {} \; 2>/dev/null | tee "$IR_DIR/logs/rsyslog_d.txt"
cat /etc/logrotate.conf 2>/dev/null | tee "$IR_DIR/logs/logrotate.conf.txt"
find /etc/logrotate.d -type f -maxdepth 1 -exec sed -n '1,200p' {} \; 2>/dev/null | tee "$IR_DIR/logs/logrotate_d.txt"
```
#### 如果`auditd`处于活动状态
```
cat /etc/audit/audit.rules 2>/dev/null | tee "$IR_DIR/logs/audit.rules.txt"
ausearch -ts recent -m USER_LOGIN,USER_AUTH,ADD_USER,DEL_USER,EXECVE,SERVICE_START,SERVICE_STOP 2>/dev/null | tee "$IR_DIR/logs/audit_recent.txt"
aureport -au 2>/dev/null | tee "$IR_DIR/logs/aureport_auth.txt"
```
### 6. 持久化、启动项和用户
```
systemctl list-units --type=service --all | tee "$IR_DIR/persistence/systemctl_units.txt"
systemctl list-unit-files | tee "$IR_DIR/persistence/systemctl_unit_files.txt"
systemctl list-timers --all | tee "$IR_DIR/persistence/systemd_timers.txt"
cat /etc/crontab | tee "$IR_DIR/persistence/crontab.txt"
for u in $(cut -d: -f1 /etc/passwd); do crontab -u "$u" -l 2>/dev/null | sed "s#^#[$u] #"; done | tee "$IR_DIR/persistence/user_crontabs.txt"
ls -la /etc/cron* /var/spool/cron /var/spool/cron/crontabs 2>/dev/null | tee "$IR_DIR/persistence/cron_dirs.txt"
cat /etc/sudoers | tee "$IR_DIR/users/sudoers.txt"
ls -la /etc/sudoers.d | tee "$IR_DIR/users/sudoers_d.txt"
find /root /home -maxdepth 3 -type f \( -name authorized_keys -o -name known_hosts -o -name .bash_history \) -exec ls -la {} \; -exec sed -n '1,200p' {} \; | tee "$IR_DIR/users/user_key_material.txt"
```
### 7. 文件、最后修改时间和Web根目录
```
find / -xdev -type f -mtime -7 -printf '%TY-%Tm-%Td %TT %u %g %m %s %p\n' 2>/dev/null | sort | tee "$IR_DIR/fs/recent_files_7d.txt"
find /tmp /var/tmp /dev/shm -maxdepth 3 -type f -printf '%TY-%Tm-%Td %TT %u %g %m %s %p\n' 2>/dev/null | sort | tee "$IR_DIR/fs/tmp_files.txt"
find / -xdev -perm -4000 -type f -print 2>/dev/null | tee "$IR_DIR/fs/suid.txt"
getcap -r / 2>/dev/null | tee "$IR_DIR/fs/file_capabilities.txt"
grep -Rni 'LD_PRELOAD\|LD_LIBRARY_PATH' /etc /root /home 2>/dev/null | tee "$IR_DIR/fs/ld_preload_hits.txt"
find /var/www /srv/www /usr/share/nginx/html /var/www/html /opt -type f -printf '%TY-%Tm-%Td %TT %s %p\n' 2>/dev/null | sort | tee "$IR_DIR/web/web_files.txt"
grep -RniE 'eval\\(|base64_decode\\(|assert\\(|system\\(|shell_exec\\(|passthru\\(|exec\\(|/bin/sh|/bin/bash|python -c|perl -e|gzinflate\\(' /var/www /srv/www /usr/share/nginx/html /var/www/html 2>/dev/null | tee "$IR_DIR/web/webshell_hits.txt"
```
### 8. 成像与打包
```
fdisk -l | tee "$IR_DIR/fs/fdisk_l.txt"
lsblk -a | tee "$IR_DIR/fs/lsblk.txt"
blkid | tee "$IR_DIR/fs/blkid.txt"
find "$IR_DIR" -type f -exec sha256sum {} \; | tee "$IR_DIR/hashes/sha256_all.txt"
tar -czf "/root/${CASE}.tgz" "$IR_DIR"
sha256sum "/root/${CASE}.tgz" | tee "/root/${CASE}.tgz.sha256"
```
### Linux/Unix:具体查找内容
```
- reverse shell: nc, ncat, socat, bash -i, python -c, perl -e
- nietypowy outbound do Internetu z serwera, który zwykle nie wychodzi
- nowe klucze SSH i nowe wpisy w authorized_keys
- nowa usługa systemd, timer, cron lub wpis w shell profile
- proces z usuniętym plikiem, memfd, nietypowymi capabilities lub LD_PRELOAD
- logi wysyłane do zdalnego kolektora, którego wcześniej nie znano
- ślady exfilu w /var/log, webserverach, tunelach, scp/rsync/curl/wget
```
## Windows / Windows Server:从开始到结束的算法
### 1. 安全优先级
根据本地知识,最重要的工件包括:
- 运行中的机器临时数据
- 事件日志`EVTX`
- IIS日志
- BitLocker恢复密钥
- `Amcache.hve`
- `SAM`、`SYSTEM`、`SOFTWARE`、`SECURITY`
- `NTUSER.dat`和`UsrClass.dat`
- `Jump Lists`
- `Prefetch`
- `SRUDB.dat`
- `$MFT`和`$UsnJrnl`
- 域控制器上的`NTDS.dit`
### 2. 准备案件目录
```
$Case="IR_$env:COMPUTERNAME"+"_"+(Get-Date -Format "yyyy-MM-dd_HHmmss")
$IR="C:\$Case"
New-Item -ItemType Directory -Force -Path $IR,$IR\live,$IR\users,$IR\proc,$IR\net,$IR\persistence,$IR\logs,$IR\fs,$IR\web | Out-Null
Start-Transcript -Path "$IR\live\transcript.txt" -Force
Get-Date -Format o | Tee-Object "$IR\live\date.txt"
hostname | Tee-Object "$IR\live\hostname.txt"
systeminfo | Out-File "$IR\live\systeminfo.txt"
```
### 3. 临时文件、用户和进程
```
whoami /all > "%IR%\users\whoami_all.txt"
query user > "%IR%\users\query_user.txt"
quser > "%IR%\users\quser.txt"
qwinsta > "%IR%\users\qwinsta.txt"
net user > "%IR%\users\net_user.txt"
net localgroup administrators > "%IR%\users\local_admins.txt"
tasklist > "%IR%\proc\tasklist.txt"
tasklist /svc > "%IR%\proc\tasklist_svc.txt"
wmic process get ProcessId,ParentProcessId,Name,ExecutablePath,CommandLine /format:list > "%IR%\proc\wmic_process.txt"
netstat -ano > "%IR%\net\netstat_ano.txt"
arp -a > "%IR%\net\arp.txt"
route print > "%IR%\net\route_print.txt"
ipconfig /all > "%IR%\net\ipconfig_all.txt"
```
```
Get-ComputerInfo | Out-File "$IR\live\Get-ComputerInfo.txt"
Get-LocalUser | Format-List * | Out-File "$IR\users\Get-LocalUser.txt"
Get-CimInstance Win32_Process | Select-Object Name,ProcessId,ParentProcessId,ExecutablePath,CommandLine,CreationDate | Format-List | Out-File "$IR\proc\Win32_Process.txt"
Get-NetTCPConnection | Sort-Object LocalPort | Format-Table -Auto | Out-File "$IR\net\Get-NetTCPConnection.txt"
Get-WinEvent -LogName 'Microsoft-Windows-Windows Firewall With Advanced Security/Firewall' -MaxEvents 500 | Format-List | Out-File "$IR\logs\Firewall_500.txt"
```
### 4. 事件日志和IIS日志
```
wevtutil epl Security "%IR%\logs\Security.evtx"
wevtutil epl System "%IR%\logs\System.evtx"
wevtutil epl Application "%IR%\logs\Application.evtx"
```
```
Get-WinEvent -LogName Security -MaxEvents 1000 | Format-List | Out-File "$IR\logs\Security_1000.txt"
Get-WinEvent -LogName System -MaxEvents 1000 | Format-List | Out-File "$IR\logs\System_1000.txt"
Get-WinEvent -LogName Application -MaxEvents 1000 | Format-List | Out-File "$IR\logs\Application_1000.txt"
Get-ChildItem 'C:\inetpub\logs\LogFiles' -Recurse -ErrorAction SilentlyContinue | Select-Object FullName,LastWriteTime,Length | Out-File "$IR\web\iis_log_inventory.txt"
```
### 5. 持久化和用户工件
```
sc query state= all > "%IR%\persistence\sc_query_all.txt"
schtasks /query /fo LIST /v > "%IR%\persistence\schtasks.txt"
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run > "%IR%\persistence\run_hklm.txt"
reg query HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run > "%IR%\persistence\run_hkcu.txt"
dir /s /b "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup" > "%IR%\persistence\startup_programdata.txt"
```
```
Get-CimInstance Win32_Service | Select-Object Name,State,StartMode,ProcessId,PathName | Format-List | Out-File "$IR\proc\Win32_Service.txt"
Get-ScheduledTask | Select-Object TaskName,TaskPath,State,Author,Description | Format-List | Out-File "$IR\persistence\Get-ScheduledTask.txt"
Get-CimInstance Win32_StartupCommand | Select-Object Name,Command,Location,User | Format-List | Out-File "$IR\persistence\Win32_StartupCommand.txt"
```
### 6. Windows磁盘的即时复制
```
EVTX:
C:\Windows\System32\winevt\Logs
IIS:
C:\inetpub\logs\LogFiles
Amcache:
C:\Windows\AppCompat\Programs\Amcache.hve
Prefetch:
C:\Windows\Prefetch
SRUM:
C:\Windows\System32\sru
UAL:
C:\Windows\System32\LogFiles\sum
Jump Lists:
C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations
RDP cache:
C:\Users\\AppData\Local\Microsoft\Terminal Server Client\Cache
NTUSER / UsrClass:
C:\Users\\NTUSER.dat
C:\Users\\AppData\Local\Microsoft\Windows\UsrClass.dat
Rejestry systemowe:
HKLM\SAM
HKLM\SYSTEM
HKLM\SOFTWARE
HKLM\SECURITY
AD:
C:\Windows\NTDS\ntds.dit
```
### 7. BitLocker与成像
```
Get-BitLockerVolume | Format-List * | Out-File "$IR\live\Get-BitLockerVolume.txt"
manage-bde -status > "$IR\live\manage-bde-status.txt"
manage-bde -protectors -get C: > "$IR\live\manage-bde-protectors-C.txt"
```
实际上:
- 在断开或成像介质之前,保护恢复密钥。
- 对于加密的主机,将恢复密钥视为关键工件。
- 在域控制器和虚拟化主机上,也检查备份密钥和数据存储。
### 8. 建议的工件分析
```
EVTX -> EvtxECmd -> Timeline Explorer
Amcache.hve -> AmcacheParser -> Timeline Explorer
Prefetch -> PECmd -> Timeline Explorer
Jump Lists -> JLECmd -> Timeline Explorer
SRUM -> SrumECmd -> Timeline Explorer
UAL -> SumECmd -> Timeline Explorer
NTDS -> ntdsextract2 -> Timeline Explorer / analiza relacji
RDP cache -> bmc-tools -> RdpCacheStitcher
Browser / Downloads -> BrowsingHistoryView / BrowserDownloadsView / DB Browser for SQLite
NTUSER / UsrClass / SYSTEM / SOFTWARE / SAM -> Registry Explorer
$MFT / $UsnJrnl -> MFTECmd -> Timeline Explorer
```
### 9. Windows:具体查找内容
```
- udane i nieudane logowania 4624, 4625, 4648, 4672
- instalacja usług 4697 i 7045
- zadania 4698 i 4702
- czyszczenie logów 1102
- uruchomienia procesów 4688 i Sysmon 1
- DNS, RDP, SMB i Defender z logów operacyjnych
- PowerShell, WMI, Task Scheduler, Sysmon
- nowe wpisy Run/RunOnce, scheduled tasks, usługi z Temp/AppData/ProgramData
- ślady uruchomień z Prefetch, Amcache, Jump Lists, UserAssist, RecentDocs, SRUM
- ślady RDP w logach i cache klienta
```
## 遏制、根除与恢复
### 遏制(在收集证据后)
- 封锁账户和令牌。
- 仅在保护最宝贵数据后,才关闭或隔离主机。
- 封锁IP、域名、端口和C2隧道。
- 临时分段并切断脆弱的服务。
- 撤销对供应商和服务提供商的访问权限(无所有者)。
### 根除
- 删除Webshell、服务、任务、启动项、密钥、账户、隧道、规则、植入物。
- 恢复正确的边缘、VPN、RDP、IIS和GPO配置。
- 删除过度的权限和旧的信任路径。
- 修复日志转发和保留策略。
### 恢复
- 轮换密码、SSH密钥、本地密码、服务凭据、恢复密钥。
- 重新启用MFA和特权访问控制。
- 在验证其完整性和清洁度后,从备份中恢复。
- 增强主机、边缘、AD、代理、SaaS和浏览器的遥测。
- 根据Palo Alto报告中的趋势控制基于浏览器的风险与身份。
## 经验教训:事件后需要改进的地方
- 日志集中和一致的保留策略。
- 更好的分段和东西向流量可见性。
- 远程访问和服务发布的验证。
- 严格的特权身份管理和最小权限原则。
- Hypervisor和备份的程序。
- 用于Windows/Linux采集的现成脚本和Live介质。
- 存储介质和适配器的工具包:SATA、SAS、M.2、NVMe、U.2、IDE、存储卡。
## 快速结束检查清单
```
[ ] ustalono wektor lub hipotezy wejścia
[ ] zabezpieczono logi lokalne, centralne i sieciowe
[ ] zabezpieczono volatile evidence na systemach pracujących
[ ] zabezpieczono artefakty użytkownika i systemowe
[ ] zabezpieczono backupy oraz warstwę wirtualizacji
[ ] policzono hashe i opisano chain of custody
[ ] zbudowano timeline i scope
[ ] wdrożono containment dla hostów, kont i segmentów
[ ] przygotowano plan eradication i recovery
[ ] zapisano lesson learned oraz działania naprawcze
```
标签:2026, HTTPS请求, HTTP请求, Linux取证, Palo Alto Unit 42, RAM取证, SANS, Windows取证, ZAP项目解析, 取证, 后端开发, 安全运营, 库, 应急响应, 扫描框架, 最佳实践, 漏洞修复, 端点安全, 网络安全培训, 网络隔离, 补丁管理, 身份验证安全, 链式保管