iT邦幫忙

0

Proxy 工具 - proxify

  • 分享至 

  • xImage
  •  

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.zip
unzip proxify_0.0.9_linux_amd64.zip

解壓縮後會有 proxify replay mitmrelay 三個 Binary 執行檔。接下來會簡介其中兩個的使用方式,proxifyreplaymitmerlay 這個執行檔看起來應該是做 MITM 相關的工具可能是可以搭配 mitmproxy 使用,目前對於 MITM 有些不熟也沒有用到,如果之後有興趣會再去研究這個功能 。

ls -tlrh
total 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:8888
  • Socks5 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

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言