Burp Suite基础教程2

Tools 南瓜一族 1527℃ 0评论

一、SSL和Proxy高级选项

HTTPS协议是为了数据传输安全的需要,在HTTP原有的基础上,加入了安全套接字层SSL协议,通过CA证书来验证服务器的身份,并对通信消息进行加密。基于HTTPS协议这些特性,我们在使用Burp Proxy代理时,需要增加更多的设置,才能拦截HTTPS的消息。

  • CA证书的安装
  • CA证书的卸载
  • Proxy监听设置
  • SSL直连和隐形代理设置

1.1 CA证书的安装

一般来说,Burp Proxy代理过程中的CA主要分为如下几个步骤(以win7下IE9为例):
1. 首先,已配置好Burp Proxy监听端口和IE的代理服务器设置。其次,你的IE浏览器中没有安装过Burp Suite的CA证书,如果已经安装,请先卸载证书。详细的卸载方法请参考CA证书的卸载章节。
2. 以管理员身份,启动IE浏览器,在地址栏输入http://burp并回车,进入证书下载页面

3. 点击上图所示的证书下载,另存为到本地目录。
4. 点击浏览器上的【工具】菜单,打开【Internet选项】。

5. 在弹出的证书对话框中,点击【内容】-【证书】

6. 在弹出的证书对话框中,选中【受信任的根证书颁发机构】,点击【导入】

7. 点击【下一步】,选择步骤3保存的证书文件,进行下一步操作。

8. 指定证书的存储位置,如

9. 点击【下一步】,直至完成。这时,会提示安全警告,点击【是】,提示导入完成。

10. 关闭IE,重启浏览器,CA证书即配置完成。

1.2 CA证书的卸载

CA证书的卸载的通常有两种方式,第一种方式在上一章节CA证书安装中的第6步,找到需要卸载的证书,点击【删除】即可。我们这里主要描述第二种删除方式,主要是为了解决在第

一种方式的基础上删除按钮失效或者证书列表里看不到的证书也一起删除的方法。
1. 首先,我们打开cmd,输入mmc,或者你在运行输入框里直接输入mmc回车,会弹出管理控制台。
2. 点击【文件】菜单,打开【添加/删除管理单元】

3. 找到证书,如下图1,点击【添加】按钮,如下图

4. 在弹出的对话框中默认选中【我当前的用户】,点击【完成】,一直到结束,这是会在控制台跟节点下多了一个证书的节点。

5. 打开CA证书所在的位置,选择删除即可。

6. 这时,你再返回到IE浏览器的证书列表里,则不会再看到被删除的证书了。
除了IE之外,其他的浏览器如FireFox、Chrome、Sarifa等都证书的安装和卸载基本类似,操作时可以以IE的CA证书安装作为参考。

1.3 Proxy监听设置

启动Burp Suite时,默认会监听本地回路地址的8080端口,但我个人喜欢自己设置Proxy监听设置(如设备为9001),而不会使用默认设置。

  • Proxy监听设置

Proxy监听设置主要包含3块功能:

  1. 端口和IP绑定设置Binding 绑定的端口port是指Burp Proxy代理服务监听的端口,绑定IP地址分仅本地回路、所有接口、指定地址三种模式,在渗透测试中,无论你选择哪种模
    式,你需要明白一点,当你选择的非本地回路IP地址时,同局域网内的其他电脑也可以访问你的监听地址.
  2. 请求处理Request Handling 请求处理主要是用来控制接受到Burp Proxy监听端口的请求后,如果对请求进行处理的。


其具体配置可分为:端口的转发、主机名/域名的转发、强制使用SSL和隐形代理4个部分。
当我们配置了端口的转发时,所有的请求都会被转发到这个端口上;
如果我们配置了主机或域名的转发,则所有的请求会转发到指定的主机或域名上。
同时,我们可以指定,通过Burp Proxy的消息是否强制使用SSL,如果设置了此项,则请求若是http协议,经Burp proxy代理后将转换为https协议。隐形代理主要是用于测试富客户端应用或者是非浏览器代理方式的应用,当我们设置了它,访问这些应用时,将通过非代理的方式,直接连接Burp Proxy的监听端口。

  1. SSL 证书 这些设置控制呈现给SSL客户端的服务器SSL证书。可以解决使用拦截代理时出现的一些SSL问题:

(1).您可以消除您的浏览器的SSL警报,并需要建立SSL例外。其中,网页加载来自其他域的SSL保护的项目,可以确保这些正确的加载到浏览器,而不需要为每个域手动接受代理的SSL证书。

(2).可以与该拒绝无效的SSL证书连接到服务器胖客户机应用程序的工作。 它有下列选项可供设置:

A. 使用自签名证书(Use a self-signed certificate ) —— 一个简单的自签名SSL证书呈现给您的浏览器,它总是会导致SSL警告。

B. 生成每个主机的CA签名证书(Generate CA-signed per-host certificates)—— 这是默认选项。在安装时,Burp创造了一个独特的自签名的证书颁发机构(CA)证书,并将此计
算机上使用。当你的浏览器发出的SSL连接指定主机,Burp生成该主机的SSL证书,由CA证书签名。您可以安装Burp的CA证书作为浏览器中的受信任的根,从而使每个主机证
书没有任何警报接受。

