渗透测试实战-BurpSuite 使用入门

前言


近期笔者在学习 web 渗透测试的相关内容,主要是为了公司之后的安全产品服务。渗透测试本身在学习过程中还是很有意思的,有一种学习到了之前想学但是没学的黑客技术的感觉,并且对笔者已掌握的许多知识做了有益的补充。要学习渗透测试,首先需要明白什么是渗透测试,以及如何进行渗透测试,这其中很多资料可以在网上找到。
 

什么是渗透测试

渗透测试是一项在计算机系统上进行的授权模拟攻击,旨在对其安全性进行评估。渗透测试人员使用与攻击者相同的工具、技术和流程,来查找和展示系统弱点对业务带来的影响。
渗透测试通常会模拟各种可能威胁您业务的攻击。渗透测试可以检查系统是否足够稳定,能否抵抗来自经过认证和未经认证的攻击,以及一系列系统角色发起的攻击。在合适的范围内,针对您需要评估的系统的任何方面,渗透测试都可以深入其中。

如何进行渗透测试

根据渗透测试的具体目标,组织针对目标系统向测试者提供不同级别的信息或访问权限。有时,渗透测试团队会在开始时设置一种方法并一直坚持下去。有时,测试团队会随着在渗透测试期间对系统认识的加深而改进其策略。在本行业中,我们讨论了三种类型的渗透测试:

黑盒。 团队对目标系统的内部结构一无所知。他们充当黑客,探寻任何可从外部发起攻击的弱点。
灰盒。 团队对一套或多套凭证有一定了解。他们还了解目标的内部数据结构、代码和算法。渗透测 试人员可以根据详细的设计文档(如目标系统的架构图),构建测试用例。
白盒。 对于白盒测试,渗透测试人员可以访问系统和系统工件:源代码、二进制文件、容器,有时甚至是运行系统的服务器。白盒方法可在最短的时间内提供最高水平的安全保证。

渗透测试阶段

渗透测试人员意在模拟怀有动机的对手发起的攻击。为此,他们遵循的方案通常包含以下步骤:

侦察。从公共和专用来源收集尽可能多的目标相关信息,以制定攻击策略。这些来源包括互联网搜索、域注册信息检索、社会工程、非侵入式网络扫描,有时甚至是搜索垃圾箱。这些信息有助于渗透测试人员破解出目标的攻击面和潜在漏洞。侦察可能因渗透测试的范围和目标不同而有所差异,可能简单到打个电话即可了解系统的功能。
扫描。渗透测试人员使用工具检查目标网站或系统是否存在弱点,包括开放服务、应用安全问题和开源漏洞。渗透测试人员根据在侦察和测试期间的发现来使用各种工具。
获得访问权限。攻击者可能怀有各种动机,可能是窃取、更改或删除数据,可能是转移资金,也可能仅仅是要损害您的声誉。在执行每个测试案例时,渗透测试人员都必须确定访问系统的最佳工具和技术,无论是利用弱点(如 SQL 注入),还是通过恶意软件、社会工程或其他方式。
维护访问权限。一旦渗透测试人员取得目标的访问权限,其模拟攻击必须保持足够长时间的连接,以达成其目标:提取数据、修改数据或滥用功能。目标是展示潜在的影响。

渗透测试工具

渗透测试没有通用的解决方案。而是不同的目标需要使用不同的工具套件进行端口扫描、应用扫描、Wi-Fi 侵入或网络直接渗透。但一般而言,渗透测试工具的类型分为五个类别:

用于发现网络主机和开放端口的侦察工具
用于发现网络服务、Web 应用和 API 问题的漏洞扫描器
代理工具(例如,专用网络代理或通用中间人代理)
用于到达系统或访问资产的利用工具
用于在利用之后与系统交互、维护和扩展访问权限以及实现攻击目标的工具

本文介绍的 BurpSuite 便是一款非常使用的渗透测试应用资产收集(所谓资产收集,主要就算收集目标站点有哪些接口、页面、静态资源等)工具。

BurpSuite 下载

BurpSuite 的版本很多,网上的很多资料介绍的版本都比较老旧,这边笔者推荐安装这个 2021 的汉化版本。另外因为 BurpSuite 是一款基于 Java 的工具,要安装使用需要电脑先安装 Java 环境。
 

BurpSuite 常用功能详解

