Nakita1/soc-homelab

GitHub: Nakita1/soc-homelab

一个基于 VirtualBox 的 SOC 家庭实验室项目,通过 Splunk SIEM、Sysmon 和多日志源集中化收集,帮助用户在隔离环境中练习端点检测、告警分诊和事件响应工作流。

Stars: 0 | Forks: 0

# SOC 家庭实验室:Splunk SIEM、Windows Sysmon、Linux 日志转发与基于 Kali 的检测测试 ## 项目概述 本项目记录了一个本地 SOC 风格家庭实验室的设计与实现过程,旨在使用 Splunk 练习日志收集、端点遥测、Linux 身份验证监控、防火墙日志记录和基础检测工程。该环境模拟了一个小型的安全监控设置,包含多个将日志转发到集中式 SIEM 的日志源。其中包括一个 Windows 端点、一个 Linux 目标服务器、一台 Kali Linux 测试机以及一台专用的 Splunk 服务器。 该实验室在受控的虚拟环境中构建,使用仅主机网络进行测试活动。所有进攻性安全活动均限于实验室拥有的虚拟机。 ## 目标 该实验室的主要目标是: * 部署并配置 Splunk 作为集中式 SIEM * 将 Windows 事件日志转发到 Splunk * 安装并验证 Sysmon 端点遥测 * 将 Linux 身份验证和系统日志转发到 Splunk * 从 Kali Linux 生成受控的 SSH 和扫描活动 * 检测失败的 SSH 登录、成功的 SSH 登录以及可能的端口扫描 * 练习编写和验证 SPL 搜索 * 排查常见的日志转发和权限问题 * 记录可复用的 SOC 实验室构建过程,而不暴露敏感的环境细节 ## 实验室架构 ``` +-------------------------+ | Windows Endpoint | |-------------------------| | Windows Security Logs | | Windows System Logs | | Windows Application Logs| | Sysmon Operational Logs | | Splunk Universal Fwd | +------------+------------+ | | forwards Windows telemetry v +-------------------------+ | Splunk Server | |-------------------------| | Ubuntu Server | | Splunk Enterprise | | index=windows | | index=linux | +------------+------------+ ^ | forwards Linux logs | +------------+------------+ | Ubuntu Target | |-------------------------| | OpenSSH Server | | auth.log | | syslog | | UFW Firewall Logs | | Splunk Universal Fwd | +------------+------------+ ^ | | controlled lab testing | +------------+------------+ | Kali Linux | |-------------------------| | SSH testing | | Nmap scanning | | Host-only network | +-------------------------+ ``` ## 环境摘要 | 系统 | 角色 | 主要功能 | | -------------- | ------------------ | ------------------------------------------------ | | Splunk Server | SIEM | 接收并索引 Windows 和 Linux 日志 | | Windows 端点 | 受控端点 | 发送 Windows 事件日志和 Sysmon 遥测数据 | | Ubuntu 目标机 | Linux 目标机 | 生成 SSH、auth、syslog 和防火墙事件 | | Kali Linux | 测试系统 | 生成受控的 SSH 和 Nmap 活动 | ## 使用的工具和技术 | 工具 | 用途 | | --------------------------- | ----------------------------------------------- | | VirtualBox | 虚拟化平台 | | Ubuntu Server | Splunk 服务器和 Linux 目标机操作系统 | | Windows 10 | 受监控的 Windows 端点 | | Kali Linux | 受控的测试和扫描系统 | | Splunk Enterprise | 集中式 SIEM 平台 | | Splunk Universal Forwarder | 日志转发代理 | | Sysmon | Windows 端点遥测 | | UFW | Linux 防火墙日志 | | OpenSSH Server | SSH 身份验证测试 | | Nmap | 受控的端口扫描 | | SPL | Splunk 搜索处理语言 | ## 隐私和脱敏声明 本仓库特意排除了敏感或可识别身份的详细信息。 不包含以下项目: * 真实的 IP 地址 * 真实的用户名 * 真实的主机名 * 包含系统详细信息的屏幕截图 * 公网 IP 信息 * 凭据 * 虚拟机 UUID * 与个人计算机关联的本地文件路径 * 个人账户信息 所有特定于环境的值均以占位符表示。 ## 占位符参考 | 占位符 | 描述 | | --------------------------- | -------------------------------------------- | | `` | Splunk 服务器的仅主机 IP 地址 | | `` | Windows 端点的仅主机 IP 地址 | | `` | Ubuntu 目标机的仅主机 IP 地址 | | `` | Kali 虚拟机的仅主机 IP 地址 | | `` | 通用的 Ubuntu 实验室用户 | | `` | 通用的 Windows 实验室用户 | | `` | 已安装的 Splunk Enterprise 版本 | | `` | 已安装的 Splunk Universal Forwarder 版本 | | `` | 实验室中配置的本地时区 | # 1. 网络设计 该实验室使用 VirtualBox 结合 NAT 和仅主机网络构建。 ## Splunk 服务器网络 | 适配器 | 模式 | 用途 | | --------- | ----------------- | ---------------------------------- | | 适配器 1 | NAT | 用于更新和下载的互联网访问 | | 适配器 2 | 仅主机适配器 | 内部实验室通信 | ## Windows 端点网络 | 适配器 | 模式 | 用途 | | --------- | ----------------- | ---------------------------------- | | 适配器 1 | NAT | 用于更新和下载的互联网访问 | | 适配器 2 | 仅主机适配器 | 将日志发送至 Splunk | ## Ubuntu 目标机网络 | 适配器 | 模式 | 用途 | | --------- | ----------------- | ---------------------------------- | | 适配器 1 | NAT | 用于更新和下载的互联网访问 | | 适配器 2 | 仅主机适配器 | 接收实验室流量并转发日志 | ## Kali Linux 网络 | 适配器 | 模式 | 用途 | | --------- | ----------------- | ------------------------------------ | | 适配器 1 | 仅主机适配器 | 仅针对实验室系统的隔离测试 | 在测试期间,特意将 Kali Linux 保持在仅主机网络上,以防止意外扫描实验室外部。 # 2. Splunk 服务器设置 ## 2.1 创建 Splunk 服务器虚拟机 推荐的虚拟机配置: | 设置 | 值 | | ---------------- | ----------------- | | 操作系统 | Ubuntu Server | | 内存 | 至少 4 GB | | CPU | 2 个核心 | | 硬盘 | 至少 60 GB | | 网络适配器 1 | NAT | | 网络适配器 2 | 仅主机适配器 | 安装后,更新系统: ``` sudo apt update && sudo apt upgrade -y ``` ## 2.2 验证网络接口 ``` ip a ``` Splunk 服务器应该具有: ``` NAT interface → internet access Host-only interface → lab communication ``` 仅主机 IP 表示为: ``` ``` ## 2.3 安装 Splunk Enterprise 从 Splunk 下载 Linux `.deb` 安装程序。 示例文件名: ``` splunk--linux-amd64.deb ``` 安装 Splunk: ``` sudo dpkg -i splunk--linux-amd64.deb ``` 设置 Splunk 目录的所有权: ``` sudo chown -R : /opt/splunk ``` 启动 Splunk: ``` /opt/splunk/bin/splunk start --accept-license ``` 检查 Splunk 状态: ``` /opt/splunk/bin/splunk status ``` 访问 Splunk Web: ``` http://:8000 ``` ## 2.4 启用 Splunk 接收 配置 Splunk 以在端口 `9997` 上接收转发的数据。 ``` /opt/splunk/bin/splunk enable listen 9997 /opt/splunk/bin/splunk restart ``` 确认接收端口: ``` /opt/splunk/bin/splunk display listen ``` 预期输出: ``` 9997 ``` ## 2.5 创建 Splunk 索引 在 Splunk Web 中: ``` Settings → Indexes → New Index ``` 创建的索引: | 索引 | 用途 | | -------- | ------------------------------------------------ | | `windows` | Windows 事件日志和 Sysmon 日志 | | `linux` | Linux 身份验证、syslog 和防火墙日志 | 建议的小型实验室索引大小: | 索引 | 建议最大大小 | | -------- | -----------: | | `windows` | 10 GB | | `linux` | 5 GB | # 3. Windows 端点设置 ## 3.1 创建 Windows 端点虚拟机 推荐的虚拟机配置: | 设置 | 值 | | ---------------- | ----------------- | | 操作系统 | Windows 10 | | 内存 | 4 GB | | CPU | 2 个核心 | | 硬盘 | 至少 60 GB | | 网络适配器 1 | NAT | | 网络适配器 2 | 仅主机适配器 | 使用 PowerShell 重命名了系统: ``` Rename-Computer -NewName "windows-endpoint" -Restart ``` 验证主机名: ``` hostname ``` ## 3.2 测试与 Splunk 的连通性 从 Windows 端点: ``` ping ``` 测试 Splunk 接收端口: ``` Test-NetConnection -Port 9997 ``` 预期结果: ``` TcpTestSucceeded : True ``` ## 3.3 在 Windows 上安装 Splunk Universal Forwarder 在 Windows 端点上安装了 Splunk Universal Forwarder。 在安装过程中: ``` Deployment Server: blank Receiving Indexer: :9997 ``` 检查 forwarder 服务: ``` Get-Service SplunkForwarder ``` 预期状态: ``` Running ``` 确认转发: ``` & "C:\Program Files\SplunkUniversalForwarder\bin\splunk.exe" list forward-server ``` 预期输出: ``` Active forwards: :9997 ``` ## 3.4 配置 Windows 事件日志转发 编辑 Universal Forwarder 输入配置: ``` notepad "C:\Program Files\SplunkUniversalForwarder\etc\system\local\inputs.conf" ``` 添加以下内容: ``` [WinEventLog://Security] disabled = 0 index = windows [WinEventLog://System] disabled = 0 index = windows [WinEventLog://Application] disabled = 0 index = windows ``` 重启 Windows 虚拟机: ``` Restart-Computer ``` ## 3.5 在 Splunk 中验证 Windows 日志 基本搜索: ``` index=windows ``` 验证来源: ``` index=windows | stats count latest(_time) as latest_event by host source sourcetype | convert ctime(latest_event) | sort - latest_event ``` 预期来源: ``` WinEventLog:Security WinEventLog:System WinEventLog:Application ``` # 4. Sysmon 设置 ## 4.1 安装 Sysmon 从 Microsoft Sysinternals 下载了 Sysmon。 示例工作目录: ``` C:\Users\\Desktop\Tools ``` 预期文件: ``` Sysmon.exe Sysmon64.exe Sysmon64a.exe Eula.txt ``` 安装 Sysmon: ``` cd C:\Users\\Desktop\Tools .\Sysmon64.exe -accepteula -i ``` 检查 Sysmon 服务: ``` Get-Service Sysmon64 ``` 预期状态: ``` Running ``` 验证本地 Sysmon 事件: ``` Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" -MaxEvents 5 ``` 有用的 Sysmon 事件 ID: | 事件 ID | 描述 | | ------: | ------------------ | | 1 | 进程创建 | | 3 | 网络连接 | | 5 | 进程终止 | | 11 | 文件创建 | | 22 | DNS 查询 | 可用的事件 ID 可能会因所使用的 Sysmon 配置而异。 ## 4.2 将 Sysmon 日志转发至 Splunk 编辑 Windows forwarder 输入配置: ``` notepad "C:\Program Files\SplunkUniversalForwarder\etc\system\local\inputs.conf" ``` 最终的 Windows 输入配置: ``` [WinEventLog://Security] disabled = 0 index = windows [WinEventLog://System] disabled = 0 index = windows [WinEventLog://Application] disabled = 0 index = windows [WinEventLog://Microsoft-Windows-Sysmon/Operational] disabled = 0 index = windows ``` ## 4.3 排查 Sysmon 转发权限问题 forwarder 成功发送了标准的 Windows 日志,但最初并未接收 Sysmon 日志。 检查了 Splunk Forwarder 服务账户: ``` Get-CimInstance Win32_Service -Filter "Name='SplunkForwarder'" | Select-Object Name, StartName, State ``` 问题情况: ``` StartName : NT SERVICE\SplunkForwarder ``` 将服务更改为以 LocalSystem 运行: ``` sc.exe config SplunkForwarder obj= LocalSystem ``` 预期输出: ``` [SC] ChangeServiceConfig SUCCESS ``` 重启: ``` Restart-Computer ``` 确认服务账户: ``` Get-CimInstance Win32_Service -Filter "Name='SplunkForwarder'" | Select-Object Name, StartName, State ``` 预期输出: ``` StartName : LocalSystem State : Running ``` 此更改后,Universal Forwarder 能够读取并转发 Sysmon Operational 日志。 ## 4.4 在 Splunk 中验证 Sysmon 事件 广泛 Sysmon 搜索: ``` index=windows source=*Sysmon* ``` 进程创建搜索: ``` index=windows source=*Sysmon* EventCode=1 | table _time host User Image CommandLine ParentImage | sort - _time ``` 在 Windows 上生成测试进程事件: ``` notepad calc cmd whoami ipconfig ``` 搜索测试进程: ``` index=windows source=*Sysmon* EventCode=1 | search Image="*notepad.exe" OR Image="*calc.exe" OR Image="*cmd.exe" OR Image="*ipconfig.exe" OR Image="*whoami.exe" | table _time host User Image CommandLine ParentImage | sort - _time ``` # 5. Ubuntu 目标机设置 ## 5.1 创建 Ubuntu 目标机虚拟机 推荐的虚拟机配置: | 设置 | 值 | | ---------------- | ----------------- | | 操作系统 | Ubuntu Server | | 内存 | 2 GB | | CPU | 1–2 个核心 | | 硬盘 | 30 GB | | 网络适配器 1 | NAT | | 网络适配器 2 | 仅主机适配器 | 在安装过程中,选择了 OpenSSH Server。 安装后: ``` sudo apt update && sudo apt upgrade -y ``` 确认 SSH 正在运行: ``` sudo systemctl status ssh ``` 在启动时启用 SSH: ``` sudo systemctl enable ssh ``` 确认仅主机 IP: ``` ip a ``` Ubuntu 目标机 IP 表示为: ``` ``` ## 5.2 测试连通性 从 Splunk 服务器: ``` ping -c 4 ``` 从 Ubuntu 目标机: ``` ping -c 4 ``` 测试 Splunk 接收端口: ``` nc -vz 9997 ``` 如果缺少 `nc`: ``` sudo apt install netcat-openbsd -y ``` 预期输出: ``` Connection to 9997 port [tcp/*] succeeded! ``` ## 5.3 在 Ubuntu 目标机上安装 Splunk Universal Forwarder 下载 Linux `.deb` Splunk Universal Forwarder 软件包。 示例文件名: ``` splunkforwarder--linux-amd64.deb ``` 安装软件包: ``` sudo dpkg -i splunkforwarder--linux-amd64.deb ``` 启动 forwarder: ``` sudo /opt/splunkforwarder/bin/splunk start --accept-license ``` 将 Splunk 服务器添加为接收 indexer: ``` sudo /opt/splunkforwarder/bin/splunk add forward-server :9997 ``` 确认转发: ``` sudo /opt/splunkforwarder/bin/splunk list forward-server ``` 预期输出: ``` Active forwards: :9997 ``` ## 5.4 配置 Linux 日志输入 编辑 Linux forwarder 输入配置: ``` sudo nano /opt/splunkforwarder/etc/system/local/inputs.conf ``` 添加以下内容: ``` [monitor:///var/log/auth.log] disabled = 0 index = linux sourcetype = linux_secure [monitor:///var/log/syslog] disabled = 0 index = linux sourcetype = syslog ``` 重启 forwarder: ``` sudo /opt/splunkforwarder/bin/splunk restart ``` 确认输入状态: ``` sudo /opt/splunkforwarder/bin/splunk list inputstatus ``` 预期监控的文件: ``` /var/log/auth.log /var/log/syslog ``` ## 5.5 在 Splunk 中验证 Linux 日志 基本搜索: ``` index=linux ``` 验证 Linux 来源: ``` index=linux | stats count by host source sourcetype ``` 预期来源: ``` /var/log/auth.log /var/log/syslog ``` # 6. SSH 身份验证测试 ## 6.1 失败的 SSH 登录测试 从另一台实验室虚拟机: \d+\.\d+\.\d+\.\d+)" | stats count by src_ip | sort - count ``` ## 6.2 成功的 SSH 登录测试 从另一台实验室虚拟机: ``` ssh @ ``` 退出会话: ``` exit ``` 在 Splunk 中搜索: ``` index=linux sourcetype=linux_secure "Accepted password" | rex "from (?\d+\.\d+\.\d+\.\d+)" | table _time host src_ip _raw | sort - _time ``` ## 6.3 组合的 SSH 活动搜索 ``` index=linux sourcetype=linux_secure ("Failed password" OR "Accepted password") | rex "from (?\d+\.\d+\.\d+\.\d+)" | stats count by src_ip | sort - count ``` 此搜索提供了哪些来源 IP 生成了 SSH 身份验证活动的快速视图。 # 7. Kali Linux 设置 ## 7.1 创建 Kali 虚拟机 添加了 Kali Linux 以生成受控的测试活动。 推荐设置: | 设置 | 值 | | ---------------- | ------------------- | | 操作系统 | Kali Linux | | 内存 | 2–4 GB | | CPU | 2 个核心 | | 网络适配器 1 | 仅主机适配器 | | NAT | 初始禁用 | | 共享剪贴板 | 禁用 | | 拖放 | 禁用 | | 共享文件夹 | 无 | Kali 被隔离在仅主机网络上,以确保所有测试都在实验室内部进行。 ## 7.2 验证 Kali 网络连通性 在 Kali 上: ``` ip a ``` Kali IP 表示为: ``` ``` Ping Ubuntu 目标机: ``` ping -c 4 ``` 测试 SSH 可达性: ``` nc -vz 22 ``` 如果缺少 `nc`: ``` sudo apt update sudo apt install netcat-openbsd -y ``` ## 7.3 从 Kali 生成 SSH 事件 失败的 SSH 测试: ``` ssh fakeuser@ ``` 成功的 SSH 测试: ``` ssh @ ``` 针对失败尝试的 Splunk 搜索: ``` index=linux sourcetype=linux_secure "Failed password" | rex "from (?\d+\.\d+\.\d+\.\d+)" | table _time host src_ip _raw | sort - _time ``` 针对成功登录的 Splunk 搜索: ``` index=linux sourcetype=linux_secure "Accepted password" | rex "from (?\d+\.\d+\.\d+\.\d+)" | table _time host src_ip _raw | sort - _time ``` # 8. UFW 防火墙日志与 Nmap 检测 ## 8.1 在 Ubuntu 目标机上启用 UFW 在 Ubuntu 目标机上: ``` sudo apt update sudo apt install ufw -y sudo ufw allow ssh sudo ufw logging on sudo ufw enable sudo ufw status verbose ``` 这允许 SSH 访问,同时启用防火墙日志记录。 ## 8.2 从 Kali 运行受控的 Nmap 扫描 仅扫描实验室拥有的系统。 基本 SYN 扫描: ``` nmap -sS -Pn ``` 服务/版本扫描: ``` nmap -sV ``` 可选的激进扫描: ``` nmap -A -Pn ``` ## 8.3 在 Splunk 中搜索 UFW 日志 基本 UFW 搜索: ``` index=linux sourcetype=syslog "UFW" | table _time host _raw | sort - _time ``` 提取来源 IP 和目标端口: ``` index=linux sourcetype=syslog "UFW" | rex "SRC=(?\d+\.\d+\.\d+\.\d+)" | rex "DPT=(?\d+)" | stats count by src_ip dest_port | sort - count ``` ## 8.4 基本端口扫描检测搜索 此搜索查找联系了多个目标端口的来源 IP。 ``` index=linux sourcetype=syslog "UFW" | rex "SRC=(?\d+\.\d+\.\d+\.\d+)" | rex "DPT=(?\d+)" | stats dc(dest_port) as unique_ports count by src_ip | where unique_ports >= 5 | sort - unique_ports ``` 示例解释: ``` A single source IP attempted connections to multiple destination ports on the Ubuntu target. In this lab, the activity was expected and generated from the Kali VM using Nmap. ``` # 9. 实用的 SPL 搜索 ## 9.1 Windows 来源验证 ``` index=windows | stats count latest(_time) as latest_event by host source sourcetype | convert ctime(latest_event) | sort - latest_event ``` ## 9.2 Windows 成功登录 ``` index=windows source="WinEventLog:Security" EventCode=4624 | table _time host Account_Name Logon_Type IpAddress | sort - _time ``` ## 9.3 Windows 失败登录 ``` index=windows source="WinEventLog:Security" EventCode=4625 | table _time host Account_Name Failure_Reason IpAddress | sort - _time ``` ## 9.4 Sysmon 进程创建 ``` index=windows source=*Sysmon* EventCode=1 | table _time host User Image CommandLine ParentImage | sort - _time ``` ## 9.5 PowerShell 进程活动 ``` index=windows source=*Sysmon* EventCode=1 powershell | table _time host User Image CommandLine ParentImage | sort - _time ``` ## 9.6 Linux 来源验证 ``` index=linux | stats count by host source sourcetype ``` ## 9.7 失败的 SSH 登录 ``` index=linux sourcetype=linux_secure "Failed password" | rex "from (?\d+\.\d+\.\d+\.\d+)" | table _time host src_ip _raw | sort - _time ``` ## 9.8 成功的 SSH 登录 ``` index=linux sourcetype=linux_secure "Accepted password" | rex "from (?\d+\.\d+\.\d+\.\d+)" | table _time host src_ip _raw | sort - _time ``` ## 9.9 按来源 IP 分类的 SSH 活动 ``` index=linux sourcetype=linux_secure ("Failed password" OR "Accepted password") | rex "from (?\d+\.\d+\.\d+\.\d+)" | stats count by src_ip | sort - count ``` ## 9.10 UFW 防火墙事件 ``` index=linux sourcetype=syslog "UFW" | table _time host _raw | sort - _time ``` ## 9.11 可能的端口扫描活动 ``` index=linux sourcetype=syslog "UFW" | rex "SRC=(?\d+\.\d+\.\d+\.\d+)" | rex "DPT=(?\d+)" | stats dc(dest_port) as unique_ports count by src_ip | where unique_ports >= 5 | sort - unique_ports ``` ## 9.12 按索引时间排序的最近事件 如果事件时间戳显示不正确,此搜索非常有用。 ``` index=windows OR index=linux | where _indextime > relative_time(now(), "-15m") | eval indextime=strftime(_indextime, "%m/%d/%Y %I:%M:%S %p") | table indextime _time host index source sourcetype _raw | sort - indextime ``` # 10. 故障排查笔记 ## 10.1 无法从主机浏览器访问 Splunk Web 问题: ``` :8000 timed out ``` 原因: 虚拟机的 NAT 地址无法从主机浏览器直接访问。 修复: 使用仅主机适配器并浏览至: ``` http://:8000 ``` ## 10.2 Windows Forwarder 已连接但缺少 Sysmon 日志 问题: ``` Active forwards: :9997 ``` 标准 Windows 日志已转发,但缺少 Sysmon 日志。 原因: Splunk Forwarder 服务运行身份为: ``` NT SERVICE\SplunkForwarder ``` 修复: ``` sc.exe config SplunkForwarder obj= LocalSystem Restart-Computer ``` 确认: ``` Get-CimInstance Win32_Service -Filter "Name='SplunkForwarder'" | Select-Object Name, StartName, State ``` 预期: ``` StartName : LocalSystem State : Running ``` ## 10.3 错误的 Sysmon 日志名称 错误: ``` Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operations" ``` 正确: ``` Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" ``` ## 10.4 Splunk 时间或事件时间显示不正确 Windows 时间检查: ``` Get-Date Get-TimeZone Set-TimeZone -Id "" w32tm /resync ``` Ubuntu 时间检查: ``` timedatectl sudo timedatectl set-timezone ``` Splunk Web 时区设置: ``` Top-right username → Account Settings → Time zone → ``` ## 10.5 Linux Forwarder 已安装但缺少日志 检查转发: ``` sudo /opt/splunkforwarder/bin/splunk list forward-server ``` 检查监控的输入: ``` sudo /opt/splunkforwarder/bin/splunk list inputstatus ``` 检查 forwarder 日志: ``` sudo tail -n 50 /opt/splunkforwarder/var/log/splunk/splunkd.log ``` 审查输入配置: ``` sudo cat /opt/splunkforwarder/etc/system/local/inputs.conf ``` 预期: ``` [monitor:///var/log/auth.log] disabled = 0 index = linux sourcetype = linux_secure [monitor:///var/log/syslog] disabled = 0 index = linux sourcetype = syslog ``` 重启 forwarder: ``` sudo /opt/splunkforwarder/bin/splunk restart ``` # 11. 快照策略 在每个主要工作阶段之后拍摄了快照。 推荐的快照名称: | 虚拟机 | 快照名称 | | --------------- | ------------------------------------------------ | | Splunk Server | `splunk-server-receiving-windows-and-linux-logs` | | Windows 端点 | `windows-endpoint-sysmon-forwarding-working` | | Ubuntu 目标机 | `ubuntu-target-linux-and-ufw-logs-forwarding` | | Kali 虚拟机 | `kali-host-only-testing-ready` | 如果后续更改破坏了网络、转发或日志摄取,快照可提供回滚点。 # 12. 当前实验室状态 在此阶段,实验室成功收集了: | 来源 | 目标索引 | | ------------------------- | ----------------- | | Windows 安全日志 | `index=windows` | | Windows 系统日志 | `index=windows` | | Windows 应用程序日志 | `index=windows` | | Sysmon Operational 日志 | `index=windows` | | Linux 身份验证日志 | `index=linux` | | Linux syslog | `index=linux` | | UFW 防火墙日志 | `index=linux` | 已验证的活动: * Windows 事件日志转发至 Splunk * Sysmon 进程创建在 Splunk 中可见 * Linux 身份验证日志在 Splunk 中可见 * 失败的 SSH 尝试在 Splunk 中可见 * 成功的 SSH 登录在 Splunk 中可见 * Kali 生成的 Nmap 扫描活动通过 UFW/syslog 可见 * 针对可能端口扫描的基础 SPL 检测 # 13. 展示的技能 该实验室展示了对以下方面的动手经验: * SIEM 部署与配置 * Splunk Enterprise 管理基础 * Splunk Universal Forwarder 设置 * Windows 事件日志摄取 * Sysmon 部署与故障排查 * Linux 日志转发 * SSH 身份验证日志分析 * 防火墙日志分析 * Nmap 扫描检测 * SPL 查询编写 * 日志来源验证 * 端点遥测分析 * 安全的实验室隔离实践 * 网络和转发问题故障排查
标签:CTI, SOC实验室, Sysmon, 端点检测