
Web su qualsiasi protocollo
██╗ ██╗ ██████╗ ████████╗ ██████╗ ██████╗
██║ ██║██╔═══██╗╚══██╔══╝██╔═══██╗██╔══██╗
██║ █╗ ██║██║ ██║ ██║ ██║ ██║██████╔╝
██║███╗██║██║ ██║ ██║ ██║ ██║██╔═══╝
╚███╔███╔╝╚██████╔╝ ██║ ╚██████╔╝██║
╚══╝╚══╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝
WOTOP è uno strumento progettato per instradare qualsiasi tipo di traffico attraverso un canale HTTP standard.
Utile per scenari in cui c'è un proxy che filtra tutto il traffico tranne quello HTTP(S) standard. A differenza di altri strumenti che o richiedono di essere dietro un proxy che permette di passare traffico arbitrario (possibilmente dopo una richiesta CONNECT iniziale), o strumenti che funzionano solo per SSH, questo non impone tali restrizioni.
Supponendo che tu voglia usare SSH per connetterti a una macchina remota dove non hai privilegi di root.
Ci saranno 7 entità:
Se non ci fosse proxy, la comunicazione sarebbe qualcosa come:
Client -> Client SSH process -> Target Server -> Target SSH process
In questo scenario, ecco il metodo proposto:
Client -> Client SSH process -> Client WOTOP process -> Proxy -> Target WOTOP process -> Target SSH process -> Target Server
WOTOP semplicemente incapsula tutti i dati in pacchetti HTTP e li bufferizza di conseguenza.
Un altro scenario ancora più complicato sarebbe se hai un server utility esterno e devi accedere alle risorse di un altro server da dietro un proxy. In questo caso, wotop funzionerà sempre sul tuo server esterno, ma invece di usare localhost nel secondo comando (sezione Utilizzo), usa il nome host della macchina target che ha l'host.
Sulla macchina client:
./wotop <client-hop-port> <server-host-name> <server-hop-port>
Sulla macchina target:
./wotop <server-hop-port> localhost <target-port> SERVER
(Nota la parola chiave SERVER alla fine)
Nel caso di SSH, la porta target sarebbe 22. Una volta che questi due sono in esecuzione, per SSH eseguirai quanto segue:
ssh <target-machine-username>@localhost -p <client-hop-port>
Nota: La parola chiave server dice a wotop quale lato della connessione deve essere su HTTP.
Le Pull Requests sono più che benvenute! 😄