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 InformationenSpeziell 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

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

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.

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

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

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.


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 .


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




Und auf die gleiche Weise erhalten wir das Passwort.

Und mit den Zugangsdaten verbinden wir uns über SSH.

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

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

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

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

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 .

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

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.

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

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

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

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.