Wir haben über die Boot2Root-Herausforderung berichtet Athena von TryHackMe. Wir scannten die Maschine mit Nmap und entdeckten einen SMB-Server, aus dem wir eine Notiz extrahierten, die uns auf ein Verzeichnis auf dem Webserver verwies, auf dem wir ein laufendes Ping-Tool entdeckten. Wir nutzten Befehlssubstitution, um eine Bind-Shell einzuschleusen und den ersten Halt zu finden. Wir entdeckten ein Backup-Skript, das regelmäßig als ein anderer Benutzer ausgeführt wurde. Wir änderten das Skript, um eine Reverse Shell auszuführen, und öffneten eine weitere Sitzung als Benutzer Athena. Bei der Aufzählung stellten wir fest, dass der Benutzer Athena Kernelmodule als sudo mit insmod laden kann, ohne dass ein Root-Passwort erforderlich ist. Wir luden das Kernelmodul „venom.ko“ herunter und verwendeten Ghidra, um die Binärdatei zurückzuentwickeln. Wir entdeckten, dass es sich um ein Rootkit handelte, und nach der Codeanalyse konnten wir mit dem Modul interagieren, um eine Funktion aufzurufen, die die Berechtigungen von Athena auf Root erhöhte.

OSCP-Notizen abrufen

Video-Transkript
Das erste, was wir immer tun, ist der Nmap-Scan, wie Sie hier sehen können. Ich habe den Ping an die Maschine deaktiviert, weil die Maschine manchmal nicht auf Ping-Anfragen antwortet oder manchmal Filter den Ping blockieren. Wir können sehen, dass wir zwei offene Ports haben, 22 und 80. Das ist also die Hauptseite. Es sind alles nur Messwerte und Sie gehen zu „Über“. Hier ist nichts drin. Auf der Kontaktseite ist es dasselbe. Wenn Sie versuchen, die Verzeichnissuche mit Gobuster oder Dirbuster durchzuführen, werden Sie nichts Wichtiges finden. Also gehen wir zu. Der SMB-Server. Ein File-Sharing-Server, der SMB verwendet. Wir interagieren also mit der Freigabe mithilfe dieses Befehls.
Natürlich können wir uns auch ohne Passwort anmelden. Geben Sie das Feld ohne Passwort oder leer ein und Sie können sich als anonymer Benutzer anmelden.
Wir sehen zwei Shares: „public“ und „IPC“. Offensichtlich ist der Share „public“ derjenige, der uns am meisten interessiert. Und wir geben den Share-Namen an. Wir geben ein leeres Passwort ein und melden uns erfolgreich bei dem Share an.
Sobald wir uns also hier anmelden, ändert sich die Eingabeaufforderung von der Eingabeaufforderung des Computers oder der Eingabeaufforderung meines Computers in den SMB-Server, da ich mich jetzt beim Server angemeldet habe. Ich kann jetzt mit dem SMB-Server interagieren. Ich verwende also LS, um die Dateien aufzulisten. Und wir können sehen. Eine Textdatei rufen wir mit dem Befehl „get“ ab, gefolgt von „definier“. So zeigen wir den Inhalt der Datei an.
Und hier ist die Notiz des Administrators.
Ich möchte Sie darüber informieren, dass ein neues Ping-System entwickelt wird. Und ich habe die entsprechende Anwendung hinterlassen.
In einem bestimmten Pfad, der über die folgende Adresse aufgerufen werden kann.
Das ist also, was Sie sehen, wenn Sie diese Adresse nehmen und über den Browser darauf zugreifen. Dies ist ein einfaches Ping-Tool. Es wurde noch keine Implementierung des Ping-Befehls über die Befehlszeile mithilfe der Anwendungen durchgeführt, also gehen wir einfach hierhin und interagieren damit. Also eins bis sieben null null eins. Und jetzt führt es den Ping aus.
Wenn Sie zurückgehen. und versuchen, einige Befehl Injektion Methoden wie Befehl Verkettung so Semikolon Analysten senden und Versuch blockiert wird Versuch Hacking so hier die
sieht aus, als ob das Zeichen gefiltert wird, wenn wir es mit dem Et-Zeichen versuchen und den Hackversuch erneut senden, sodass ein Filter vorhanden ist.
Dadurch werden alle verbotenen Zeichen ausgeschlossen, die bei der Befehlsinjektion oder sogar bei Reverse Shells verwendet werden. Wenn diese Zeichen also gefiltert werden, bedeutet dies, dass selbst Reverse Shells nicht verwendet werden können.
Was ist hier die Lösung? Die Lösung besteht darin, Befehlssubstitution zu verwenden. Ich habe in früheren Videos allgemeine Substitutionen erklärt, Leute. In diesem Video könnt ihr speziell darauf zurückkommen.
Umgehen von SQL-Filtern durch Befehlsersetzung
Es war eine Demonstration am Overthewire CTF-Spiele Natas Level 16. Also gut, wir werden hier die Befehlsersetzung verwenden.
Wie Sie sehen, habe ich das gemacht. Ich habe die IP-Adresse verwendet. Das ist die Eingabe, die die Anwendung als IP zum Pingen erwartet. Das ist die, weil -C1 eine Option ist. Wir können sie im Ping-Befehl verwenden. Hier senden wir also ein Paket und die Kommentarersetzung beginnt. Die Komma-Ersetzung beginnt also mit dem Zeichen $. Und zwischen zwei Klammern geben wir im Befehl, den wir ausführen möchten, etwas anderes an, da Zeichen wie das Et-Zeichen, das Pipe-Zeichen und das Semikolon blockiert oder gefiltert werden.
Wir verwenden eine Bind-Shell. Die Bind-Shell ist das Gegenteil einer Reverse-Shell. Wir stellen sicher, dass der Client oder die Maschine eine Verbindung zu uns herstellt.
In der Bind-Shell stellen wir eine Verbindung zur Maschine her, was bedeutet, dass die Maschine nun die Rolle eines Listeners übernimmt. Also NC – LP vier fünf vier fünf der Port, und ich möchte, dass die Maschine zuhört, und sobald die Verbindung empfangen wurde, werde ich /bin/bash ausführen. Also machen wir das, wie Sie jetzt sehen können, dreht es sich, was darauf hinweist, dass der Listener jetzt läuft, also gehen Sie zu meiner Maschine, das ist die Maschinen-Shell.
Und wie ihr seht, verbinde ich mich mit diesem Befehl mit der Maschine. So funktioniert Bind Shell.
Und wie ihr seht, Leute, kann ich eine Verbindung herstellen und den ersten Put Hold landen, also bin ich wwdata, also der Apache-Webserver-Benutzer. Ich habe pspy64 hochgeladen, um die aktuellen Prozesse und Cronjobs aufzulisten.
Wir erkennen ein Muster bei einem Backup-Skript. Dieses Backup-Skript wird also in regelmäßigen Abständen vom Benutzer UID 1001 ausgeführt.
Athena ist also der Benutzer mit der UID 1001. Das bedeutet, dass das Skript regelmäßig vom Benutzer Athena ausgeführt wird. Wir navigieren zu dem Verzeichnis, in dem das Skript „User Share Backup“ gespeichert ist.
plus -la user share backup und hier sehen wir das Backup-Skript. Überraschenderweise ist der aktuelle Benutzer www-data der Besitzer des Skripts, was bedeutet, dass wir das Skript ändern können. Was ist der Zweck der Änderung des Skripts, da dieses Skript regelmäßig von Athena ausgeführt wird und da wir immer noch einen Benutzer mit niedrigen Berechtigungen besitzen, www-data, möchten wir die Berechtigungen nach oben verschieben, was bedeutet, dass wir von www-data zu Athena wechseln möchten.

