burpsuite

前言

  Burp Suite 是一款非常优秀的抓包工具之一,渗透测试必备神器,本章不介绍最最最基本的抓包配置等等,只介绍常用功能。

环境

  物理机: 192.168.2.213
  靶 机: 192.168.2.123
  K a l i : 192.168.2.161

Proxy

问题描述

  物理机无法抓靶机流量包,Kali能抓靶机流量包,但告知你必须要用物理机去抓到靶机流量包,怎样办?

问题解决

  在Proxy->Options->Proxy Listeners->Add 添加代理侦听
  
  设置绑定端口:随便设置 我设置为8080,设置绑定地址:我设置的是全网卡,直接ok选择yes后退出
  
  不抓本地包,所以去掉第一个选项卡
  配置靶机中浏览器代理为物理机中的ip,端口为刚才设置的8080
  
  抓包成功,当然强大的burp也能抓手机包,本篇不介绍
  

options

  只介绍Response Modification功能
  设置用于执行自动响应的修改。可以使用这些选项通过自动重写应用程序响应的HTML来完成各种任务。 下列选项在数据删除客户端控件可能是有用的
  
  有些网页中是把表单隐藏了的
  Unhide hidden form fields:显示隐藏的表单
    Prominently highlight unhidden fields:高亮显示这些字段
  有些表单是禁止输入内容的
  Enable disabled form fields:启用禁用的表单
  比如你输入密码框长度不能超过多少位,这个就可以突破
  Remove input field length limits:移除输入字段长度限制
  比如是否按正确的格式去输入
  Remove JavaScript from validation:从验证中删除JavaScript
  这个具体实际作用在哪里我也不知道
  Remove secure flag from cookies:从cookies中删除安全标志
  secure flag如图所示
  

导出项目

  最上面的选项卡Burp->Save copy of projec
  
  
  
  再下一步就是选择保存位置和文件名称,点击保存就完成了

导入项目

  写的够详细了,就不介绍了
  

Target

site map

  当你抓取到了流量包后,会在target模块中生成站点地图,它采用树状的层次结构显示信息。
  站点又分为两类:黑色和灰色
  黑色:浏览器真正的对一个url发起了请求,服务器对它返回了响应信息
  灰色:从页面中的url爬网爬出来的,并没有对该url的资源发生真正的访问一次。

内容区域 信息描述
左边 站点层次目录
中上 此站点具体请求流量包历史
中下 此流量包具体数据内容(请求包,响应包)
右上 安全提示
右下 安全建议

scope

  查看当前站点过滤信息,当你想只查看某一个站点信息或者某个目录的时候,如下图所示选择要显示的站点,发送到scope去。
  
  Include in scope:只查看当前列表中的站点信息=白名单
  Exclude from scope:排除掉列表中的站点信息=黑名单
  

site map filter

  单击filter哪一栏,会弹出过滤器规则,当你勾选好过滤规则后,只需要点击其他空白处,就会自动开始过滤
  
  Show only in-scope items:仅显示范围内的站点(此处需搭配scope使用) 勾选后入图所示
  
  Show only requested items:仅显示真正发起请求的站点
  Show only parameterizend requests:仅显示参数化的请求 也就是 过滤掉html,htm这类站点
  Filter by search term:按关键词筛选 比如我只看url地址中包含了dvwa关键字
  
  结果入图所示
  
  Filter by MIME type:按文件类型筛选
  Filter by status code:按状态码筛选
  Filter by file extension:按文件扩展名筛选
    show only:展示asp,aspx,jsp,php等扩展名
    Hide:不展示js,gif,jpg,png,css等扩展名
  Filter by annotation:
    Show only commented items:仅显示注释的项目
    给url添加注释
    
    添加完注释后
    
    Show only highlighted items:仅显示高亮的项目
    点击host进行高亮设置
    
  当你选乱的情况下,在Filter下面show all;hide all那一栏点击Revert changes:还原更改

Spider

  它提供爬虫功能,帮助来爬取网站目录结构
  右键选择要爬取的主机或者分支发送到spider,它就会自动开始爬取网站
  
  如果遇到需要验证的表单,burp会自动弹出,知道就填上,提交选Submit form,忽略选Ignore form
  

