
A Simple Ransomware Vaccine

Une protection simple contre les rançongiciels
Nous voyons souvent des rançongiciels supprimer toutes les copies fantômes à l'aide de vssadmin. Et si nous pouvions simplement intercepter cette requête et tuer le processus à l'origine de l'appel ? Essayons de créer un simple vaccin.

Nous enregistrons un débogueur pour vssadmin.exe (et wmic.exe), qui est notre raccine.exe compilé. Raccine est un binaire qui collecte d'abord tous les PID des processus parents, puis tente de tuer tous les processus parents.
Avantages :
vssadmin.exe ou wmic.exe), ce qui pourrait entraîner des problèmes d'intégrité et casser notre raccination à chaque Patch TuesdayInconvénients / Angles morts :
vssadmin.exe delete shadows (ou de toute autre combinaison en liste noire) n'est plus possiblevssadmin.exe delete shadows, ce qui pourrait être un processus de sauvegardevssadmin.exe (par exemple via schtasks)vssadmin.exe (et wmic.exe) est interceptée et transmise à raccine.exe en tant que débogueur (vssadmin.exe delete shadows devient raccine.exe vssadmin.exe delete shadows)Combinaisons malveillantes :
delete et shadows (vssadmin, diskshadow)resize et shadowstorage (vssadmin)delete et shadowstorage (vssadmin)delete et shadowcopy (wmic)delete et catalog et -quiet (wbadmin)win32_shadowcopy ou un élément d'une liste de commandes encodées (powershell)recoveryenabled (bcedit)ignoreallfailures (bcedit)^ liste obsolète : consultez la règle YARA correspondante
Liste des commandes encodées Powershell : JAB, SQBFAF, SQBuAH, SUVYI, cwBhA, aWV4I, aQBlAHgA et bien d'autres
Emotet sans Raccine - Lien

Emotet avec Raccine - Lien (ignorez l'activité des processus liée à l'installation de Raccine)

L'infection est tuée dans l'œuf.
UTILISEZ-LE À VOS PROPRES RISQUES !
Vous ne pourrez plus exécuter de commandes utilisant les commandes en liste noire sur une machine raccinée tant que vous n'aurez pas appliqué le correctif de désinstallation raccine-reg-patch-uninstall.reg. Cela pourrait casser diverses solutions de sauvegarde qui exécutent cette commande spécifique au cours de leur travail. Cela ne bloquera pas seulement la requête, mais tuera également tous les processus de l'arborescence, y compris la solution de sauvegarde et le processus qui l'a invoquée.
Si vous disposez d'une surveillance de sécurité solide qui journalise toutes les exécutions de processus, vous pouvez consulter vos journaux pour vérifier si vssadmin.exe delete shadows, vssadmin.exe resize shadowstorage ... ou les autres lignes de commande bloquées sont utilisées fréquemment ou sporadiquement à des fins légitimes ; dans ce cas, vous devriez vous abstenir d'utiliser Raccine.
delete et shadows dans leur ligne de commande et transmet sinon tous les paramètres à un nouveau processus qui invoque vssadmin avec ses paramètres d'origineexplorer.exe de la liste blanchewmic appelant delete shadowcopy, aucune sortie pour les démarrages de processus en liste blanche (évite les problèmes de traitement de la sortie wmic)delete shadowstorage par @JohnLaTwC, revue de code par @_hillu, icône d'applicationbcdedit.exe /set {default} bootstatuspolicy ignoreallfailures et bcdedit.exe /set {default} recoveryenabled noLe package Visual C++ Redistributable et le .NET Framework seront automatiquement installés en exécutant install-raccine.bat.
Raccine.zip depuis la section Releaseraccine-installer.bat en tant qu'administrateur
Le programme d'installation par lots inclut une option « désinstallation ».
En tant qu'administrateur :
raccine-reg-patch-uninstall.reg%ProgramFiles%\Raccine et %ProgramData%\Raccinereg delete HKCU\Software\Raccine /Ftaskkill /F /IM RaccineSettings.exereg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "Raccine Tray" /Fschtasks /DELETE /TN "Raccine Rules Updater" /FNous recommandons une désinstallation puis une réinstallation pour mettre à niveau. Une désinstallation supprime toutes les clés de registre avec les configurations.
Raccine dispose d'un outil intégré de mise à jour des signatures depuis la version 1.2. Ce programme nommé RaccineRulesSync.exe est configuré pour s'exécuter une fois par jour via une tâche planifiée. Vous pouvez lancer une mise à jour des signatures manuellement en utilisant l'option du menu de l'icône de la barre d'état système.
Depuis la version 1.0, Raccine utilise également des règles YARA pour déterminer si la ligne de commande d'un processus ou son processus parent est malveillant ou non. Raccine utilise 2 ensembles de règles à deux fins différentes.
./yara - règles appliquées à la ligne de commande avec tous ses paramètres, par ex. WMIC.exe delete justatest./yara/in-memory - règles appliquées à la mémoire du processus parent de notre processus intercepté, par ex. ransomware.exe exécutant notre processus intercepté vssadmin.exeDepuis la version 1.1, nous transmettons une liste de variables externes au processus de correspondance YARA afin de permettre des règles YARA beaucoup plus complexes et astucieuses qui prennent en compte les attributs du processus et de son parent.
Le processus de correspondance se présente comme suit sur la ligne de commande :
"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
Le listing suivant montre un exemple de règle YARA qui utilise les variables externes dans sa condition.
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"
)
}
Le dossier GPO contient Raccine.ADMX et Raccine.ADML. Lors du déploiement, le fichier Raccine.ADMX se place dans C:\Windows\PolicyDefinitions. Le fichier Raccine.ADML correspondant se place dans C:\Windows\PolicyDefinitions\en-US.
Pour l'utiliser : ouvrez GPEDIT.MSC > Configuration de l'ordinateur > Modèles d'administration > Système > Raccine
Après avoir configuré les modifications, vous devrez peut-être actualiser la stratégie de groupe (GPO) en exécutant gpupdate.exe.
Un fichier journal contenant toutes les interceptions et actions effectuées est écrit dans C:\ProgramData\Raccine\Raccine_log.txt

