Stoppez Cryptolocker avant qu’il ruine votre journée


Ceci est pour les serveurs 2003R2, 2008, 2008R2 et 2012R2.

(Sous certaines versions, les scripts Powershell ne fonctionneront pas car des fonctions ne sont pas prises en charge)

Le but est simple. Lorsqu’un poste sur le réseau est infecté, il encrypte les documents disponibles sur les serveurs auxquels il a accès.

S’il est possible d’empêcher l’infection en limitant dramatiquement les droits, cela provoque une gêne auprès des utilisateurs, et parfois de certaines applications.

Aussi, l’autre solution est de protéger les serveurs.

Mais voilà, le poste infecté est le poste client, et il encrypte les données sur le serveur, ce qui en soi, n’est pas une infection. Donc… l’antivirus sur le serveur sera inutile dans cette tache.

Alors, comment s’y prendre?

CryptoLocker créé des fichiers types et récurent dont on peut faire une liste.

Si un de ces fichiers apparaît sur le serveur… celui-ci peut lancer un courriel d’alerte à l’utilisateur, à l’administrateur, à la concierge, au beau frère du cousin de la tante par 3e alliance, et pourquoi pas, s’auto protéger en coupant l’accès de l’utilisateur.

Bon, effectivement l’option du beau frère est peu utile…

Comment faire?

Installer le rôle FSRM sur le serveur:

FSRM (Gestionnaire de ressources du serveur de fichiers)

Sous Windows, dans le Gestionnaire de Serveur: Ajouter des rôles et fonctionnalités.

2016-12-13_084618

En powershell:

Windows Server 2012 et supérieur
Install-WindowsFeature –Name FS-Resource-Manager –IncludeManagementTools
Windows Server 2008 / 2008 R2
Add-WindowsFeature FS-FileServer,FS-Resource-Manager

Création de la liste des fichiers Crypto:

Ouvrir le gestionnaire de ressources du serveur de fichier

2015-12-10_223258

2015-12-10_223356

Il faut établir une liste de fichiers types créés par CryptoLocker:

Gestion du filtrage de fichiers

  1. Groupes de fichiers
  2. Créer un groupe de fichiers
  3. Nommer le groupe
  4. Ajouter les filtres
  5. Validez

 

2015-12-10_223426

J’ai nommé le groupe FichierCrypto

2015-12-10_223557

J’ai ajouté la liste suivante:

!readme.*
*.aaa
*.bart.zip
*.cawwcca
*.cerber
*.cerber2
*.cerber3
*.coverton
*.crjoker
*.cry
*.cryp1
*.crypt
*.cryptotorlocker*
*.crypz
*.ecc
*.enc
*.encrypt
*.encrypted
*.exx
*.ezz
*.fantom
*.frtrss
*.ha3
*.hydracrypt_id*
*.locked
*.locky
*.micro
*.r5a
*.rsnslocked
*.scl
*.silent
*.ttt
*.vault
*.vvv
*.wflx
*.xtbl
*.xxx
*.zcrypt
*.zepto
*decrypt my file*.*
*decrypt your file*.*
*decrypt_your_file*.*
*decryptmyfiles*.*
*files_are_encrypted.*
*gmail*.crypt
*help decrypt*.*
*help_instruct*.*
*rec0ver*.*
*recover!*.*
*recover-*.*
*recover_*.*
*recover}-*.*
*recover+*.*
*restore_fi*.*
*want your files back.*
*warning-!!*.*
confirmation.key
cryptolocker.*
de_crypt_readme.*
decrypt_instruct*.*
decrypt-instruct*.*
enc_files.txt
help_file_*.*
help_recover*.*
help_restore*.*
help_your_file*.*
how to decrypt*.*
how_recover*.*
how_to_decrypt*.*
how_to_recover*.*
how_to_unlock*.*
howto_restore*.*
howtodecrypt*.*
install_tor*.*
last_chance.txt
message.txt
readme.bmp
readme_decrypt*.*
readme_for_decrypt*.*
recovery_file.txt
recovery_key.txt
recovery+*.*
vault.hta
vault.key
vault.txt
your_files.url
*.bart
*.odin
_howdo_text.*
readme_recover_files*.*
*.dxxd
*.fs0ciety
*.purge
how to restore*.*
readme.hta
*.shit
*.thor
how_to_restore*.*
*.aesir
*-instruction.html
*-instruction.bmp
*.zzzzz
*help_decrypt*.*
osiris-*.htm
*.osiris
_readme_*.hta
x_placeholder_batch_v0015.txt

