alexrepsec/Case-Management-with-TheHive
GitHub: alexrepsec/Case-Management-with-TheHive
该项目在家庭SOC实验室中演示了使用TheHive进行完整事件响应周期的实战案例。
Stars: 0 | Forks: 0
# 🐝 使用 TheHive 进行案例管理 — 幽灵丰收行动






## 📋 概述
本项目演示了在家庭 SOC 实验室环境中,使用 TheHive 5 作为案例管理平台的**完整事件响应周期**。模拟攻击者 (Kali Linux) 对 SOC 服务器 (Ubuntu 22.04) 执行侦察和凭证攻击,同时分析师管理完整的案例生命周期:检测、分类、遏制、修复和关闭——所有过程均在 TheHive 中记录。
## 🧪 场景 — 幽灵丰收行动
| 字段 | 值 |
|---|---|
| 案例标题 | 幽灵丰收行动 |
| 案例 ID | #1 |
| 严重性 | HIGH |
| TLP | AMBER |
| PAP | AMBER |
| 状态 | True Positive |
| 影响 | 是 |
| 开始日期 | 2026-07-09 20:23 |
| 结束日期 | 2026-07-09 23:43 |
| 分析师 | SOC Analyst |
## 🏗️ 实验室架构
```
┌─────────────────────────────────────────────────────────────────┐
│ VMware Workstation │
│ NAT Network: 192.168.253.0/24 │
│ │
│ ┌─────────────────────────┐ ┌──────────────────────────┐ │
│ │ Ubuntu 22.04 (SOC) │ │ Kali Linux │ │
│ │ 192.168.253.131 │ │ 192.168.253.130 │ │
│ │ │ │ │ │
│ │ ┌───────────────────┐ │ │ ┌────────────────────┐ │ │
│ │ │ TheHive 5.2 │ │ │ │ nmap 7.95 │ │ │
│ │ │ :9000 │ │ │ │ hydra │ │ │
│ │ ├───────────────────┤ │ │ │ rockyou.txt │ │ │
│ │ │ Cortex 3.1.7 │ │ │ └────────────────────┘ │ │
│ │ │ :9001 │◄─┼───┼──── SSH Brute Force ────│ │
│ │ ├───────────────────┤ │ │ ──── Nmap Scan ────────│ │
│ │ │ Cassandra 4.1 │ │ └──────────────────────────┘ │
│ │ ├───────────────────┤ │ │
│ │ │ Elasticsearch │ │ │
│ │ │ 7.17.9 │ │ │
│ │ └───────────────────┘ │ │
│ │ Docker Compose │ │
│ └─────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
## 🛠️ 技术栈
| 组件 | 版本 | 角色 |
|---|---|---|
| TheHive | 5.2 | 案例管理平台 |
| Cortex | 3.1.7 | 分析与响应引擎 |
| Cassandra | 4.1 | TheHive 数据库后端 |
| Elasticsearch | 7.17.9 | 索引与搜索引擎 |
| Docker Compose | v5.3.1 | 容器编排 |
| Ubuntu | 22.04 LTS | SOC 服务器 |
| Kali Linux | 2024.x | 攻击机 |
| nmap | 7.95 | 侦察工具 |
| Hydra | — | 暴力破解工具 |
## 📁 仓库结构
```
thehive-case-management/
├── docker-compose.yml # Full stack deployment
├── thehive/
│ ├── data/ # TheHive persistent data
│ └── logs/ # TheHive logs
├── cortex/
│ └── neurons/ # Cortex analyzer modules
├── cassandra/
│ └── data/ # Cassandra persistent data
├── elasticsearch/
│ └── data/ # Elasticsearch persistent data
├── screenshots/
│ ├── overall-case-view.png
│ ├── tasks-view.png
│ ├── observables-view.png
│ ├── ttp-tab.png
│ ├── docker-ps.png
│ └── firewall-status.png
└── README.md
```
## 🚀 部署
### 前置条件
- VMware Workstation / Fusion
- Ubuntu 22.04 LTS(最低 4GB RAM,2 个 CPU,18GB 磁盘)
- Kali Linux(2GB RAM)
- 两台虚拟机均处于 VMware NAT 网络中
### 1. 安装 Docker
```
# 删除旧版本
sudo apt remove -y docker docker-engine docker.io containerd runc 2>/dev/null
# 更新并安装依赖
sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-release
# 添加 Docker GPG key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# 添加 Docker repository
UBUNTU_CODENAME=$(lsb_release -cs)
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $UBUNTU_CODENAME stable" | sudo tee /etc/apt/sources.list.d/docker.list
# 安装 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 启用并验证
sudo systemctl enable docker --now
sudo usermod -aG docker $USER
newgrp docker
docker --version
docker compose version
```
### 2. 准备目录结构
```
mkdir -p ~/thehive-lab/{thehive,cortex,cassandra,elasticsearch,nginx}
cd ~/thehive-lab
mkdir -p cassandra/data elasticsearch/data thehive/data thehive/logs cortex/neurons
# 修复 Elasticsearch 权限
sudo chown -R 1000:1000 ~/thehive-lab/elasticsearch/data
sudo chown -R 1000:1000 ~/thehive-lab/thehive/data
sudo chown -R 1000:1000 ~/thehive-lab/thehive/logs
```
### 3. Docker Compose 配置
```
version: "3.8"
services:
cassandra:
image: cassandra:4.1
container_name: cassandra
restart: unless-stopped
environment:
- CASSANDRA_CLUSTER_NAME=thehive
- CASSANDRA_DC=dc1
- CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch
volumes:
- ./cassandra/data:/var/lib/cassandra
networks:
- thehive-net
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.9
container_name: elasticsearch
restart: unless-stopped
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- ES_JAVA_OPTS=-Xms512m -Xmx512m
volumes:
- ./elasticsearch/data:/usr/share/elasticsearch/data
networks:
- thehive-net
cortex:
image: thehiveproject/cortex:3.1.7
container_name: cortex
restart: unless-stopped
environment:
- job_directory=/tmp/cortex-jobs
volumes:
- ./cortex/neurons:/neurons
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "9001:9001"
depends_on:
- elasticsearch
networks:
- thehive-net
thehive:
image: strangebee/thehive:5.2
container_name: thehive
restart: unless-stopped
environment:
- JVM_OPTS=-Xms1024m -Xmx1024m
volumes:
- ./thehive/data:/opt/thp/thehive/data
- ./thehive/logs:/opt/thp/thehive/logs
ports:
- "9000:9000"
depends_on:
- cassandra
- elasticsearch
- cortex
networks:
- thehive-net
networks:
thehive-net:
driver: bridge
```
### 4. 启动技术栈
```
cd ~/thehive-lab && docker compose up -d
# 验证所有 containers 正在运行
docker ps
```
预期输出 — 所有 4 个容器均为 `Up`:
```
CONTAINER ID IMAGE STATUS
0ad934480435 strangebee/thehive:5.2 Up About an hour
8bdb68c65b8d thehiveproject/cortex:3.1.7 Up About an hour
890ede564593 cassandra:4.1 Up About an hour
47c0c89ac8bd docker.elastic.co/elasticsearch/...7.17.9 Up About an hour
```
### 5. 访问
| 服务 | URL | 默认凭证 |
|---|---|---|
| TheHive | `http://:9000` | `admin@thehive.local` / `secret` |
| Cortex | `http://:9001` | `admin` / `secret` |
## ⚙️ 初始配置
### TheHive 设置
1. 登录 → 修改 admin 密码
2. **Admin → Organizations → Create organization**
- 名称:`SOC-Lab`
- 描述:`Operation Phantom Harvest Lab`
3. 在组织内创建分析师用户
- 登录:`analyst@soc-lab.local`
- 角色:`analyst`
### Cortex 设置
1. 登录 → 创建组织 `SOC-Lab`
2. 创建角色为 `orgadmin` 的用户
3. 生成 API Key → 复制以用于 TheHive 集成
### 连接 Cortex 到 TheHive
**Admin → Platform Management → Connectors → Cortex → Add server**
| 字段 | 值 |
|---|---|
| 名称 | `Cortex-SOC` |
| URL | `http://cortex:9001` |
| API Key | `` |
点击 **Test connection** → 应返回 `success`。
## ⚔️ 攻击模拟 (Kali Linux)
所有命令均从 `192.168.253.130` (Kali) 执行,目标为 `192.168.253.131` (Ubuntu SOC)。
### 阶段 1 — 侦察
```
# 带服务版本检测的 SYN scan
nmap -sS -sV -p 22,80,443,8080,9000,9001 192.168.253.131
```
```
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.15
9000/tcp open cslistener?
9001/tcp open tor-orport?
```
```
# Aggressive scan — OS 检测、scripts、traceroute
nmap -A -T4 192.168.253.131
```
### 阶段 2 — 凭证攻击
```
# 使用 rockyou.txt wordlist 进行 SSH brute force
hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://192.168.253.131 -t 4 -V -f
```
结果:**15,618 次失败尝试 — 0 次成功登录。**
## 🗂️ TheHive 中的案例管理
### 案例详情

