前言
最近我在研究客户端应用,发现抓包遇到非HTTP协议的情况,在查找解决方案的过程发现有个PPT提到一个神器:NON-HTTP PROXY EXTENSION,网上关于使用它的文章发现并不多(同时网上的文章质量对我也产生不少困扰),这个工具还在17年上过BlackHat的Arsenal工具库,作者到目前为止也一直在维护,所以自己做了点小工作形成本文,All in One BurpSuite 指日可待。
介绍 NON-HTTP-PROXY
项目地址: https://github.com/summitt/Nope-Proxy
这个 Burp 扩展为 BurpSuite 添加了三个主要功能:
- TCP 和 UDP 流量的拦截器。
- 可配置的 DNS 服务器。这将所有 DNS 请求路由到 Burp 或预先配置的主机。这样可以更轻松地将移动端或客户端软件的流量发送到 Burp。您需要在 BurpSuite 中创建隐式代理监听器,以便 Burp 拦截 HTTP 流量,或者您可以使用此扩展的第二个功能来拦截二进制/非 HTTP 协议。
- 非 HTTP 中间人拦截代理。此扩展允许您创建多个监听端口,可以中间人攻击服务器端服务。它还使用了 Burp 的 CA 证书,因此,如果浏览器或移动设备已配置为使用此证书访问 SSL/TLS 请求,则加密的二进制协议也能够连接而不会生成错误。它还提供了自动匹配和替换十六进制或字符串的能力,当它们通过代理时,或者您可以使用自定义的 Python 代码来操纵流量。
介绍原理
用法1 拦截指定域名
1)配置DNS服务器,一定要53端口(DNS默认端口),53/80/443端口在unix系统上是需要root权限的,这个很容易踩坑,一定要sudo。
1# 查看53端口占用
2sudo lsof -i:53
3# 如果开了system-solved 记得关闭去掉占用
配置好之后点那个绿色,就可以启动了。
2)开启网卡监听,类似wireshark的功能,虽然叫Port Monitor,但是注意libcap/winpcap,就知道它的作用了。
3)客户端配置好DNS代理,WIFI 设置或者其他设备都会有个DNS服务的。
4)打开要测试的APP,以农业银行APP为例。
把80和443添加到Burp代理,会自动勾选上不透明的选项。
之后就可以在Burp抓到很多http/https的流量了,可以成功绕过农业银行的代理检测保护。
如果还有就是非HTTP流量的端口,就根据SRC IP 和时间进行判断,猜测对应的域名和端口即可,多试几次就可以出来。
用法2 全流量代理
- 搭建一个squid代理服务器
1brew install squid
- 编辑配置文件允许任意链接
1sudo /usr/local/etc/squid.conf
2
3# http_access deny all 改为
4http_access allow all
- 添加一个这样的代理,点击绿色左边的 + 即可添加,别忘记勾选才能启动。
4.之后在其他APP,只需要链接 192.168.0.105 即Burp当前监听的这个10010端口作为代理,就可以接收到全流量的数据了。
然后轻松看到各种TCP数据,记得启用代理和brew services start squid
启用squid代理。
文末
参考资料
https://deepsec.net/docs/Slides/2021/Intercepting_Mobile_App_Network_Traffic_aka_%E2%80%9CThe_Squirrel_in_the_Middle%E2%80%9D_Sven_Schleier%20.pdf
原文始发于微信公众号(一个不正经的黑客):天呐!牛B还是鸡肋?Burpsuite 分析TCP/UDP流量
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论