Da das Skript als Athena ausgeführt wird, bedeutet dies, dass wir den Inhalt des Skripts ändern und eine Reverse Shell einfügen können, wenn das Skript erneut ausgeführt wird. Die Reverse Shell wird ausgeführt. Der Benutzer Athena kann den Befehl insmod als sudo ausführen, ohne das Root-Passwort angeben zu müssen. Daher haben wir das Modul venom.ko für das Reverse Engineering mit Ghidra auf meinen Computer heruntergeladen.

Wir können uns zuerst die Funktionen ansehen und Diamorphin initialisieren. Das Diamorphin ist ein Rootkit. Woher wissen wir, dass es sich um ein Rootkit handelt? Wir verwenden Google
Dies ist die Hauptseite von Diamorphin. Laut Beschreibung handelt es sich um ein LKM-Rootkit für Linux-Kernel. Und hier sind die Anweisungen, wie man es installiert und damit entsperrt. Wie Sie hier sehen, ist das Modell zunächst unsichtbar. Um es zu entfernen, müssen Sie es sichtbar machen.
Das ist also die Idee eines Rootkits, das eine bösartige Malware ist, die sich vor den Prozessen oder Modulen verbirgt. Selbst wenn Sie die Prozesse aufzählen oder versuchen, die aktuell laufenden Module zu finden, wird das Rootkit nicht angezeigt. Okay, weil es ein Rootkit ist. Und Rootkits verwenden Process Hollowing und Process Injection, um sich vor den Augen der Ermittler zu verstecken. Dieser Befehl ist also sehr wichtig, weil er das Modul offenlegt.
töten -63 0
Entsprechend dem Code und der Funktion hacked_kill und give_root müssen wir den folgenden Befehl ausführen, um die Berechtigungen zu erhöhen
töten -75 0
Raumantworten
Was ist das Benutzerflag?
Was ist das Root-Flag?

Video-Komplettlösung

Über den Autor

Ich erstelle Notizen zur Cybersicherheit, Notizen zum digitalen Marketing und Online-Kurse. Ich biete auch Beratung zum digitalen Marketing an, einschließlich, aber nicht beschränkt auf SEO, Google- und Meta-Anzeigen und CRM-Verwaltung.

Artikel anzeigen