control

  在Spider->Control可以看见爬取的状态
  
  Requests made:已经发送的请求
  Bytes transferred:传输字节
  Requests queued:请求的队列数量
  Forms queued:正在排队的表单数量
  点击Spider is running 后,暂停爬取,再次点击继续爬取
  Clear queues:清除队列

options

  Spider->Options->Application Login 到申请登陆功能这里查看
  默认选择Prompt for guidance即需要身份验证的时候就提示
  
  Don’t submit login forms:不要进行表单提交身份验证
  Handle as ordinary forms:普通形式处理
  Automatically submit these credentials:自动提交这些凭据 勾选后 它将自动将username和password里面的数据提交进表单
  其他功能默认就行

Scanner

  在进行scanner(漏洞扫描)前,先使用spider功能,这样可以最大限度发现漏洞
  右键选择分支或者主机,选择主动扫描,没有搞懂被动扫描有什么用
  
  这时会弹出主动扫描向导
  
  最后一个选项Remove items with the follwing extensions:以下扩展名的不扫描。没必要扫这些勾选上
  直接Next->Ok就开始进行扫描

Scan queue

  此处查看扫描队列的详细进度
  
  Issues颜色级别
  High:红色 Medium:橙色 Low:黄色 Information:深灰色

Issue activity

  此功能是查看具体安全报告信息
  
  上面一部分

Action Issue type Host Path Insertion point Severtity Confidence
行为 问题类型 主机 路径 插入点 严重程度 确信程度

  Confidence(信任度由高到低): Certain>Firm >Tentative
  下面一部分
  给出漏洞修补建议,即漏洞细节和漏洞背景,还有一如既往的请求包和响应包

options

Attack Insertion Points

  change parameter locatons:更改参数的位置
  这些都勾选上,比如url里面的内容放到cookie,逐一检查
  
  第二个划红线的意思是发现隐蔽的命令注入点,如url中的base64编码,解码后发现是xml的值或者json,ajax等客户端对象存储的数据

Active Scanning Engine

  

Active Scanning Optimization

  
  Scan speed:扫描速度
  扫描仔细度:Thorough > Normal > Fast
  Normal:正常速度 Fast:快 Thorough:彻底扫描
  Scan accuracy:扫描精度
  Normal:正常精度 Minimize false negatives:最小漏判(追求扫描最多漏洞数量时选择) Minimize false positives:最小误报(追求扫描结果准确性时选择)

Intruder

  Intruder是一个强大的工具,用于自动对Web应用程序自定义的攻击,Burp Intruder 是高度可配置的,并被用来在广范围内进行自动化攻击。你可以使用 Burp Intruder 方便地执行许多任务,包括枚举标识符,获取有用数据,漏洞模糊测试。合适的攻击类型取决于应用程序的情况,可能包括:缺陷测试:SQL 注入,跨站点脚本,缓冲区溢出,路径遍历;暴力攻击认证系统;枚举;操纵参数;拖出隐藏的内容和功能;会话令牌测序和会话劫持;数据挖掘;并发攻击;应用层的拒绝服务式攻击。
  在请求包或者响应包都能右键Send to Intruder
  

positions

  在positions选项卡下可以看见burp默认标记了一些变量
  
  先Clear$掉清除变量,这里演示爆破用户名和密码,点击右边的Add$分别将admin和password设置为变量,后面再攻击的时候它将循环替换此处变量内容,从而达到暴力破解
  
  这里的攻击类型有四种分别是:Sniper(狙击手)、Battering ram(攻城槌)、Pitchfork(杈子)、Cluster bomb(集束炸弹),稍后会讲,在攻击前先设置Payloads
  如果你要爆破后台的话,将url作为变量也未尝不可以,一句话任何内容都可以设置为变量
  

