BurpSuite 内网渗透
- 一、 攻击模式介绍
- 1.1 Sniper(狙击手)
- 1.2 Battering ram(攻城锤)
- 1.3 Pitchfork(草叉)
- 1.4 Cluster bomb(榴霰弹)
- 二、 DVWA靶场搭建
- 2.1 下载DVWA工程
- 2.2 添加网站
- 2.3 初始化数据库
- 2.4 登录
- 2.5设置安全级别
- 三、内网渗透
- 3.1 靶场环境开启
- 3.2 拦截打开
- 3.3 拦截包发送Intruder模块
- 3.4 选择攻击字段
- 3.5 选择攻击模式
- 3.6 设置payload
- 3.7 其他设置
- 3.8 发起攻击
- 3.9 查看结果
- 四、 标记结果(补充说明)
- 五、获取CSRF Token
- 5.1 切换安全级别
- 5.2 拦截打开
- 5.3 Pitchfork攻击
- 5.4 攻击字段设置
- 5.5 单线程设置
- 5.6 开始攻击
- 六、 绕过验证码
- 6.1 开启代理拦截
- 6.2 发送Intruder模块
- 6.3 篡改响应结果
- 6.4 放行数据包
- 6.5 成功跳过验证码
我们先来认识一下BurpSuite中有哪些攻击模式,然后开始实战操作
一、 攻击模式介绍
1.1 Sniper(狙击手)
下面攻击案例即将使用,对单个参数进行攻击破解
联想战争中狙击手的作用,一次只能击杀一名敌人
1.2 Battering ram(攻城锤)
联想古代的攻城锤,特点就是攻击范围比狙击手大,但是效率不一定高
可以设置多个攻击字段,但是payload值只有一个
攻击的值只有一个
在这种情况下发起攻击,用户名和密码的值将是一样的,不适合密码获取
它会把一个值给到所有攻击字段
适合在多个字段中找合适值
1.3 Pitchfork(草叉)
联想农民伯伯耕地使用的草叉,如果地上有六个洞,但叉子只有四个分支,那么它最多只能插入四个洞中
对于攻击也是一样的,无法做到对所有可能性进行穷举验证,容易遗漏正确数据
允许设置很多payload来源
它的字段,默认按先后顺序排列
我们给第一个字段(用户名),添加5个内容
同样给第二个字段,添加6个密码
然后发起攻击,会看到,它只跑了5次,取两个数中最少的那个
从多个字典提取值,赋给多个字段,按顺序一一对应
例如:
100个用户名
50个密码
最终请求次数:50次
会出现一种情况,字典中有正确的用户名和密码,但是没有匹配成功,说明还不够全面,我们使用榴霰弹,交叉验证
1.4 Cluster bomb(榴霰弹)
联想二战中的榴霰弹,攻击范围大,攻击个体多,还可以做到彻底摧毁某一片土地,缺点就是造价昂贵
对于攻击也是一样的,它可以通过枚举,将所有的可能性都试一次,做到无疏漏,但问题就是使用它来破解参数,花费的时间占用的资源较多
同样,我们使用上次5个用户名和6个密码测试
结果发现,请求次数是30次
所有字典全部交叉验证
我们开始攻击,在30次匹配中有一组是正确的
二、 DVWA靶场搭建
DVWA是一款开源的练习web漏洞的靶场工具,用PHP代码编写而成。
需要PHP和Apache环境运行。
在下载好小皮基础上,我们需要下载DVWA靶场环境和一个文本编辑工具,Sublime
DVWA靶场网盘下载
提取码:tkwm
文本编辑Sublime下载
提取码:bwhe
2.1 下载DVWA工程
把解压后的代码放在PHPStudy的WWW路径下(根目录)。
位置如下
2.2 添加网站
打开phpstudy,添加网站。
这一步除了填写域名,其他的都不用改。
域名跟上一步的文件夹名字一致,会自动填充根目录。
(这里写成小写dvwa)
部署成功稍等几秒,Apache会自动重启
2.3 初始化数据库
修改配置文件:
WWW\DVWA\config\config.inc.php
修改IP、库名(默认dvwa不用改)、用户名、密码、端口
这里将user设置为root
数据库密码在小皮数据库选项中查看
打开首页
http://localhost/dvwa
选择Setup
点击最下方的 Create /Reset Database初始化数据库
提示报错,我们需要修改配置文件
首先要确定自己的PHP版本
在小皮中查看
找到PHP配置文件
phpstudy_pro\Extensions\php\php7.3.4nts\php.ini
把以下两个值都改为ON
2.4 登录
初始化后可以登录首页
http://localhost/dvwa
登录成功
2.5设置安全级别
靶场设置不同安全级别可以对渗透测试人员练习提供更多的经验
三、内网渗透
3.1 靶场环境开启
首先开启小皮,启动Apache和MYSQL
打开BurpSuite内置浏览器
为什么不用自带浏览器呢,自带浏览器请求和响应的数据太多太杂,有些广告,视频等等都会被抓包抓到,不利于初学者学习攻击原理
输入网址,进入靶场
localhost/dvwa/
登录进去后,我们修改安全级别为最低级
测试网站在没有附加防御措施下的安全性
3.2 拦截打开
首先,我们打开拦截,然后在网站中随便输入,提交用户名和密码
这里我们已经知道用户名是admin,密码是password,我们想要做的是在反馈中看到密码,故先测试获取密码。
可以看到BP已经抓到了包
3.3 拦截包发送Intruder模块
然后我们把包发送到intruder模块
会看到intruder模块已经接收到包
我们看到,BurpSuite默认将这些字段打上分解符,BurpSuite默认你即将测试这些字段
但我们实际测试的只有密码值,所以点击清空
3.4 选择攻击字段
我们选中密码的值,点击ADD,添加分解符
3.5 选择攻击模式
攻击模式有四种,分别是Sniper、Battering ram、Pitchfork、Cluster bomb
选择攻击模式。这里选择Sniper,因为我们只要密码,是针对单个参数攻击
3.6 设置payload
进入Payloads(攻击载荷)模块,我们先使用Simple list,简单列表
爆破字典设置
3.7 其他设置
还可以对攻击字段做进一步设置
设置线程值为10
3.8 发起攻击
点击start
开始攻击
3.9 查看结果
单击密码,可以看到它返回的响应
这里1111显示密码不匹配,故不是正确密码
但每个都点开查看不现实,所以我们要对响应内容的长度进行排序
会发现有一个值的长度和其他不一样,在值爆破中,正确值和错误值的长度是不同的,可以利用这一点进行快速判断
最终确认正确密码是password
四、 标记结果(补充说明)
为了更快找到正确的值,我们想对正确的结果进行标记
即这段匹配成功响应
我们进入Intruder模块下的Options,找到Grep-Match
再次发起攻击,会在正确值位置出现标记
五、获取CSRF Token
5.1 切换安全级别
先把代理拦截关闭,将拦截级别切换到HIgh
其中涉及到CSRF token,它是什么意思呢
类似于古代的令牌,没有它,不能进入网站,但它和正常的令牌区别就在于,每次的令牌都不一样
用户每一次访问,都需要一个新的Token
一次使用,用完销毁
这一次浏览器响应给你,下一次你需要带上它上次给的token来访问才能进入网站
轮流依次访问
5.2 拦截打开
我们现在打开拦截
随便输入一个密码,会发现已经拦截到,并且安全级别是high
同样,发送到intruder模块
5.3 Pitchfork攻击
我们只能使用pitchfork攻击模式,然后将两个字段标识处理
5.4 攻击字段设置
进入payloads模块
先给密码一个字段
00000
1223
1232312
password
ashkkjd
在第二个字段,token值,我们使用载荷类型Recrusvive grep
它可以用来提取相应数据的比如拿到PHPSESSIONID,拿到TOKEN 等等,可以通过格式匹配抓取到对应的字段值。
它的规则需要在Option中设置,找到Grep-Extract,点击ADD添加,单击Refetch response生成一个相应,在响应中找到token,双击内容,会自动生成一套匹配规则
规则内容:
语句中前面是 value=' ,后面是' />\r\n </form>
则中间一定是token
选中之后复制token值
9dff1b7aaa0dca5d78eb501602b2c34a
回到payload,我们发现已经将规则添加进去了
注意:
使用该模式,只能使用单线程
为了避免上一个请求还没有回来,下一个又发出去
5.5 单线程设置
打开Resource Pool,选择单线程
5.6 开始攻击
然后发起攻击,结果显示爆破成功
六、 绕过验证码
举例
对于这样一个网站的验证码,我们想要绕过它,通过不关注公众号就能查看网站里的内容
https://www.lxlinux.net/7001.html
6.1 开启代理拦截
首先打开浏览器BP代理
在这里插入图片描述
打开拦截,在验证码处输入666666,回车,会看到BP已经拦截到验证码
6.2 发送Intruder模块
现在我们把它发送到Intruder模块
我们现在要做一个固定长度是6位的验证码
这里如果用生成字典的方法,可以生成从000001到999999一共一百万个密码,但是花费时间太久
6.3 篡改响应结果
所有我们试一下篡改响应结果
然后点击Forward放行,会看到一个服务器响应信息
{"msg":"校验码已失效,请重新获取!","resultCode":null,"success":false,"value":"666666","values":{}}
我们将success值改为ture
6.4 放行数据包
继续点击Foreword
6.5 成功跳过验证码
然后来看一下浏览器中网页是否已经跳过验证码
成功在不输入验证码的前提下,进入网站
这里只给大家举个例子,虽然拿验证码并不难,但通过一个简单的例子,我们可以学到渗透的思路(感兴趣可以自己试试,真实有效)