Maschinen Sicherung ist immer ein laufender Prozess, ob es Einstellungen von Sperren ist, Anwendungen zu blockieren, Windows-Dienste zu deaktivieren, um sicherzustellen, Benutzerrechte auf ein Minimum beschränkt werden und so weiter. Wenn wir dann nicht tun, werden die Benutzer die Installation von Nicht-Standard-Software am Ende, Änderungen an dem System zu machen, tun Malware einmal mehr Schaden beeinträchtigt zu werden, usw. Dieser Beitrag ist über Schwächen in Berechtigungen Ordner zur Erhöhung von Berechtigungen führen durch DLL-Hijacking Schwachstellen mit in Windows Services.
Was ist DLL-Hijacking? Vor ein paar Jahren war es ziemlich viel Hype bösartige DLLs remote oder lokal aus dem aktuellen Arbeitsverzeichnis zu laden zu können. Der Microsoft-Artikel [1] erklärt es klar
"Wenn eine Anwendung lädt dynamisch eine Dynamic Link Library, ohne einen vollständigen Pfadnamen angibt, versucht Windows die DLL zu finden, indem Sie eine gut definierte Gruppe von Verzeichnissen in einer bestimmten Reihenfolge zu suchen. Wenn ein Angreifer die Kontrolle über eines der Verzeichnisse auf der DLL-Suchpfad, kann es eine böswillige Kopie der DLL in diesem Verzeichnis abgelegt werden. Dies wird manchmal eine DLL-Vorbelastung Angriff oder eine binäre Pflanzung Angriff bezeichnet. Wenn das System nicht eine legitime Kopie der DLL nicht finden, bevor es das kompromittierte Verzeichnis sucht, lädt es die bösartige DLL. Wenn die Anwendung mit Administratorrechten ausgeführt wird, kann der Angreifer in der lokalen Erhöhung von Berechtigungen erfolgreich zu sein. "
Also, wenn eine Anwendung eine DLL nur durch seinen Namen lädt geht es durch die Suchauftrag unter (32bit OS), um die Bibliothek zu finden
Was beuten wir? Das Ziel hier ist es, lokale Admin-Rechte auf der Maschine zu bekommen. Um dies zu erreichen, müssen wir drei Dinge, diese Arbeit zu machen
Windows-DLL-Suchreihenfolge die Verzeichnisse der Pfadumgebungsvariablen sind die letzte Suche es führt, beginnend mit der Systemvariablen Pfad und dann die Benutzervariablen Pfad in Windows DLL-Suchreihenfolge. Es sei denn, die Anwendung für die DLL einen vollständigen Pfadnamen nicht verwendet hat, wird es versuchen, die DLL durch die Suchauftrag auch mit bestimmten mitigations an ihrem Platz zu finden.
DLL-Hijacking Verwundbarkeit Eine schnelle Möglichkeit, DLL-Hijacking Schwachstellen zu finden, ist Process Monitor zu starten, Setup die entsprechende Filterung und führen einige Aktionen. Hier werden wir Windows Services zu nutzen, wie eine große Anzahl von Diensten auf SYSTEM-Rechten ausgeführt, nur durch Anhalten und dem Starten der Dienste und die Beobachtung der Suchmuster. Beachten Sie, dass Dienstleistungen unter SYSTEM läuft nicht durch Benutzerpfad Umwelt nicht zu suchen. Nach dem Anhalten und Starten von Dienstleistungen eine Reihe von Schwachstellen entdeckt worden war.
Ein Windows-Dienst ist die "IKE und AuthIP IPsec-Schlüssel Module" Dieser Dienst wird nicht gestartet und auf manuell gesetzt standardmäßig aber könnte gestartet werden oder auf Automatisch von VPN-Clients, Richtlinien, andere Dienstleistungen, etc. Für jemanden, der versucht lokalen Admin zu erhalten Rechte Process Monitor Start wird nicht möglich sein, mit begrenzten Berechtigungen der die Schritte durchgehen lassen, wenn wir Rechte nicht haben. In diesem Beispiel wird der IKE-Dienst verwendet, aber es kann jeder Dienst für Software, die Sie keinen direkten Zugriff auf und müssen zu prüfen haben.
Lassen Sie uns zunächst Kenntnis von der ausführbaren Dienst durch Windows-Dienste nehmen (sagen services.msc über Fahrbefehl) zu überprüfen, ob ihr Status hat begonnen und läuft unter Localsystem.
Jetzt in der Registrierung zu überprüfen, ob es irgendwelche Service-DLLs durch den Dienst geladen
Wir können diese Dateien (svchost.exe und IKEEXT.DLL) kopieren aus auf eine andere Maschine unsere statische Analyse zu tun. Nachdem in IDA Laden und einfach für Loadlibrary Suche und auf den Anruf springen wird zeigen, welche Bibliothek zu laden wird. Wenn ein vollständig qualifizierter Pfad nicht angegeben wird, dann können wir in Glück. Hier in IKEEXT.DLL LoadLibraryW werden versuchen, "wlbsctrl.dll" zu laden
Hinweis: Es ist nicht immer so einfach wie in diesem Beispiel, wie die DLL nennen könnte vollständig qualifizierten Pfadnamen verwenden, aber bei der Kompilierung mit einem anderen DLL verknüpft, die diese bei der Ladezeit wird versuchen, zu laden, die anfällig sein könnten wegen in ein anderes Wesen Ordner oder nicht verfügbar.
Schließlich suchen wir für die Bibliothek wlbsctrl.dll auf dem System zu sehen, ob es existiert, und wenn ja, zur Kenntnis nehmen, wo es sich befindet.
Das Windows Media Center Services Starttyp auf manuell gesetzt und Status nicht gestartet und wird nur geben uns Netzwerk-Service-Privilegien nur, damit ich es nicht zu sein viel Einsatz vor allem mit seinen eingeschränkten Rechten zu sehen. Es kann jedoch vorübergehend über bestimmte geplante Tasks gestartet werden.
Früher trug ich Tests auf CWDIllegalInDllSearch Werte aus, die Sie die Ergebnisse auf meinem früheren überprüfen können.