AhmedAAtef/elk-threat-hunting-lab
GitHub: AhmedAAtef/elk-threat-hunting-lab
基于 Docker 部署的 ELK Stack 安全教学实验室,通过注入模拟攻击日志帮助学生练习威胁狩猎与数字取证技能。
Stars: 0 | Forks: 0
# ELK Stack 威胁狩猎实验室
欢迎使用 **ELK Stack** 数字取证与安全日志监控实验室。该实验室旨在模拟真实的安全攻击,以训练学生在系统日志中进行攻击追踪(Threat Hunting)的技能。
## 🛠️ 第一阶段:准备与安装前提条件 (Setup & Prerequisites)
必须在您的计算机上按正确顺序设置以下工具,以确保实验室顺利运行:
### 1️⃣ 安装 WSL (Windows Subsystem for Linux)
*Docker Desktop 依赖 WSL 2 引擎作为后台来高效运行容器。*
1. 以管理员身份运行 (Run as Administrator) 打开 **PowerShell**。
2. 输入以下命令并按回车:
wsl --install
3. **重启您的计算机 (Restart)** 以完成安装。
4. 重启后,在 PowerShell 中输入以下命令,以验证引擎是否正常运行:
wsl --status
### 2️⃣ 安装 Docker Desktop
1. 从官方链接下载并安装该程序:
👉 **[下载适用于 Windows 的 Docker Desktop](https://www.docker.com/products/docker-desktop/)**
2. 安装完成后,打开程序并确保底部的鲸鱼图标显示为绿色 (Running)。
### 3️⃣ 安装 Git 工具
1. 从官方链接下载并安装 Git 工具:
👉 **[下载适用于 Windows 的 Git](https://git-scm.com/install/windows)**
2. 在安装过程中,保持默认设置不变,并确保勾选了将 Git 添加到系统 PATH (Add Git to PATH) 的选项,这是默认选项:*"Git from the command line and also from 3rd-party software"*。
## 🚀 第二阶段:下载并启动实验室 (Clone & Launch)
设置好前提条件后,请按照以下步骤启动实验室服务器:
1. 打开 **PowerShell**(确保您当前不在受保护的 System32 目录内)。
2. 从 GitHub 仓库克隆实验室文件:
git clone https://github.com/AhmedAAtef/elk-threat-hunting-lab.git
3. 进入下载的目录:
cd elk-threat-hunting-lab
4. 启动实验室(Elasticsearch、Logstash、Kibana、Filebeat、Log Generator):
docker compose up -d
5. **验证服务运行状态**:
* 等待约 **两分钟**,让启动过程彻底完成。
* 要查看服务器状态,请输入:
docker compose ps
*(所有容器的状态应该都是 Running)。*
* 为确保 Elasticsearch 数据库正常运行并能够响应,请打开浏览器并访问:**`http://localhost:9200`**(您应该会看到一个包含 `"tagline" : "You Know, for Search"` 的 JSON 页面)。
## 🎨 第三阶段:配置 Kibana 界面 (Kibana Initialization)
一旦服务器启动,您必须在 Kibana 中设置数据视图 (Data Views) 才能对日志进行搜索:
1. 打开浏览器并进入 Kibana 界面:
👉 **[http://localhost:5601](http://localhost:5601)**
2. 打开侧边栏(左上角 - 3 条横线图标)并进入:
**Management > Stack Management**
3. 在左侧菜单中,点击 **Data Views**(位于 Kibana 部分下)。
4. 点击蓝色的 **Create data view** 按钮。
5. 创建第一个数据视图(用于实时日志):
* **Name**: `Generator Direct TCP`
* **Index pattern**: `generator-direct-*`
* **Timestamp field**: `timestamp`
* 点击 **Save data view**。
6. 创建第二个数据视图(用于通过 Filebeat 聚合的日志):
* **Name**: `Generator Filebeat`
* **Index pattern**: `generator-filebeat-*`
* **Timestamp field**: `@timestamp`
* 点击 **Save data view**。
## 🔍 第四阶段:开始挑战与调查 (Threat Hunting)
现在实验室已完全准备就绪,真实的攻击数据正在被注入到日志中!
1. 前往 Kibana 的侧边栏并选择 **Analytics > Discover**。
2. 阅读文件夹中的 **[CHALLENGE.md](CHALLENGE.md)** 文件,完整了解挑战背景故事以及要求您解答的问题。
3. 在 Discover 中使用查询语言 (KQL) 来解答问题并追踪攻击者的步骤!
4. 供讲师使用或在完成后验证答案,您可以查看 **[CHALLENGE_ANSWERS.md](CHALLENGE_ANSWERS.md)** 文件中的标准答案和查询方法。
标签:Docker, ELK Stack, 内容过滤, 安全, 安全实验室, 安全防御评估, 数字取证, 版权保护, 自动化脚本, 请求拦截, 超时处理, 越狱测试