
A Simple Ransomware Vaccine

Ein einfacher Ransomware-Schutz
Wir sehen ziemlich oft, wie Ransomware mit vssadmin alle Schattenkopien löscht. Was wäre, wenn wir diese Anfrage einfach abfangen und den aufrufenden Prozess beenden könnten? Versuchen wir, einen einfachen Impfstoff zu erstellen.

Wir registrieren einen Debugger für vssadmin.exe (und wmic.exe), nämlich unser kompiliertes raccine.exe. Raccine ist eine Binärdatei, die zunächst alle PIDs der übergeordneten Prozesse sammelt und dann versucht, alle übergeordneten Prozesse zu beenden.
Vorteile:
vssadmin.exe oder wmic.exe) ersetzen, was zu Integritätsproblemen führen und unsere Raccination an jedem Patchday zerstören könnteNachteile / blinde Flecken:
vssadmin.exe delete shadows (oder jeder anderen blockierten Kombination) ist nicht mehr möglichvssadmin.exe delete shadows aufzurufen, was ein Backup-Prozess sein könntevssadmin.exe aufgerufen hat (z. B. über schtasks)vssadmin.exe (und wmic.exe) wird abgefangen und als Debugger an raccine.exe übergeben (vssadmin.exe delete shadows wird zu raccine.exe vssadmin.exe delete shadows)Schädliche Kombinationen:
delete und shadows (vssadmin, diskshadow)resize und shadowstorage (vssadmin)delete und shadowstorage (vssadmin)delete und shadowcopy (wmic)delete und catalog und -quiet (wbadmin)win32_shadowcopy oder ein Element aus einer Liste codierter Befehle (powershell)recoveryenabled (bcedit)ignoreallfailures (bcedit)^ veraltete Liste: siehe die entsprechende YARA-Regel
PowerShell-Liste codierter Befehle: JAB, SQBFAF, SQBuAH, SUVYI, cwBhA, aWV4I, aQBlAHgA und viele mehr
Emotet ohne Raccine – Link

Emotet mit Raccine – Link (ignorieren Sie die Prozessaktivität, die mit der Raccine-Installation zusammenhängt)

Die Infektion wird im Keim erstickt.
VERWENDUNG AUF EIGENE GEFAHR!
Sie können auf einer mit Raccine geschützten Maschine keine Befehle mehr ausführen, die die blockierten Befehle verwenden, bis Sie den Deinstallations-Patch raccine-reg-patch-uninstall.reg anwenden. Dies könnte verschiedene Backup-Lösungen beeinträchtigen, die diesen speziellen Befehl während ihrer Arbeit ausführen. Es blockiert nicht nur die Anfrage, sondern beendet auch alle Prozesse in diesem Baum, einschließlich der Backup-Lösung und des aufrufenden Prozesses.
Wenn Sie ein solides Sicherheitsmonitoring haben, das alle Prozessausführungen protokolliert, können Sie Ihre Protokolle prüfen, ob vssadmin.exe delete shadows, vssadmin.exe resize shadowstorage ... oder die anderen blockierten Befehlszeilen häufig oder gelegentlich für legitime Zwecke verwendet werden. In diesem Fall sollten Sie die Verwendung von Raccine unterlassen.
delete und shadows in ihrer Befehlszeile enthalten, und andernfalls alle Parameter an einen neuen Prozess übergibt, der vssadmin mit seinen ursprünglichen Parametern aufruftexplorer.exe aus der Whitelist entferntwmic-Methode mit Aufruf von delete shadowcopy, keine Ausgaben für Whitelist-Prozessstarts (vermeidet Probleme mit der wmic-Ausgabeverarbeitung)delete shadowstorage von @JohnLaTwC, Code-Review von @_hillu, Anwendungssymbolbcdedit.exe /set {default} bootstatuspolicy ignoreallfailures und bcdedit.exe /set {default} recoveryenabled noSowohl das Visual-C++-Redistributable-Paket als auch das .NET Framework werden beim Ausführen von install-raccine.bat automatisch installiert.
Raccine.zip aus dem Release-Bereich herunterraccine-installer.bat als Administrator aus
Der Batch-Installer enthält eine Option zum „Deinstallieren" (Uninstall).
Als Administrator:
raccine-reg-patch-uninstall.reg aus%ProgramFiles%\Raccine und %ProgramData%\Raccinereg delete HKCU\Software\Raccine /F austaskkill /F /IM RaccineSettings.exe ausreg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "Raccine Tray" /F ausschtasks /DELETE /TN "Raccine Rules Updater" /F ausWir empfehlen für ein Upgrade eine Deinstallation und Neuinstallation. Eine Deinstallation entfernt alle Registrierungsschlüssel mit Konfigurationen.
Raccine verfügt seit Version 1.2 über einen integrierten Signatur-Update-Mechanismus. Dieses Programm namens RaccineRulesSync.exe ist so konfiguriert, dass es einmal täglich über eine geplante Aufgabe ausgeführt wird. Sie können eine Signaturaktualisierung manuell über die Option im Tray-Icon-Menü ausführen.
Seit Version 1.0 verwendet Raccine zusätzlich YARA-Regeln, um festzustellen, ob eine Prozessbefehlszeile oder ein übergeordneter Prozess schädlich ist oder nicht. Raccine verwendet 2 Regelsätze für zwei verschiedene Zwecke.
./yara – Regeln, die auf die Befehlszeile mit allen Parametern angewendet werden, z. B. WMIC.exe delete justatest./yara/in-memory – Regeln, die auf den Prozessspeicher des übergeordneten Prozesses unseres abgefangenen Prozesses angewendet werden, z. B. ransomware.exe, das unseren abgefangenen Prozess vssadmin.exe ausführtSeit Version 1.1 übergeben wir eine Liste externer Variablen an den YARA-Abgleichprozess, um wesentlich komplexere und intelligentere YARA-Regeln zu ermöglichen, die Attribute des Prozesses und seines übergeordneten Prozesses berücksichtigen.
Der Abgleichprozess sieht in der Befehlszeile wie folgt aus:
"C:\Program Files\Raccine\yara64.exe" -d FromRaccine="true" -d Name="WMIC.exe" -d ExecutablePath="C:\Windows\System32\wbem\WMIC.exe" -d CommandLine="WMIC.exe delete justatest" -d Priority=32 -d FromRaccine="true" -d ParentName="cmd.exe" -d ParentExecutablePath="C:\Windows\System32\cmd.exe" -d ParentCommandLine="'C:\WINDOWS\system32\cmd.exe' " -d ParentPriority=32 C:\ProgramData\Raccine\yarayara\mal_emotet.yar C:\ProgramData\Raccine\yara\Rac1C6A.tmp
Das folgende Listing zeigt eine Beispiel-YARA-Regel, die die externen Variablen in ihrer Bedingung verwendet.
rule env_vars_test {
condition:
Name contains "WMIC.exe"
and CommandLine contains "delete justatest"
and ParentPriority >= 8
and (
ParentCommandLine contains "cmd"
or ParentCommandLine contains "powershell"
)
}
Der Ordner GPO enthält Raccine.ADMX und Raccine.ADML. Bei der Bereitstellung kommt die Datei Raccine.ADMX nach C:\Windows\PolicyDefinitions. Die zugehörigen Raccine.ADML-Dateien kommen nach C:\Windows\PolicyDefinitions\en-US.
Zur Verwendung: Öffnen Sie GPEDIT.MSC > Computerkonfiguration > Administrative Vorlagen > System > Raccine
Nach dem Konfigurieren der Änderungen müssen Sie die GPO möglicherweise durch Ausführen von gpupdate.exe aktualisieren.
Eine Protokolldatei mit allen Abfangvorgängen und ausgeführten Aktionen wird unter C:\ProgramData\Raccine\Raccine_log.txt geschrieben.