C’est en général les fichiers que CryptoLocker ajoute, ou les terminaisons des fichiers encryptés.

Bon… je vois parmi vous de gros paresseux qui n’ont pas envie de saisir la liste…

Voici un Batch. Copier/Coller dans un fichier texte, et enregistrer en FichierCryptoGroupFichier.bat

Il faut avoir créé le groupe avec un filtre au moins.

Exécutez le fichier sur le serveur… Et la liste est faite.

echo off
filescrn.exe filegroup modify /filegroup:"FichierCrypto" /members:"!readme.*|*.aaa|*.bart.zip|*.cawwcca|*.cerber|*.cerber2|*.cerber3|*.coverton|*.crjoker|*.cry|*.cryp1|*.crypt|*.cryptotorlocker*|*.crypz|*.ecc|*.enc|*.encrypt|*.encrypted|*.exx|*.ezz|*.fantom|*.frtrss|*.ha3|*.hydracrypt_id*|*.locked|*.locky|*.micro|*.r5a|*.rsnslocked|*.scl|*.silent|*.ttt|*.vault|*.vvv|*.wflx|*.xtbl|*.xxx|*.zcrypt|*.zepto|*decrypt my file*.*|*decrypt your file*.*|*decrypt_your_file*.*|*decryptmyfiles*.*|*files_are_encrypted.*|*gmail*.crypt|*help decrypt*.*|*help_instruct*.*|*rec0ver*.*|*recover!*.*|*recover-*.*|*recover_*.*|*recover}-*.*|*recover+*.*|*restore_fi*.*|*want your files back.*|*warning-!!*.*|confirmation.key|cryptolocker.*|de_crypt_readme.*|decrypt_instruct*.*|decrypt-instruct*.*|enc_files.txt|help_file_*.*|help_recover*.*|help_restore*.*|help_your_file*.*|how to decrypt*.*|how_recover*.*|how_to_decrypt*.*|how_to_recover*.*|how_to_unlock*.*|howto_restore*.*|howtodecrypt*.*|install_tor*.*|last_chance.txt|message.txt|readme.bmp|readme_decrypt*.*|readme_for_decrypt*.*|recovery_file.txt|recovery_key.txt|recovery+*.*|vault.hta|vault.key|vault.txt|your_files.url|*.bart|*.odin|_howdo_text.*|readme_recover_files*.*|*.dxxd|*.fs0ciety|*.purge|how to restore*.*|readme.hta|*.shit|*.thor|how_to_restore*.*|*.aesir|*-instruction.html|*-instruction.bmp|*.zzzzz|*help_decrypt*.*|osiris-*.htm|*.osiris|_readme_*.hta|x_placeholder_batch_v0015.txt"
echo.
pause
exit

