Im März haben wir bereits einen Blogartikel über Relative Path Hijacking in Windows veröffentlicht. Darin zeigen wir eine offene Schwachstelle in aktuellen Windows-Versionen auf, die es Angreifern ermöglicht, eigenen Code in DLL-Dateien über vertrauenswürdige Windows-Anwendungen auszuführen.
In diesem Blogartikel widmen wir uns dementsprechend fortführend mit potentiellen Erkennungsmöglichkeiten dieser Schwachstelle.
Disclaimer: Als “Proof of Concept” wurde die Windows-Anwendung calc.exe verwendet, um maliziöse DLLs nachzuladen. Wir können hier von einer Kombination aus “Relative Path Hijacking” und “DLL Side-Loading” sprechen.
Erkennung von DLL Hijacking unter Windows
Um einen solchen Angriff zu erkennen, gibt es mehrere Möglichkeiten:
- Sysmon-Logs mithilfe eines SIEM auswerten: Sysmon kann das Laden von DLLs überwachen und verdächtige Aktivitäten aufzeigen.
- Prefetch-Dateien untersuchen: Windows speichert Informationen zu ausgeführten Programmen und deren geladenen DLLs in Prefetch-Dateien.
Überprüfung mithilfe eines SIEM in Kombination mit Sysmon
Wir haben in unserem Lab eine Splunk-Instanz aufgesetzt und Sysmon für zusätzliche Sichtbarkeit installiert. Sysmon bietet den Vorteil, dass es bereits Erkennungen mitbringt und diese nur durch Splunk Searches dargestellt werden müssen.
Um Sysmon zu installieren, wird die Anwendung von Microsoft aus den Sysinternals Suite heruntergeladen. Wichtig für die Installation ist eine Konfigurationsdatei. Eine Beispieldatei findet sich ebenfalls auf der offiziellen Microsoft-Seite.
Klar zu sehen ist, dass hier DLL Side-Loading erkannt wurde. Beim DLL Sideloading legen Angreifer eine manipulierte DLL in das Verzeichnis einer legitimen, vertrauenswürdigen Anwendung ab und starten diese gezielt (siehe eingangs erwähnten Blogpost). Die Anwendung lädt dann automatisch die schädliche DLL, weil sie diese erwartet. Der Angreifer muss also nicht auf den Start der Anwendung durch das Opfer warten, sondern kann die Payload direkt einbringen. Genau das ist zu Testzwecken passiert.
Sysmon erkennt diesen Ansatz und loggt das entsprechende Event. Zusätzlich wird auch das entsprechende TTP aus dem MITRE ATT&CK Framework referenziert. Mit einer simplen Splunk-Suche lässt sich gezielt nach solchen Events suchen und eine Alarmierung auslösen.
Überprüfung mittels Prefetch-Dateien
Liegt ein forensisches Image vor, kann DLL Hijacking ebenfalls durch Prefetch Dateien nachgewiesen werden. Prefetch-Dateien enthalten Informationen zu ausgeführten Programmen und deren geladenen DLLs. Diese befinden sich unter C:\Windows\Prefetch und lassen sich entweder mithilfe eines Textprogramms manuell analysieren oder durch für solche Fälle spezialisierte Tools. Für den hier vorliegenden Fall wurde PECmd von Eric Zimmermann genutzt.
Voraussetzung hierzu ist, dass die entsprechend benutzte Windows-Anwendung bekannt ist.
Verhinderung des Angriffspfads durch Application Allow Listing
Idealerweise sollte ein solcher Angriff nicht nur erkannt oder im Rahmen forensischer Analysen nachvollzogen, sondern bereits im Vorfeld zuverlässig blockiert werden. Auch wenn es sich wie in diesem Beispiel um eine vertrauenswürdige und signierte Microsoft-Applikationen handelt, kann ein konsequent umgesetztes Application Allow Listing solche Angriffswege effektiv unterbinden. Voraussetzung dafür ist, dass die eingesetzte Sicherheitslösung so konfiguriert ist, dass nicht nur ausführbare Dateien, sondern auch referenzierte DLLs ausschließlich dann geladen werden dürfen, wenn sie aus vertrauenswürdiger Quelle stammen und entsprechend signiert sind. Eine praxistaugliche Möglichkeit zur Umsetzung dieser Schutzmaßnahme unter Windows bietet das kostenlose Tool Windows Defender Application Control (WDAC). Mit dem App Control Policy Wizard lassen sich entsprechende Richtlinien schnell und benutzerfreundlich konfigurieren.
Fazit
Die Erkennung von Relative Path DLL Hijacking erfordert eine Kombination aus Log-Analyse, Speicherprüfung und Dateiüberwachung. Mit Tools wie Sysmon, Splunk und Prefetch-Analyse lassen sich verdächtige Aktivitäten effizient aufspüren. Ein regelmäßiges Monitoring, das Absichern der Suchpfade, sowie Application Allow Listing, können helfen, Angriffe zu verhindern.
Weitere Beiträge
von Sarah & Timo Sablowski
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Weitere Artikel in diesem Themenbereich
Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.
Blog-Autor*innen
Sarah
IT Security Consultant
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Timo Sablowski
Principal IT Security Consultant
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.