应急响应 | MacOS取证速查:一文搞定响应取证所有需求
字数 1103 2025-08-20 18:18:23

macOS 取证响应全面指南

1. 系统信息收集

1.1 硬件和软件信息

system_profiler SPHardwareDataType  # 硬件信息
system_profiler SPSoftwareDataType  # 软件信息
sw_vers                             # 系统版本

1.2 网络信息

ifconfig -a      # 网络接口配置
netstat -rn      # 路由表
netstat -an      # 活动网络连接

2. 用户和权限信息

2.1 用户活动

who      # 当前登录用户
w        # 活动用户
last     # 登录历史

2.2 用户和组管理

dscl . list /Users           # 所有用户
dscl . list /Groups          # 所有组
dscl . read /Users/<username> # 特定用户详情

3. 进程和服务分析

3.1 进程监控

ps aux               # 运行中进程
top -l 1 -n 0        # 进程资源使用

3.2 系统服务

launchctl list       # 启动服务

4. 文件系统取证

4.1 文件查找

find / -type f -mtime -7      # 最近7天修改的文件
ls -alR /path/to/directory    # 目录详细内容

4.2 文件完整性

shasum -a 256 /path/to/file   # 计算文件哈希
sudo cmp /usr/bin/sudo /usr/bin/sudo.bak  # 文件完整性检查

5. 日志分析

5.1 系统日志

log show --info --predicate 'process == "kernel"' --start '<date>' --end '<date>'

5.2 安全日志

log show --info --predicate 'subsystem == "com.apple.security"' --start '<date>' --end '<date>'

6. 网络活动分析

6.1 网络连接

lsof -i              # 打开的网络连接
netstat -anp tcp     # TCP连接及进程

6.2 网络配置

networksetup -listallhardwareports    # 网络接口
networksetup -listallnetworkservices  # 网络服务

7. 系统资源监控

7.1 内存使用

vm_stat      # 内存统计

7.2 磁盘使用

df -h        # 磁盘空间
du -sh /path # 目录大小

8. 安全设置检查

8.1 防火墙

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getstealthmode

8.2 系统完整性保护

csrutil status  # SIP状态

9. 数据导出技术

9.1 系统快照

tmutil localsnapshot  # 创建文件系统快照

9.2 系统报告

sudo sysdiagnose  # 生成完整系统报告

10. 第三方取证工具

  1. KnockKnock - 检测持久性组件
  2. OSQuery - 系统信息查询
  3. KextViewr - 内核扩展查看器

11. 应急响应措施

11.1 进程控制

sudo kill -STOP <pid>  # 暂停可疑进程
sudo kill -9 <pid>     # 终止恶意进程

11.2 关键文件检查

cat /etc/hosts         # hosts文件检查
cat /etc/rc.common    # 启动脚本检查

12. 浏览器取证

12.1 Safari历史

sqlite3 ~/Library/Safari/History.db "SELECT * FROM history_items"

12.2 Chrome历史

sqlite3 ~/Library/Application\ Support/Google/Chrome/Default/History "SELECT * FROM urls"

13. 用户活动追踪

13.1 最近文件

defaults read com.apple.recentitems

13.2 应用使用记录

ls -lt ~/Library/Containers/com.apple.Preview/Data/Library/Autosave\ Information/

14. 系统配置审计

14.1 偏好设置

defaults read

14.2 网络共享

defaults read /Library/Preferences/SystemConfiguration/com.apple.smb.server

15. 计划任务检查

crontab -l      # 用户计划任务
lpstat -t       # 打印队列

16. 安全事件分析

log show --predicate 'eventMessage contains "Authentication"' --info
last -F <username>  # 用户登录历史

17. 磁盘和分区信息

diskutil list    # 磁盘分区
mount           # 挂载点

18. 环境变量检查

printenv    # 环境变量
nvram -p    # 启动配置

19. 应用信息收集

ls /Applications                  # 已安装应用
mdls /Applications/Example.app    # 应用元数据

20. 电源管理分析

pmset -g log                      # 电源事件
pmset -g log | grep -e " Sleep " -e " Wake "  # 休眠唤醒记录

21. 加密状态检查

fdesetup status                   # FileVault状态
security list-keychains           # 钥匙链
security dump-keychain            # 钥匙链内容

22. 内核扩展检查

kextstat                          # 已加载扩展
kextstat | grep -i <extension_name>  # 特定扩展

23. 无线设备分析

system_profiler SPBluetoothDataType  # 蓝牙设备
system_profiler SPAirPortDataType    # 无线网络

24. 系统更新状态

softwareupdate --history  # 更新历史
softwareupdate --list     # 可用更新

25. 端口和防火墙

sudo lsof -i -P -n | grep LISTEN  # 监听端口
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --listapps  # 防火墙应用

26. 文件系统监控

sudo fs_usage  # 实时文件系统活动

27. 共享服务检查

sudo launchctl list | grep -i "smb\|afp\|nfs"  # 共享服务
sudo systemsetup -getremotelogin                # 远程登录

28. 资源使用分析

sar -u 1 5    # CPU使用率
vm_stat       # 内存统计

29. 审计日志分析

sudo cat /etc/security/audit_control  # 审计配置
sudo praudit /var/audit/current       # 审计日志

30. 错误报告检查

ls -lt /Library/Logs/DiagnosticReports/  # 系统错误报告

31. 启动日志分析

