LockTheSystem est un ransomware très récemment diffusé en Italie (une nouvelle campagne est actuellement en cours) via des e-mails rédigés en italien. L’e-mail a été identifié par D3lab qui a partagé l’échantillon avec le CERT-AGID qui l’a analysé.
Le fichier joint à l’e-mail est de type .RAR dans lequel se trouve un fichier JS auquel est déléguée la tâche de téléchargement d’un exécutable depuis un serveur distant. Dans cette analyse, nous omettons le comportement du JS qui fonctionne comme un compte-gouttes classique pour télécharger le ransomware.
LockTheSystem est le nom que le CERT-AGID a actuellement attribué au malware présent dans l’échantillon, car il n’y a toujours pas de preuve exacte de la famille à laquelle il appartient, même si certaines traces font partiellement référence à une variante possible du ransomware PROM ou Thanos .
Verrouiller l’analyse du système
L’exemple ressemble à un PE écrit en .NET avec une fonctionnalité de ransomware. Une fois lancé, le travail d’initialisation repose sur le décodage d’une longue liste de chaînes chargées en mémoire. Ci-dessous, nous détaillons les phases du processus d’initialisation effectué par le malware:
Processus d’initialisation
vérifier les processus spécifiques en cours d’exécution
lsass.exe svchst.exe crcss.exe chrome32.exe firefox.exe calc.exe mysqld.exe dllhst.exe opera32.exe memop.exe spoolcv.exe ctfmom.exe SkypeApp.ex |
exécute des commandes pour lancer des services (via net.exe)
démarrer Dnscache / y démarrer FDResPub / y démarrer SSDPSRV / y démarrer nphost / y |
exécute des commandes pour arrêter les services (via net.exe)
arrêt avpsus / y arrêt McAfeeDLPAgentService / y arrêt mfewc / y arrêt BMR service de démarrage / y arrêt BackupExecVSSProvider / y arrêt BackupExecAgentAccelerator / y arrêt BackupExecAgentBrowser / y arrêt BackupExecDiveciMediaService / y arrêt BackupExecJobEngine / y arrêt BackupExecManagementService / y arrêt BackupExecRPCService / y arrêt AcrSch2Svc / y arrête AcronisAgent / y arrête CASAD2DWebSvc / y arrête CAARCUpdateSvc / y arrête sophos / y … .. |
exécute des commandes pour désactiver ou restaurer les services à la configuration par défaut (via sc.exe)
config Dnscache start = auto config FDResPub start = auto config SSDPSRV start = auto config upnphost start = auto config SQLTELEMETRY start = disabled config SQLTELEMETRY $ ECWDB2 start = disabled config SQLWriter start = disabled config SstpSvc start = disabled |
exécute des commandes pour tuer les processus (via taskkill.exe)
/ IM mydesktopqos.exe / F / IM visio.exe / F / IM mydesktopservice.exe / F / IM winword.exe / F / IM mysqld-nt.exe / F / IM wordpad.exe / F / IM mysqld-opt. exe / F / IM ocautoupds.exe / F / IM ocssd.exe / F / IM oracle.exe / F / IM sqlagent.exe / F / IM sqlbrowser.exe / F / IM sqlservr.exe / F / IM synctime.exe / F …… |
compiler une liste des extensions d’image disque ou de fichier de sauvegarde
/ s / f /qc:*.VHD c: *. bac c: *. bak c: *. wbcat c: *. bkf c: \ Backup . c: \ sauvegarde . c: *. set c: *. win c: *. dsk / s / f /qd:*.VHD d: *. bac d: *. bak d: *. wbcat d: *. bkf d: \ Backup . d: \ sauvegarde . d: *. set d: *. win d: *. dsk / s / f /qe:*.VHD e: *. bac e: *. bak e: *. wbcat e: *. bkf e: \ Backup . e: \ sauvegarde . e: *. set e: *. win e: *. dsk / s / f /qf:*.VHD f: *. bac f: *. bak f: *. wbcat f: *. bkf f: \ Backup . f: \ sauvegarde . f: *. set f: *. win f: *. dsk / s / f /qg:*.VHD g: *. bac g: *. bak g: *. wbcat g: *. bkf g: \ Backup . g: \ sauvegarde . g: *. set g: *. win g: *. dsk / s / f /qh:*.VHD h: *. bac h: *. bak h: *. wbcat h: *. bkf h: \ Backup . h: \ sauvegarde . h: *. set h: *. win h: *. dsk |
exécute une instruction PowerShell pour supprimer les clichés instantanés (via powershell.exe)
Get-WmiObject Win32_Shadowcopy | ForEach-Object {$ _Delete (); } |
De nombreuses techniques détectées ont déjà été trouvées dans d’autres ransomwares tels que Sodinokibi et Nemty . Il est également intéressant de noter l’utilisation de techniques d’obfuscation telles que l’appel Array.Reverse () utilisé pour renvoyer des chaînes base64 stockées inversement sous la forme correcte ( par exemple = QXZpVXcvACbsF2LgM3dvRWYoNFIlRXZsVGR )
chaîne statique publique bnFgySFPvGNkn (chaîne string_0 ) { char [] array = string_0 .ToCharArray (); Array.Reverse (tableau); retourne une nouvelle chaîne (tableau); } |
exécute des commandes pour accorder des autorisations (via icalcs.exe)
\ “C: * \” / accorder à tout le monde: F / T / C / Q \ “D: * \” / accorder à tout le monde: F / T / C / Q \ “Z: * \” / accorder à tout le monde: F / T / C / Q |
Exécution
Une fois la définition des chaînes terminée, dont certaines sont correctement concaténées, il est vérifié si une instance du même nom est déjà en cours d’exécution et, dans ce cas, elle sort via Process.GetCurrentProcess (). Kill () .
Il procède ensuite en créant un nouveau thread d’arrière-plan et en créant une copie de lui-même dans ” \ AppData \ Roaming \ Microsoft \ Windows \ Menu Démarrer \ Programmes \ Démarrage \ “.
Il commence alors à recenser les fichiers sur le disque en comparant le nom du fichier avec une nouvelle liste de chaînes qu’il décode en mémoire.
Cette procédure est effectuée pour garantir que vous cryptez les fichiers corrects et pour éviter d’exécuter des actions malveillantes s’il détecte qu’il est exécuté en mode débogage.
Pour obtenir toutes les chaînes décodées à l’exécution, il suffit de fixer un point de rupture sur la fonction qui a pour tâche d’effectuer le décodage. Pour plus de commodité, la liste complète peut être consultée ici .
Antidebug
Avant de procéder au chiffrement, le malware vérifie si les processus en cours incluent le nom de certains outils de débogage connus pour analyser les malwares (ollydbg, dnspy, de4dot, ilspy, dotpeek, etc.) .
De plus, il vérifie également la présence d’outils de détection de réseau (NetworkMiner, NetworkTrafficView, HTTPNetworkSniffer, etc.) .
Chiffrement
Les extensions réservées au chiffrement sont exactement 100. Une fois ses vérifications initiales terminées, on vérifie que l’extension de chaque fichier sur le disque et sur les lecteurs accessibles, connectés au système attaqué, tombe dans ceux enregistrés dans le tableau des 100 cordes; dans ce cas, le fichier sera ajouté à la liste des fichiers qui seront cryptés.
L’algorithme utilisé pour le cryptage est AES-256-CBC . L’objet rfcKey est généré avec un mot de passe d’une longueur de 32 caractères calculé aléatoirement dans la phase initiale et en tant que sel, il utilise un tableau de longueur 8, ensuite utilisé pour définir les propriétés aes.Key et aes.IV
Voici la fonction utilisée pour crypter les fichiers:
Une fois le cryptage terminé, chaque fichier aura l’extension .y9sx7x et la note de rançon sera affichée sur le bureau, ce qui dans ce cas implique de contacter l’auteur via Telegram sur le compte @Lockthesystem
Indicateurs de compromis
Le CERT-AGID a déjà partagé les IoC à travers ses plateformes pour faciliter leur diffusion.
To read the original article:
https://cert-agid.gov.it/news/nuova-campagna-ransomware-lockthesystem/