如何利用http tunnel使用burpsuite拦截某个app的tcp数据包(非http)做安全分析 – 作者:fjh1997

需求

之前的burpsuite只能拦截http相关的应用流量,对于tcp方面的流量就不能做到很好的拦截,而且对于非https的tcp流量没法很好的做到http tunnel转发,导致某些需要tcp事先验证的程序无法抓http数据包。现在勉强在NoPE的基础上造了一个轮子。NoPE这个插件主要是通过dns,如果是针对某个特定应用,或者说是硬编码的ip的tcp流量拦截,就显得不是很方便,现在提供一个http tunnel proxy 的方法,配合proxifier比较方便。

用到的工具有:

squid 用于建立http proxy(或者别的如mitmproxy、charles也行,但是要设置证书)
burpsuite+Burp-Non-HTTP-Extension用于拦截tcp或http数据
proxifier,用于建立http tunnel转发tcp
数据流如下:

图片[1]-如何利用http tunnel使用burpsuite拦截某个app的tcp数据包(非http)做安全分析 – 作者:fjh1997-安全小百科

其中由Burp-Non-HTTP-Extension进行拦截
Burp-Non-HTTP-Extension下载地址:
https://github.com/summitt/Burp-Non-HTTP-Extension/releases
在准备好上述的工具之后,我们使用squid建立一个http proxy侦听本地127.0.0.1 假设侦听的端口为3128,或者别的http proxy也行。记得设置“http_access allow all”

用Burp-Non-HTTP-Extension设置这样一个监控服务。listen port填写8080,server address 填写127.0.0.1,server port填写3128,也就是把8080端口的流量转发到3128的http代理。
图片[2]-如何利用http tunnel使用burpsuite拦截某个app的tcp数据包(非http)做安全分析 – 作者:fjh1997-安全小百科

同时在proxifier上建立一个代理规则把某个程序的流量通过http tunnel转发到8080端口,比如这里监听netcat程序
图片[3]-如何利用http tunnel使用burpsuite拦截某个app的tcp数据包(非http)做安全分析 – 作者:fjh1997-安全小百科
其中有个坑,就是这个proxifier的dns设置需要设置detect dns settings automatically而不是resolve hostnames through proxy,因为有些proxy可能没有这个功能。不然会报ERROR_INVALID_ARGUEMENT错误

图片[4]-如何利用http tunnel使用burpsuite拦截某个app的tcp数据包(非http)做安全分析 – 作者:fjh1997-安全小百科

之后就可以愉快的监听了,大概效果如下,还可以拦截修改以及重放,不过要小心超时。
图片[5]-如何利用http tunnel使用burpsuite拦截某个app的tcp数据包(非http)做安全分析 – 作者:fjh1997-安全小百科

如果是手机app的话,可以使用夜神模拟器运行这个app然后用proxifier代理virtual box。
当然如果是对代理敏感的应用也可以在手机上wifi里面这样设置代理
设置 -》 WIFI,长按公司内部WIFI的名字,选“修改网络”,勾选“显示高级选项”,代理设置那里改成“手动”,就可以填写HTTP代理的主机和端口了。

在这里插入图片描述

或者使用安卓的proxydroid或者ios的小火箭让对代理不敏感对app强制走代理也行。电脑上也是同样的道理,对代理敏感的程序设置系统代理,不敏感的用proxifier或者proxychains4,如果app或者程序自带有设置也行。
图片[7]-如何利用http tunnel使用burpsuite拦截某个app的tcp数据包(非http)做安全分析 – 作者:fjh1997-安全小百科

来源:freebuf.com 2020-12-10 20:38:32 by: fjh1997

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论