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, 端点检测