Windows Dateiserver vor Verschlüsselungstrojanern schützen – PowerShell Script

Bereits im letzten Beitrag habe ich auf den Ansatz von Frankys Web Blog zum Schutz von Dateiservern vor hingewiesen. Gerade für Administratoren welche diese Arbeit ggf. an vielen Systemen durchführen müssen habe ich ein PowerShell Skript erstellt welche die Aufgabe vollständig automatisiert. Das Skript funktioniert ab .

Dabei müssen im Skript selber die Variablen für die zu schützende Freigabe den Mailserver, Mail-Sender und Empfänger angegeben werden. Anschließende werden der Ressourcen-Manager für Dateidienste installiert, eine Dateigrupppe „Ransomware“ mit den entsprechenden Dateiendungen sowie eine Dateiprüfung mit E-Mail Benachrichtigung, Eventlog Notiz und einem Kommando zum beenden der Freigabe und Druckdienste angelegt.

# Freigaben welche geschützt werden sollen

$freigabe = "C:\temp"

# Konfiguriere Mailserver für E-Mail Benachrichtigungen
$mailto = "[email protected]; [Source File Owner Email]"
$mailfrom = "[email protected]"
$smtpserver = "server.meinemail.de"

# Verbotene Dateiendungen
$ransomware = @( `
"*.k", `
"*.encoderpass", `
"*.locky", ` 
"*.key", `
"*.ecc", `
"*.ezz", `
"*.exx", `
"*.zzz", `
"*.xyz", `
"*.aaa", `
"*.abc", `
"*.ccc", `
"*.vvv", `
"*.xxx", `
"*.ttt", `
"*.micro", `
"*.encrypted", `
"*.locked", `
"*.crypto", `
"_crypt", `
"*.crinf", `
"*.r5a", `
"*.xrtn", `
"*.XTBL", `
"*.crypt", `
"*.R16M01D05", `
"*.pzdc", `
"*.good", `
"*.LOL!", `
"*.OMG!", `
"*.RDM", `
"*.RRK", `
"*.encryptedRSA", `
"*.crjoker", `
"*.EnCiPhErEd", `
"*.LeChiffre", `
"*[email protected]_com", `
"*.0x0", `
"*.bleep", `
"*.1999", `
"*.vault", `
"*.HA3", `
"*.toxcrypt", `
"*.magic", `
"*.SUPERCRYPT", `
"*.CTBL", `
"*.CTB2", `
"*.locky", `
"*.zepto", `
"HELPDECRYPT.TXT", `
"HELP_YOUR_FILES.TXT", `
"HELP_TO_DECRYPT_YOUR_FILES.txt", `
"RECOVERY_KEY.txt", `
"HELP_RESTORE_FILES.txt", `
"HELP_RECOVER_FILES.txt", `
"HELP_TO_SAVE_FILES.txt", `
"DecryptAllFiles.txt", `
"DECRYPT_INSTRUCTIONS.TXT", `
"INSTRUCCIONES_DESCIFRADO.TXT", `
"How_To_Recover_Files.txt", `
"YOUR_FILES.HTML", `
"YOUR_FILES.url", `
"encryptor_raas_readme_liesmich.txt", `
"Help_Decrypt.txt", `
"DECRYPT_INSTRUCTION.TXT", `
"HOW_TO_DECRYPT_FILES.TXT", `
"ReadDecryptFilesHere.txt", `
"Coin.Locker.txt", `
"_secret_code.txt", `
"About_Files.txt", `
"Read.txt", `
"ReadMe.txt", `
"DECRYPT_ReadMe.TXT", `
"DecryptAllFiles.txt", `
"FILESAREGONE.TXT", `
"IAMREADYTOPAY.TXT", `
"HELLOTHERE.TXT", `
"READTHISNOW!!!.TXT", `
"SECRETIDHERE.KEY", `
"IHAVEYOURSECRET.KEY", `
"SECRET.KEY", `
"HELPDECYPRT_YOUR_FILES.HTML", `
"help_decrypt_your_files.html", `
"HELP_TO_SAVE_FILES.txt", `
"RECOVERY_FILES.txt", `
"RECOVERY_FILE.TXT", `
"RECOVERY_FILE*.txt", `
"HowtoRESTORE_FILES.txt", `
"HowtoRestore_FILES.txt", `
"howto_recover_file.txt", `
"restorefiles.txt", `
"howrecover+*.txt", `
"_how_recover.txt", `
"recoveryfile*.txt", `
"recoverfile*.txt", `
"recoveryfile*.txt", `
"Howto_Restore_FILES.TXT", `
"help_recover_instructions+*.txt", `
"_Locky_recover_instructions.txt")

# Variablen für den Betreff der Mail
$subject = 'Nicht autorisierte Datei aus der Dateigruppe "[Violated File Group]" festgestellt.'
$body = 'Vom Benutzer "[Source Io Owner]" wurde der Versuch unternommen, die Datei "[Source File Path]" unter "[File Screen Path]" auf dem Server "[Server]" zu speichern. Diese Datei befindet sich in der Dateigruppe "[Violated File Group]", die auf dem Server nicht zulässig ist.'

# Installiert den Resourcen-Manager für Dateiserver
Install-WindowsFeature FS-Resource-Manager, RSAT-FSRM-Mgmt

# Setzt die Grundeinstellung 
Set-FsrmSetting -SmtpServer $smtpserver -FromEmailAddress $mailfrom

# Erstellt die Dateigruppe
New-FsrmFileGroup -Name "Ransomware" -IncludePattern $ransomware

# Anpassung der Benachrichtigung 
$Notification1 = New-FsrmAction -Type Email -MailTo $mailto -RunLimitInterval 120 -Subject $subject -Body $body
$Notification2 = New-FsrmAction Event -EventType Information -Body 'The user [File Owner] is about to reach the end of his available storage.' -RunLimitInterval 120
$Notification3 = New-FsrmAction Command -Command "c:\windows\system32\cmd.exe"-CommandParameters '/c "net stop lanmanserver /y"' -ShouldLogError

# Erstellung der Regel
New-FsrmFileScreen -Path $freigabe -Description "Schutz vor Ransomware" -IncludeGroup Ransomware -Active -Notification $Notification1, $Notification2, $Notification3

Damit beim kopieren des Skriptes nicht zu viele Fehler mitgenommen werden hier der Download-Link: fsrm-ransomware-v1.zip

Um weite Dateiendungen in die Liste aufzunehmen reicht der folgende Befehl:

Set-FsrmFileGroup -Name Ransomware -IncludePattern @("*.test1", "*.test2")

Die entsprechenden CMDLETs sind leider erst ab Windows Server 2012 R2 verfügbar. In früheren Versionen kann man aber diese Liste über den FILESCRM (Microsoft) nachpflegen. Dieser Befehl kann die Liste auch über eine XML-Datei exportieren oder importieren und funktioniert ebenfalls unter Windows Server 2012 R2 ist aber bereits als veraltet gekennzeichnet. So sieht das dann aus zum Export einer bestehenden Dateigruppe:

filescrn filegroup export /file:C:\temp\ransomware-liste.xml /filegroup:Ransomware

Bzw. um diese wieder zu importieren:

filescrn filegroup import /filegroup:Ransomware /file:C:\temp\ransomware-liste.xml /overwrite

Die XML stelle ich ebenfalls gerne zum Download bereit: ransomware-liste-xml-v1-20160922.zip (Stand 22.09.2016)

Für Änderungsvorschläge, Weiterentwicklung und Unterstützung bin ich wie immer sehr dankbar! Viel Erfolg bei der Crypto-Abwehr!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.