经验分享 | Burpsuite抓取非HTTP流量

* 本文作者:Shad0wpf_,本文属FreeBuf原创奖励计划,未经许可禁止转载

使用Burp对安卓应用进行渗透测试的过程中,有时候会遇到某些流量无法拦截的情况,这些流量可能不是HTTP协议的,或者是“比较特殊”的HTTP协议(以下统称非HTTP流量)。遇到这种情况,大多数人会选择切换到Wireshark等抓包工具来分析。下面要介绍的,是给测试人员另一个选择——通过Burpsuite插件NoPE Proxy对非HTTP流量抓包分析,并可实现数据包截断修改、重放等功能。

## NoPE Proxy简介

NoPE Proxy插件为Burpsuite扩展了两个新的特性:

1. 一个可配置的DNS服务器

这个DNS服务器将所有的域名解析到Burp所在主机或其它预先配置好的主机,帮助我们轻松的将所有手机流量发送到Burp。

2. 非HTTP协议截断代理

Burp的监听器开启允许invisable流量,这些就能使用Burp截断HTTP流量,Burp无法处理的非HTTP流量,通过NoPE Proxy插件处理。

## 项目地址

Github:https://github.com/summitt/Burp-Non-HTTP-Extension

## 安装

NoPE Proxy项目Github [Relaases](https://github.com/summitt/Burp-Non-HTTP-Extension/releases)页面下载最新版本的NopeProxy.jar文件,在Burp的Extender中安装,安装完成后Burpsuite新增一个Tab。

经验分享 | Burpsuite抓取非HTTP流量_第1张图片

## 使用演示

### 演示环境

测试工具:Win 10 + VMware 14 + Kali 2017.3 + Burpsuite 1.7.30

物理机为Win 10,通过VMware运行Kali虚拟机,Kali通过NAT网络访问互联网,Kali的IP为192.168.211.100。在Kali上开启Burpsuite(我在Windows下测试NoPE Proxy插件无法抓包,没细查原因)。

测试对象:夜神模拟器6.0(Android版本4.4.2) + 四川移动掌上营业厅

安卓4.4之后的版本无法将所有流量通过配置的代理服务器传输。

四川移动掌上营业厅在账号登陆时,Burpsuite无法拦截请求短信验证码的数据包。

### 手机端配置

为了抓取HTTPS流量,手机端需要导入Burpsuite证书,导入方法参考[这篇文章](http://www.freebuf.com/articles/terminal/113940.html)

证书导入后,配置手机代理,

### DNS服务配置

选择需要监听的网卡,填写序号,然后点击绿色按钮开始运行DNS服务端。

经验分享 | Burpsuite抓取非HTTP流量_第2张图片 

### Burp Proxy设置

所有端口开启Invisible。

经验分享 | Burpsuite抓取非HTTP流量_第3张图片 

### 手机端设置

安卓的设置中,修改手机的代理服务器,填写Burp监听IP和端口,DNS服务器填写之前设置的192.168.211.100。

经验分享 | Burpsuite抓取非HTTP流量_第4张图片 

### 开启流量监听

NoPE Proxy的DNS History标签下,点击Port Monitor按钮,开始流量监听。

手机端打开APP,NoPE开始接收到DNS解析请求并将所有域名解析到Burpsuite地址。

手机端切换到账号登陆界面,填写手机号获取短信验证码。

经验分享 | Burpsuite抓取非HTTP流量_第5张图片 

请求地址为wap.sc.10086.cn,右边的监流量监听发现获取短信时的通信端口为18080。

经验分享 | Burpsuite抓取非HTTP流量_第6张图片 

切换到NoPE Server的Server Config标签,添加流量记录中发现的地址和端口。

经验分享 | Burpsuite抓取非HTTP流量_第7张图片 

再次发送获取短信验证码请求,可以看到NoPE Proxy已拦截到该请求内容。

经验分享 | Burpsuite抓取非HTTP流量_第8张图片 

TCP流量数据重放。

经验分享 | Burpsuite抓取非HTTP流量_第9张图片

TCP流量历史记录

经验分享 | Burpsuite抓取非HTTP流量_第10张图片 

Automated

经验分享 | Burpsuite抓取非HTTP流量_第11张图片 

## 结语

对安卓手机APP测试遇到Burpsuite无法拦截的流量时,可以试试NoPE Proxy插件,说不定会有意想不到的收获。

* 本文作者:Shad0wpf_,本文属FreeBuf原创奖励计划,未经许可禁止转载

发表评论

已有 24 条评论

  • LittleA  2018-01-04 回复 1楼

    Proxy里的invisible是什么意思

    亮了( 0)
  • 比尔盖饭  2018-01-04 回复 2楼

    飞哥厉害!!大牛!!

    亮了( 0)
  • YesCK  (2级) 这人太神秘,只留下了背影~  2018-01-04 回复 3楼

    貌似遇到过ssl pinning,下次可以试试这个插件,看看数据流~

    亮了( 0)
  • 武诚治  (1级)  2018-01-04 回复 4楼

    标题拼写错误啦 burp :mrgreen:

    亮了( 0)
    • Shad0wpf_  (4级) 一个高尚的人,一个纯粹的人,一个脱离不了低级趣味的人。  2018-01-04 回复

      @ 武诚治  明察秋毫 :mrgreen:

      亮了( 0)
  • 小怪兽  2018-01-04 回复 5楼

    求burp的1.7.30破解下载

    亮了( 1)
    • akone  2018-01-05 回复

      @ 小怪兽 链接: https://pan.baidu.com/s/1hs2ExwC 密码: 3d4e

      亮了( 0)
      • 小怪兽  2018-01-05 回复

        @ akone 谢谢大表哥

        亮了( 0)
  • test  2018-01-04 回复 6楼

    6666

    亮了( 0)
  • Monkeylord  (1级)  2018-01-04 回复 7楼

    哈哈,抓住一个不会用iptables的

    亮了( 0)
    • sead202  (1级)  2018-01-04 回复

      @ Monkeylord  IPTABLES可以转发流量 ,但是没法重放啊 朋友 。

      亮了( 0)
      • Monkeylord  (1级)  2018-01-04 回复

        @ sead202 
        他并没有碰到真的Socket上的私有协议
        那个例子里的HTTP,直接转给burp就好了。

        亮了( 0)
      • Shad0wpf_  (4级) 一个高尚的人,一个纯粹的人,一个脱离不了低级趣味的人。  2018-01-04 回复

        @ Monkeylord  例子里用的只是个通常情况下Burpsuite无法拦截的HTTP包,Non-HTTP插件的功能是TCP层抓包重放,理论上只要是走TCP的协议,都可以拦截。

        亮了( 0)
  • sead202  (1级)  2018-01-04 回复 8楼

    这个厉害了

    亮了( 0)
  • 贺子  2018-01-04 回复 9楼

    666,burpsuite还有这种姿势?解锁了

    亮了( 0)
  • 是番茄君啊_  2018-01-04 回复 10楼

    我哩个神啊 这种文章也能发表 ,,,惊了

    亮了( 1)
  • 小小小小小轻年  2018-01-04 回复 11楼

    双击

    亮了( 0)
  • 我是真的很方  2018-01-05 回复 12楼

    哈哈哈哈

    亮了( 0)
  • 小飞妞0313  2018-01-05 回复 13楼

    想起黄伟大神

    亮了( 3)
  • wyyw  (2级)  2018-01-05 回复 14楼

    好人一生平安

    亮了( 0)
  • niubility  2018-01-05 回复 15楼

    导入插件时报错:java.lang.OutOfMemoryError: Java heap space

    亮了( 2)
    • niubility  2018-01-05 回复

      @ niubility java.lang.OutOfMemoryError: Java heap space
      at java.util.Arrays.copyOf(Unknown Source)
      at java.io.ByteArrayOutputStream.grow(Unknown Source)
      at java.io.ByteArrayOutputStream.ensureCapacity(Unknown Source)
      at java.io.ByteArrayOutputStream.write(Unknown Source)
      at burp.fyi.a(Unknown Source)
      at burp.jzc.(Unknown Source)
      at burp.ycf.a(Unknown Source)
      at burp.vcf.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)

      亮了( 0)
  • 呵呵哒  2018-01-06 回复 16楼

    windows下同没测试成功,DNS history那一栏只有右侧有数据,左侧并没有显示什么东西。

    亮了( 0)
  • 移动便携式渗透  2018-01-08 回复 17楼

    你这个能拦截 sokect数据吗?

    亮了( 0)

你可能感兴趣的:(BurpSuite)