
Web über jedem Protokoll
██╗ ██╗ ██████╗ ████████╗ ██████╗ ██████╗
██║ ██║██╔═══██╗╚══██╔══╝██╔═══██╗██╔══██╗
██║ █╗ ██║██║ ██║ ██║ ██║ ██║██████╔╝
██║███╗██║██║ ██║ ██║ ██║ ██║██╔═══╝
╚███╔███╔╝╚██████╔╝ ██║ ╚██████╔╝██║
╚══╝╚══╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝
WOTOP ist ein Werkzeug, das dazu dient, beliebigen Datenverkehr über einen standardmäßigen HTTP-Kanal zu tunneln.
Nützlich für Szenarien, in denen ein Proxy den gesamten Datenverkehr mit Ausnahme von standardmäßigem HTTP(S)-Verkehr filtert. Im Gegensatz zu anderen Werkzeugen, die entweder erfordern, dass Sie sich hinter einem Proxy befinden, der beliebigen Datenverkehr durchlässt (möglicherweise nach einer anfänglichen CONNECT-Anfrage), oder Werkzeugen, die nur für SSH funktionieren, stellt dieses keine derartigen Einschränkungen.
Angenommen, Sie möchten SSH verwenden, um eine Verbindung zu einem entfernten Rechner herzustellen, auf dem Sie keine Root-Rechte haben.
Es gibt 7 Entitäten:
Wenn es keinen Proxy gäbe, wäre die Kommunikation etwa wie folgt:
Client -> Client SSH process -> Target Server -> Target SSH process
In diesem Szenario sieht die vorgeschlagene Methode wie folgt aus:
Client -> Client SSH process -> Client WOTOP process -> Proxy -> Target WOTOP process -> Target SSH process -> Target Server
WOTOP verpackt einfach alle Daten in HTTP-Pakete und puffert sie entsprechend.
Ein weiteres, noch komplexeres Szenario wäre, wenn Sie einen externen Dienstserver haben und von hinter einem Proxy auf die Ressourcen eines anderen Servers zugreifen müssen. In diesem Fall wird wotop weiterhin auf Ihrem externen Server laufen, aber anstelle von localhost im zweiten Befehl (Abschnitt Verwendung) verwenden Sie den Hostnamen des Zielrechners, der den Host besitzt.
Auf dem Client-Rechner:
./wotop <client-hop-port> <server-host-name> <server-hop-port>
Auf dem Zielrechner:
./wotop <server-hop-port> localhost <target-port> SERVER
(Beachten Sie das Schlüsselwort SERVER am Ende)
Im Fall von SSH wäre der Zielport 22. Sobald diese beiden laufen, würden Sie zum SSH folgendes ausführen:
ssh <target-machine-username>@localhost -p <client-hop-port>
Hinweis: Das Schlüsselwort server teilt wotop mit, welche Seite der Verbindung über HTTP erfolgen muss.
Pull-Requests sind mehr als willkommen! 😄