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-2018-10933 — CTF-Challenge zur Ausnutzung der libSSH-Authentifizierungsumgehung CVE-2018-10933. Enthält Docker-Setup, Exploitation-Skript und Walkthrough zur Entdeckung versteckter Flags über symbolische Verknüpfungen. | Kitploit
Tools/GitHubGitHub/silasspringer/cve-2018-10933
SchwachstellenanalyseExploitationCTFLernen & BildungBinary-ExploitationLabs & Praxis
GitHubsilasspringer/cve-2018-10933

CVE-2018-10933

CTF-Challenge zur Ausnutzung der libSSH-Authentifizierungsumgehung CVE-2018-10933. Enthält Docker-Setup, Exploitation-Skript und Walkthrough zur Entdeckung versteckter Flags über symbolische Verknüpfungen.

Repository anzeigen
vor 3 JahrenNoch 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

Proof of Concept CTF Challenge

Von Silas Springer

Basierend auf CVE-2018-10933

Hintergrund

CVE-2018-10933 ist eine Sicherheitslücke, die in ausgewählten Versionen von libSSH entdeckt wurde und potenziell uneingeschränkten Maschinenzugriff ermöglichen kann. Die Schwachstelle entsteht durch unsachgemäße Behandlung von Paketkopfdaten während des Authentifizierungsprozesses, bei dem das Senden eines manipulierten Pakets mit dem Byte MSG_USERAUTH_SUCCESS jedem erlauben kann, die Authentifizierung zu umgehen. Sie haben dann vollen Zugriff auf die Maschine.

Die Grundlage dieser Challenge besteht also darin, dass die Teilnehmer das bereitgestellte Docker-Image untersuchen, diese Schwachstelle entdecken, sie ausnutzen, um Zugriff zu erhalten, und dann den Schlüssel finden, der in einem Symlink auf der Maschine versteckt ist.

Beispielhafte CTF Challenge Beschreibung

root@kitploit:~
Someone got into my machine via port 22...
It looks like they didnt even know my credentials.

Anyways, they made a file with an odd name, but it's gone now, 
I wonder if there's still some trace of the filename - 
it might be something symbolic of the attacker...

Can you figure out how they got in and help me find the filename?

Lösung

Im Folgenden finden Sie eine detaillierte Schritt-für-Schritt-Anleitung der vorgesehenen Lösung:

Beachten Sie aus der Challenge-Beschreibung, dass der Angreifer über Port 22 Zugriff erlangte, einen Port, der normalerweise für SSH reserviert ist. Beachten Sie auch, dass der Angreifer keine Anmeldedaten verwendet hat, um Zugriff zu erlangen.

Daraus ergibt sich, dass bei der Suche nach vergangenen Fehlern, um ohne Anmeldedaten über SSH auf eine Maschine zuzugreifen, das Problem mit dem MSG_USERAUTH_SUCCESS-Byte sehr wahrscheinlich ist. Alternativ kann man durch Initiieren einer Verbindung zu Port 22 die Version von libSSH ermitteln, die ausgeführt wird, und dann nach gängigen Exploits für diese Version suchen.

Aus der Beschreibung ist auch ersichtlich, dass der gesuchte Dateiname (die Flagge) nur als Ziel eines symbolischen Links existiert.

Da nun bekannt ist, dass Zugriff durch Ausnutzung dieser Schwachstelle erlangt werden kann, kann man ein eigenes Skript schreiben oder ein Beispielskript kopieren, das diesen Exploit ausführt, und einen Befehl auf der Zielmaschine ausführen. Ich habe für diese Lösung ein Exploit-Skript angepasst und es libsshauthbypass.py genannt.

Um dieses Skript auszuführen und die Flagge von der Maschine zu erhalten, könnte man im Fall des Demo-Images einen Befehl ähnlich dem folgenden ausführen:

root@kitploit:~
./libsshauthbypass.py --host localhost -p 1337 -c 'find / -type l -exec stat {} + | grep "File:" | sed -E "s/.*\-> (.*)$/\1/g" | grep "definitelyarealCTF"'
-- Hinweis: Dies setzt voraus, dass das Image lokal ausgeführt wird oder ein Tunnel zum laufenden Container über localhost:1337 eingerichtet wurde.

was dann eine Ausgabe ähnlich der folgenden liefert

root@kitploit:~
sspringer-fedora-CVE: ./libsshauthbypass.py --host localhost -p 1337 -c 'find / -type l -exec stat {} + | grep "File:" | sed -E "s/.*\-> (.*)$/\1/g" | grep "definitelyarealCTF"'
INFO:paramiko.transport:Connected (version 2.0, client libssh_0.8.1)
definitelyarealCTF{totally_a_REAL_flag}

Wiederverwendung

Um eine Version dieser Challenge für Ihr eigenes CTF zu verwenden, wird dringend empfohlen, die Dockerfile zu ändern, um einen anderen Pfad als den standardmäßig bereitgestellten zu verwenden, die Flagge in flag.txt zu ändern (obwohl es weiterhin eine Zeile sein muss) und dann das Image neu zu erstellen. Beachten Sie, dass es notwendig sein kann, für jeden Verbindungsversuch einen neuen Container zu hosten, um zu verhindern, dass jemand einen destruktiven Befehl ausführt und alle Teilnehmer beeinträchtigt.

Um das Docker-Image mit einer neuen Flagge neu zu erstellen (und zu testen)

  • Aktualisieren Sie flag.txt mit der neuen Flagge
  • Führen Sie ./build_run <image name>[:<version number] <port number> aus
  • Nutzen Sie ./libsshauthbypass.py oder Ihr eigenes Skript, um den Container mit der korrekten Payload und einem gewünschten Befehl zu kontaktieren
  • Nach dem exit der vom build_run-Skript bereitgestellten Shell wird der Container heruntergefahren und gelöscht, aber das Image bleibt erhalten und wird als <image name> getaggt.

Videos

Proof of Concept: https://youtu.be/ELrOBm02ANg

Walkthrough der Challenge https://youtu.be/Ii121piSZR0

Tool herunterladen