ld.so privesc exploit example
Bereiten Sie die Umgebung vor
Im folgenden Abschnitt finden Sie den Code der Dateien, die wir verwenden werden, um die Umgebung vorzubereiten
Modify the ld.so.conf file
Edit the /etc/ld.so.conf file and add the path to the directory where the malicious library is located. In this case, it is /usr/lib.
Add the following line at the end of the file:
Save and exit the file.
Update the dynamic linker cache
Run the following command to update the dynamic linker cache:
Check the environment again
Check that the libcustom.so library is being loaded from the modified ld.so.conf file and that you can execute the binary.
The output should show that libcustom.so is being loaded from the modified ld.so.conf file.
Exploit
In diesem Szenario nehmen wir an, dass jemand einen anfälligen Eintrag in einer Datei in /etc/ld.so.conf/ erstellt hat:
Der gefährdete Ordner ist /home/ubuntu/lib (wo wir Schreibzugriff haben). Laden Sie den folgenden Code herunter und kompilieren Sie ihn in diesem Pfad:
Jetzt, da wir die bösartige libcustom-Bibliothek im fehlerhaft konfigurierten Pfad erstellt haben, müssen wir auf einen Neustart oder darauf warten, dass der Root-Benutzer ldconfig
ausführt (falls Sie dieses Binär als sudo ausführen können oder es das SUID-Bit hat, können Sie es selbst ausführen).
Sobald dies geschehen ist, überprüfen Sie erneut, von wo aus die sharevuln
-Ausführbare die libcustom.so
-Bibliothek lädt:
Wie Sie sehen können, wird es von /home/ubuntu/lib
geladen und wenn es von einem Benutzer ausgeführt wird, wird eine Shell ausgeführt:
Beachten Sie, dass wir in diesem Beispiel keine Privilegien eskaliert haben, sondern die ausgeführten Befehle modifiziert haben und auf root oder einen anderen privilegierten Benutzer warten, um die verwundbare Binärdatei auszuführen, um Privilegien zu eskalieren.
Andere Fehlkonfigurationen - Gleiche Schwachstelle
Im vorherigen Beispiel haben wir eine Fehlkonfiguration vorgetäuscht, bei der ein Administrator einen nicht privilegierten Ordner in einer Konfigurationsdatei innerhalb von /etc/ld.so.conf.d/
festgelegt hat.
Es gibt jedoch andere Fehlkonfigurationen, die dieselbe Schwachstelle verursachen können. Wenn Sie Schreibberechtigungen in einer Konfigurationsdatei innerhalb von /etc/ld.so.conf.d/
, im Ordner /etc/ld.so.conf.d
oder in der Datei /etc/ld.so.conf
haben, können Sie dieselbe Schwachstelle konfigurieren und ausnutzen.
Exploit 2
Angenommen, Sie haben sudo-Berechtigungen für ldconfig
.
Sie können ldconfig
angeben, woher die Konfigurationsdateien geladen werden sollen, sodass wir dies nutzen können, um ldconfig
dazu zu bringen, beliebige Ordner zu laden.
Erstellen wir also die benötigten Dateien und Ordner, um "/tmp" zu laden:
Nun, wie im vorherigen Exploit angegeben, erstellen Sie die bösartige Bibliothek innerhalb von /tmp
.
Und schließlich laden wir den Pfad und überprüfen, von wo aus die Binärdatei die Bibliothek lädt:
Wie Sie sehen können, können Sie mit sudo-Berechtigungen über ldconfig
dieselbe Schwachstelle ausnutzen.
Ich habe keinen zuverlässigen Weg gefunden, diese Schwachstelle auszunutzen, wenn ldconfig
mit dem suid-Bit konfiguriert ist. Es erscheint der folgende Fehler: /sbin/ldconfig.real: Kann temporäre Cache-Datei /etc/ld.so.cache~ nicht erstellen: Keine Berechtigung
Referenzen
Dab-Maschine in HTB
Last updated