文章目录
- 一、burp爆破用法
- 1.Attack type爆破方式设置
- 2.payload处理
- 3.请求引擎设置
- 4.攻击结果设置
- 5.grap匹配设置
- 二、常见端口与利用
- 1、文件共享
- 2、远程连接
- 3、Web应用
- 4、数据库
- 三、爆破案例经验
- 1、暴力破解攻击产生的5个原因或漏洞
- 2、猜测用户名方法
- 3、猜测密码方法
- 四、实验与作业
- 1、Win7搭建ftp用于远程密码爆破
- a.新建用户
- b.配置internet 信息服务
- c.添加FTP站点
- d.使用WinSCP软件连接
- 2、九头蛇hydra-windows暴力破解工具安装与使用
- 3、超级弱口令检查工具使用
- 4、DVWA安装和使用
- a.解决DVWA安装问题
- b.修改等级
- c.LOW狙击手爆破
- d.Medium集束炸弹爆破
- e.High Pitchfork爆破
- f.High + token + 鱼叉爆破
- 五、认证崩溃防御方式
一、burp爆破用法
1.Attack type爆破方式设置
Sniper(狙击手):对变量依次进行暴力破解。一般这个模式下只设置一个爆破点,因为如果用户名和密码都不知道的情况下不会使用该模式去爆破。通常用于在知道用户名后,对密码进行爆破。
Battering ram(工程锤):对变量同时进行破解,表示两个爆破点使用同一个play依次去执行,如果simplelist是6个,那么就执行6次。
Pitchfork(叉子):每一个变量标记对应一个字典,一一对应进行破解。这个模式下,表示两个爆破点,并且会设置两个payload1和payload2,payload1就设置给爆破点1,payload2就设置给爆破点2,总共也是执行6次。并且一般按照payload少的执行
Clusterbomb(集束炸弹):每个变量对应一个字典,并且进行交叉式破解,尝试各种组合。适用于用户名+密码的破解
2.payload处理
Add prefix:添加一个文字前缀
Add suffix:添加一个文字后缀
Match/replace:将替换匹配特定正则表达式的有效载荷的任何部位,用一个文字字符串表示
Substring:提取的有效载荷的子部分中,从指定的偏移量(0-索引)和至所指定的长度开始
Reverse substring:对于子规则来说,最终的偏移量指定的有效载荷的末尾后向计数,并且长度从端部向后偏移计数
Modify case:这个修改了有效载荷的情况下,如果适用的话,同样的选项作为的情况下修改有效载荷类型
Encode-URL:html,base64的,ASCII码或十六进制字符串构建各种平台,采用不同的计划,该编码的有效载荷
Add raw payload:这之前或之后,在当前处理的值增加了原始负载值,它可以是有用的,例如如果你需要提交相同的有效载荷在RAW和哈希表
Skip raw payload:将检查是否当前处理的值匹配指定的正则表达式,如果是这样,跳过有效载荷和移动到下一个,这可能是有用的,例如,如果知道一个参数值必须有一个最小长度和要跳过的一个列表,让这更短的长度的任何值
Invoke burp extension:调用一个Burp extension(扩展)来处理负载,扩展名必须已注册入侵者有效载荷处理器,你可以从已注册的当前加载的扩展可用的处理器列表中选择所需的处理器
3.请求引擎设置
Maxinum concurrent requests:线程,该选项控制攻击请求的并发数
Delay between requests:请求之间的等待时间
4.攻击结果设置
Store requests/Response:储存请求/响应,这个选项确定攻击是否会保存当个请求和响应的内容
Make unmodified baseline request:未修改的基本请求,如果选择此选项,那么除了配置的攻击请求,burp会发出模版请求设置为基值,所有有效载荷的位置,此请求在结果表显示为项目#0,使用此选项很有用,提供一个用来比较的攻击响应基地的响应
Use denial-of-service mode:使用拒绝服务的模式,如果选择此选项,那么攻击会发出请求,如正常,但不会等待处理从服务器收到任何答复,只要发出的每个请求,TCP连接将被关闭,这个功能可以被用来执行拒绝服务的应用层对脆弱的应用程序的攻击,通过重复发送该启动高负载任务的服务器上,同时避免通过举办开放套接字等待服务器响应锁定了本地资源的请求
Store full payloads:保存完整的有效载荷,如果选择此选项,BURP将存储全部有效载荷值的结果
5.grap匹配设置
Match type:匹配类型,指定的表达式是否是简单的字符串或正则表达式
Case sensitive match:区分大小写的匹配,指定检查表达式是否区分大小写
Exclude HTTP headers:排查http头,指定的http响应头是否应被排除在检查
Grap提取:可用于从攻击结果表中提取响应的有用信息
二、常见端口与利用
1、文件共享
21/22/69 FTP/TFTP文件传输协议:允许匿名上传,下载,爆破和嗅探
2049 NFS服务:配置不当
139 Samba服务:爆破,未授权访问,远程代码执行
389 LDAP目录访问协议:注入,允许匿名访问,弱口令
2、远程连接
22 SSH远程连接:爆破,SSH隧道及内网代理转发,文件传输
23 Telnet:爆破,嗅探,弱口令
3389 RDP远程桌面连接:shift后门(Windows server 2003以下版本)、爆破
5900 VNC:弱口令爆破
5632 PyAnywhere服务:抓密码、代码执行
3、Web应用
80/443/8080 常见的web服务端口:web攻击,爆破,对应服务器版本漏洞
7001/7022 WebLogic控制台:Java反序列化,弱口令
8080/8089 Jboss/Resin/Jetty/Jenkins:反序列化,控制台弱口令
9090 WebSphere控制台:Java反序列化,弱口令
4848 GlassFish控制台:弱口令
1352 Lotus dominio邮件服务:弱口令、信息泄露、爆破
10000 Webmin-web控制面板:弱口令
4、数据库
3306 Mysql:注入、提权、爆破
1433 MSSQL:注入、提权、SAP弱口令、爆破
1521 Oracle:TNS爆破、注入、反弹shell
5432 PostgreSQL:爆破、注入、弱口令
27017/27018 MongoDB:爆破、未授权访问
6379 Redis:可尝试未授权访问、弱口令爆破
5000 SysBase/DB2:爆破、注入
三、爆破案例经验
1、暴力破解攻击产生的5个原因或漏洞
Web应用开发时用户身份认证方法有逻辑漏洞。
Web用户身份识别策略不严格或设置不当。
Web应用对用户身份和密码没有做强状性限制。
Web应用没有对用户非常用登录地址做异常访问处理。
Web应用开发时,用户身份认证方式有缺陷或权限分配不合理。
2、猜测用户名方法
当输入用户名admin提示用户名不存在时
除了可以尝试 system sysadmin test test1 test123 ceshi 123 之外
可以尝试撞库,即固定密码,遍历用户名
还可尝试单位名+admin,如:csbadmin
还可以尝试:admin+序号,如 admin01 admin02 admin1 admin123
或者 厂商名+年份
可以从帮助中心 || 工具下载 || 帮助文档 获取默认密码,获取员工工号格式
3、猜测密码方法
可以从以下几个方面入手
公司名
厂商名(设备厂商,可对比归档设备默认密码)
设备名
系统名
子域名(实战中可固定域名前缀,然后往后遍历密码字典)
用户名
年份
等等(任何你觉得有可能的密码组合)
密码策略:大小写字母+数字+特殊符号(满足其三)
四、实验与作业
1、Win7搭建ftp用于远程密码爆破
a.新建用户
右键计算机 -> 管理,选择用户本地用户组,新建用户,用户名和密码均为ftptest
b.配置internet 信息服务
win7系统本身没有安装internet信息服务,需要先进行安装,打开控制面板 ->程序和功能-> 打开或关闭Windows功能 -> 选中internet信息服务然后点击确定进行安装
安装完成之后,管理工具打开 Internet 信息服务(IIS)管理
c.添加FTP站点
在Win7系统中,没有自带的默认FTP站点需要自己创建一个,右键本机PC 选择添加FTP站点
站点名称随意,物理路径是磁盘上的一个存在的文件夹
IP地址为本机IP地址即可,自动启动FTP站点,不需要SSL证书
指定用户为创建的用户
d.使用WinSCP软件连接
2、九头蛇hydra-windows暴力破解工具安装与使用
终端使用
创建密码文件
用法示例:
ftp密码破解
hydra -L 用户名字典 -P 密码字典 -t 线程 -e ns ftp
hydra -L user.txt -P mima.txt -t 6 -e ns ftp://192.168.25.173
获取成功
3、超级弱口令检查工具使用
还是选择ftp,导入用户名字典和密码字典开始检查
获取成功
4、DVWA安装和使用
a.解决DVWA安装问题
将DVWA拷贝到D:\phpstudy_pro\WWW目录下
打开http://127.0.0.1/DVWA
打开现在使用的PHP目录,比如我用的是7.3.4(可看上图)
上述ini allow_url_include = Off 改为On
然后重启apache
问题解决
b.修改等级
使用默认账号admin password登录
DVWA Security等级选LOW,点submit提交
c.LOW狙击手爆破
点开Brute Force,开启BP和火狐BP插件开始爆破
随意输入一个用户名密码
BP抓包
右键将包发送到Intruder 模块
去除所有参数,将password设为参数
同时假定指定用户名是正确的,爆破方式使用默认的狙击手模式
导入字典
开始攻击,攻击结果按长度排序
而其他的都是
爆破成功
d.Medium集束炸弹爆破
将等级设为中级
这次我们假设用户名也不知道
Bp抓包并发送到intruter
爆破模式设为cluseter bomb,将用户名和密码都设为靶参
分别导入用户名字典和密码字典
开始attack
正确情况
其他错误情况
爆破成功
e.High Pitchfork爆破
鱼叉模式,同样要设置两个变量
分别导入字典后开始爆破,但是失败了
f.High + token + 鱼叉爆破
原因应该是high级别的增加了token
因此我们调整一下,抓包发送到 Intruder 模块后,设置password和token为爆破点进行标记
在options中的grep-extract中打勾点击add添加过滤条件 点击refetch response 找到响应包中的token 选中复制token值点击确定
设置密码本,点击payload,选择第一项的密码本与低等级的相同,第二项的时候选Recursive grep 并且把之前得到的token值粘贴到下方的方框中。
线程数切记设置为1
重定向设置成:总是
开始attack
正确情况
错误情况
爆破成功
总结:发现必须在已知用户名的情况下才可以,都未知的时候失败了
五、认证崩溃防御方式
1、用户层面就是要避免使用弱口令,弱口令当然不止使用admin,root
这类的,还有姓名拼音,键盘连续字符等
2、服务方进行对多次登陆失败的账户可以锁ip
3、使用短信验证码,语言验证码等验证方式,为了用户体验好,可以
设置一个阀值,当超过这个阀值再进行验证
5、使用复杂点的验证码,增加攻击者攻击成本
拓展部分,有时间再做
Pykachu验证码爆破
万能密码:admin, ’ or 1=1–’
皮卡丘重放攻击绕过后端验证码
前端验证码绕过,所以将验证码参数删除,右键发送到intruder模块;禁用浏览器js脚本,验证码就不会显示了
HTTPS靶场环境搭建