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
Erstellen Sie diese Dateien auf Ihrem Rechner im selben Ordner
Kompilieren Sie die Bibliothek:
gcc -shared -o libcustom.so -fPIC libcustom.c
Kopieren Sie
libcustom.so
nach/usr/lib
:sudo cp libcustom.so /usr/lib
(Root-Rechte)Kompilieren Sie die ausführbare Datei:
gcc sharedvuln.c -o sharedvuln -lcustom
Überprüfen Sie die Umgebung
Überprüfen Sie, ob libcustom.so von /usr/lib geladen wird und ob Sie die Binärdatei ausführen können.
Exploit
In diesem Szenario nehmen wir an, dass jemand einen verwundbaren Eintrag in einer Datei in /etc/ld.so.conf/ erstellt hat:
Der verwundbare Ordner ist /home/ubuntu/lib (wo wir schreibbaren Zugriff haben). Laden Sie den folgenden Code herunter und kompilieren Sie ihn in diesem Pfad:
Jetzt, da wir die bösartige libcustom-Bibliothek im falsch konfigurierten Pfad erstellt haben, müssen wir auf einen Neustart oder darauf warten, dass der Root-Benutzer ldconfig
ausführt (falls Sie diese Binärdatei als sudo ausführen können oder sie das suid-Bit hat, können Sie sie selbst ausführen).
Sobald dies geschehen ist, überprüfen Sie erneut, wo das sharevuln
-Executable die libcustom.so
-Bibliothek lädt:
Wie Sie sehen können, lädt es von /home/ubuntu/lib
und wenn ein Benutzer es ausführt, wird eine Shell ausgeführt:
Beachten Sie, dass wir in diesem Beispiel keine Berechtigungen erhöht haben, aber durch das Modifizieren der ausgeführten Befehle und Warten auf den Root- oder einen anderen privilegierten Benutzer, der die verwundbare Binärdatei ausführt, werden wir in der Lage sein, die Berechtigungen zu erhöhen.
Andere Fehlkonfigurationen - Dieselbe Verwundbarkeit
Im vorherigen Beispiel haben wir eine Fehlkonfiguration vorgetäuscht, bei der ein Administrator einen nicht privilegierten Ordner in einer Konfigurationsdatei in /etc/ld.so.conf.d/
festgelegt hat.
Aber es gibt andere Fehlkonfigurationen, die die gleiche Verwundbarkeit 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 die gleiche Verwundbarkeit konfigurieren und ausnutzen.
Exploit 2
Angenommen, Sie haben sudo-Berechtigungen für ldconfig
.
Sie können ldconfig
angeben, wo die Konfigurationsdateien geladen werden sollen, sodass wir dies ausnutzen können, um ldconfig
anzuweisen, beliebige Ordner zu laden.
Lassen Sie uns also die benötigten Dateien und Ordner erstellen, um "/tmp" zu laden:
Jetzt, wie im vorherigen Exploit angegeben, erstellen Sie die bösartige Bibliothek im Verzeichnis /tmp
.
Und schließlich laden wir den Pfad und überprüfen, wo die Binärdatei die Bibliothek lädt:
Wie Sie sehen können, können Sie mit sudo-Rechten über ldconfig
dieselbe Schwachstelle ausnutzen.
Last updated