C. 生成与特定的主机名CA签发的证书(Generate a CA-signed certificate with a specific hostname)—— -是类似于前面的选项;不同的是,Burp会生成一个主机证书与每一个
SSL连接使用,使用指定的主机名。

D. 使用自定义证书(Use a custom certificate)—— 此选项可以加载一个特定的证书(在PKCS#12格式)呈现给浏览器。如果应用程序使用这需要一个特定的服务器证书(例
如,与给定的序列号或证书链)的客户端应该使用这个选项。

1.3 SSL直连和隐形代理

SSL直连的设置主要用于指定的目的服务器直接通过SSL连接,而通过这些连接的请求或响应任何细节将在Burp代理拦截视图或历史日志中可见。

通过SSL连接传递可以并不是简单地消除在客户机上SSL错误的情况下有用。比如说,在执行SSL证书的移动应用。如果应用程序访问多个域,或使用HTTP和HTTPS连接的混合,然后通过SSL连接到特定的主机问题仍然使您能够以正常的方式使用Burp的其他方式进行通信。

如果启用自动添加客户端SSL协商失败的选项,当客户端失败的SSL协议检测(例如,由于不承认Burp的CA证书),并会自动将相关的服务器添加到SSL直通通过列表中去。其设置界面如下图所示:


有时候,在拦截富客户端软件时,我们通常需要使用隐形代理。富客户端软件通常是指运行在浏览器之外的客户端软件,这就意味着它本身不具有HTTP代理是属性。当它进行网络通信时,客户端将无法使代理感知或者无法由代理进行通信。