Für jedes Blockierungsereignis wird ein Eintrag im Application-Ereignisprotokoll erzeugt.

Die IDs, die Raccine erzeugt
Seit Version 0.10.0 kann Raccine im „Simulationsmodus" installiert werden, der alle Auslöser aktiviert, alle Aktionen protokolliert, aber nichts beendet. Dieser Modus sollte in Umgebungen verwendet werden, in denen Backup-Lösungen oder andere legitime Software für einen angemessenen Zeitraum verwendet werden, um zu prüfen, ob Raccine andere Software beeinträchtigen würde. Die Idee ist, Raccine im Simulationsmodus zu installieren, es eine Woche oder einen Monat lang protokollieren zu lassen und dann die Protokolle zu prüfen, ob es legitime Software, die in der Organisation verwendet wird, blockiert hätte.

Führen Sie raccine.exe aus und beobachten Sie, wie der übergeordnete Prozessbaum stirbt (Screenshot von v0.1)

Verfügbar und erforderlich seit Version 1.



Falls die Ransomware, mit der Sie gerade umgehen, einen bestimmten Prozessnamen verwendet, z. B. taskdl.exe, können Sie einfach den .reg-Patch ändern, um Aufrufe dieses Namens abzufangen und Raccine alle übergeordneten Prozesse des aufrufenden Prozessbaums beenden zu lassen.
Ich würde Raccine gerne erweitern, aber mir fehlen die C++-Kenntnisse, insbesondere auf der Windows-Plattform.
Falls etwas mit Ihrer Installation passiert, z. B. plötzliche Fehlermeldungen, defekte Dienste oder Programme, die nicht mehr starten, führen Sie die Datei raccine-reg-patch-uninstall.reg im Unterordner reg-patches aus. Das sollte alles wieder in den Normalzustand versetzen.
Danach sollten Sie auch in der Lage sein, eine vollständige Deinstallation mit install-raccine.bat durchzuführen.
Die richtige Aussprache ist „Rax-Een".
powershell.exe und win32_shadowcopy oder eine Liste codierter BefehleC:\ProgramData\Raccine_log.txtdiskshadow.exe delete shadows| Variable | Beschreibung | Beispielwert |
|---|
| FromRaccine | true | |
| Name | Name der Imagedatei | WMIC.exe |
| ExecutablePath | Vollständiger Pfad zur Binärdatei | C:\Windows\System32\wbem\WMIC.exe |
| CommandLine | Vollständige Befehlszeile mit Parametern | WMIC.exe delete justatest |
| Priority | Prozesspriorität | 32 |
| ParentName | Name der Imagedatei des übergeordneten Prozesses | cmd.exe |
| ParentExecutablePath | Vollständiger Pfad zur ausführbaren Datei des übergeordneten Prozesses | C:\Windows\System32\cmd.exe |
| ParentCommandLine | Vollständige Befehlszeile des übergeordneten Prozesses mit Parametern | C:\WINDOWS\system32\cmd.exe |
| ParentPriority | Priorität des übergeordneten Prozesses | 32 |