Woole (or Wormhole) is a reverse-proxy, sniffing, and tunneling tool developed in Go

Woole

The Wormhole (or just Woole) is an Open-Source reverse-proxy, sniffing, and tunneling tool developed in Go

Version   Last Commit   License   Contributions Welcome

Summary

How it Works

The Woole provide two modules, the server and the client. The server is responsible to setup a HTTP Tunnel and send requests to the client and wait for his response. The client get the request using the configured tunnel, use reverse-proxy to perform the request, store the information and send back the response to the server. Also, the client provides a dashboard using the configured port where the requests can be analysed.

 

Diagram

Client

Basic Usage

    ./woole -proxy localhost:80 -tunnel https://woole.me:8001


    ===============
    HTTP URL: http://x5ck9p8e.woole.me
    Proxying: http://localhost:80
    Dashboard: http://localhost:8000
    ===============

To log on console every request and response handled, set the -log-level to INFO.

Available Options

Option Description
-proxy URL to Proxy (Internal or External Network) (default :80)
-tunnel Server Tunnel URL. TODO: If no one is set, the sniffer will run locally (default :8001)
-name An unique key used to identify the client on server
-dashboard Dashboard Port (default 8000)
-records Max Requests to Record (default 16)
-log-level Log Level (default OFF)
-allow-insecure-tls Allow Insecure TLS

Proxy and Tunnel

The -proxy and the -tunnel can be defined using:

  • proto://host:port;
  • proto://host;
  • host:port, (default proto HTTP);
  • host, (default port 80);
  • :port, where the colon is important (default host localhost).

Note that if the server has configured the TLS, the tunnel URL MUST be explicitly HTTPS. The HTTP tunnel is only available on servers where the TLS is not used.

Name

The -name is optional, but note that when creating the URL, the provided name will be prioritized. The name will be used for the first attached tunnel and the subsequents will be appended with a 5 digits hash. The name will become available again once the tunnel dettach.

If no name is provided, an 8 digits hash will be returned instead.

Example

On the server called https://woole.me, if the name test is used the server will return:

Otherwise, if the name is not provided, an 8 digits hash will be used instead:

Server

With Woole, you can create YOUR own server. But before setup your Woole Server, be sure that your server port is open and the firewall (if configurable) has the HTTP, HTTPS and Tunnel port configured. Consult the server provider documentation to know how to configure that. Domains and hostings are not provided by Woole Server.

The https://woole.me website was created to provide a free-to-use Woole Server. Just use the tunnel URL https://woole.me:8001. The virtual machine is not so powerful so use with moderation. Note that the website disponibility can change without further advise.

Basic Usage

    ./woole-server 

    ===============
    HTTP listening on http://{client}
    Tunnel listening on http://{client}:8001
    ===============

To log on console every request and response handled, set the -log-level to INFO.

Available Options

Option Description
-pattern Set the host pattern. The '{client}' MUST be present (default {client})
-http HTTP Port (default 80)
-https HTTPS Port (default 443)
-tunnel Tunnel Port (default 8001)
-timeout Timeout for receive a response from Client (default 10000)
-tls-cert TLS cert/fullchain file path
-tls-key TLS key/privkey file path
-log-level Log Level (default OFF)

Pattern

The pattern is used to define the host format and where the client name will be displayed on URL. Example, {client}.woole.me will generate URLs as:

  • client-name-here.woole.me;
  • test.woole.me
  • l2rhwi87aira.woole.me;

Using HTTPS

The HTTPS URL will only be provided if the -tls-cert and the -tls-key is provided. The HTTPS port can be changed using -https.

Build

Manually:

    git clone --depth 1 https://github.com/ecromaneli/woole.git

    # to build the client
    cd woole/cmd/client
    go build
    chmod +x woole

    # to build the server
    cd woole/cmd/server
    go build
    chmod +x woole-server

Now, just run the executable using the options above. You can also use -help to see the available options.

Author

Special Thanks

  • @ofabricio and the Capture repository where the sniffing tool was originally based.

Disclaimer

The Woole project, the woole.me website and all its contributors are not responsible for and do not encourage the use of this tool for any illegal activity. You as the user are solely responsible for its use. Report cybercrimes.

License

MIT License

Owner
Emerson Capuchi Romaneli
IT Technical Lead and Full Stack Engineer
Emerson Capuchi Romaneli
Similar Resources

A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

frp README | 中文文档 What is frp? frp is a fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet. As of now, it s

Jan 5, 2023

An Advanced HTTP Reverse Proxy with Dynamic Sharding Strategies

An Advanced HTTP Reverse Proxy with Dynamic Sharding Strategies

Weaver - A modern HTTP Proxy with Advanced features Description Features Installation Architecture Configuration Contributing License Description Weav

Dec 24, 2022

Dead simple reverse proxy for all your containerized needss

Dead simple reverse proxy for all your containerized needss