log show --predicate 'eventMessage contains "boot"' --info

32. 时间设置检查

systemsetup -gettimezone      # 时区
systemsetup -getusingnetworktime  # NTP状态
ntpdate -q                   # 时间同步

33. VPN和代理设置

scutil --nc list    # VPN配置
scutil --proxy      # 代理设置

34. 应用权限检查

tccutil list  # 应用访问权限

35. 进程环境检查

ps eww <pid>  # 进程环境变量

36. 硬件监控

sudo powermetrics --samplers smc | grep -i "CPU die temperature"  # CPU温度
sudo powermetrics --samplers smc | grep -i "Fan"                  # 风扇速度

37. 外设连接检查

system_profiler SPUSBDataType        # USB设备
system_profiler SPThunderboltDataType # Thunderbolt设备

自动化取证脚本

#!/bin/bash
# 创建取证目录
output_dir="forensic_data_$(date +%Y%m%d_%H%M%S)"
mkdir $output_dir

# 系统信息
system_profiler SPHardwareDataType > $output_dir/hardware_info.txt
system_profiler SPSoftwareDataType > $output_dir/software_info.txt

# 网络信息
ifconfig -a > $output_dir/network_info.txt
netstat -rn > $output_dir/routing_table.txt

# 用户信息
who > $output_dir/current_users.txt
dscl . list /Users > $output_dir/all_users.txt

# 进程信息
ps aux > $output_dir/running_processes.txt
launchctl list > $output_dir/loaded_services.txt

# 文件系统
find / -type f -mtime -7 > $output_dir/recently_modified_files.txt

# 日志
log show --info --predicate 'process == "kernel"' --start '2024-07-01' --end '2024-07-03' > $output_dir/kernel_logs.txt

# 浏览器历史
sqlite3 ~/Library/Safari/History.db "SELECT * FROM history_items" > $output_dir/safari_history.txt

# 安全设置
csrutil status > $output_dir/sip_status.txt
fdesetup status > $output_dir/filevault_status.txt

echo "取证数据已保存到 $output_dir"

脚本使用说明

  1. 将脚本保存为 collect_forensic_data.sh
  2. 赋予执行权限:chmod +x collect_forensic_data.sh
  3. 运行脚本:./collect_forensic_data.sh
  4. 结果将保存在 forensic_data_YYYYMMDD_HHMMSS 目录中

最佳实践建议

  1. 取证顺序:先收集易失性数据(内存、进程),再收集持久性数据
  2. 证据保全:对收集的数据计算哈希值,确保完整性
  3. 时间同步:记录取证时系统时间与标准时间的差异
  4. 全面记录:记录执行的每条命令及其输出
  5. 工具验证:使用前验证取证工具的完整性和可信度

本指南涵盖了macOS取证响应的所有关键方面,从系统信息收集到深入分析技术,提供了全面的命令参考和自动化脚本,可有效支持安全事件响应工作。

macOS 取证响应全面指南 1. 系统信息收集 1.1 硬件和软件信息 1.2 网络信息 2. 用户和权限信息 2.1 用户活动 2.2 用户和组管理 3. 进程和服务分析 3.1 进程监控 3.2 系统服务 4. 文件系统取证 4.1 文件查找 4.2 文件完整性 5. 日志分析 5.1 系统日志 5.2 安全日志 6. 网络活动分析 6.1 网络连接 6.2 网络配置 7. 系统资源监控 7.1 内存使用 7.2 磁盘使用 8. 安全设置检查 8.1 防火墙 8.2 系统完整性保护 9. 数据导出技术 9.1 系统快照 9.2 系统报告 10. 第三方取证工具 KnockKnock - 检测持久性组件 OSQuery - 系统信息查询 KextViewr - 内核扩展查看器 11. 应急响应措施 11.1 进程控制 11.2 关键文件检查 12. 浏览器取证 12.1 Safari历史 12.2 Chrome历史 13. 用户活动追踪 13.1 最近文件 13.2 应用使用记录 14. 系统配置审计 14.1 偏好设置 14.2 网络共享 15. 计划任务检查 16. 安全事件分析 17. 磁盘和分区信息 18. 环境变量检查 19. 应用信息收集 20. 电源管理分析 21. 加密状态检查 22. 内核扩展检查 23. 无线设备分析 24. 系统更新状态 25. 端口和防火墙 26. 文件系统监控 27. 共享服务检查 28. 资源使用分析 29. 审计日志分析 30. 错误报告检查 31. 启动日志分析 32. 时间设置检查 33. VPN和代理设置 34. 应用权限检查 35. 进程环境检查 36. 硬件监控 37. 外设连接检查 自动化取证脚本 脚本使用说明 将脚本保存为 collect_forensic_data.sh 赋予执行权限: chmod +x collect_forensic_data.sh 运行脚本: ./collect_forensic_data.sh 结果将保存在 forensic_data_YYYYMMDD_HHMMSS 目录中 最佳实践建议 取证顺序 :先收集易失性数据(内存、进程),再收集持久性数据 证据保全 :对收集的数据计算哈希值,确保完整性 时间同步 :记录取证时系统时间与标准时间的差异 全面记录 :记录执行的每条命令及其输出 工具验证 :使用前验证取证工具的完整性和可信度 本指南涵盖了macOS取证响应的所有关键方面,从系统信息收集到深入分析技术,提供了全面的命令参考和自动化脚本,可有效支持安全事件响应工作。