Proxy 工具 - proxify

proxify

最近有需要使用 Proxy 服务,但又不想装 Squid 之类的 Proxy Server,于是想找有没有简易设定的 Proxy 工具可以满足我的功能,使用一个 Binary 档案简易的启动一个 Proxy 服务。
Google 搜寻后找到 proxify (Github) 这个工具可以满足我的需求,proxify 是一个小型的 Proxy 工具,可以快速的部属 Proxy 服务,也有很多功能可以使用,开发人员介绍是一个瑞士刀的 Proxy 工具。

下载

直接从 Github release 下载并且解压缩。

wget https://github.com/projectdiscovery/proxify/releases/download/v0.0.9/proxify_0.0.9_linux_amd64.zipunzip proxify_0.0.9_linux_amd64.zip

解压缩后会有 proxify replay mitmrelay 三个 Binary 执行档。接下来会简介其中两个的使用方式,proxifyreplaymitmerlay 这个执行档看起来应该是做 MITM 相关的工具可能是可以搭配 mitmproxy 使用,目前对于 MITM 有些不熟也没有用到,如果之后有兴趣会再去研究这个功能 。

ls -tlrhtotal 107M-rw-r--r-- 1 jack jack  11K Mar 21 08:05 README.md-rw-r--r-- 1 jack jack 1.1K Mar 21 08:05 LICENSE.MD-rwxr-xr-x 1 jack jack  21M Mar 21 08:09 replay-rwxr-xr-x 1 jack jack  40M Mar 21 08:09 proxify-rwxr-xr-x 1 jack jack  20M Mar 21 08:09 mitmrelay-rw-r--r-- 1 jack jack  28M Mar 21 08:09 proxify_0.0.9_linux_amd64.zip

proxify 使用方式

proxify 就是 proxy 的 binary 档案,基本的使用方式是直接执行,预设会开启以下 ports

HTTP proxy 127.0.0.1:8888Socks5 proxy 127.0.0.1:10080
$ ./proxify                       _ ___   ___  _______ __ __ (_) _/_ __  / _ \/ __/ _ \\ \ // / _/ // / / .__/_/  \___/_\_\/_/_/ \_, //_/                      /___/                projectdiscovery.io[INF] Current proxify version 0.0.9 (latest)[INF] HTTP Proxy Listening on 127.0.0.1:8888[INF] Socks5 Proxy Listening on 127.0.0.1:10080[INF] Saving proxify traffic to logs

自订义 Listen address and port

自订义监听的 Address 和 port 是基本上工具都要提供的功能,可以透过参数设定

-ha, -http-addr string    Listening HTTP IP and Port address (ip:port) (default "127.0.0.1:8888")-sa, -socks-addr string   Listening SOCKS IP and Port address (ip:port) (default "127.0.0.1:10080")

使用範例

$ ./proxify -ha 0.0.0.0:9000 -sa 0.0.0.0:9001                       _ ___   ___  _______ __ __ (_) _/_ __  / _ \/ __/ _ \\ \ // / _/ // / / .__/_/  \___/_\_\/_/_/ \_, //_/                      /___/                projectdiscovery.io[INF] Current proxify version 0.0.9 (latest)[INF] HTTP Proxy Listening on 0.0.0.0:9000[INF] Socks5 Proxy Listening on 0.0.0.0:9001[INF] Saving proxify traffic to logs

Passthrough 设定

可以设定直通(proxify 不处理 TLS 网路流量)目标 Domain,设定如下。
範例设定 google.com 和 facebook.com 的 request 都直通不经过 proxify 处理。

./proxify -ha 0.0.0.0:8080 -sa 0.0.0.0:8081 -pt '.*google.*,.*facebook.*'

串串接其他的 Proxy

串接其他的 Proxy(在我的环境目前测试 HTTP 正常 HTTPS 有问题) 设定方式如下

./proxify -ha 0.0.0.0:8080 -sa 0.0.0.0:8081 --http-proxy http://192.168.1.103:8080

DNS proxy 设定

proxify 也可以做 DNS proxy,参数如下

-dns-addr ":53"会 listen 0.0.0.0:53-dns-mapping "www.google.it:192.168.1.1"自订义 domain 的查询结果-resolver "1.1.1.1:53"DNS 解析的来源
proxify -dns-addr ":53" -dns-mapping "www.google.it:192.168.1.1" -resolver "1.1.1.1:53"

Filter/Replace 设定

proxify 也有 Replace 和 Filter 的功能,设定方式如下。

-req-fd, -request-dsl string[]                   Request Filter DSL-resp-fd, -response-dsl string[]                 Response Filter DSL-req-mrd, -request-match-replace-dsl string[]    Request Match-Replace DSL-resp-mrd, -response-match-replace-dsl string[]  Response Match-Replace DSL

Filter 会匹配 request/response 的字串记录到 log 里面

proxify -request-dsl "contains(request,'firefox')" -response-dsl "contains(response, md5('test'))"

Replace 可以替换掉 request/response 的字串

proxify -request-match-replace-dsl "replace(request,'firefox','chrome')"
proxify -response-match-replace-dsl "replace_regex(response, '^authentication failed$', 'authentication ok')"

replay 使用方式

可以将 proxify logs 档案内纪录的讯息重播到另一个 proxy 这个功能应该是为了重播到 Burp Suite 而做的,非常方便可以先将 proxify 使用的纪录存成档案的形式,如果要分析与测试的时候可以 Replay 到一个 GUI 的工具上面做。

./replay -burp-addr http://127.0.0.1:9090 -output logs

顺带一提 proxify logs 使用方式,使用 -o <directory> 就可以了。

-o, -output string  Output Directory to store HTTP proxy logs (default "logs")

範例如下

./proxify -o logs

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章