Whats this ? Pawxi is yet another reverse proxy designed with simplicity in mind. Born out of a certain users frustration at the complexity of setting

Oct 17, 2022

An Advanced HTTP Reverse Proxy with Dynamic Sharding Strategies

An Advanced HTTP Reverse Proxy with Dynamic Sharding Strategies

Weaver - A modern HTTP Proxy with Advanced features Description Features Installation Architecture Configuration Contributing License Description Weav

Jan 1, 2023

Simple edge server / reverse proxy

reproxy Reproxy is simple edge HTTP(s) sever / reverse proxy supporting various providers (docker, static, file). One or more providers supply informa

Dec 29, 2022

Reverse Proxy for geth node

Reverse Proxy for geth node

geth-proxy Reverse Proxy for geth node gcr.io/moonrhythm-containers/geth-proxy Features Health check base on last synced block timestamp Merge websock

Jul 26, 2022

4chain is a simple、fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet.

4Chain What is 4chain? 4chain is a simple、fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet. Using the ssh

Nov 1, 2022

Example of how to write reverse proxy in Go that runs on Cloud Run with Tailscale

Cloudrun Tailscale Reverse Proxy Setup Create a ephemeral key in Tailscale Set TAILSCALE_AUTHKEY in your Cloud Run environment variables Set TARGET_UR

Dec 18, 2022

A reverse proxy implementing IRC-over-WebSockets

webircproxy webircproxy is a reverse proxy that accepts IRCv3-over-WebSocket connections, then forwards them to a conventional ircd that speaks the no

Dec 22, 2021
Comments
  • Use Websocket instead of SSE/REST

    Use Websocket instead of SSE/REST

    I really don't know if the performance gained using WebSocket is worth his complexity, maintainability, and the probable addition of an external dependency. But would be good to do a benchmark comparing these two solutions during the v2.0.0.

🔎Sniffing and parsing mysql,redis,http,mongodb etc protocol. 抓包截取项目中的数据库请求并解析成相应的语句。
🔎Sniffing and parsing mysql,redis,http,mongodb etc protocol. 抓包截取项目中的数据库请求并解析成相应的语句。

go-sniffer Capture mysql,redis,http,mongodb etc protocol... 抓包截取项目中的数据库请求并解析成相应的语句,如mysql协议会解析为sql语句,便于调试。 不要修改代码,直接嗅探项目中的数据请求。 中文使用说明 Support List: m

Dec 27, 2022
mt-multiserver-proxy is a reverse proxy designed for linking multiple Minetest servers together

mt-multiserver-proxy mt-multiserver-proxy is a reverse proxy designed for linking multiple Minetest servers together. It is the successor to multiserv

Nov 17, 2022
Tcp-proxy - A dead simple reverse proxy server.

tcp-proxy A proxy that forwords from a host to another. Building go build -ldflags="-X 'main.Version=$(git describe --tags $(git rev-list --tags --max

Jan 2, 2022
Open Source HTTP Reverse Proxy Cache and Time Series Dashboard Accelerator
Open Source HTTP Reverse Proxy Cache and Time Series Dashboard Accelerator

Trickster is an HTTP reverse proxy/cache for http applications and a dashboard query accelerator for time series databases. Learn more below, and chec

Jan 2, 2023
gobetween - modern & minimalistic load balancer and reverse-proxy for the ☁️ Cloud era.
gobetween - modern & minimalistic load balancer and reverse-proxy for the ☁️ Cloud era.

gobetween - modern & minimalistic load balancer and reverse-proxy for the ☁️ Cloud era. Current status: Maintenance mode, accepting PRs. Currently in

Dec 25, 2022
TProx is a fast reverse proxy path traversal detector and directory bruteforcer.
TProx is a fast reverse proxy path traversal detector and directory bruteforcer.

TProx is a fast reverse proxy path traversal detector and directory bruteforcer Install • Usage • Examples • Join Discord Install Options From Source

Nov 9, 2022
Goproxy - HTTP/HTTPS Forward and Reverse Proxy

Go HTTP(s) Forward/Reverse Proxy This is intended to provide the proxy for the goproxy frontend. It is currently a work in progress, and is not very s

Jan 4, 2022
Websockify-go - A reverse proxy that support tcp, http, https, and the most important, noVNC, which makes it a websockify

websockify-go | mproxy a reverse proxy that support tcp, http, https, and the mo

Aug 14, 2022
A paywall bypassing reverse proxy and DNS server written in go 🔨💵🧱

FreeNews ?? ?? ?? A paywall bypassing reverse proxy and DNS server written in go. This project is still hard work in progress. Expect stuff to just no

Dec 7, 2022
Reverse cwmp proxy
Reverse cwmp proxy

cwmp-proxy Integration of the proxy will provide you the ability to place CPEs and ACS servers in different networks. What about if the devices are pl

Nov 15, 2022