需求
之前的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
数据流如下:
其中由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代理。
同时在proxifier上建立一个代理规则把某个程序的流量通过http tunnel转发到8080端口,比如这里监听netcat程序
其中有个坑,就是这个proxifier的dns设置需要设置detect dns settings automatically而不是resolve hostnames through proxy,因为有些proxy可能没有这个功能。不然会报ERROR_INVALID_ARGUEMENT错误
之后就可以愉快的监听了,大概效果如下,还可以拦截修改以及重放,不过要小心超时。
如果是手机app的话,可以使用夜神模拟器运行这个app然后用proxifier代理virtual box。
当然如果是对代理敏感的应用也可以在手机上wifi里面这样设置代理
设置 -》 WIFI,长按公司内部WIFI的名字,选“修改网络”,勾选“显示高级选项”,代理设置那里改成“手动”,就可以填写HTTP代理的主机和端口了。
或者使用安卓的proxydroid或者ios的小火箭让对代理不敏感对app强制走代理也行。电脑上也是同样的道理,对代理敏感的程序设置系统代理,不敏感的用proxifier或者proxychains4,如果app或者程序自带有设置也行。
来源:freebuf.com 2020-12-10 20:38:32 by: fjh1997
请登录后发表评论
注册