### MITRE ATT&CK TTPs

| 战术 | 技术 | 描述 |
|---|---|---|
| 侦察 | T1595 - 主动扫描 | nmap SYN 和激进扫描 |
| 凭证访问 | T1110 - 暴力破解 | 通过 Hydra + rockyou.txt 进行 SSH 暴力破解 |
### 可观测对象 (IOCs)

| 类型 | 值 | 标签 | 角色 |
|---|---|---|---|
| IP | `192.168.253.130` | attacker, kali | 攻击来源 |
| IP | `192.168.253.131` | victim, soc-server | 目标 |
| 其他 | `OpenSSH 8.9p1 Ubuntu` | ssh, service | 被攻击的服务 |
### 任务 — 事件响应工作流

| # | 分组 | 任务 | 状态 |
|---|---|---|---|
| 1 | 调查 | 识别攻击源并封锁 IP | ✅ 已关闭 |
| 2 | 调查 | 审计 SSH 日志以查找成功登录 | ✅ 已关闭 |
| 3 | 遏制 | 加固 SSH - 禁用密码认证 | ✅ 已关闭 |
| 4 | 遏制 | 扫描环境以检测横向移动 | ✅ 已关闭 |
| 5 | 关闭 | 撰写事件报告并关闭案例 | ✅ 已关闭 |
## 🔒 事件响应行动
### 任务 1 — 识别并封锁攻击者
```
# 审查 SSH auth logs
sudo grep "192.168.253.130" /var/log/auth.log | tail -20
# 使用 UFW 封禁攻击者 IP
sudo ufw enable
sudo ufw deny from 192.168.253.130 to any
sudo ufw status
```