BurpSuite 是一款基于 Java 的用于攻击Web应用程序的集合平台。常用来做渗透测试。BurpSuite 内置了很多实用的渗透测试工具。

  • 新版本的 BurpSuite (笔者使用的是 2021.12.1 版本的汉化版 BurpSuite)可不需要配置代理,直接访问内置的 chromuim 浏览器(chrome 浏览器的引擎,开源版本),在内置浏览器中访问目标网站即可进行抓包
  • 抓包功能,BurpSuite 的抓包功能在使用上其实和 WireShark 差不多,但是 WireShark 使用起来其实还要更麻烦一些,主要是因为现在的网站基本都是使用 https 协议进行数据传输,WireShark 在没有额外配置的情况下是读取不到 https 协议的内容的。旧版本的 BurpSuite 在抓包时也需要配置,但是新版本不需要了,只需要打开内置的浏览器对目标站点访问即可,然后在 Proxy -> HTTP history 中查看捕获的 http 请求

  • Proxy -> WebScokets history, 抓取 websocket 请求

  • 请求拦截功能,一般也是指 http 请求的拦截,这里需要注意的是查看 BurpSuite 目前的拦截状态

 

  • 关闭请求拦截不会有什么事情发生,而当打开了拦截请求后,默认所有的配置了 BurpSuite 代理的浏览器或其内置浏览器访问所有 web 站点时,请求都不会直接发送到服务端,需要点击“发送”按钮,http 请求才会发送

 

 

 

  • 重放器(Repeater),Repeater 在实际的渗透测试中非常常用,主要就是在抓取对应的 http 请求包后,将该请求发送到 Repeater 模块,在 Repeater 中可对原请求的请求头和请求内容进行修改,修改了之后重新发起该请求(所以被翻译为重放器)

  •  web 站点资产收集。Target -> Site map 下列举了我们通过内置浏览器(配置了 BurpSuite 代理的浏览器,下同)访问的站点记录,另外我们可以通过鼠标右键选择“主动选择扫描此主机”,“被动扫描这台主机”来开启扫描任务。扫描任务可在 Dashboard 中查看到。
  • 任务面板 Dashboard 可以查看所有任务,包括未开始 已开始 已完成的任务。该 tab 记录了完整的任务执行日志和问题活动报告。

主动扫描 web 站点和被动扫描 web 站点的区别:

  • 主动扫描(Active Scanning)

当使用主动扫描模式时,BurpSuite 会向应用发送新的请求并通过payload验证漏洞。这种模式下的操作,会产生大量的请求和应答数据,直接影响系统的性能,通常使用在非生产环境。它对下列的两类漏洞有很好的扫描效果:

  1. 客户端的漏洞,像XSS、Http头注入、操作重定向;
  2. 服务端的漏洞,像SQL注入、命令行注入、文件遍历。

对于第一类漏洞,BurpSuite 在检测时,会提交一下 input 域,然后根据应答的数据进行解析。在检测过程中,BurpSuite 会对基础的请求信息进行修改,即根据漏洞的特征对参数进行修改,模拟人的行为,以达到检测漏洞的目的。 对于第二类漏洞,一般来说检测比较困难,因为是发生在服务器侧。比如说 SQL 注入,有可能是返回数据库错误提示信息,也有可能是什么也不反馈。BurpSuite 在检测过程中,采用各个技术来验证漏洞是否存在,比如诱导时间延迟、强制修改 Boolean 值,与模糊测试的结果进行比较,已达到高准确性的漏洞扫描报告。

  • 被动扫描(Passive Scanning)
     

当使用被动扫描模式时,BurpSuite 不会重新发送新的请求,它只是对已经存在的请求和应答进行分析,这对系统的检测比较安全,尤其在你授权访问的许可下进行的,通常适用于生成环境的检测。一般来说,下列这些漏洞在被动模式中容易被检测出来:

  1. 提交的密码为未加密的明文。
  2. 不安全的 Cookie 的属性,比如缺少的 HttpOnly 和安全标志。
  3. cookie 的范围缺失。
  4. 跨域脚本包含和站点引用泄漏。
  5. 表单值自动填充,尤其是密码。
  6. SSL 保护的内容缓存。
  7. 目录列表。
  8. 提交密码后应答延迟。
  9. session 令牌的不安全传输。
  10. 敏感信息泄露,像内部IP地址,电子邮件地址,堆栈跟踪等信息泄漏。
  11. 不安全的 ViewState 的配置。
  12. 错误或者不规范的 Content-type 指令。

虽然被动扫描模式相比于主动模式有很多的不足,但同时也具有主动模式不具备的优点,除了前文说的对系统的检测在我们授权的范围内比较安全外,当某种业务场景的测试,每测试一次都会导致业务的某方面问题时,我们也可以使用被动扫描模式,去验证问题是否存在,减少测试的风险。

  • 一般笔者在进行资产收集的时候,回把两种扫描方式结合起来使用
  • 另外一个笔者使用到的功能是解码器,Decoder , 这个模块主要集成了一些编码的解码,比如 Base64, ASCII 码等

猜你喜欢

转载自blog.csdn.net/qq_48811377/article/details/131399895
今日推荐