Hack The Box - Walkthrough AI. SQLi in API Text To Sreach, SSH-Weiterleitung und RCE in JDWP

Bild

Ich veröffentliche weiterhin Lösungen, die zur weiteren Verarbeitung von der HackTheBox- Site gesendet wurden. Ich hoffe, dass dies zumindest jemandem hilft, sich auf dem Gebiet der Informationssicherheit weiterzuentwickeln. In diesem Artikel lernen wir die Konvertierung von Text in Sprache kennen und finden SQL-Injection in API, senden einen Port über SSH und führen RCE mithilfe des Java Debug Wire-Protokolls für das Remote-Debugging durch.

Die Verbindung zum Labor erfolgt über VPN. Es wird empfohlen, keine Verbindung von einem Arbeitscomputer oder einem Host herzustellen, auf dem die für Sie wichtigen Daten verfügbar sind, da Sie in einem privaten Netzwerk mit Personen enden, die sich mit dem Thema Informationssicherheit auskennen :)

Organisatorische Informationen
Speziell für diejenigen, die etwas Neues lernen und sich in einem der Bereiche Informations- und Computersicherheit weiterentwickeln möchten, werde ich folgende Kategorien beschreiben und besprechen:

  • PWN;
  • Kryptographie (Crypto);
  • Netzwerktechnologien (Netzwerk);
  • Reverse (Reverse Engineering);
  • Steganographie (Stegano);
  • Suche und Ausnutzung von WEB-Schwachstellen.

Darüber hinaus werde ich meine Erfahrungen in den Bereichen Computerforensik, Analyse von Malware und Firmware, Angriffe auf drahtlose Netzwerke und lokale Netzwerke, Durchführung von Pentests und Schreiben von Exploits teilen.

Damit Sie sich über neue Artikel, Software und andere Informationen informieren können, habe ich in Telegram einen Channel und eine Gruppe erstellt, um alle Fragen im Bereich ICD zu diskutieren . Auch ich werde Ihre persönlichen Wünsche, Fragen, Anregungen und Empfehlungen persönlich berücksichtigen und auf alle antworten .

Alle Informationen werden nur zu Bildungszwecken bereitgestellt. Der Autor dieses Dokuments übernimmt keine Verantwortung für Schäden, die jemandem durch die Verwendung von Kenntnissen und Methoden entstehen, die er durch das Studium dieses Dokuments erlangt hat.

Intelligenz


Port-Scan


Dieser Rechner hat eine IP-Adresse vom 10.10.10.163, die ich zu / etc / hosts hinzufüge.

10.10.10.163 ai.htb 

Zuerst scannen wir offene Ports. Da es sehr lange dauert, alle Ports mit nmap zu scannen, mache ich dies zuerst mit Masscan. Wir scannen alle TCP- und UDP-Ports von der tun0-Schnittstelle mit einer Geschwindigkeit von 1000 Paketen pro Sekunde.

 masscan -e tun0 -p1-65535,U:1-65535 10.10.10.163 --rate=1000 

Bild

Als Nächstes müssen Sie weitere Informationen zu bekannten Ports sammeln. Verwenden Sie dazu nmap mit der Option -A.

 nmap -A ai.htb -p22,80 

Bild

Wie aus dem nmap-Bericht hervorgeht, werden SSH und ein Webserver auf dem Host ausgeführt. Wenn wir zur Website gehen und ein wenig durch die Seiten streifen, wählen wir die interessanteste aus - aus dem Formular zum Senden einer WAV-Datei.

Bild

Aber für alle Fälle habe ich die Verzeichnisse mit Gobuster überprüft. Geben Sie in den Parametern die Anzahl der Streams 128 (-t), URL (-u), Wörterbuch (-w) und Erweiterungen an, die uns interessieren (-x).

gobuster dir -t 128 -u ai.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html, php, conf, txt

Bild

Die db.php Seite hat nichts gegeben, aber intelligence.php liefert uns Informationen über die Seite.

Bild

Die Seite benutzt einen Sprachdolmetscher. Das heißt, die von uns gesendete Datei wird als Text interpretiert. Lassen Sie uns die Annahme mit dem folgenden Online-Textinterpreter in WAV testen.

Bild

Bild

Annahmen sind richtig - die Site interpretiert den Text.

Einstiegspunkt


Aus irgendeinem Grund war ich mir von SSTI sicher, aber nach dem Scheitern, wenn ich mich an db.h erinnere, werden wir ein Angebot senden. Das Senden funktioniert jedoch nicht, da die Site eine API verwendet, die die Zeichen unterschiedlich interpretiert. Die vollständige Liste finden Sie hier .

Bild

Bild

Und wir bekommen den SQL-Fehler. Jetzt mach die Spritze.

USER


Bild

Bild

Bild

Bild

Und auf die gleiche Weise erhalten wir das Passwort.

Bild

Und mit den Zugangsdaten verbinden wir uns über SSH.

Bild

Wurzel


Wie üblich führen wir die Aufzählung mit dem LinEnum-Skript durch.

Bild

Nach dem Anzeigen der Skriptausgabe hören wir bei einem interessanten Prozess auf, der als root ausgeführt wird - einem Java-Programm.

Bild

Interessanter ist jedoch, dass das Programm eine Verbindung zu 8000 Ports unterstützt.

Bild

Dies wird auch durch die Liste der Wirkstoffe bestätigt.

Bild

Sie können auch sehen, dass es das Java Debug Wire Protocol (JWDB) verwendet, ein Protokoll für die Kommunikation zwischen dem fernen Debugger und der JVM. Nach der Suche nach Exploits finden wir ein Skript, mit dessen Hilfe RCE erstellt werden kann .

Bild

Dieses Skript verwendet als Argument die Hostadresse, den Port und den auszuführenden Befehl.

Bild

Beginnen wir mit Port 8000.

 ssh -L 8000:localhost:8000 alexa@10.10.10.163 

In diesem Fenster wird eine reguläre SSH-Konsole geöffnet, aber jetzt werden alle Anrufe an den 8000-Port des lokalen Hosts automatisch an den 8000-Port des Remotecomputers weitergeleitet.

Lassen Sie uns überprüfen: In einem anderen Terminal versuchen wir, mit jdb eine Verbindung zu diesem Port herzustellen.

Bild

Da die Verbindung besteht, schreiben wir eine Reverse-Shell auf den Host, die als Team ausgeführt wird.

Bild

Führen Sie das heruntergeladene Skript mit allen erforderlichen Parametern aus.

Bild

Und nach der Meldung über den erfolgreich ausgeführten Befehl beobachten wir die Verbindung.

Bild

Wie Sie sehen, haben wir Administratorzugriff.

Sie können sich uns per Telegramm anschließen . Bauen wir eine Community auf, in der es Menschen geben wird, die sich in vielen Bereichen der IT auskennen. Dann können wir uns gegenseitig in allen Fragen der IT- und Informationssicherheit helfen.

Source: https://habr.com/ru/post/de485522/


All Articles