Mac安装配置渗透测试神器Burpsuite
介绍
Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们自动化地或手工地能更好的完成对web应用的渗透测试和攻击。Burp Suite主要组件:
- proxy:代理,默认地址是127.0.0.1,端口是8080
- target:站点目标,地图
- spider:爬虫
- scanner:漏洞扫描
- repeater:http请求消息与响应消息修改重放
- intruder:暴力破解
- sequencer:随机数分析(破解cookie、token等)
- decoder:各种编码格式和散列转换
- comparer:可视化差异对比功能
安装
我本地是Mac arm m3芯片,其他操作系统激活与下载方式类似。
注意:
- Burp suit是java编写,需要有java环境,java官方地址:
https://www.oracle.com/cn/java/technologies/downloads/- 选择对应版本下载dmg,然后直接安装即可
- 安装完成后,打开终端执行
java -version
,检查是否安装成功
官网下载
官网2022.3版本下载链接:https://portswigger.net/burp/releases/professional-community-2022-3
- 其他版本下载链接:https://portswigger.net/burp/releases#professional
下载成功后是.dmg,双击后,正常安装即可:
注册机下载
https://www.123pan.com/s/dpIYjv-0e8Bh.html提取码:1234
激活
- 在应用程序文件夹找到burp,右击显示包的内容
- 修改vmoptions.txt
直接复制下面内容,替换原有内容
# Enter one VM parameter per line
# For example, to adjust the maximum memory usage to 512 MB, uncomment the following line:
# -Xmx512m
# To include another file, uncomment the following line:
# -include-options [path to other .vmoption file]
-XX:MaxRAMPercentage=50
-include-options user.vmoptions
-javaagent:BurpLoaderKeygen.jar
-javaagent:BurpSuiteChs.jar
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
--add-opens=java.base/jdk.internal.org.objectweb.asm.Opcodes=ALL-UNNAMED
-noverify
- 添加jar包到burpsuit包下
# finder放达打开如下路径:
/Applications/Burp Suite Professional.app/Contents/Resources/app
- 点击访达 - command+shift+G,输入/Applications/Burp Suite Professional.app/Contents/Resources/app
- 将破解工具中的BurpLoaderKeygen.jar和BurpSuiteChs.jar放入app文件夹中:
注意:该列为启用中文包,注释可取消中文
-
运行BurpSuit,出现如下页面:
-
运行注册机
重新打开一个新终端,运行注册机
随便修改个License Text的内容,然后复制License的内容,粘贴到上一步中的Enter license key,点击Next
- 然后点击手动激活
再选择“Manual activation”
- 复制"Manual activation"中的request,粘贴到注册机中的"Activation Request",并将注册机中生成的"Activation Response"复制粘贴到"Manual activation"中的response
- 注册成功
使用
1 proxy 代理
默认地址是127.0.0.1,端口是8080
方式一:使用内置浏览器(无需配置代理)
如果通过burp suite自带的浏览器访问网站,是不用配置代理的
- Intercept拦截:开启拦截之后,在请求到达服务器前,我们可以对包进行操作
打开内置浏览器,输入网址:
方式二:配置浏览器代理
以Firefox为例(其他浏览器都大同小异)
-
打开浏览器,点击右上角 - 设置
-
搜索代理
-
选择手动配置代理并设置BurpSuite代理
BurpSuite开启代理后,默认地址:127.0.0.1 8080
4. 浏览器输入http://burp
,出现如下页面表示代理配置成功
2 target 目标,显示我们访问过的站点
Target模块下的Site map会以树状的显示展示我们访问过的站点
3 spider 爬虫
爬虫模块用于自动爬取网站的每个页面内容,并生成完整的网站地图
-
首先点击目标,进入目标模块
-
点击站点,鼠标右击,选中discovery content
-
配置爬取参数(是否只扫描文件,最大爬取子目录深度、爬取的文件拓展名等)
可以看到会话正在运行表明正在爬取网站
4. 可以将扫描站点添加到scope进行进一步分析
5. 来到dashboard,点击new scan,就可以看到我们开始添加的scope已经被添加到其中了
后续就可以针对其进行漏洞扫描,具体操作参考下方scanner模块
4 scanner 漏洞扫描
1. 主动式:new scan
- 新建扫描
- 设置扫描范围:
可以选择爬虫和审计或者只审计,扫描的url列表及scope配置
- 设置扫描类型(扫描参数配置)
一般默认即可。可以配置爬虫和审计的规则,一般不用选,默认就行。
- 配置用户凭证
如果扫描过程中需要登录,用户配置username和password。
这个只有在爬虫时检测到登陆表单会自动提交,在审计时用不到
- 自定义资源池(并发请求数、请求间隔时间等)
2. 被动式:new live scan (根据用户浏览的网页进行分析)
被动式是几乎不额外构造请求进行爬虫和扫描,根据用户浏览网页进行常规请求,并对请求的数据进行简单分析。
- Dashboard - new live scan,创建被动扫描
- 配置扫描详细参数:扫描目标等
- 配置扫描信息:只扫描、审计严重问题等
- 配置扫描资源池:同时并发请求数
5 repeater 请求重放
选中请求 - 鼠标右键添加到Repeater - 编辑请求内容 - 点击Send重放请求
-
将数据包发送到Repeater模块中
-
编辑内容
-
点击Send 发送请求数据
6 intruder 自动化攻击(暴力破解)
在进行网页爆破的时候会用到Intruder,在Target页面对目标右键发送到Intruder。我们可以通过设置不同的负载和位置,进行各种复杂的攻击测试。
Intruder模块中主要包含四种不同攻击方式:
- Sniper
- Battering ram
- Pitchfork
- Cluster bomb
1. Sniper 狙击手模式(每次只替换一处变量)
- 这种模式主要适用于:竞争条件测试(选择Null payloads),密码、验证码暴力破解,重放攻击等场景。
- 狙击手模式使用一组payload集合,它一次只使用一个payload位置,假设你标记了两个位置“A”和“B”,payload值为“1”和“2”,那么它攻击会形成以下组合(除原始数据外):
具体操作:
-
选中对应请求,鼠标右击发送到Intruder模块
-
选择攻击模式,添加变量信息
-
配置payload载荷
- 设置自定义爆破字典
- 载荷处理: 如果我们想对载荷的值进行处理,也可以点击下方Payload Processing进行前置处理,例如:我们字典中的值是admin,我们想要给他添加前缀hei,使得最终请求的载荷为heiadmin
- 点击右上角的start attack,发起攻击
2. Battering ram 攻城锤模式(每次替换全部变量)
攻城锤模式与狙击手模式类似的地方是,同样只使用一个payload集合,不同的地方在于每次攻击都是替换所有payload标记位置,而狙击手模式每次只能替换一个payload标记位置。
还是上面的例子,我们定义username、password两个变量,同时添加载荷,观察情况
- 添加username、password两个变量
- 设置变量可能的值
- 点击send attack,发起攻击,查看结果
载荷处理: 如果我们想对载荷的值进行处理,也可以点击下方Payload Processing进行前置处理,例如:我们字典中的值是admin,我们想要给他添加前缀hei,使得最终请求的载荷为heiadmin
3. Pitchfork 草叉模式(每次替换全部变量,且一一对应)
- 草叉模式允许使用多组payload组合,在每个标记位置上遍历所有payload组合,假设有两个位置“A”和“B”,payload组合1的值为“1”和“2”,payload组合2的值为“3”和“4”,则攻击模式如下:
- Pitchfork最多只能设置三个Payload以及三个position,如果超过三个就会出现以下报错
- 还是按照上面的例子,我们定义了username、password两个变量
- 设置负载(载荷),此时我们会发现,我们定义了几个变量就可以设置几个变量字典,字典1对应变量1、字典2对应变量2…
载荷处理: 如果我们想对载荷的值进行处理,也可以点击下方Payload Processing进行前置处理,例如:我们字典中的值是admin,我们想要给他添加前缀hei,使得最终请求的载荷为heiadmin
3. 点击start attack,查看结果
4. Cluster bomb 集束炸弹模式(每次将变量进行排列组合)
- 集束炸弹模式跟草叉模式不同的地方在于,集束炸弹模式会对payload组进行笛卡尔积,还是上面的例子,如果用集束炸弹模式进行攻击,则除baseline请求外,会有四次请求:
- 选中对应请求,鼠标右击发送到Intruder模块
- 设置负载(载荷),我们定义了几个变量就可以设置几个变量字典,字典1对应变量1、字典2对应变量2…
- 点击start attack,发起攻击
载荷处理: 如果我们想对载荷的值进行处理,也可以点击下方Payload Processing进行前置处理,例如:我们字典中的值是admin,我们想要给他添加前缀hei,使得最终请求的载荷为heiadmin
- 查看结果
总结
- sniper 对变量依次进行破解。多个标记依次进行(单字典尝试,每次只替换一处变量)
- Battering ram 对变量同时进行破解。多个标记同时进行(单字典尝试,每次替换所有变量)
- Pitchfork 每一个变量对应一个字典,取每一个字典的对应项(多字典尝试,每次多个字典值组合一一对应进行尝试)
- Cluster bomb 每个变量对应一个字典,并且进行交集破解,尝试各种组合,适用于用户名+密码的破解(多字典尝试,每次多个字典值排列组合/笛卡尔积进行尝试)
7 sequencer 随机数分析(验证cookie等)
验证cookie、token等信息是否可以预测,是否随机。此功能新手了解即可,一般使用较少。
- 选中请求,鼠标右击发送到sequencer模块
- 来到sequencer模块,配置破解参数信息
下方的 LIve Capture Option可以配置暴力破解时的并发数、请求间间隔时长
3. 点击start live capture,开始破解
4. 运行完成或者爆破请求到一定数量时,就可以分析结果
主要判断:
- 比如cookie或token是否是一个周期之后又轮回,比如token总共有100种,每次请求都不一样,第101次时,又开始新一周期,返回第1种token
- cookie、token所用的生成方式是否可预测、可破解,比如都是对当前时间戳进行base64编码后返回等
8 decoder 解码
Burp Decoder是Burp Suite中一款编码解码工具,将原始数据转换成各种编码和哈希表的简单工具。
- 顶部选中Decoder模块
- 输入需要编解码的内容,右侧选择编解码类型,点击之后下方输入框会直接展示编解码的结果
9 comparer 比对
可视化差异对比功能,比较两个请求包或响应包的差异
- 选中对应请求,添加到comparer模块
- 点击comparer模块
参考文章:
https://www.cnblogs.com/zohn/p/17983767
https://blog.youkuaiyun.com/xiangxue666/article/details/142873022
https://blog.youkuaiyun.com/weixin_43876557/article/details/108583391
https://blog.youkuaiyun.com/weixin_45808483/article/details/121392526