gusalsan/cybersecurity_bootcamp

GitHub: gusalsan/cybersecurity_bootcamp

一份涵盖密码学、渗透测试、蓝队防御、OSINT等多个领域的网络安全训练营完整作品集,包含Python脚本、实验环境搭建指南和详细的技术报告。

Stars: 0 | Forks: 0

# 网络安全训练营 ## 模块 1:加密 本实践涵盖了对称和非对称加密、密钥安全管理、哈希、HMAC、JWT、数字签名、密钥派生和 TR31 块分析等关键概念。 旨在将理论知识应用于实际的现实问题,展示对机密性、完整性、身份验证和针对常见攻击防护的理解。 ### 已解决的练习 1. **使用 XOR 进行密钥分离** - 代码中的固定密钥:`B1EF2ACFE2BAEEFF` - 开发环境中的目标最终密钥:`91BA13BA21AABB12` - Key Manager 在 properties 中引入的值:`20553975c31055ed` - 生产环境中(动态密钥:`B98A15BA31AEBB3F`):内存中的最终密钥 = `8653f75d31455c0` 2. **AES/CBC/PKCS7 解密** - 提供的密文:`TQ9SOMKc6aFS9SIxhfk9wT18UXpPCd505Xf5J/5nLI7Of/o0QKIWXg3nu1RRz4QWElezdrLAD5LO4USt3aB/i50nvvJbBiG+le1ZhpR84ol=` - IV:零(`00...00`) - 明文:"Esto es un cifrado en bloque típico. Recuerda, vas por el buen camino. Ánimo." - 添加的 Padding:1 字节 - 更改为 X923 padding:效果相同(在 1 字节上是一致的) 3. **ChaCha20 加密** - 文本:"KeepCoding te enseña a codificar y a cifrar" - keystore 密钥:`af9df30474898787a45605ccb9b936d33b780d03cabc81719d52383480dc3120` - Nonce:`9Yccn/f5nJJhAt2S` - 完整性改进建议:使用 **ChaCha20-Poly1305** (AEAD) 以实现机密性 + 认证 4. **JWT 分析与攻击** - 签名算法:**HS256** - 原始 Body:普通用户 - 恶意 JWT:尝试通过更改 `"rol": "isNormal"` → `"rol": "isAdmin"` 来提升权限 - 使用 pyjwt 验证时,若无密钥("Con KeepCoding aprendemos")则失败 5. **SHA3 和 SHA2 哈希** - 文本的 SHA3-256 (Keccak):`bced1be95fbd85d2ffcce9c85434d79aa26f24ce82fbd4439517ea3f072d56fe` - 同一文本的 SHA2-512:`4cec5a9f85dcc5c4c6ccb603d124cf1cdc6dfe836459551a1044f4f2908aa5d63739506f6468833d77c07cfd69c488823b8d858283f1d05877120e8c5351c833` - 雪崩效应:一个标点符号的改变会完全改变哈希值 6. **HMAC-SHA256** - 文本 + keystore 密钥 → HMAC:`857d5ab916789620f35bcfe6a1a5f4ce98200180cc8549e6ec83f408e8ca0550` 7. **密码安全存储** - 为什么简单的 SHA-1 和 SHA-256 是糟糕的选择 - 改进方案:salt + pepper - 最终建议:慢速 KDF,如 **PBKDF2**、**bcrypt** 或 **Argon2** 8. **安全 REST API 重新设计** - 提议:**AES/GCM**(认证加密)在没有端到端 TLS 的情况下实现机密性 + 完整性 9. **KCV (Key Check Value) 计算** - KCV(SHA-256):哈希值的前 3 个字节 - KCV(AES):使用零 IV 加密 16 字节零 10. **PGP 签名与加密** - 使用 Pedro/RRHH 密钥验证签名 - 以 RRHH 身份签署新消息 - 使用公钥进行非对称加密 11. **RSA-OAEP** - 解密打包的对称密钥 - 由于随机 padding (OAEP) 导致的密文差异 12. **AES/GCM 误用** - 错误:重用固定的密钥和 nonce - 更正文本的加密结果(hex 和 base64) 13. **数字签名** - 使用 RSA 的 PKCS#1 v1.5 - Ed25519(椭圆曲线) 14. **使用 HKDF 派生密钥** - HKDF (SHA-512) + 设备标识符 → 派生的 AES 和 MAC 密钥 15. **TR31 块** - 算法:AES Key Derivation Binding Method - 用途:AES,Both Encrypt/Decrypt,在不可信密钥下可导出 - 类型:Symmetric Key for Data Encryption ### 使用的工具 - Python + `cryptography` 库 - CyberChef / 在线 XOR 计算器 - 用于 JWT 的 pyjwt - keystore 和 PGP 工具 ## 模块 2:网络安全 101 **WebGoat 审计 - 简要报告** **范围**:在受控的本地环境中对易受攻击的应用程序 WebGoat 8.1.0 进行基础安全评估。 **主要发现**:成功利用了多个 OWASP Top 10 漏洞: ``` Inyección SQL (Extracción de datos y modificación del esquema) Autenticación Rota (Bypass de restablecimiento de contraseña) XSS (Reflejado y basado en DOM) CSRF (Falsificación de solicitudes) Componentes Vulnerables (Explotación de jQuery UI 1.10.4) ``` **方法论**:标准渗透测试方法: ``` Reconocimiento (nmap, Wappalyzer, dirb) Explotación de Vulnerabilidades (Pruebas manuales mediante WebGoat) Documentación (Hallazgos técnicos y estrategias de mitigación) ``` **使用的工具**:Burp Suite, nmap, Wappalyzer, dirb,浏览器手动测试。 **关键结论**:演示了基本的 Web 漏洞如何串联起来危害整个应用程序,突显了输入验证、安全认证机制和保持依赖项更新的重要性。 ## 模块 3:蓝队,构建网络基础设施 本实践包括使用 **pfSense** 作为 VirtualBox 中的中央防火墙/路由器构建蓝队网络安全实验室。目标是创建一个分段网络,在区域(LAN、DMZ 和 DMZ2)之间进行隔离,以受控方式部署暴露的服务,并使用检测工具监控威胁。 ### 基础设施概览 Elastic Cloud (SIEM) ↑ 家庭路由器 / WAN ↑ pfSense / | LAN DMZ DMZ2 (Windows 10) (Apache + (Suricata Elastic Honeypot 或仅一个) Agent) Cowrie) - **WAN**:互联网连接(桥接适配器)。 - **LAN**:安全的内部网络 (192.168.100.0/24) → Windows 10 + Elastic Agent。 - **DMZ**:暴露区域 (192.168.200.0/24) → Apache Web 服务器和/或 Cowrie Honeypot。 - **DMZ2**:监控区域 (192.168.250.0/24) → Suricata (IDS) 或替代方案。 ### 前置条件 - 已安装 VirtualBox。 - pfSense ISO 镜像。 - Kali Linux 和 Windows 10 虚拟机。 - Kali 上的 Docker(用于 Cowrie)。 - Elastic Cloud 免费账户用于 SIEM。 ### pfSense 的安装与基本配置 下载 pfSense ISO,解压缩并在 VirtualBox 中创建新的虚拟机(类型 BSD → FreeBSD 64-bit,1250 MB RAM,1 CPU,16 GB 磁盘)。配置四个网络适配器:适配器 1 设为桥接模式 (WAN),其他三个设为内部网络,命名为 "LAN"、"DMZ" 和 "DMZ2"。 挂载 ISO 启动虚拟机,接受默认选项安装 pfSense 直至完成。安装完成后,关闭虚拟机,从虚拟存储中移除 ISO,然后重新启动。约一分钟后,我们应该能看到 pfSense 控制台及其已分配的接口。 ### 从 LAN 中的 Kali 进行初始配置 创建或使用适配器 1 位于内部网络 "LAN" 的 Kali。断开并重新连接网络适配器以便通过 DHCP 获取 IP。使用 `ip a` 检查,并通过浏览器访问 https://192.168.1.1 进入 pfSense 向导(接受风险)。 使用 admin / pfsense 登录并按照向导操作:将主机命名为 UTM,域名为 keepcoding.local,DNS 设为 127.0.0.1 和 1.1.1.1,将 LAN IP 调整为 192.168.100.1/24,更改密码并重新加载。在 Kali 中重新连接适配器以获取新 IP,并使用更新后的密码重新登录。 ### 服务和区域配置 在 **Services > DNS Resolver** 中禁用 DNSSEC 并启用 forwarding。在 **DHCP Server > LAN** 中定义范围 192.168.100.100–150,以及适当的 DNS 和网关。将接口 OPT1 和 OPT2 分配为 DMZ (192.168.200.1/24) 和 DMZ2 (192.168.250.1/24),在两者上启用 DHCP,范围为 100–150 并配置 DNS。 ### 防火墙规则与隔离 创建端口别名 "web"(80 和 443)。在 DMZ 和 DMZ2 规则中允许出站 HTTP/HTTPS 和 DNS 流量。在 LAN 中阻止发往 DMZ/DMZ2 的流量。在 DMZ 中阻止对 LAN 和 DMZ2 的访问(反之亦然),确保严格的分段。 ### 已部署的服务 - **DMZ**:安装 Apache (`apt install apache2`) 和/或使用 Docker 运行 Cowrie (`docker run -p 222:2222 cowrie/cowrie`)。创建从 WAN 端口 80 → Apache 和 222 → Cowrie 的端口转发。 - **DMZ2**:部署 Suricata 作为 IDS,配置基本规则并监控 `/var/log/suricata/fast.log` 中的日志。 - **LAN**:带有 Elastic Agent 的 Windows 10,用于收集事件。 ### 与 Elastic SIEM 集成 在 Elastic Cloud 中为 Linux(Suricata + 用于 Cowrie 的 Custom Logs)和 Windows 创建策略。在相应的虚拟机上安装代理,并创建数据视图以可视化集中式警报和日志。 ### 结语 该基础设施模拟了具有分段、受控暴露和监控的真实环境。Suricata、Cowrie 和 Windows 的日志被发送到 Elastic 进行分析。有关更多详细信息和截图,请参阅存储库中附带的原始 PDF。 ## 模块 4:渗透测试 ### 渗透测试实践 - Metasploitable 2 渗透测试模块的最终项目,其中我对 **Metasploitable 2** 机器进行了全面的侦察和利用。 ### 目标 在基础设施和 Web 应用程序级别执行侦察、枚举和利用,获取尽可能多的访问权限和漏洞。 ### 环境 - **攻击机**:Kali Linux - **目标机**:Metasploitable 2 ### 使用的工具 - Nmap - Metasploit Framework - Netcat - Hydra - John the Ripper - Gobuster - sqlmap - Cadaver (WebDAV) - vncviewer ### 主要发现摘要 我通过多种不同途径获得了 **root 访问权限**: #### 严重 - **端口 1524** → 直接 Bindshell(使用 `nc` 立即获得 root) - **端口 21** → vsftpd 2.3.4 后门 - **端口 3632** → distccd 中的 RCE (Metasploit) - **端口 2049** → NFS 无限制导出 root(完整挂载系统) #### 高危 - **端口 22** → SSH 私钥暴露 - **端口 5900** → VNC 密码为 "password" - **端口 23** → 具有弱凭证的 Telnet - **端口 3306** → MySQL root 无密码 - **端口 5432** → PostgreSQL (Meterpreter + 提权) - **端口 80** → DVWA (命令注入、反向 Shell、SQLi、文件包含和 XSS) 这次实践让我亲身体验了默认配置、后门和旧服务如何完全危及系统安全。特别突出了以下几点的危险性: - 无限制的 NFS - 故意留下的后门 - 默认凭证 ## 模块 5:信息收集 作为我网络安全培训(蓝队/防御性安全)的一部分,针对 **tomtom.com** 域进行的完整 **footprinting**、**fingerprinting** 和 **OSINT** 实践练习。 **主要目标** 仅使用**公开来源**映射可见的攻击面,不进行侵入性交互或利用。 ### 执行阶段 1. **Footprinting 和基础设施枚举** - IP 范围 - 通过 Certificate Transparency (crt.sh, ctfr)、 DNS (dnsx)、暴力破解、爬取、历史 URL (gau) 获取子域名 - 工具:mapcidr, dnsx, shuffledns, katana, ctfr, gau, cero 2. **Fingerprinting 和验证** - 开放端口 - 技术和 WAF (wafw00f, httpx) - 漏洞 - SSL/TLS 配置 (Qualys SSL Labs → 评级 A) - Takeover (subzy → 确认 Azure 中的误报) - 元数据(公开图片/PDF 中的 ExifRay) 3. **OSINT** - 员工和资料 - 邮件和泄露事件 (HIBP) - 邮件配置 (通过 dmarcian 的 DMARC/SPF/DKIM) ### 关键发现 - 攻击面广泛但防护良好(主要端点上有 Akamai/Cloudflare WAF)。 - 现代且安全的 TLS(优先使用 TLS 1.3,无严重漏洞)。 - 未检测到可利用的漏洞。 - OSINT 暴露最少(个人邮件的旧泄露,DMAR 处于隔离状态)。 - 一个带有 Basic Auth 的有趣端点,但受保护且超出范围。 ### 主要使用的工具 - Footprinting:RIPE, crt.sh, ctfr, shuffledns, katana, gau, cero - Fingerprinting:nmap, masscan, httpx, wafw00f, nuclei, OpenVAS, Qualys SSL Labs, subzy - OSINT:Maltego, LinkedIn, Have I Been Pwned, dmarcian - 其他:ExifRay(元数据),ffuf(无结果) ### 重要说明 - 所有工作均以**道德和被动**的方式进行,没有利用、主动暴力破解或未经授权的交互。 - 教育项目,不旨在报告真实漏洞或进行漏洞赏金计划。 感谢访问!欢迎反馈 ✌️ Gustavo Álvarez | @gusalsan | 网络安全训练营 - KeepCoding | 2025年11月 - 2026年7月
标签:AES, Apex, ChaCha20, CTI, CVE, DAST, DevSecOps, DNS 反向解析, FTP漏洞扫描, GitHub, HMAC, IPS, JWT, Metaprompt, MIT许可证, Python, SHA2, SHA3, Web安全, 上游代理, 人工智能, 区块链安全, 威胁检测与响应, 安全报告, 安全编排, 安全脚本, 实战项目, 密码学, 恶意软件分析, 手动系统调用, 攻击模拟, 敏捷开发, 数字取证, 数字签名, 数据展示, 无后门, 机器学习, 用户模式Hook绕过, 红队, 网络安全, 网络安全训练营, 自动化脚本, 蓝队分析, 请求拦截, 逆向工具, 隐私保护, 驱动签名利用