Messenger is a tunneling toolkit that leverages a client-server infrastructure to establish SOCKS5 proxies, local port forwards and remote port forwards. While the server is primarily written in Python, there are several clients written in varying languages. Their details and major feature support can be found below.
To setup Messenger and establish a client connection execute the following commands.
Messenger has a setup.py file that can be ran directly or installed with pipx.
operator~# git clone https://github.com/skylerknecht/messenger.git --recurse-submodules
operator~# cd messenger
operator~/messenger# pipx install .
Luanching Messenger will output several details that will be leveraged in later commands including an AES encryption key and server URL.
operator~# messenger-cli
__ __
| \/ | ___ ___ ___ ___ _ __ __ _ ___ _ __
| |\/| |/ _ \/ __/ __|/ _ \ '_ \ / _` |/ _ \ '__|
| | | | __/\__ \__ \ __/ | | | (_| | __/ |
|_| |_|\___||___/___/\___|_| |_|\__, |\___|_|
by Skyler Knecht and Kevin Clark |___/ v0.3.6
[*] The AES encryption key is ZDXgoqyVXqDpJyBMJt
[*] Waiting for messengers on ws+http://0.0.0.0:8080/
Messenger comes with a builder utility to create clients. Leverage the help menu or the client support matrix to see builder-supported clients.
operator~# messenger-builder python --encryption-key ZDXgoqyVXqDpJyBMJt
Wrote Python client to 'client.py'
Once a client is built, execute it to connect to the server. Options can typically be hardcoded or overridden with command line arguments.
operator~# ./client.py
[+] Connected to http://localhost:8080/socketio/?EIO=4&transport=websocket
- Setup a SOCKS Proxy or Local Port Forward
- Setup a Remote Port Forward
- Chain Messenger Clients
- Perform NTLMRelay2Self with Messenger
| Clients | Messenger Builder | Protocols | Local/Remote Port Forwarding | SOCKS5 TCP | SOCKS5 UDP |
|---|---|---|---|---|---|
| Python | Supported | HTTP & WebSockets | Supported | Supported | Not Supported |
| C# | Not Supported | HTTP & WebSockets | Supported | Supported | Not Supported |
| Node JS | Not Supported | WebSockets | Supported | Supported | Not Supported |
- Skyler Knecht (@SkylerKnecht)
- Kevin Clark (@GuhnooPlusLinux)