kerberosi-maru/cybersecurity-homelab
GitHub: kerberosi-maru/cybersecurity-homelab
一套个人网络安全家庭实验室文档与脚本,帮助安全学习者在隔离环境中练习恶意软件分析、网络防御和SOC技能。
Stars: 0 | Forks: 0
# 🛡️ Bennett 的网络安全家庭实验室
**个人作品集项目 | 恶意软件分析 • 网络防御 • SOC 技能**
[](https://www.pfsense.org/)
[](https://securityonion.net/)
[](https://remnux.org/)
[](https://ubuntu.com/)
[](https://www.microsoft.com/windows/)
**版本:** 2026 年 5 月 (GitHub 版)
**状态:** 活跃 | 持续改进中
**作者:** Bennett Fielding Love Jr. — 美国陆军战斗老兵 (20多年), CompTIA Security+ / CySA+ / A+ / Network+, Lean Six Sigma 黄带
## 🎯 项目目的
该仓库记录了我为了实践学习、认证准备 (SecurityX/CASP+、CBROPS、CCNA、CEH) 以及在转型至网络安全/IT岗位 (SOC Analyst、云安全、网络防御、Helpdesk) 过程中开发作品集,而亲手搭建的**网络安全家庭实验室**。
**目标:**
- 掌握隔离环境下的恶意软件分析工作流
- 使用 pfSense + Security Onion 构建并运营分段网络
- 练习蓝队技能:日志分析、检测、事件响应模拟
- 创建可共享的、专业的文档,向雇主展示真实的实战技能
- 支持对神经多样性友好的学习方式 (简短、专注的练习环节,配有清晰的检查清单和脚本)
该实验室强调**安全性、可重复性和文档记录** — 这是我过去在雷达/EW/目标识别方面的军队背景以及目前承包商/IT工作的核心原则。
## 🏗️ 网络架构
### 高层级图表
```
flowchart TD
subgraph Internet ["Internet / External"]
direction TB
end
pfSense[pfSense VM
Firewall + Router
Multi-WAN capable] subgraph LANHOME ["LANHOME: 192.168.10.0/24
(Management & Jumpbox)"] direction TB Jumpbox[Jumpbox Laptop
Ubuntu 22.04/24.04
192.168.10.50
mosh + SSH access] end subgraph SANDBOX ["SANDBOX: 192.168.60.0/24
(Isolated Malware Analysis)"] direction TB REMnux[REMnux
192.168.60.100
Malware Analysis Toolkit] Victim[Windows 10/11 Victim VM
192.168.60.101
Clean-Base-State Snapshot] end Internet -->|WAN| pfSense pfSense -->|LAN Interface| LANHOME pfSense -->|OPT / Isolated Interface| SANDBOX Jumpbox -.->|mosh / SSH| REMnux Jumpbox -.->|Controlled Access| Victim classDef primary fill:#1e40af,stroke:#1e3a8a,color:#fff classDef isolated fill:#7f1d1d,stroke:#450a0a,color:#fff class pfSense primary class REMnux,Victim isolated ``` ### 组件 | 子网 / 主机 | IP 地址 | 用途 | 操作系统 / 备注 | |------------------------|---------------------|--------------------------------------|--------------------------------| | **LANHOME** | 192.168.10.0/24 | 管理与日常操作 | — | | Jumpbox | 192.168.10.50 | 主控制 / SSH 跳板主机 | Ubuntu (WSL 或原生笔记本电脑) | | **SANDBOX** (隔离) | 192.168.60.0/24 | 恶意软件引爆与分析 | 独立的 pfSense 接口 | | REMnux | 192.168.60.100 | 静态与动态恶意软件分析工具 | REMnux 发行版 | | Windows Victim VM | 192.168.60.101 | 安全的执行环境 | Windows 10/11 + 快照 | | pfSense | — | 防火墙、路由、网络分段 | 虚拟化 (Proxmox / ESXi / VirtualBox) | **关键设计原则:** - 管理 (LANHOME) 和分析 (SANDBOX) 网络之间严格隔离 - Jumpbox 作为唯一的受控入口点 - pfSense 处理区域之间的防火墙规则、NAT 和流量整形 - 所有与恶意软件相关的活动都保留在 SANDBOX 内 ## 🚀 快速开始 (克隆与使用) ``` git clone https://github.com/YOUR-USERNAME/cybersecurity-homelab.git cd cybersecurity-homelab ``` ### 前置条件 - pfSense 虚拟机 (或硬件) - 用作 Jumpbox 的 Ubuntu 机器/笔记本电脑 (或 WSL2) - REMnux 虚拟机 - 具备快照功能的 Windows 虚拟机 (VirtualBox / VMware / Proxmox) - 基础的网络知识 请查看 `/docs` 中的各个文档以获取详细的安装指南 (即将推出)。 ## 🛠️ 实用别名与自动化脚本 所有别名均旨在用于 **Jumpbox** 上执行 source 加载。 ### 快速参考表 | 命令 | 描述 | 实现方式 | |--------------------|--------------------------------------------------|---------------------------------| | `jump` | 通过 mosh 连接到 Jumpbox | `mosh user@192.168.10.50` | | `remnux` | 直接 SSH 连接到 REMnux | `ssh remnux@192.168.60.100` | | `fileserver` | 在 REMnux 上启动 Python 上传 Web 服务器 | `python3 -m http.server ...` | | `sandbox-capture` | 为 SANDBOX 流量启动 tcpdump | 自定义脚本 | | `sandbox-status` | 快速 ping + 连通性健康检查 | `scripts/sandbox-status.sh` | ### `/scripts` 中的脚本 - `sandbox-status.sh` — Ping 关键主机并报告状态 - `aliases.sh` — 执行 source 加载此文件以使用便捷功能 - 更多自动化功能即将推出 (虚拟机快照辅助工具、日志解析器等) **source 加载后的示例用法:** ``` source scripts/aliases.sh sandbox-status ``` ## 📋 每日启动检查清单 1. 启动 **pfSense** 虚拟机 (确保 WAN/LAN/OPT 接口已启动) 2. 开启 **Jumpbox** 笔记本电脑 3. 在主 Windows 宿主机上 → 打开 WSL Ubuntu 终端 → 输入 `jump` 4. 运行连通性检查:`sandbox-status` 5. 在 REMnux 上启动文件服务器:`fileserver` 6. 启动 **Windows Victim VM** → **首先恢复至 "Clean-Base-State" 快照** 7. (可选) 完整连通性测试: ping 192.168.60.100 # REMnux ping 192.168.60.101 # Windows Victim ## 🔄 文件传输工作流 (主宿主机 → Victim VM) **推荐的安全方法 (Python 上传服务器)** 1. 在主 Windows 宿主机上,将样本文件 (保持为 `.zip` 格式) 放在: `C:\Users\benne\Documents\Sandbox\Samples\` 2. 在 Jumpbox 上:`fileserver` 3. 在主 Windows 宿主机浏览器中:访问 `http://192.168.60.100:8000/upload.html` 4. 上传压缩的样本 5. 在 **Windows Victim VM** 浏览器中:访问 `http://192.168.60.100:8000` 并下载 这可以保持主宿主机的纯净,并使用隔离的 REMnux 作为传输代理。 ## 🔍 静态分析命令 (在 REMnux 上) ``` cd ~/samples # 基础文件识别 file *.exe md5sum *.exe sha256sum *.exe # 提取字符串以供快速审查 strings *.exe > strings.txt less strings.txt # Use / to search, q to quit # 聚焦感兴趣的字符串 strings *.exe | grep -E "http|https|powershell|cmd|run|regsvr32|dll|exe|360|paint|opencv|inject" | head -100 ``` 请查看 `docs/static-analysis-cheatsheet.md` 获取扩展版本 (规划中)。 ## 🏃 动态分析最佳实践 ### 准备工作 - 将 Windows Victim VM 恢复至 **Clean-Base-State** 快照 - 启动 **ProcMon** (过滤样本文件名) - 启动 **Process Hacker** - 在 Jumpbox 上:使用 `sandbox-capture` 开始抓包 ### 执行 - 运行样本最多 **30-60 秒** - 停止捕获 (`Ctrl+C`) - **立即**将 Victim VM 恢复至干净快照 ### 审查 - 分析 ProcMon 日志中的注册表写入、文件创建、进程注入 - 审查捕获内容: tcpdump -r /tmp/sandbox_capture.pcap -nn -A | less 完整的工作流和工具建议请见 `/docs/dynamic-analysis-playbook.md`。 ## 🛡️ 安全与重置规则 (不可妥协) - **绝不**在您的主 Windows 宿主机或生产机器上执行恶意软件样本 - **务必**在每次运行后将 Victim VM 恢复至干净快照 - 在准备好进行分析之前,将所有样本保持为压缩状态 - 定期运行 `sandbox-status` 以验证隔离状态 - 记录每次分析会话 (日期、样本哈希值、发现、经验教训) ## 📸 屏幕截图与视觉证据 (在此处添加您自己的屏幕截图 — 强烈建议用于提升作品集效果) **计划添加的内容:** - 带有防火墙规则的 pfSense 仪表板 - Security Onion Kibana / 告警概览 - 带有分析工具的 REMnux 桌面 - 数据包捕获示例 - 虚拟机前/后状态对比 将图片放在 `/images/` 中并在 Markdown 中引用它们。 ## 🔮 路线图 / 未来改进 - [ ] 详细的 pfSense 配置指南 + 导出的规则 - [ ] Security Onion 传感器部署 + 自定义仪表板 - [ ] 自动化快照与恢复脚本 (VirtualBox / Proxmox) - [ ] 用于日志解析和报告生成的 Python 自动化 - [ ] 与 Wazuh / Splunk 集成 (如果添加) - [ ] 来自实验室活动的 YARA / Sigma 规则示例 - [ ] 完整的事件响应模拟操作手册 - [ ] 家庭实验室的成本与电源效率说明 ## 📄 许可证 本项目基于 **MIT 许可证**授权 — 详情请参阅 [LICENSE](LICENSE) 文件。 您可以自由使用、修改和分享文档与脚本。欢迎注明出处,但不作强制要求。 ## 🙏 致谢与灵感 - 我的美国陆军服役经历 (131A 雷达 / 目标识别 / EW) — 灌输了我对文档、检查清单和系统性故障排除的严谨态度 - REMnux、Security Onion 和 pfSense 社区 - GitHub 和 YouTube 上的众多蓝队家庭实验室构建者 **有问题或建议?** 请提交 issue 或通过 LinkedIn / X 联系我。 *怀着 ❤️ 构建,旨在持续学习并成功转型至网络安全领域。*
Firewall + Router
Multi-WAN capable] subgraph LANHOME ["LANHOME: 192.168.10.0/24
(Management & Jumpbox)"] direction TB Jumpbox[Jumpbox Laptop
Ubuntu 22.04/24.04
192.168.10.50
mosh + SSH access] end subgraph SANDBOX ["SANDBOX: 192.168.60.0/24
(Isolated Malware Analysis)"] direction TB REMnux[REMnux
192.168.60.100
Malware Analysis Toolkit] Victim[Windows 10/11 Victim VM
192.168.60.101
Clean-Base-State Snapshot] end Internet -->|WAN| pfSense pfSense -->|LAN Interface| LANHOME pfSense -->|OPT / Isolated Interface| SANDBOX Jumpbox -.->|mosh / SSH| REMnux Jumpbox -.->|Controlled Access| Victim classDef primary fill:#1e40af,stroke:#1e3a8a,color:#fff classDef isolated fill:#7f1d1d,stroke:#450a0a,color:#fff class pfSense primary class REMnux,Victim isolated ``` ### 组件 | 子网 / 主机 | IP 地址 | 用途 | 操作系统 / 备注 | |------------------------|---------------------|--------------------------------------|--------------------------------| | **LANHOME** | 192.168.10.0/24 | 管理与日常操作 | — | | Jumpbox | 192.168.10.50 | 主控制 / SSH 跳板主机 | Ubuntu (WSL 或原生笔记本电脑) | | **SANDBOX** (隔离) | 192.168.60.0/24 | 恶意软件引爆与分析 | 独立的 pfSense 接口 | | REMnux | 192.168.60.100 | 静态与动态恶意软件分析工具 | REMnux 发行版 | | Windows Victim VM | 192.168.60.101 | 安全的执行环境 | Windows 10/11 + 快照 | | pfSense | — | 防火墙、路由、网络分段 | 虚拟化 (Proxmox / ESXi / VirtualBox) | **关键设计原则:** - 管理 (LANHOME) 和分析 (SANDBOX) 网络之间严格隔离 - Jumpbox 作为唯一的受控入口点 - pfSense 处理区域之间的防火墙规则、NAT 和流量整形 - 所有与恶意软件相关的活动都保留在 SANDBOX 内 ## 🚀 快速开始 (克隆与使用) ``` git clone https://github.com/YOUR-USERNAME/cybersecurity-homelab.git cd cybersecurity-homelab ``` ### 前置条件 - pfSense 虚拟机 (或硬件) - 用作 Jumpbox 的 Ubuntu 机器/笔记本电脑 (或 WSL2) - REMnux 虚拟机 - 具备快照功能的 Windows 虚拟机 (VirtualBox / VMware / Proxmox) - 基础的网络知识 请查看 `/docs` 中的各个文档以获取详细的安装指南 (即将推出)。 ## 🛠️ 实用别名与自动化脚本 所有别名均旨在用于 **Jumpbox** 上执行 source 加载。 ### 快速参考表 | 命令 | 描述 | 实现方式 | |--------------------|--------------------------------------------------|---------------------------------| | `jump` | 通过 mosh 连接到 Jumpbox | `mosh user@192.168.10.50` | | `remnux` | 直接 SSH 连接到 REMnux | `ssh remnux@192.168.60.100` | | `fileserver` | 在 REMnux 上启动 Python 上传 Web 服务器 | `python3 -m http.server ...` | | `sandbox-capture` | 为 SANDBOX 流量启动 tcpdump | 自定义脚本 | | `sandbox-status` | 快速 ping + 连通性健康检查 | `scripts/sandbox-status.sh` | ### `/scripts` 中的脚本 - `sandbox-status.sh` — Ping 关键主机并报告状态 - `aliases.sh` — 执行 source 加载此文件以使用便捷功能 - 更多自动化功能即将推出 (虚拟机快照辅助工具、日志解析器等) **source 加载后的示例用法:** ``` source scripts/aliases.sh sandbox-status ``` ## 📋 每日启动检查清单 1. 启动 **pfSense** 虚拟机 (确保 WAN/LAN/OPT 接口已启动) 2. 开启 **Jumpbox** 笔记本电脑 3. 在主 Windows 宿主机上 → 打开 WSL Ubuntu 终端 → 输入 `jump` 4. 运行连通性检查:`sandbox-status` 5. 在 REMnux 上启动文件服务器:`fileserver` 6. 启动 **Windows Victim VM** → **首先恢复至 "Clean-Base-State" 快照** 7. (可选) 完整连通性测试: ping 192.168.60.100 # REMnux ping 192.168.60.101 # Windows Victim ## 🔄 文件传输工作流 (主宿主机 → Victim VM) **推荐的安全方法 (Python 上传服务器)** 1. 在主 Windows 宿主机上,将样本文件 (保持为 `.zip` 格式) 放在: `C:\Users\benne\Documents\Sandbox\Samples\` 2. 在 Jumpbox 上:`fileserver` 3. 在主 Windows 宿主机浏览器中:访问 `http://192.168.60.100:8000/upload.html` 4. 上传压缩的样本 5. 在 **Windows Victim VM** 浏览器中:访问 `http://192.168.60.100:8000` 并下载 这可以保持主宿主机的纯净,并使用隔离的 REMnux 作为传输代理。 ## 🔍 静态分析命令 (在 REMnux 上) ``` cd ~/samples # 基础文件识别 file *.exe md5sum *.exe sha256sum *.exe # 提取字符串以供快速审查 strings *.exe > strings.txt less strings.txt # Use / to search, q to quit # 聚焦感兴趣的字符串 strings *.exe | grep -E "http|https|powershell|cmd|run|regsvr32|dll|exe|360|paint|opencv|inject" | head -100 ``` 请查看 `docs/static-analysis-cheatsheet.md` 获取扩展版本 (规划中)。 ## 🏃 动态分析最佳实践 ### 准备工作 - 将 Windows Victim VM 恢复至 **Clean-Base-State** 快照 - 启动 **ProcMon** (过滤样本文件名) - 启动 **Process Hacker** - 在 Jumpbox 上:使用 `sandbox-capture` 开始抓包 ### 执行 - 运行样本最多 **30-60 秒** - 停止捕获 (`Ctrl+C`) - **立即**将 Victim VM 恢复至干净快照 ### 审查 - 分析 ProcMon 日志中的注册表写入、文件创建、进程注入 - 审查捕获内容: tcpdump -r /tmp/sandbox_capture.pcap -nn -A | less 完整的工作流和工具建议请见 `/docs/dynamic-analysis-playbook.md`。 ## 🛡️ 安全与重置规则 (不可妥协) - **绝不**在您的主 Windows 宿主机或生产机器上执行恶意软件样本 - **务必**在每次运行后将 Victim VM 恢复至干净快照 - 在准备好进行分析之前,将所有样本保持为压缩状态 - 定期运行 `sandbox-status` 以验证隔离状态 - 记录每次分析会话 (日期、样本哈希值、发现、经验教训) ## 📸 屏幕截图与视觉证据 (在此处添加您自己的屏幕截图 — 强烈建议用于提升作品集效果) **计划添加的内容:** - 带有防火墙规则的 pfSense 仪表板 - Security Onion Kibana / 告警概览 - 带有分析工具的 REMnux 桌面 - 数据包捕获示例 - 虚拟机前/后状态对比 将图片放在 `/images/` 中并在 Markdown 中引用它们。 ## 🔮 路线图 / 未来改进 - [ ] 详细的 pfSense 配置指南 + 导出的规则 - [ ] Security Onion 传感器部署 + 自定义仪表板 - [ ] 自动化快照与恢复脚本 (VirtualBox / Proxmox) - [ ] 用于日志解析和报告生成的 Python 自动化 - [ ] 与 Wazuh / Splunk 集成 (如果添加) - [ ] 来自实验室活动的 YARA / Sigma 规则示例 - [ ] 完整的事件响应模拟操作手册 - [ ] 家庭实验室的成本与电源效率说明 ## 📄 许可证 本项目基于 **MIT 许可证**授权 — 详情请参阅 [LICENSE](LICENSE) 文件。 您可以自由使用、修改和分享文档与脚本。欢迎注明出处,但不作强制要求。 ## 🙏 致谢与灵感 - 我的美国陆军服役经历 (131A 雷达 / 目标识别 / EW) — 灌输了我对文档、检查清单和系统性故障排除的严谨态度 - REMnux、Security Onion 和 pfSense 社区 - GitHub 和 YouTube 上的众多蓝队家庭实验室构建者 **有问题或建议?** 请提交 issue 或通过 LinkedIn / X 联系我。 *怀着 ❤️ 构建,旨在持续学习并成功转型至网络安全领域。*
标签:BurpSuite集成, DAST, XXE攻击, 内存分配, 安全运营中心(SOC), 应用安全, 恶意软件分析, 网络安全实验环境, 逆向工具, 防火墙