在Burp中,我们可以使用隐形代理的方式,对通信内容进行代理或拦截,从而对通信的请求和响应消息进行分析。使用隐形代理通常需要做如下设置(以https://example.com为例):
1.配置hosts文件,Windows操作系统下的目录位置Windows/System32/drivers/etc/hosts,而Linux或者Unix下的目录为/etc/hosts,添加如下行:

127.0.0.1 example.com

2.第一步设置完成之后,我们需要添加一个新的监听来运行在HTTP默认的80端口,如果通信流量使用HTTPS协议,则端口为443。

3.如果是HTTPS协议的通信方式,我们需要一个指定域名的CA证书。

4.接着,我们需要把Burp拦截的流量转发给原始请求的服务器。这需要在Options->Connections->Hostname Resolution 进行设置。因为我们已经告诉了操作系统,
example.com的监听地址在127.0.0.1上,所以我们必须告诉Burp,将example.com的流量转发到真实的服务器那里去。


通过这样的配置,我们就可以欺骗富客户端软件,将流量发送到Burp监听的端口上,再由Burp将流量转发给真实的服务器。

二、Burp Target

Burp Target 组件主要包含站点地图、目标域、Target 工具三部分组成,他们帮助渗透测试人员更好地了解目标应用的整体状况、当前的工作涉及哪些目标域、分析可能存在的攻击面等信息,下面我们就分别来看看Burp Target的三个组成部分.

-目标域设置 Target Scope
-站点地图 Site Map
-Target 工具的使用

2.1 目标域设置 Target Scope

Target Scope中作用域的定义比较宽泛,通常来说,当我们对某个产品进行渗透测试时,可以通过域名或者主机名去限制拦截内容,这里域名或主机名就是我们说的作用域;如果我们想限制得更为细粒度化,比如,你只想拦截login目录下的所有请求,这时我们也可以在此设置,此时,作用域就是目录。

总体来说,Target Scope主要使用于下面几种场景中:

限制站点地图和Proxy 历史中的显示结果
告诉Burp Proxy 拦截哪些请求
Burp Spider抓取哪些内容
Burp Scanner自动扫描哪些作用域的安全漏洞
在Burp Intruder和Burp Repeater 中指定URL

通过Target Scope 我们能方便地控制Burp 的拦截范围、操作对象,减少无效的噪音。在Target Scope的设置中,主要包含两部分功能:允许规则和去除规则。

其中允许规则顾名思义,即包含在此规则列表中的,视为操作允许、有效。如果此规则用于拦截,则请求消息匹配包含规则列表中的将会被拦截;
反之,请求消息匹配去除列表中的将不会被拦截。

规则主要由协议、域名或IP地址、端口、文件名4个部分组成,这就意味着我们可以从协议、域名或IP地址、端口、文件名4个维度去控制哪些消息出现在允许或去除在规则列表中。
当我们设置了Target Scope (默认全部为允许),使用Burp Proxy进行代理拦截,在渗透测试中通过浏览器代理浏览应用时,Burp会自动将浏览信息记录下来,包含每一个请求和应答的详细信息,保存在Target站点地图中。

2.2 站点地图 Site Map

下图所示站点地图为一次渗透测试中,通过浏览器浏览的历史记录在站点地图中的展现结果。

2.3 Target 工具的使用

Target 工具的使用的使用主要包括以下部分:

手工获取站点地图
站点比较
攻击面分析

2.3.1 手工获取站点地图

当我们手工获取站点地图时,需要遵循以下操作步骤:
1.设置浏览器代理和Burp Proxy代理,并使之能正常工作。
2.关闭Burp Proxy的拦截功能。
3. 手工浏览网页,这时,Target会自动记录站点地图信息。 手工获取站点地图的方式有一个好处就是,我们可以根据自己的需要和分析,自主地控制访问内容,记录的信息比较准确。
与自动抓取相比,则需要更长的时间,如果需要渗透测试的产品系统是大型的系统,则对于系统的功能点依次操作一遍所需要的精力和时间对渗透测试人员来说付出都是很大的。
站点比较是一个Burp提供给渗透测试人员对站点进行动态分析的利器,我们在比较帐号权限时经常使用到它。
当我们登陆应用系统,使用不同的帐号,帐号本身在应用系统中被赋予了不同的权限,那么帐号所能访问的功能模块、内容、参数等都是不尽相同的,此时使用站点比较,能很好的帮助渗透测试人员区分出来。

一般来说,主要有以下3种场景:

1.同一个帐号,具有不同的权限,比较两次请求结果的差异。
2. 两个不同的帐号,具有不同的权限,比较两次请求结果的差异。
3. 两个不同的帐号,具有相同的权限,比较两次请求结果的差异。

2.3.2 站点比较

下面我们就一起来看看如何进行站点比较。
1.首先我们在需要进行比较的功能链接上右击,找到站点比较的菜单,点击菜单进入下一步。

2.由于站点比较是在两个站点地图之间进行的,所以我们在配置过程中需要分别指定Site Map1和Site Map2。通常情况下,Site Map 1 我们默认为当前会话。如图所示,点击【Next】。

3.这时我们会进入Site Map 1 设置页面,如果是全站点比较我们选择第一项,如果仅仅比较我们选中的功能,则选择第二项。如下图,点击【Next】。如果全站点比较,且不想加载其他域时,我们可以勾选只选择当前域。

4.接下来就是Site Map 2 的配置,对于Site Map 2我们同样有两种方式,第一种是之前我们已经保存下来的Burp Suite 站点记录,第二种是重新发生一次请求作为Site Map2.这里,我们选择第二种方式。

5.如果上一步选择了第二种方式,则进入请求消息设置界面。在这个界面,我们需要指定通信的并发线程数、失败重试次数、暂停的间隙时间。

6.设置完Site Map 1 和Site Map 2之后,将进入请求消息匹配设置。在这个界面,我们可以通过URL文件路径、Http请求方式、请求参数、请求头、请求Body来对匹配条件进行过滤。

7.设置请求匹配条件,接着进入应答比较设置界面。在这个界面上,我们可以设置哪些内容我们指定需要进行比较的。从下图我们可以看出,主要有响应头、form表单域、空格、MIME类型。点击【Next】。

8.如果我们之前是针对全站进行比较,且是选择重新发生一次作为Site Map2的方式,则界面加载过程中会不停提示你数据加载的进度,如果涉及功能请求的链接较少,则很快进入比较
界面。

9.站点比较的界面上部为筛选过滤器(这个过滤器与其他过滤器使用雷同,此处不再赘述),下部由左、中、右三块构成。左边为请求的链接列表,中间为Site Map 1 和Site Map 2的消息记录,右边为消息详细信息。当我们选择Site Map 1某条消息记录时,默认会自动选择Site Map 2与之对应的记录,这是有右上角的【同步选择】勾选框控制的,同时,在右边的消息详细区域,会自动展示Site Map 1与Site Map 2通信消息的差异,包含请求消息和应答消息,存在差异的地方用底色标注出来。

2.3.3 攻击面分析

攻击面分析是Burp Suite 交互工具(Engagement tools)中的功能,这里我们先看看Analyze Target使用,其他的功能会在高级使用相关章节讲述。

1.首先,我们通过站点地图,打开Analyze Target,如图所示。

2.在弹出的分析界面中,我们能看到概况、动态URL、静态URL、参数4个视图。

3.概况视图主要展示当前站点动态URL数量、静态URL数量、参数的总数、唯一的参数名数目,通过这些信息,我们对当前站点的总体状况有粗线条的了解。

4.动态URL视图展示所有动态的URL请求和应答消息,跟其他的工具类似,当你选中某一条消息时,下方会显示此消息的详细信息。

5.静态URL视图与动态URL视图类似,如图.

6.参数视图有上中下三部分组成,上部为参数和参数计数统计区,你可以通过参数使用的次数进行排序,对使用频繁的参数进行分析;中部为参数对于的使用情况列表,记录对于的参数每一次的使用记录;
下部为某一次使用过程中,请求消息和应答消息的详细信息。在使用攻击面分析功能时,需要注意,此功能主要是针对站点地图中的请求URL进行分析,
如果某些URL没有记录,则不会被分析到。同时,在实际使用中,存在很点站点使用伪静态,如果请求的URL中不带有参数,则分析时无法区别,只能当做静态URL来分析。

转载请注明:猫头鹰工作室 » Burp Suite基础教程2

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址