alexrepsec/Case-Management-with-TheHive

GitHub: alexrepsec/Case-Management-with-TheHive

该项目在家庭SOC实验室中演示了使用TheHive进行完整事件响应周期的实战案例。

Stars: 0 | Forks: 0

# 🐝 使用 TheHive 进行案例管理 — 幽灵丰收行动 ![平台](https://img.shields.io/badge/Platform-TheHive%205-yellow?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PC9zdmc+) ![SIEM](https://img.shields.io/badge/Cortex-3.1.7-orange?style=for-the-badge) ![Docker](https://img.shields.io/badge/Docker-Compose-blue?style=for-the-badge&logo=docker) ![OS](https://img.shields.io/badge/Ubuntu-22.04-E95420?style=for-the-badge&logo=ubuntu) ![MITRE](https://img.shields.io/badge/MITRE-ATT%26CK-red?style=for-the-badge) ![状态](https://img.shields.io/badge/Case-TruePositive-brightgreen?style=for-the-badge) ## 📋 概述 本项目演示了在家庭 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 中的案例管理 ### 案例详情 ![总体案例视图](https://static.pigsec.cn/wp-content/uploads/repos/cas/6a/6a5d58b9d7af806ae813707de86b8c7aaf945a263c10959317361fe0d907917d.png) ### MITRE ATT&CK TTPs ![TTP 标签页](https://raw.githubusercontent.com/alexrepsec/Case-Management-with-TheHive/main/screenshots/ttp-tab.png) | 战术 | 技术 | 描述 | |---|---|---| | 侦察 | T1595 - 主动扫描 | nmap SYN 和激进扫描 | | 凭证访问 | T1110 - 暴力破解 | 通过 Hydra + rockyou.txt 进行 SSH 暴力破解 | ### 可观测对象 (IOCs) ![可观测对象视图](https://raw.githubusercontent.com/alexrepsec/Case-Management-with-TheHive/main/screenshots/observables-view.png) | 类型 | 值 | 标签 | 角色 | |---|---|---|---| | IP | `192.168.253.130` | attacker, kali | 攻击来源 | | IP | `192.168.253.131` | victim, soc-server | 目标 | | 其他 | `OpenSSH 8.9p1 Ubuntu` | ssh, service | 被攻击的服务 | ### 任务 — 事件响应工作流 ![任务视图](https://raw.githubusercontent.com/alexrepsec/Case-Management-with-TheHive/main/screenshots/tasks-view.png) | # | 分组 | 任务 | 状态 | |---|---|---|---| | 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 ``` ![防火墙状态](https://raw.githubusercontent.com/alexrepsec/Case-Management-with-TheHive/main/screenshots/firewall-status.png) ### 任务 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 技术栈运行中 ![Docker PS](https://raw.githubusercontent.com/alexrepsec/Case-Management-with-TheHive/main/screenshots/docker-ps.png) ### UFW 防火墙已激活 ![防火墙状态](https://raw.githubusercontent.com/alexrepsec/Case-Management-with-TheHive/main/screenshots/firewall-status.png) ## 🎯 展示技能 - **案例管理** — 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, 安全运营, 安全防御评估, 实验室环境, 库, 应急响应, 扫描框架, 版权保护