Astuce pour mettre à jour la liste (depuis les listes de https://fsrm.experiant.ca/ )

Pour créer la liste

new-FsrmFileGroup -name « FichierCrypto » -IncludePattern @((Invoke-WebRequest -Uri « https://fsrm.experiant.ca/api/v1/combined » -UseBasicParsing).content | convertfrom-json | % {$_.filters})

Pour mettre à jour:

set-FsrmFileGroup -name « FichierCrypto » -IncludePattern @((Invoke-WebRequest -Uri « https://fsrm.experiant.ca/api/v1/combined » -UseBasicParsing).content | convertfrom-json | % {$_.filters})

Création du modèle de filtre de fichiers:

Il faut maintenant mener une ou des actions par rapport à cette liste.

Dans: Gestion du filtrage de fichiers –> Modèle de filtres de fichiers

2015-12-10_223936

Créons un nouveau modèle de filtre.

Il faut lui donner un nom (FichierCrypto) mettre le filtre en passif, et sélectionner le groupe de fichier définit plus haut, FichierCrypto.

AU choix filtrage Actif (les fichiers sont bloqués avant écriture dans 99% des cas c’est le choix à faire) Passif les fichiers sont écrit et un courriel est envoyé.

2016-12-13_082702

Onglet Messagerie électronique:

Vous définissez le message à adresser lors de la détection d’un fichier correspondant au filtre, et à qui l’adresser.

Vérifiez que le serveur de messagerie est bien renseigné:

Action -> Configurer les options

2016-12-13_081907

À mon humble avis, l’utilisateur, l’administrateur, et le support… et le beau frère.

*2015-12-10_224153

Onglet Journal des événements:

Il est toujours utile de laisser une trace de la détection de fichiers suspicieux.

2015-12-10_224209

Onglet Commande:

Là, il s’agit de l’action à mener sur le serveur.

Faite un batch, sélectionnez-le via parcourir, afin qu’il s’exécute lors de la détection des fichiers.

2015-12-10_224406

Mais… quoi comme batch?

Par exemple, tuer les sessions en cours sur le serveur (si RDS car si il ne sert que de DATA, c’est inutile)

net session /delete /y

Si vous avez laissé le firewall en créant des règles, verrouiller le firewall de façon à bloquer l’accès pour rouvrir plus tard.

Exemple:

ECHO Backup method to prevent access to shares...
REM You will have to re-enable these Windows firewall rules later
REM For servers in domain zone
netsh advfirewall firewall set rule name="File and Printer Sharing (Echo Request - ICMPv4-In)" new enable=no profile=domain
netsh advfirewall firewall set rule name="File and Printer Sharing (Echo Request - ICMPv6-In)" new enable=no profile=domain
netsh advfirewall firewall set rule name="File and Printer Sharing (LLMNR-UDP-In)" new enable=no profile=domain
netsh advfirewall firewall set rule name="File and Printer Sharing (NB-Datagram-In)" new enable=no profile=domain
netsh advfirewall firewall set rule name="File and Printer Sharing (NB-Name-In)" new enable=no profile=domain
netsh advfirewall firewall set rule name="File and Printer Sharing (NB-Session-In)" new enable=no profile=domain
netsh advfirewall firewall set rule name="File and Printer Sharing (SMB-In)" new enable=no profile=domain
netsh advfirewall firewall set rule name="File and Printer Sharing (Spooler Service - RPC)" new enable=no profile=domain
netsh advfirewall firewall set rule name="File and Printer Sharing (Spooler Service - RPC-EPMAP)" new enable=no profile=domain
REM Just incase server is in private zone
netsh advfirewall firewall set rule name="File and Printer Sharing (Echo Request - ICMPv4-In)" new enable=no profile=private
netsh advfirewall firewall set rule name="File and Printer Sharing (Echo Request - ICMPv6-In)" new enable=no profile=private
netsh advfirewall firewall set rule name="File and Printer Sharing (LLMNR-UDP-In)" new enable=no profile=private
netsh advfirewall firewall set rule name="File and Printer Sharing (NB-Datagram-In)" new enable=no profile=private
netsh advfirewall firewall set rule name="File and Printer Sharing (NB-Name-In)" new enable=no profile=private
netsh advfirewall firewall set rule name="File and Printer Sharing (NB-Session-In)" new enable=no profile=private
netsh advfirewall firewall set rule name="File and Printer Sharing (SMB-In)" new enable=no profile=private
netsh advfirewall firewall set rule name="File and Printer Sharing (Spooler Service - RPC)" new enable=no profile=private
netsh advfirewall firewall set rule name="File and Printer Sharing (Spooler Service - RPC-EPMAP)" new enable=no profile=private
REM Just incase server is in public zone
netsh advfirewall firewall set rule name="File and Printer Sharing (Echo Request - ICMPv4-In)" new enable=no profile=public
netsh advfirewall firewall set rule name="File and Printer Sharing (Echo Request - ICMPv6-In)" new enable=no profile=public
netsh advfirewall firewall set rule name="File and Printer Sharing (LLMNR-UDP-In)" new enable=no profile=public
netsh advfirewall firewall set rule name="File and Printer Sharing (NB-Datagram-In)" new enable=no profile=public
netsh advfirewall firewall set rule name="File and Printer Sharing (NB-Name-In)" new enable=no profile=public
netsh advfirewall firewall set rule name="File and Printer Sharing (NB-Session-In)" new enable=no profile=public
netsh advfirewall firewall set rule name="File and Printer Sharing (SMB-In)" new enable=no profile=public
netsh advfirewall firewall set rule name="File and Printer Sharing (Spooler Service - RPC)" new enable=no profile=public
netsh advfirewall firewall set rule name="File and Printer Sharing (Spooler Service - RPC-EPMAP)" new enable=no profile=public

Ou couper les partages.

Exemple à adapter à vos partages:

ECHO Remove all shares...
REM Copy the lines below for every share name on this server, in this example shares are 'home' and 'public'
REM This simply removes the share so additional files cannot get encrypted
REM It does not delete the actual folder, but you will have to add the share back later
net share home /delete /y
net share public /delete /y
net share _A_Crypto /delete /y

Ou envoyer un message à l’écran de tous les postes à travers un domaine.

Vous trouverez les scripts sur JPElectron.

Une fois fait, vous validez, Appliquez le modèle à tous les filtres de fichiers dérivés

2015-12-11_130136

Puis il faut appliquer cette règle:

Créer un filtre de fichiers

Choisir le répertoire ou l’appliquer, la règle FichierCrypto

2015-12-11_125825

 

Et votre serveur SMTP? Vous l’avez configuré?

Il faut tout vous dire!

Clic-Droit sur gestion des ressources du serveur

Configurer les options

2015-12-10_224625

Et il ne vous reste plus qu’à compléter…

Mettez à 2min dans l’onglet Limites de notification.

2015-12-10_224650

Ainsi, dès qu’un fichier est modifié par un crypto, vous recevez un courriel du type:

2015-12-11_131919

Évidemment, vous ne serez pas protégé contre CryptoLocker et ses amis.

Mais dès que le serveur est infecté… vous le savez. Vous gagnez de 1h à 3 semaines, si ce n’est plus, et vous limitez grandement la perte, et le temps de retour à la normale.

 

Quoi faire d’autre pour se protéger?

  • Avoir un filtrage internet qui bloque les sites néfastes.
  • Bloquer les URLs en IP depuis le firewall. Qui se connecte à une URL avec une adresse IP si ce n’est un vilain garçon?
  • Bloquer les serveurs DNS externes, que seul vos serveurs DNS soient utilisable dans votre domaine.
  • Avoir uniquement les ports nécessaires d’ouvert sur le firewall.
  • Utiliser CryptoPrevent de Foolish IT sur les postes utilisateurs. (Les règles standards)
  • Songez à la possibilité d’avoir une GPO ou SRP pour gérer une liste de logiciels autorisés.
  • Un antivirus est impératif sur les postes des utilisateurs.

 

Et pour se désinfecter?

Publicités

2 réflexions au sujet de « Stoppez Cryptolocker avant qu’il ruine votre journée »

  1. Astuce pour mettre à jour la liste (depuis les listes de https://fsrm.experiant.ca/ )

    Pour créer la liste

    new-FsrmFileGroup -name « FichierCrypto » -IncludePattern @((Invoke-WebRequest -Uri « https://fsrm.experiant.ca/api/v1/combined » -UseBasicParsing).content | convertfrom-json | % {$_.filters})

    Pour mettre à jour:

    set-FsrmFileGroup -name « FichierCrypto » -IncludePattern @((Invoke-WebRequest -Uri « https://fsrm.experiant.ca/api/v1/combined » -UseBasicParsing).content | convertfrom-json | % {$_.filters})

    J'aime

Laisser un commentaire

Choisissez une méthode de connexion pour poster votre commentaire:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s