Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/secforce/tunna
Web-Proxys & AbfangenIDS/IPS-UmgehungPenetrationstestsRed Teaming
GitHubsecforce/tunna

Tunna

Tunna ist eine Sammlung von Werkzeugen, die jede TCP-Kommunikation über HTTP verpackt und tunnelt. Sie kann verwendet werden, um Netzwerkbeschränkungen in vollständig durch Firewalls geschützten Umgebungen zu umgehen.

Repository anzeigen
1.3k280vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Tunna

Tunna ist eine Sammlung von Werkzeugen, die jede TCP-Kommunikation über HTTP verpacken und tunneln. Es kann verwendet werden, um Netzwerkbeschränkungen in vollständig durch Firewalls geschützten Umgebungen zu umgehen.

v1.1 Alpha-Version

root@kitploit:~
				  _____                        
				 |_   _|   _ _ __  _ __   __ _ 
				   | || | | | '_ \| '_ \ / _` |
				   | || |_| | | | | | | | (_| |
				   |_| \__,_|_| |_|_| |_|\__,_|	
                                                 

                 Tunna 0.1, für HTTP-Tunneling von TCP-Verbindungen von Nikos Vassakis
                 http://www.secforce.co.uk	/ nikos.vassakis <at> secforce.com

################################################################################################################

ZUSAMMENFASSUNG

root@kitploit:~
TLDR: Tunnelt TCP-Verbindungen über HTTP

In einer vollständig durch Firewalls geschützten Umgebung (ein- und ausgehende Verbindungen sind eingeschränkt – außer dem Webserver-Port)

Die Webshell kann verwendet werden, um eine Verbindung zu einem beliebigen Dienst auf dem entfernten Host herzustellen. Dabei handelt es sich um eine lokale Verbindung auf einem lokalen Port des entfernten Hosts, die sollte von der Firewall erlaubt sein.

Die Webshell liest Daten vom Dienst-Port, verpackt sie über HTTP und sendet sie als HTTP-Antwort an den lokalen Proxy.

Der lokale Proxy entpackt die Daten und schreibt sie auf seinen lokalen Port, mit dem das Client-Programm verbunden ist.

Wenn der lokale Proxy Daten auf dem lokalen Port empfängt, sendet er sie als HTTP-Post an die Webshell.

Die Webshell liest die Daten aus dem HTTP-Post und legt sie auf dem Dienst-Port ab.

und wiederhole --^

Es muss nur der Webserver-Port geöffnet sein (normalerweise 80/443) Die gesamte Kommunikation (extern) erfolgt über das HTTP-Protokoll

VERWENDUNG

python proxy.py -u <remoteurl> -l <localport> [optionen]

Optionen

--help, -h Diese Hilfe anzeigen und beenden

--url=URL, -u URL URL der entfernten Webshell

--lport=LOCAL_PORT, -l LOCAL_PORT lokaler Listening-Port

--verbose, -v Ausführlich (zeigt Paketgrößen an)

--buffer=BUFFERSIZE, -b BUFFERSIZE* HTTP-Anfragegröße (manche Webshells haben Einschränkungen bezüglich der Größe)

Keine SOCKS-Optionen

Optionen werden ignoriert, wenn ein SOCKS-Proxy verwendet wird

--no-socks, -n Keinen SOCKS-Proxy verwenden

--rport=REMOTE_PORT, -r REMOTE_PORT entfernter Port des Dienstes für die Webshell zum Verbinden

--addr=REMOTE_IP, -a REMOTE_IP Adresse für die entfernte Webshell zum Verbinden (Standard = 127.0.0.1)

Upstream-Proxy-Optionen

Tunnel-Verbindung durch einen lokalen Proxy

--up-proxy=UPPROXY, -x UPPROXY Upstream-Proxy (http://proxyserver.com:3128)

--auth, -A Upstream-Proxy erfordert Authentifizierung

Erweiterte Optionen

--ping-interval=PING_DELAY, -q PING_DELAY Intervall des Webshprx-Ping-Threads (Standard = 0.5)

--start-ping, -s Ping-Thread zuerst starten – manche Dienste senden Daten zuerst (z. B. SSH)

--cookie, -C Anfrage-Cookies

--authentication, -t Basisauthentifizierung

  • Siehe Einschränkungen

Beispielverwendung: python proxy.py -u http://10.3.3.1/conn.aspx -l 8000 -v

root@kitploit:~
# Dies startet einen lokalen SOCKS-Proxy-Server auf Port 8000
# Diese Verbindung wird über HTTP verpackt und auf dem entfernten Server entpackt

python proxy.py -u http://10.3.3.1/conn.aspx -l 8000 -x https://192.168.1.100:3128 -A -v

# Dies startet einen lokalen SOCKS-Proxy-Server auf Port 8000
# Es verbindet sich über einen lokalen Proxy (https://192.168.1.100:3128), der eine Authentifizierung erfordert,
# mit der entfernten Tunna-Webshell

python proxy.py -u http://10.3.3.1/conn.aspx -l 4444 -r 3389 -b 8192 -v --no-socks

# Dies initiiert eine Verbindung zwischen der Webshell und dem Remote-Host-RDP-Dienst (3389)
# Der RDP-Client kann sich auf dem lokalen Host Port 4444 verbinden
# Diese Verbindung wird über HTTP verpackt

Voraussetzungen

root@kitploit:~
Die Möglichkeit, eine Webshell auf dem entfernten Server hochzuladen

EINSCHRÄNKUNGEN / BEKANNTE FEHLER / HACKS

root@kitploit:~
Dies ist ein Proof-of-Concept-Code und kann zu einem DoS des Servers führen.
	Es wurden alle Anstrengungen unternommen, um nach der Ausführung oder bei Fehlern aufzuräumen (keine Garantie)

Basierend auf lokalen Tests: 		
	* JSP-Puffer muss begrenzt werden (Puffer-Option):
			4096 funktionierte unter Linux Apache Tomcat
			1024 funktionierte unter XAMPP Apache Tomcat (langsam)
			* Größere Werte verursachten Probleme mit fehlenden Bytes auf dem entfernten Socket
			z. B.: ruby proxy.rb -u http://10.3.3.1/conn.jsp -l 4444 -r 3389 -b 1024 -v

	* Sockets sind standardmäßig nicht aktiviert:
		PHP Windows (IIS + PHP)
		XAMPP Windows
		PHP Linux (PHP Built-in-Webserver/Apache + PHP)
	Wenn der Fehler "Uncaught Error: Call to undefined function socket_create()" auftritt,
	siehe https://stackoverflow.com/questions/6137823/fatal-error-call-to-undefined-function-socket-create
	
	
	* Wagenrückläufe in Webshells (außerhalb des Codes): 
		werden in Antworten gesendet / auf lokalen Socket geschrieben --> korrumpieren die Pakete

	* PHP-Webshell für Windows: Die Schleifenfunktion verursacht DoS auf dem entfernten Socket: 
		Schlaf-Funktion hinzugefügt -> funktioniert, aber etwas langsam 
	* PHP-Webshell benötigt, dass Zeilenumbrüche am Ende der Datei (nach "?>") entfernt werden,
		da diese in jeder Antwort gesendet werden und Tunna verwirren.
	

DATEIEN

root@kitploit:~
Webshells:
	conn.jsp	Getestet auf Apache Tomcat (Windows + Linux)
	conn.aspx	Getestet auf IIS 6+8 (Windows Server 2003/2012)
	conn.php	Getestet auf LAMP + XAMPP + IIS (Windows + Linux)

Webserver:
	webserver.py	Getestet mit Python 2.6.5

Proxies:
	proxy.py	Getestet mit Python 2.6.5

Technische Details

Architekturentscheidungen

root@kitploit:~
Daten werden roh im HTTP-Post-Body gesendet (keine Post-Variable)

Anweisungen / Konfiguration werden als URL-Parameter an die Webshell gesendet (HTTP-Get)
Daten werden im HTTP-Body gesendet (HTTP-Post)

Websockets werden nicht verwendet: Standardmäßig von den meisten Webservern nicht unterstützt
Asynchrone HTTP-Antworten sind nicht wirklich möglich
	Proxy fragt den Server ständig ab (Standard 0,5 Sekunden)

INITIIERUNGSPHASE

  1. Paket initiiert eine Sitzung mit der Webshell – erhält ein Cookie zurück z. B.: http://webserver/conn.ext?proxy

  2. Paket sendet Verbindungskonfigurationsoptionen an die Webshell z. B.: http://webserver/conn.ext?proxy&port=4444&ip=127.0.0.1

    IP und Port, mit dem die Webshell verbunden werden soll Dies ist eine Thread-gesteuerte Anfrage: In PHP läuft diese Anfrage in einer Endlosschleife, um die Socket-Verbindung der Webshell am Leben zu erhalten In anderen Webshells wird [OK] zurückgegeben

TUNNA-CLIENT

Ein lokaler Socket wird erstellt, mit dem sich das Client-Programm verbindet. Sobald der Client verbunden ist, wird der Ping-Thread gestartet und die Ausführung beginnt. Alle Daten auf dem Socket (vom Client) werden gelesen und als HTTP-Post-Anfrage gesendet. Alle Daten auf dem Webshell-Socket werden als Antwort auf die POST-Anfrage gesendet.

PING-THREAD

Da HTTP-Antworten nicht asynchron sein können. Dieser Thread führt HTTP-Get-Anfragen an die Webshell in einem Intervall (Standard 0,5 Sekunden) durch. Wenn die Webshell Daten zu senden hat, sendet sie diese (auch) als Antwort auf diese Anfrage. Andernfalls sendet sie eine leere Antwort.

Im Allgemeinen: Daten vom lokalen Proxy werden mit HTTP-Post gesendet. Es werden alle 0,5 Sekunden Get-Anfragen gestellt, um die Webshell nach Daten abzufragen. Wenn auf der Webshell-Seite Daten vorhanden sind, werden diese als Antwort auf eine dieser Anfragen gesendet.

WEBSHELL

Die Webshell verbindet sich mit einem Socket auf dem lokalen oder einem entfernten Host. Alle Daten, die auf den Socket geschrieben werden, werden als Antwort auf eine Anfrage (POST/GET) an den Proxy zurückgesendet. Alle Daten, die mit einem Post empfangen werden, werden auf den Socket geschrieben.

HINWEISE

Alle Anfragen müssen den URL-Parameter "proxy" gesetzt haben, um von der Webshell verarbeitet zu werden. (http://webserver/conn.ext?proxy)

BEI BEENDEN / BEI FEHLER

Alle Threads beenden und lokalen Socket schließen. Sendet proxy&close an die Webshell: Entfernte Threads beenden und Socket schließen

SOCKS

Der SOCKS-Support ist ein Addon-Modul für Tunna. Lokal läuft ein separater Thread, der die Verbindungsanfragen und den Datenverkehr verwaltet, einen Header hinzufügt, der den Port und die Paketgröße angibt, und ihn an Tunna weiterleitet. Tunna sendet ihn an den entfernten Webserver, entfernt die HTTP-Header und leitet das Paket an den entfernten SOCKS-Proxy weiter. Der entfernte SOCKS-Proxy initiiert die Verbindung und bildet den empfangenen Port auf den lokalen Port ab. Wenn der entfernte SOCKS-Proxy Daten vom Dienst empfängt, sucht er in der Mapping-Tabelle und findet den Port, auf den er antworten muss, fügt den Port als Header hinzu, damit der lokale SOCKS-Proxy weiß, wohin die Daten weitergeleitet werden sollen. Jeglicher Datenverkehr vom empfangenen Port wird an den lokalen Port weitergeleitet und umgekehrt.

COPYRIGHT & HAFTUNGSAUSSCHLUSS

Tunna, TCP-Tunneling über HTTP Nikos Vassakis Copyright (C) 2014 SECFORCE.

Dieses Werkzeug ist nur für legale Zwecke bestimmt.

Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, entweder Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version weitergeben und/oder modifizieren.

Dieses Programm wird in der Hoffnung verbreitet, dass es nützlich sein wird, jedoch OHNE JEGLICHE GEWÄHRLEISTUNG; sogar ohne die stillschweigende Garantie der MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Siehe die GNU General Public License für weitere Details.

Sie sollten zusammen mit diesem Programm eine Kopie der GNU General Public License erhalten haben. Falls nicht, siehe http://www.gnu.org/licenses/.

Tool herunterladen