### 任务 2 — 审计 SSH 日志
```
# 检查是否有成功的登录
sudo grep "Accepted" /var/log/auth.log
# 统计总 brute force 尝试次数
sudo grep "Failed password" /var/log/auth.log | grep "192.168.253.130" | wc -l
# 审查活动会话
last | head -20
```
结果:**0 次成功登录。15,618 次失败尝试。**
### 任务 3 — SSH 加固
```
# 备份原始 config
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 禁用密码认证
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
# 减少最大认证尝试次数
sudo sed -i 's/#MaxAuthTries 6/MaxAuthTries 3/' /etc/ssh/sshd_config
# 验证并重启
sudo grep -E "PasswordAuthentication|MaxAuthTries" /etc/ssh/sshd_config | grep -v "#"
sudo systemctl restart ssh
```
### 任务 4 — 横向移动扫描
```
# 检查活动外部连接
ss -tnp
# 验证正在监听的服务
sudo ss -tulnp
# 检查已登录用户
who && w
# 审查运行中的进程
ps aux --sort=-%cpu | head -20
# 审计 crontabs
sudo crontab -l 2>/dev/null
sudo ls -la /etc/cron*
```
结果:**无可疑连接。无后门。未检测到横向移动。**
## 📊 事件总结
```
┌─────────────────────────────────────────────────────────┐
│ INCIDENT REPORT SUMMARY │
│ Operation Phantom Harvest │
├─────────────────────────────────────────────────────────┤
│ Attack Vector │ SSH Brute Force (Port 22) │
│ Source IP │ 192.168.253.130 (Kali) │
│ Target IP │ 192.168.253.131 (Ubuntu SOC) │
│ Total Attempts │ 15,618 │
│ Successful Logins│ 0 │
│ Lateral Movement │ NOT DETECTED │
│ Data Exfiltrated │ NONE │
│ System Compromise│ NEGATIVE │
├─────────────────────────────────────────────────────────┤
│ VERDICT │ True Positive — Contained │
│ Impact │ Yes (resource exhaustion on sshd) │
└─────────────────────────────────────────────────────────┘
```
### 事件时间线
| 时间 (UTC) | 事件 |
|---|---|
| 20:15 | 从 192.168.253.130 发起 nmap SYN 扫描 |
| 20:17 | 激进 nmap 扫描 — 枚举开放服务 |
| 20:20 | 通过 Hydra + rockyou.txt 发起 SSH 暴力破解 |
| 23:15 | 在 TheHive 中创建案例 #1 — 启动调查 |
| 23:23 | 通过 UFW 防火墙封锁攻击者 IP |
| 23:25 | SSH 审计 — 15,618 次失败尝试,0 次成功 |
| 23:29 | SSH 加固 — 禁用 PasswordAuthentication |
| 23:34 | 横向移动扫描 — 系统安全 |
| 23:43 | 案例作为 True Positive 关闭 |
## 🖥️ 基础设施验证
### Docker 技术栈运行中

### UFW 防火墙已激活

## 🎯 展示技能
- **案例管理** — TheHive 5 中的完整事件生命周期
- **SIEM 集成** — TheHive + Cortex 连接器配置
- **容器编排** — 多服务 Docker Compose 部署
- **威胁检测** — 通过 auth 日志识别 SSH 暴力破解
- **MITRE ATT&CK 映射** — T1595, T1110
- **IOC 记录** — 结构化的可观测对象跟踪
- **事件响应** — 检测 → 遏制 → 修复 → 关闭
- **SSH 加固** — 禁用密码认证,减少 MaxAuthTries
- **防火墙管理** — UFW 规则创建与验证
- **Linux 取证** — 日志分析,进程审计,crontab 审查
## ⚠️ 免责声明
本项目是在隔离的 VMware NAT 实验室环境中进行的。所有攻击模拟均是针对作者拥有和控制的虚拟机执行的,仅供教育和作品集展示之用。未对任何真实系统或网络造成损害。
## 👤 作者
**Alex** — [@alexrepsec](https://github.com/alexrepsec)
网络安全爱好者,致力于构建实用的 SOC 实验室以用于学习和作品集开发。
标签:CIDR查询, Docker, TheHive, 安全运营, 安全防御评估, 实验室环境, 库, 应急响应, 扫描框架, 版权保护