payloads

   选择不同的类型下图中的payload设置也会不同,常用的类型Simple list
   
   后面的攻击类型的字典我都会用下图
   
   
   你可以手动添加内容,如上图所示,按回车或者点击Add。或者点击Load从文件中选择一个字典,或者选择burp内置的字典。
   也可以对payload加工变形,点击Add添加变形类型
   
   仅介绍几个 设payload 有 name admin 两个
   Add prefix:添加前缀 如添加user后  payload为:username,useradmin
   Add suffix:添加后缀 如添加1234后  payload为:name1234,admin1234
   Match/replace:匹配/替换 如Match regex:m Replace with:6 后
   payload为:na6e,ad6in


   Payload Options设置好后就可以点击Start Attack
   然后介绍几个payload type
   Numbers
   
   Brute forcer
   它是将最小字符到最大字符直接从攻击字符中随便挑选几个字符,比如我这里设置的是4个字符,那么它就会随便挑选4个字符,将所有情况都会尝试,是一种非常暴力的攻击,从图中可以看出有3359232种情况
   

Sniper(狙击手)

  此类型先将列表中的内容,先替换变量1的值,不改变变量2的值。然后尝试完后,再将列表中的内容替换变量2的值,不改变变量1的值。有第三个变量的话,以此类推。
  


  

Battering ram(攻城槌)

  此类型是将列表中的内容替换所有变量
  

Pitchfork(杈子)

  此类型将会设置两个Payload Sets 两个列表中的内容按顺序成对替换
  Payload1设置
  


  Payload2设置
  
  可以看出payload1比payload2内容多了一行,前面说过是成对出现,所以你猜开始攻击后会怎么提交payload?
  
  所以没有匹配内容后就停止发包了

Cluster bomb(集束炸弹)

  此类型是真的全面,举例payload1 有username,admin。payload2有password,passwd,攻击的payload为username password、username passwd、admin password、admin passwd
  payload1 和 payload2不变,依然使用上次的设置,开始攻击
  
  此类型和Sniper(狙击手)是经常使用的

Filter

  当请求过于杂而多时,这时候筛选器就登场了,设置好后点击其他任意位置后,开始自动筛选
  

实战演示

列子1

  此处题目来自于攻防世界
  截断靶机请求包,发送进intruder
  
  选择Cluster bomb攻击类型,设置好变量,配置payload
  
  这年头谁还没有个字典呢,开始攻击
  
  经过漫长的等待后终于跑完了
  知识点补充:通过响应内容的长度可以作为一个特征来发现那个是正确的密码,或者通过响应的状态码,点击length可以进行升序或者降序排列。
  升序排列后如下图所示,既然用户名正确,哪就慢慢往下找看有没有正确的密码了
  
  仔细看这独一无二的响应码437,其实一般爆破成功后,length一筛选马上就能发现那个秀儿,成功拿到flag
  

列子2

  靶机DVWA前面步骤都大同小异,已经知道登录名和密码了,payload就没必要设置那么多了,直接跳到最后查看结果部分
  可以看到状态码也都一样,length也都一样
  
  直接查看验证正确的响应包
  
  查看其他的响应包
  
  仔细查看有一处不一样就是Location,一个是index.php,一个是login.php 这两个刚好都是5个字符,所以筛选出含有index.php的结果,这时候就会将我们想要的结果筛选出来
  

Repeater

  此模块我一般称之为自定义发包器,可以手动发送单个请求包。从而查看响应包中的结果来进入测试
  老规矩,随便选择一个请求包,右键发送到Repeater
  
  来到Repeater模块,具体测试内容可以自己添加或者删除都行
  
  右键在请求头中可以看到有很多选择
  
  选择Change request method(改变请求方式)后,即POST变成GET,GET变成POST,入图所示,当POST变成GET点击GO,响应包的内容明显跟POST请求的响应包不一样
  
  选择Change body encoding之前请求包必须是POST方式,GET方式无效
  
  当然也可以生成CSRF poc强大到令人发指2333
  
  选择后新打开CSRF Poc窗口,注意在burp v1.7.32中在浏览器测试我这里已经失效,如果要测试copy html,保存为html文件后,来打开测试
  
  选择Copy as curl command,会复制curl命令,在记事本中粘贴下来,在kali的命令行中使用命令
  
  curl是一个非常强大的命令,它会向服务器发起http或者ftp等等请求,然后反馈服务器响应
  