Une entrée est générée pour chaque événement de blocage dans le journal d'événements Application.

Les ID générés par Raccine
Depuis la version 0.10.0, Raccine peut être installé en « mode simulation », qui active tous les déclencheurs, journalise toutes les actions mais ne tue rien. Ce mode doit être utilisé dans les environnements dans lesquels des solutions de sauvegarde ou d'autres logiciels légitimes tournent pendant une durée raisonnable, afin de vérifier si Raccine interférerait avec d'autres logiciels. L'idée est d'installer Raccine en mode simulation, de le laisser journaliser pendant une semaine ou un mois, puis de consulter les journaux pour voir s'il aurait bloqué des logiciels légitimes utilisés dans l'organisation.

Exécutez raccine.exe et regardez l'arborescence des processus parents mourir (capture d'écran de la v0.1)

Disponible et requise depuis la version 1.



Si le rançongiciel que vous traitez actuellement utilise un nom de processus particulier, par exemple taskdl.exe, vous pouvez simplement modifier le correctif .reg pour intercepter les appels vers ce nom et laisser Raccine tuer tous les processus parents de l'arborescence du processus à l'origine de l'appel.
J'aimerais étendre Raccine mais je manque de compétences en codage C++, en particulier sur la plateforme Windows.
Si quelque chose arrive à votre installation, par exemple des messages d'erreur soudains, des services cassés ou des programmes qui ne démarrent plus, exécutez le fichier raccine-reg-patch-uninstall.reg dans le sous-dossier reg-patches. Cela devrait tout ramener à la normale.
Après cela, vous devriez également pouvoir effectuer une désinstallation complète en utilisant install-raccine.bat.
La prononciation correcte est « Rax-Een ».
powershell.exe et win32_shadowcopy ou une liste de commandes encodéesC:\ProgramData\Raccine_log.txtdiskshadow.exe delete shadows| Variable | Description | Exemple de valeur |
|---|
| FromRaccine | true | |
| Name | Nom du fichier image | WMIC.exe |
| ExecutablePath | Chemin complet du binaire | C:\Windows\System32\wbem\WMIC.exe |
| CommandLine | Ligne de commande complète avec paramètres | WMIC.exe delete justatest |
| Priority | Priorité du processus | 32 |
| ParentName | Nom du fichier image parent | cmd.exe |
| ParentExecutablePath | Chemin complet de l'exécutable parent | C:\Windows\System32\cmd.exe |
| ParentCommandLine | Ligne de commande complète du parent avec paramètres | C:\WINDOWS\system32\cmd.exe |
| ParentPriority | Priorité du processus parent | 32 |