Mallory - HTTP/HTTPS Proxy Over SSH

2019-11-04T21:15:07
ID KITPLOIT:7406299109796896562
Type kitploit
Reporter KitPloit
Modified 2019-11-04T21:15:07

Description

HTTP/HTTPS proxy over SSH.

Installation

  • Local machine: go get github.com/justmao945/mallory/cmd/mallory
  • Remote server: need our old friend sshd

Configueration

Config file
Default path is $HOME/.config/mallory.json , can be set when start program

mallory -config path/to/config.json

Content:

  • id_rsa is the path to our private key file, can be generated by ssh-keygen
  • local_smart is the local address to serve HTTP proxy with smart detection of destination host
  • local_normal is similar to local_smart but send all traffic through remote SSH server without destination host detection
  • remote is the remote address of SSH server
  • blocked is a list of domains that need use proxy, any other domains will connect to their server directly

    { "id_rsa": "$HOME/.ssh/id_rsa", "local_smart": ":1315", "local_normal": ":1316", "remote": "ssh://[email protected]:22", "blocked": [ "angularjs.org", "golang.org", "google.com", "google.co.jp", "googleapis.com", "googleusercontent.com", "google-analytics.com", "gstatic.com", "twitter.com", "youtube.com" ] }

Blocked list in config file will be reloaded automatically when updated, and you can do it manually:

# send signal to reload
kill -USR2 <pid of mallory>

# or use reload command by sending http request
mallory -reload

System config

  • Set both HTTP and HTTPS proxy to localhost with port 1315 to use with block list
  • Set env var http_proxy and https_proxy to localhost:1316 for terminal usage

Get the right suffix name for a domain

mallory -suffix www.google.com

A simple command to forward all traffic for the given port

# install it: go get github.com/justmao945/mallory/cmd/forward

# all traffic through port 20022 will be forwarded to destination.com:22
forward -network tcp -listen :20022 -forward destination.com:22

# you can ssh to destination:22 through localhost:20022
ssh [email protected] -p 20022

TODO

  • return http error when unable to dial
  • add host to list automatically when unable to dial
  • support multiple remote servers

Download Mallory