andlsac/knock-knock-lab

GitHub: andlsac/knock-knock-lab

一个基于 Kali Linux 和 Metasploitable 2 的安全审计实践实验室,用于演示暴力破解漏洞并给出相应的缓解建议。

Stars: 0 | Forks: 0

# knock-knock-lab 展示暴力破解漏洞的实用安全审计实验室。环境配置为 Kali/Metasploitable 2,使用 Medusa 执行攻击,并为测试的服务提出缓解措施。#Pentest #EthicalHacking #DIO ``` 🚫 🚨 AVISO LEGAL 🚨 🚫 ❗ Disclaimer de Uso: › Apenas para fins educacionais e de pesquisa › Use por sua conta e risco › Não use para atividades ilegais › Responsabilidade é exclusivamente do usuário ``` # DIO 项目挑战:使用 Kali Linux 和 Medusa 进行 Pentest 实验室 ![许可证](https://img.shields.io/badge/license-MIT-blue.svg) ![Kali Linux](https://img.shields.io/badge/Kali_Linux-557C94?style=for-the-badge&logo=kali-linux&logoColor=white) ![VMware Fusion](https://img.shields.io/badge/VMware_Fusion-607078?style=for-the-badge&logo=vmware&logoColor=white) ## 目录 - [项目概述](#visão-geral-do-projeto) - [学习目标](#objetivos-de-aprendizagem) - [阶段 1:环境配置(实验室设置)](#fase-1-configuração-do-ambiente-setup-do-laboratório) - [阶段 2:侦察(信息收集)](#fase-2-reconhecimento-information-gathering) - [阶段 3:执行攻击(漏洞利用)](#fase-3-execução-dos-ataques-exploitation) - [场景 1:FTP 服务暴力破解](#cenário-1-força-bruta-em-serviço-ftp) - [场景 2:Web 表单暴力破解 (DVWA)](#cenário-2-força-bruta-em-formulário-web-dvwa) - [场景 3:SMB 服务 Password Spraying](#cenário-3-password-spraying-em-serviço-smb) - [阶段 4:风险分析和建议(缓解)](#fase-4-análise-de-riscos-e-recomendações-mitigação) - [结论与经验教训](#conclusão-e-aprendizados) - [许可证](#licença) - [作者](#autor) ## 项目概述 本仓库记录了 **[Digital Innovation One (DIO)](https://www.dio.me/)** 项目挑战的执行过程,重点是在受控实验室环境中模拟暴力破解攻击。目的是展示 pentest 技术的实际应用,使用 Kali Linux 和 Medusa 工具针对 Metasploitable 2 和 DVWA Web 应用程序等易受攻击的目标。 从环境配置到提出安全措施的整个过程都在本文档中详细说明。 ## 学习目标 在完成本挑战后,达到了以下目标: - **实践理解:** 深入了解如何针对不同协议(FTP、HTTP、SMB)执行暴力破解攻击。 - **工具使用:** 熟练使用 Kali Linux 和 Medusa 进行符合道德规范的安全审计。 - **技术文档:** 能够清晰、结构化且可重现地记录 pentest 过程。 - **漏洞分析:** 识别与密码和身份验证相关的常见弱点。 - **解决方案提出:** 能够推荐缓解已识别风险的安全对策和最佳实践。 ## 阶段 1:环境配置(实验室设置) 为了确保安全隔离的环境,所有模拟均在虚拟机中进行。 ### 1.1. 使用的软件 - **虚拟化平台:** VMWare 和 UTM `版本 X.X.X` - **攻击机:** Kali Linux `版本 2025.X` - **目标机:** Metasploitable 2 ### 1.2. 网络配置 两台虚拟机均被配置为使用 **“仅主机网络 (Host-Only)”**。这将在主机和虚拟机之间创建一个专用网络,将实验室流量与外部网络完全隔离。 - **IP 地址 - Kali Linux:** `xxx.xxx.xxx.xxx` - **IP 地址 - Metasploitable 2:** `192.168.1.9` ### 1.3. 连接验证 配置完成后,使用 `ping` 命令验证了机器之间的连通性。 **命令(在 Kali 上执行):** ``` ping -c 4 192.168.1.9 ``` **证据:** ![Ping 验证](https://static.pigsec.cn/wp-content/uploads/repos/cas/c5/c571048af42d1930a6b25bca454ef8d822e75c8106684714e3d35200f46144a9.png) ## 阶段 2:侦察(信息收集)和自动化工具分析 在执行任何攻击之前,进行了侦察以识别目标上的开放服务和端口。为此使用了 `nmap` 工具。 **命令(在 Kali 上执行):** ``` nmap -sV -p- 192.168.1.9 ``` **命令参数:** - `-sV`: 尝试确定开放端口上运行的服务版本。 - `-p-`: 扫描所有 65535 个 TCP 端口。 **结果:** 扫描发现了多个开放端口,包括: - `端口 21/tcp`: **FTP** 服务 (vsftpd 2.3.4) - `端口 22/tcp`: **SSH** 服务 OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0) - `端口 80/tcp`: **HTTP** 服务 (Apache httpd 2.2.8 ((Ubuntu) DAV/2) - `端口 445/tcp`: **netbios-ssn** 服务 (amba smbd 3.X - 4.X (workgroup: WORKGROUP)) 这些服务被选为下一阶段的目标。 **证据:** ![Nmap 结果](https://static.pigsec.cn/wp-content/uploads/repos/cas/1e/1e5f392012447bcf206bb3bcbf446e55a9a68ab6ede710133878a254c1da2b6a.png) ## 使用自动化工具进行漏洞分析 ### 2.1 Web 服务器扫描器 (Nikto) **目标:** 识别服务器上的配置问题和已知漏洞。 **完整输出可在以下位置找到:** `./logs/nikto_scan.txt` **检测到的主要漏洞:** | 漏洞 | 风险 | 证据 | |----------------|------------|-----------| | Apache 服务器过时 (2.2.8) | 高 | 识别出 EOL 版本 | | 暴露的 phpinfo.php 文件 | 高 | 可访问系统信息 | | 可访问的敏感目录 (/doc/, /test/) | 中 | 目录列表已激活 | | TRACE 方法已激活 | 中 | 易受 Cross-Site Tracing 攻击 | | phpMyAdmin 无限制访问 | 高 | 管理面板暴露 | **技术说明:** - **服务器:** Apache/2.2.8 (Ubuntu) + PHP/5.2.4 - **配置问题:** 缺少安全 Header(X-Frame-Options, X-Content-Type) - **暴露的文件:** phpinfo.php, phpMyAdmin, 系统目录 **立即建议:** 更新 Web 服务器并限制对敏感文件的访问。 ## 2.2 Web 应用程序扫描器 (Wapiti) **目标:** 分析 DVWA 应用程序中的特定漏洞。 **完整输出可在以下位置找到:** `./logs/scan_wapiti.txt` **检测到的主要漏洞:** | 类别 | 漏洞 | 风险 | 证据 | |-----------|----------------|------------|-----------| | **Content Security Policy** | 未配置 CSP | 中 | 缺少 Content-Security-Policy Header | | **HTTP Headers** | 缺少 X-Frame-Options | 中 | 允许点击劫持 | | **HTTP Headers** | 缺少 X-XSS-Protection | 中 | 无 XSS 保护 | | **HTTP Headers** | 缺少 X-Content-Type-Options | 中 | 允许 MIME sniffing | | **HTTP Headers** | 缺少 Strict-Transport-Security | 中 | 未强制使用 HTTPS | | **Cookies** | 未配置 HttpOnly 标志 (PHPSESSID) | 中 | 可通过 JavaScript 访问 Cookie | | **Cookies** | 未配置 HttpOnly 标志 (security) | 中 | 可通过 JavaScript 访问 Cookie | | **Cookies** | 未配置 Secure 标志 (PHPSESSID) | 中 | Cookie 明文传输 | | **Cookies** | 未配置 Secure 标志 (security) | 中 | Cookie 明文传输 | ### 按类别划分的漏洞摘要 | 类别 | 数量 | 状态 | |-----------|------------|---------| | HTTP 安全 Headers | 4 个漏洞 | 严重 | | Cookie 安全 | 4 个漏洞 | 严重 | | Content Security Policy | 1 个漏洞 | 中 | | SQL Injection | 0 个漏洞 | 安全 | | XSS | 0 个漏洞 | 安全 | | Path Traversal | 0 个漏洞 | 安全 | ### 总体影响 **安全配置不足:** - 跨站攻击 (XSS) - 点击劫持 - 敏感数据暴露 - Session hijacking ### 建议 1. **实施 HTTP 安全 Headers** 2. **在 cookies 上配置安全标志** 3. **采用 Content Security Policy** 4. **强制使用 HTTPS** 5. **防范点击劫持** 6. **阻止 MIME sniffing** 7. **将 cookies 与客户端脚本隔离** ## 阶段 3:执行攻击(漏洞利用) 在确定目标后,使用 **Medusa** 工具执行暴力破解攻击。 ### 场景 1:FTP 服务暴力破解 - **目标:** 获取对 Metasploitable 2 上 FTP 服务(端口 21)的未授权访问。 - **使用的 Wordlists:** - `usuarios.txt`(包含 `root`, `admin`, `msfadmin`) - `senhas.txt`(包含 `toor`, `admin`, `msfadmin`, `password`) **命令(在 Kali 上执行):** ``` medusa -h 192.168.1.9 -U usuarios.txt -P senhas.txt -M ftp ``` **命令参数:** `-h` 192.168.1.9: 参数 -h(代表 host)指定攻击目标,即 IP 地址 192.168.1.9。 `-U` usuarios.txt: 参数 -U(代表 User file)指明包含待测试用户列表的文件。 `-P` senhas.txt: 参数 -P(代表 Password file)指明包含每个用户待测试密码列表的文件。 `-M` ftp: 参数 -M(代表 Module)定义要攻击的服务(模块)。在此案例中为 ftp。) **工作原理:** Medusa 自动测试文件中所有用户名和密码组合,针对服务器 192.168.1.9 的 FTP 服务进行验证。 **结果:** 攻击成功,揭示了有效凭据:**`msfadmin` / `msfadmin`**。 **证据:** ![FTP 攻击成功](https://static.pigsec.cn/wp-content/uploads/repos/cas/6a/6a6043dd75a7ff3e0def6443a4a76faeaebd4d0cd2ad85c2eab9ce851c097a59.png) ### 场景 2:Web 表单暴力破解 (DVWA) - **目标:** 破解运行在 Metasploitable 2 上且配置为 `Low` 安全级别的 Damn Vulnerable Web Application (DVWA) 中 “Brute Force” 页面的登录表单。 **命令(在 Kali 上执行):** ``` hydra -L usuarios.txt -P senhas.txt 192.168.1.9 http-post-form \ "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:F=Login failed" ``` **命令参数:** - `-L usuarios.txt`: 包含待测试用户列表的文件。 - `-P senhas.txt`: 包含待测试密码列表的文件。 - `192.168.1.9`: 攻击服务器/目标的 IP。 - `http-post-form`: 通过 POST 攻击 Web 表单的模块。 - `-m FORM:"..."`: 定义 URL 和表单参数,使用 `^USER^` 和 `^PASS^` 作为占位符。 **表单结构:** - `/dvwa/login.php`: 表单的 URL。 - `username=^USER^&password=^PASS^&Login=Login`: 表单参数,使用 `^USER^` 和 `^PASS^` 作为占位符。 - `F=Login failed`: 预期的错误消息。 **工作原理:** Hydra 自动测试文件中所有的用户名和密码组合,在每次尝试中替换 ^USER^ 和 ^PASS^,并在找到有效凭据(即“Login failed”消息未出现)时停止。 **结果:** [80][http-post-form] host: 192.168.1.9 login: admin password: password 发现了用户 `admin` 的密码:**`password`**。 **证据:** ![DVWA 攻击成功](https://static.pigsec.cn/wp-content/uploads/repos/cas/a1/a14e35c5fd5cba8cd8a5cdee256592588ab24558b7b72298c71bc8bfc61f4f08.png) ## 场景 3:SMB 服务 Password Spraying - **目标:** 针对 SMB 服务(端口 445)执行 *Password Spraying* 攻击,使用单个弱密码测试多个用户。 - **测试密码:** `password` 和 `msfadmin` **命令(在 Kali 上执行):** ``` hydra -L usuarios.txt -p msfadmin 192.168.1.9 smb -V ``` **命令参数:** - `-L usuarios.txt`: 包含待测试用户列表的文件。 - `-p msfadmin`: 为所有用户使用固定密码 (msfadmin)。 - `192.168.1.9`: 攻击服务器/目标的 IP。 - `smb`: 攻击 SMB 协议 (Server Message Block - Windows 文件共享) 的模块。 - `-V`: 详细模式 - 实时显示每次尝试。 **工作原理:**** Hydra 使用固定密码 msfadmin 在目标的 SMB 服务上测试 usuarios.txt 文件中的每个用户,由于 -V 参数,所有的尝试都会显示在屏幕上。 **与之前场景的区别:** 之前:使用多个密码攻击 Web 表单。 现在:使用固定密码和多个用户攻击 SMB 服务。 **结果:** 攻击识别出用户 **`msfadmin`** 拥有密码 `msfadmin`,从而允许访问网络共享。 **证据:** ![SMB 攻击成功](https://static.pigsec.cn/wp-content/uploads/repos/cas/e2/e284369afc28d5044d64610f52830ee5c44d3f60be0bd0ccb5aaa2391b78e58a.png) ## 阶段 4:风险分析和建议(缓解) *攻击表明弱密码对服务安全构成了严重风险。建议采取以下安全对策:* | 识别出的风险 | 缓解措施 | 为什么重要? | | :------------------| :------------------ | :-------------------- | | **弱密码和默认密码** | 实施**强密码策略(长度、复杂性、历史记录)。| 使自动化工具猜测密码的难度呈指数级增加。| | **无限制的登录尝试** | 在 X 次失败尝试后配置**账户锁定**。| 阻止攻击者在短时间内测试数百万个密码,从而使攻击不可行。| | **Web 攻击自动化** | 在登录表单中使用 **CAPTCHA** 或 reCAPTCHA。| 增加需要人工交互的层,破坏大多数暴力破解脚本。| | **凭据泄露** | 启用**多因素身份验证 (MFA)**。| **最有效的措施。** 即使密码被盗,攻击者也不会拥有第二因素(token、生物识别等)。| | **缺乏可见性** | 针对多次登录失败实施**监控和警报**。| 允许安全团队在攻击成功之前检测并响应正在进行的攻击。| ## 结论 实验室突出了危害系统安全的关键漏洞。最需要立即修复的要点是: ### 需要立即修正的关键点: 1. **默认凭据和弱凭据** - 移除如“msfadmin”和“password”的默认密码 - 实施至少 12 个字符的复杂密码策略 2. **暴力破解保护** - 在 5 次失败尝试后配置自动账户锁定 - 在登录尝试之间实施逐步延迟 3. **过时的服务** - 将 Apache 2.2.8 更新到受支持的版本 - 将 PHP 5.2.4 更新到当前版本 - 修复易受攻击的 vsftpd 2.3.4 4. **Web 安全配置** - 实施安全 Header(CSP, X-Frame-Options) - 在 cookies 上配置安全标志(HttpOnly, Secure) - 移除敏感文件如 phpinfo.php 5. **缺乏多因素身份验证** - 为管理访问实施 MFA - 为关键登录增加额外的保护层 ## 许可证 该项目基于 MIT 许可证授权。有关更多详细信息,请参阅 `LICENSE` 文件。 ## 作者 **André Luís Alves Campos** [![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/andlsac) # 英文版本 ### knock-knock-lab 展示暴力破解漏洞的实用安全审计实验室。环境配置为 Kali/Metasploitable 2,使用 Medusa 执行攻击,并为测试的服务提出缓解措施。#Pentest #EthicalHacking #DIO # DIO 项目挑战:使用 Kali Linux 和 Medusa 进行 Pentest 实验室 🚫 🚨 法律警告 🚨 🚫 ``` ❗ Usage Disclaimer: › Educational and research purposes only › Use at your own risk › Do not use for illegal activities › User bears all responsibility ``` ![许可证](https://img.shields.io/badge/license-MIT-blue.svg) ![Kali Linux](https://img.shields.io/badge/Kali_Linux-557C94?style=for-the-badge&logo=kali-linux&logoColor=white) ![VMware Fusion](https://img.shields.io/badge/VMware_Fusion-607078?style=for-the-badge&logo=vmware&logoColor=white) ## 目录 - [项目概述](https://www.google.com/url?sa=E&q=#project-overview) - [学习目标](https://www.google.com/url?sa=E&q=#learning-objectives) - [阶段 1:环境设置(实验室配置)](https://www.google.com/url?sa=E&q=#phase-1-environment-setup-lab-configuration) - [阶段 2:侦察(信息收集)](https://www.google.com/url?sa=E&q=#phase-2-reconnaissance-information-gathering) - [阶段 3:执行攻击(漏洞利用)](https://www.google.com/url?sa=E&q=#phase-3-attack-execution-exploitation) - [场景 1:FTP 服务暴力破解](https://www.google.com/url?sa=E&q=#scenario-1-brute-force-on-ftp-service) - [场景 2:Web 表单暴力破解 (DVWA)](https://www.google.com/url?sa=E&q=#scenario-2-brute-force-on-web-form-dvwa) - [场景 3:SMB 服务 Password Spraying](https://www.google.com/url?sa=E&q=#scenario-3-password-spraying-on-smb-service) - [阶段 4:风险分析和建议(缓解)](https://www.google.com/url?sa=E&q=#phase-4-risk-analysis-and-recommendations-mitigation) - [结论与经验教训](https://www.google.com/url?sa=E&q=#conclusion-and-learnings) - [许可证](https://www.google.com/url?sa=E&q=#license) - [作者](https://www.google.com/url?sa=E&q=#author) ## 项目概述 本仓库记录了 **[Digital Innovation One (DIO)](https://www.google.com/url?sa=E&q=https%3A%2F%2Fwww.dio.me%2F)** 项目挑战的执行过程,重点是在受控实验室环境中模拟暴力破解攻击。目的是展示 pentest 技术的实际应用,使用 Kali Linux 和 Medusa 工具针对 Metasploitable 2 和 DVWA Web 应用程序等易受攻击的目标。 从环境设置到提出安全措施的整个过程都在本文档中详细说明。 ## 学习目标 在完成本挑战后,达到了以下目标: - **实践理解:** 深入了解如何针对不同协议(FTP、HTTP、SMB)执行暴力破解攻击。 - **工具使用:** 熟练使用 Kali Linux 和 Medusa 进行符合道德规范的安全审计。 - **技术文档:** 能够清晰、结构化且可重现地记录 pentest 过程。 - **漏洞分析:** 识别与密码和身份验证相关的常见弱点。 - **解决方案提出:** 能够推荐缓解已识别风险的安全对策和最佳实践。 ## 阶段 1:环境设置(实验室配置) 为了确保安全隔离的环境,所有模拟均在虚拟机上进行。 ### 1.1. 使用的软件 - **虚拟化平台:** VMWare 和 UTM 版本 X.X.X - **攻击机:** Kali Linux 版本 2025.X - **目标机:** Metasploitable 2 ### 1.2. 网络配置 两台虚拟机均被配置为使用 **“仅主机网络”**。这将在主机和虚拟机之间创建一个专用网络,将实验室流量与外部网络完全隔离。 - **IP 地址 - Kali Linux:** xxx.xxx.xxx.xxx - **IP 地址 - Metasploitable 2:** 192.168.1.9 ### 1.3. 连接验证 配置完成后,使用 ping 命令验证了机器之间的连通性。 **命令(在 Kali 上执行):** code Bash downloadcontent_copy expand_less ``` `ping -c 4 192.168.1.9` ``` **证据:** 以下图片显示了 Ping 检查: ![Ping 验证](https://static.pigsec.cn/wp-content/uploads/repos/cas/c5/c571048af42d1930a6b25bca454ef8d822e75c8106684714e3d35200f46144a9.png) ## 阶段 2:侦察(信息收集)和自动化工具分析 在执行任何攻击之前,进行了侦察以识别目标上的开放服务和端口。为此使用了 `nmap` 工具。 **命令(在 Kali 上执行):** ``` nmap -sV -p- 192.168.1.9 ``` **命令参数:** - `-sV`: 尝试确定开放端口上运行的服务版本。 - `-p-`: 扫描所有 65535 个 TCP 端口。 **结果:** 扫描发现了多个开放端口,包括: - `端口 21/tcp`: **FTP** 服务 (vsftpd 2.3.4) - `端口 22/tcp`: **SSH** 服务 OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0) - `端口 80/tcp`: **HTTP** 服务 (Apache httpd 2.2.8 ((Ubuntu) DAV/2) - `端口 445/tcp`: **netbios-ssn** 服务 (amba smbd 3.X - 4.X (workgroup: WORKGROUP)) 这些服务被选为下一阶段的目标。 **证据:** 以下图片显示了 Nmap 扫描结果: ![Nmap 结果](https://static.pigsec.cn/wp-content/uploads/repos/cas/1e/1e5f392012447bcf206bb3bcbf446e55a9a68ab6ede710133878a254c1da2b6a.png) ## 使用自动化工具进行漏洞分析 ### 2.1 Web 服务器扫描器 (Nikto) **目标:** 识别服务器上的配置问题和已知漏洞。 **完整输出可在以下位置找到:** `./logs/nikto_scan.txt` **检测到的主要漏洞:** | 漏洞 | 风险 | 证据 | |---|---|---| | Apache 服务器过时 (2.2.8) | 高 | 识别出 EOL 版本 | | 暴露的 phpinfo.php 文件 | 高 | 可访问系统信息 | | 可访问的敏感目录 (/doc/, /test/) | 中 | 目录列表已激活 | | TRACE 方法已激活 | 中 | 易受 Cross-Site Tracing 攻击 | | phpMyAdmin 无限制访问 | 高 | 管理面板暴露 | **技术说明:** - **服务器:** Apache/2.2.8 (Ubuntu) + PHP/5.2.4 - **配置问题:** 缺少安全 Header(X-Frame-Options, X-Content-Type) - **暴露的文件:** phpinfo.php, phpMyAdmin, 系统目录 **立即建议:** 更新 Web 服务器并限制对敏感文件的访问。 ## 2.2 Web 应用程序扫描器 (Wapiti) **目标:** 分析 DVWA 应用程序中的特定漏洞。 **完整输出可在以下位置找到:** `./logs/scan_wapiti.txt` **检测到的主要漏洞:** | 类别 | 漏洞 | 风险 | 证据 | |---|---|---|---| | **Content Security Policy** | 未配置 CSP | 中 | 缺少 Content-Security-Policy Header | | **HTTP Headers** | 缺少 X-Frame-Options | 中 | 允许点击劫持 | | **HTTP Headers** | 缺少 X-XSS-Protection | 中 | 无 XSS 保护 | | **HTTP Headers** | 缺少 X-Content-Type-Options | 中 | 允许 MIME sniffing | | **HTTP Headers** | 缺少 Strict-Transport-Security | 中 | 未强制使用 HTTPS | | **Cookies** | 未配置 HttpOnly 标志 (PHPSESSID) | 中 | 可通过 JavaScript 访问 Cookie | | **Cookies** | 未配置 HttpOnly 标志 (security) | 中 | 可通过 JavaScript 访问 Cookie | | **Cookies** | 未配置 Secure 标志 (PHPSESSID) | 中 | Cookie 明文传输 | | **Cookies** | 未配置 Secure 标志 (security) | 中 | Cookie 明文传输 | ### 按类别划分的漏洞摘要 | 类别 | 数量 | 状态 | |---|---|---| | HTTP 安全 Headers | 4 个漏洞 | 严重 | | Cookie 安全 | 4 个漏洞 | 严重 | | Content Security Policy | 1 个漏洞 | 中 | | SQL Injection | 0 个漏洞 | 安全 | | XSS | 0 个漏洞 | 安全 | | Path Traversal | 0 个漏洞 | 安全 | ### 总体影响 **安全配置不足:** - 跨站攻击 (XSS) - 点击劫持 - 敏感数据暴露 - Session hijacking ### 建议 1. **实施 HTTP 安全 Headers** 2. **在 cookies 上配置安全标志** 3. **采用 Content Security Policy** 4. **强制使用 HTTPS** 5. **防范点击劫持** 6. **阻止 MIME sniffing** 7. **将 cookies 与客户端脚本隔离** ## 阶段 3:执行攻击(漏洞利用) 在确定目标后,使用 **Medusa** 工具执行暴力破解攻击。 ### 场景 1:FTP 服务暴力破解 - **目标:** 获取对 Metasploitable 2 上 FTP 服务(端口 21)的未授权访问。 - **使用的 Wordlists:** - `usuarios.txt`(包含 `root`, `admin`, `msfadmin`) - `senhas.txt`(包含 `toor`, `admin`, `msfadmin`, `password`) **命令(在 Kali 上执行):** ``` medusa -h 192.168.1.9 -U usuarios.txt -P senhas.txt -M ftp ``` **命令参数:** `-h` 192.168.1.9: 参数 -h(代表 host)指定攻击目标,即 IP 地址 192.168.1.9。 `-U` usuarios.txt: 参数 -U(代表 User file)指明包含待测试用户列表的文件。 `-P` senhas.txt: 参数 -P(代表 Password file)指明包含每个用户待测试密码列表的文件。 `-M` ftp: 参数 -M(代表 Module)定义要攻击的服务(模块)。在此案例中为 ftp。 **工作原理:** Medusa 自动测试文件中所有用户名和密码组合,针对服务器 192.168.1.9 的 FTP 服务进行验证。 **结果:** 攻击成功,揭示了有效凭据:**`msfadmin` / `msfadmin`**。 ## **证据:** 以下图片显示了成功的 FTP 攻击: ![FTP 攻击成功](https://static.pigsec.cn/wp-content/uploads/repos/cas/6a/6a6043dd75a7ff3e0def6443a4a76faeaebd4d0cd2ad85c2eab9ce851c097a59.png) ### 场景 2:Web 表单暴力破解 (DVWA) - **目标:** 破解运行在 Metasploitable 2 上且配置为 `Low` 安全级别的 Damn Vulnerable Web Application (DVWA) 中 “Brute Force” 页面的登录表单。 **命令(在 Kali 上执行):** ``` hydra -L usuarios.txt -P senhas.txt 192.168.1.9 http-post-form \ "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:F=Login failed" ``` **命令参数:** - `-L usuarios.txt`: 包含待测试用户列表的文件。 - `-P senhas.txt`: 包含待测试密码列表的文件。 - `192.168.1.9`: 攻击服务器/目标的 IP。 - `http-post-form`: 通过 POST 攻击 Web 表单的模块。 - `-m FORM:"..."`: 定义 URL 和表单参数,使用 `^USER^` 和 `^PASS^` 作为占位符。 **表单结构:** - `/dvwa/login.php`: 表单的 URL。 - `username=^USER^&password=^PASS&Login=Login`: 表单参数,使用 `^USER^` 和 `^PASS^` 作为占位符。 - `F=Login failed`: 预期的错误消息。 **工作原理:** Hydra 自动测试文件中所有的用户名和密码组合,在每次尝试中替换 ^USER^ 和 ^PASS^,并在找到有效凭据(即“Login failed”消息未出现)时停止。 **结果:** [80][http-post-form] host: 192.168.1.9 login: admin password: password 发现了用户 `admin` 的密码:**`password`**。 **证据:** 以下图片显示了成功的 DVWA 攻击: ![DVWA 攻击成功](https://static.pigsec.cn/wp-content/uploads/repos/cas/a1/a14e35c5fd5cba8cd8a5cdee256592588ab24558b7b72298c71bc8bfc61f4f08.png) ## 场景 3:SMB 服务 Password Spraying - **目标:** 针对 SMB 服务(端口 445)执行 *Password Spraying* 攻击,使用单个弱密码测试多个用户。 - **测试密码:** `password` 和 `msfadmin` **命令(在 Kali 上执行):** ``` hydra -L usuarios.txt -p msfadmin 192.168.1.9 smb -V ``` **命令参数:** - `-L usuarios.txt`: 包含待测试用户列表的文件。 - `-p msfadmin`: 为所有用户使用固定密码 (msfadmin)。 - `192.168.1.9`: 攻击服务器/目标的 IP。 - `smb`: 攻击 SMB 协议 (Server Message Block - Windows 文件共享) 的模块。 - `-V`: 详细模式 - 实时显示每次尝试。 **工作原理:** Hydra 使用固定密码 `msfadmin` 在目标的 SMB 服务上测试 `usuarios.txt` 文件中的每个用户,由于 `-V` 参数,所有的尝试都会显示在屏幕上。 **与之前场景的区别:** 之前:使用多个密码攻击 Web 表单。 现在:使用固定密码和多个用户攻击 SMB 服务。 **结果:** 攻击识别出用户 **`msfadmin`** 拥有密码 `msfadmin`,从而允许访问网络共享。 ## **证据:** 以下图片显示了成功的 SMB 攻击: ![SMB 攻击成功](https://static.pigsec.cn/wp-content/uploads/repos/cas/e2/e284369afc28d5044d64610f52830ee5c44d3f60be0bd0ccb5aaa2391b78e58a.png) ## 阶段 4:风险分析和建议(缓解) *攻击表明弱密码对服务安全构成了严重风险。建议采取以下安全对策:* | 识别出的风险 | 缓解措施 | 为什么重要? | | :------------------| :------------------ | :-------------------- | | **弱密码和默认密码** | 实施**强密码策略**(长度、复杂性、历史记录)。| 使自动化工具猜测密码的难度呈指数级增加。| | **无限制的登录尝试** | 在 X 次失败尝试后配置**账户锁定**。| 阻止攻击者在短时间内测试数百万个密码,从而使攻击不可行。| | **Web 攻击自动化** | 在登录表单中使用 **CAPTCHA** 或 reCAPTCHA。| 增加需要人工交互的层,破坏大多数暴力破解脚本。| | **凭据泄露** | 启用**多因素身份验证 (MFA)**。| **最有效的措施。** 即使密码被盗,攻击者也不会拥有第二因素(token、生物识别等)。| | **缺乏可见性** | 针对多次登录失败实施**监控和警报**。| 允许安全团队在攻击成功之前检测并响应正在进行的攻击。| ## 结论 实验室突出了危害系统安全的关键漏洞。最需要立即修复的要点是: ### 需要立即修正的关键点: 1. **默认凭据和弱凭据** - 移除如“msfadmin”和“password”的默认密码 - 实施至少 12 个字符的复杂密码策略 2. **暴力破解保护** - 在 5 次失败尝试后配置自动账户锁定 - 在登录尝试之间实施逐步延迟 3. **过时的服务** - 将 Apache 2.2.8 更新到受支持的版本 - 将 PHP 5.2.4 更新到当前版本 - 修复易受攻击的 vsftpd 2.3.4 4. **Web 安全配置** - 实施安全 Header(CSP, X-Frame-Options) - 在 cookies 上配置安全标志(HttpOnly, Secure) - 移除敏感文件如 phpinfo.php 5. **缺乏多因素身份验证** - 为管理访问实施 MFA - 为关键登录增加额外的保护层 ## 许可证 该项目基于 MIT 许可证授权。有关更多详细信息,请参阅 `LICENSE` 文件。 ## 作者 **André Luís Alves Campos** [![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/andlsac) [![Instagram](https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white)](https://instagram.com/andlsac)
标签:CTI