Sequencer

  Sequencer(定序器)是一种用于分析数据项的一个样本中的随机性质量的工具。你可以用它来测试应用程序的session tokens(会话tokens)或其他重要数据项的本意是不可预测的,比如反弹CSRF tokens,密码重置tokens等。
  下面演示如何来测试PHPSESSID的随机性,想详细了解session的作用参考这篇文章session的作用
  而且计算机基本都是采用伪随机数算法,即不会做到一个真正现实世界中的随机,理论上来讲只要测试数据量够大,就能找到一个生成的seesion cookie的循环周期,来预测下一个seesion cookie。所以此模块就是评估生成的随机数质量怎么样

测试DVWA的session
清除cookie

  我这里是测试dvwa的seeion,所以先到登陆页面将cookie清除掉,选择Delete All后
  

删除站点

  Target->site map来到站点地图后,选择dvwa站点后右键,delete host,选择yes删除
  

抓取set-cookie请求包

  清除掉cookie和删除掉站点后,重新进入dvwa的登陆界面,此时burp会重新记录到请求包
  到Proxy->HTTP history可以看到历史请求,点击filter输入set-cookie,只看设置cookie的响应包过滤完后,找到响应包发送进sequencer
  
  

选择测试的cookie

  burp会自动识别可用的cookie,security是安全级别设置,不是我们要测试的,所以选择PHPSESSID。如果burp没有识别出来,点击手动配置
  
  手动选择好后,点击ok即可,点击Start live capture(开始实时捕获)开始测试
  

查看分析结果

  发送的中途你就可以直接点击开始分析,当然数据量越大,得到的结果更准确
  
  可以看到随机性质量结果的是excellent(优秀)
  
  FIPS(美国联邦信息处理标准),其提供了密码模块评测、验证和最终认证的基础,所以只要通过了他们的验证标准,加密安全都是高的。可以看到session的评估质量远远高出及格线
  

Decoder

  用来编码的加密解密,没有什么可以介绍的。直接网上找一个在线加密解密我都感觉比这个强不少
  

Comparer

  比较器,顾名思义比较两次数据之间的区别
  将dvwa中的登陆请求包发送进Repeater模块后,选择发送后,在响应包中右键send to Comparer,这次是正确的用户名和密码
  
  这次输入错误的用户名和密码,一样发送到比较器
  
  它这个是同一个内容分成了多个窗口而已,第一个窗口选择第一个或者第二个,那么第二个窗口必定要选择不同的,不然自己跟自己比较吗?选择按内容比较
  
  下面是比较结果,当然你也可以比较两个项目的不同
  

Alerts

   此模块是消息提醒,有一个好处就是看代理服务是否开启
   

Extender

  Burp在软件中提供了支持第三方拓展插件的功能,方便使用者编写自己的自定义插件或从插件商店中安装拓展插件。
  在BApp Store中,根据受欢迎程度,排名等等筛选出自己喜欢的扩展功能,不多介绍

总结

  burp是一款安全中不可多得的神器,也是从事安全人士必须掌握的一款工具,总之一句话burp牛逼。

Thanks♪(・ω・)ノ for reading
文章目录
  1. 前言
  2. 环境
  3. Proxy
    1. 问题描述
    2. 问题解决
    3. options
  4. 导出项目
  5. 导入项目
  6. Target
    1. site map
    2. scope
    3. site map filter
  7. Spider
    1. control
    2. options
  8. Scanner
    1. Scan queue
    2. Issue activity
    3. options
      1. Attack Insertion Points
      2. Active Scanning Engine
      3. Active Scanning Optimization
  9. Intruder
    1. positions
    2. payloads
    3. Sniper(狙击手)
    4. Battering ram(攻城槌)
    5. Pitchfork(杈子)
    6. Cluster bomb(集束炸弹)
    7. Filter
    8. 实战演示
      1. 列子1
      2. 列子2
      3. Repeater
  10. Sequencer
    1. 测试DVWA的session
    2. 清除cookie
    3. 删除站点
    4. 抓取set-cookie请求包
    5. 选择测试的cookie
    6. 查看分析结果
  • Decoder
  • Comparer
  • Alerts
  • Extender
  • 总结
  • |
    载入天数...载入时分秒...