ActualitésRansomwareSécuritéVirus

TrickBot vole maintenant les informations d’identification Windows Active Directory

Un nouveau module pour le cheval de Troie TrickBot a été découvert et cible la base de données Active Directory stockée sur des contrôleurs de domaine Windows compromis.

TrickBot est généralement téléchargé et installé sur un ordinateur via d’autres logiciels malveillants. Ce malware le plus courant qui installe TrickBot est Emotet , qui est distribué par le biais de spam avec des pièces jointes de documents Word malveillants.

Une fois TrickBot installé, il collectera diverses informations à partir d’un ordinateur compromis et tentera ensuite de se propager latéralement à travers un réseau pour collecter plus de données.

Pour effectuer ce comportement, TrickBot téléchargera divers modules qui exécutent un comportement spécifique tel que le vol de cookies , les informations du navigateur, les clés OpenSSH et la propagation à d’autres ordinateurs.

Dans le cadre de l’évolution continue du malware, un nouveau module TrickBot appelé « ADll » a été découvert par le chercheur en sécurité Sandor Nemes et il exécute quelques commandes Windows qui permettent au cheval de Troie de voler une base de données Windows Active Directory.

Vidage d’Active Directory

Avant de découvrir comment TrickBot vole une base de données Active Directory pour récolter les informations de connexion, nous devons d’abord donner un peu de contexte sur un fichier spécial appelé ntds.dit .

Lorsqu’un serveur est promu en tant que contrôleur de domaine, la base de données Active Directory est créée et enregistrée dans le dossier C:\Windows\NTDS par défaut sur le contrôleur de domaine.

À l’intérieur de ce dossier se trouve un fichier appelé ntds.dit, qui est une base de données qui contient toutes les informations des services Active Directory telles que les utilisateurs, les mots de passe, les groupes, les ordinateurs, etc…

Ces informations étant sensibles, Windows chiffre les données à l’aide d’une clé de démarrage stockée dans la ruche système du Registre. Comme le ntds.dit est toujours ouvert par le contrôleur de domaine, il n’est pas possible d’y accéder en utilisant des opérations de fichiers standard.

Pour pouvoir travailler avec la base de données ntds.dit lorsqu’elle est ouverte, les contrôleurs de domaine Windows disposent d’un outil appelé ntdsutil qui permet aux administrateurs d’effectuer la maintenance de la base de données.

À l’aide de ntdsutil, les administrateurs peuvent exécuter la commande « ifm » pour créer un vidage d’Active Directory. Cette commande est destinée à être utilisée pour créer un support d’installation qui peut rapidement configurer de nouveaux contrôleurs de domaine sans avoir à attendre la réplication d’Active Directory.

Si TrickBot est en mesure d’obtenir un accès administratif à un contrôleur de domaine, il abusera de cette commande pour créer une copie de la base de données Active Directory du domaine et la voler.

TrickBot vole Active Directory

Le nouveau module ADll de TrickBot tire parti de la commande «Installer à partir du support» pour vider la base de données Active Directory et diverses ruches du Registre dans le dossier %Temp%. Ces fichiers sont ensuite compressés et renvoyés aux attaquants.

Nemes a expliqué que le module ADll générera un ID de 8 caractères basé sur l’ID du client TrickBot.

Le module utilisera ensuite cet ID comme argument de nom de fichier pour les commandes exécutées suivantes:

ntdsutil "ac in ntds" "ifm" "cr fu %TEMP%\[generated-id]0.dat" q q
reg save HKLM\SAM %TEMP%\[generated-id]1.dat /y
reg save HKLM\SECURITY %TEMP%\[generated-id]2.dat /y
reg save HKLM\SYSTEM %TEMP%\[generated-id]3.dat /y

Une fois exécutées, les commandes videront la base de données Active Directory ainsi que les ruches SAM, Security et SYSTEM.

Une fois terminé, Nemes explique que le module vérifiera si les fichiers existent, les compressera, puis exfiltrera les fichiers vers les serveurs de l’attaquant.

Maintenant que les attaquants ont accès à ces fichiers, ils peuvent déchiffrer la base de données Active Directory et vider les noms d’utilisateur, les hachages de mot de passe, les noms d’ordinateurs, les groupes et d’autres données.

Ces données peuvent ensuite être utilisées pour se propager davantage sur le réseau et sont particulièrement utiles pour les acteurs derrière Ryuk Ransomware, qui est généralement la phase finale pour les infections TrickBot. Sympa :/

Illustration d’une attaque par Trickbot

Voici une petite illustation pour expliquer le fonctionnement du module TrickBot et pour montrer les données qu’il peut collecter.

Une fois le domaine configuré, nous exécutons la première commande de « ntdsutil"ac in ntds" "ifm" "cr fu %TEMP%\H00i0Z000.dat" q q« , qui vide la base de données Active Directory dans le fichier %TEMP%\H00i0Z000.dat.

Nous avons également exécuté les commandes reg du module pour enregistrer les ruches SAM, Security et SYSTEM dans des fichiers.

reg save HKLM\SAM %TEMP%\H00i0Z001.dat /y
reg save HKLM\SECURITY %TEMP%\H00i0Z002.dat /y
reg save HKLM\SYSTEM %TEMP%\H00i0Z003.dat /y

Une fois terminé, notre dossier % Temp% contenait un dossier contenant la base de données Active Directory et trois fichiers dat qui sont les ruches du Registre enregistrées.

À l’intérieur du dossier H00i0Z001.dat se trouve le fichier de base de données ntds.dit vidé.

À l’aide des modules DSInternals PowerShell, nous pouvons facilement extraire la clé de déchiffrement BootKey de la ruche système à l’aide de la commande suivante :

Get-Bootkey -SystemHivePath '.\H00i0Z003.dat'

Enfin, nous exécutons la commande DSInternals

Get-ADDBAccount -All -DBPath 'C:\Users\sanje\Desktop\NTDS\ntds.dit' -Bootkey [key] » pour déchiffrer la base de données et afficher tous les comptes, y compris leurs hachages de mot de passe NTML, comme indiqué ci-dessous.

Les attaquants peuvent ensuite prendre ces hachages et les exécuter via des programmes de piratage pour déterminer les mots de passe en texte brut réels pour ces utilisateurs.

Ces informations d’identification de compte peuvent ensuite être utilisées par les attaquants pour compromettre d’autres appareils sur le réseau.

Plus d’informations

L’exploitation Active Directory est un sujet sérieux et il est important que les administrateurs de domaine se familiarisent avec lui.

Le chef de SentinelLabs Vitali Kremez a également publié une vidéo très intéressante sur la façon dont Trickbot et Ryuk exploitent les services Active Directory à leur profit.

zerovirus

Professionnel de informatique et passionné par la sécurité informatique, je travaille depuis plus de 15ans avec des particuliers et professionnels dans le but les former et de sécuriser leur environnement informatique.

Articles similaires

Bouton retour en haut de la page

Fatal error: Uncaught TypeError: implode(): Argument #2 ($array) must be of type ?array, string given in /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-content/plugins/wp-rocket/vendor/matthiasmullie/minify/src/CSS.php:528 Stack trace: #0 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-content/plugins/wp-rocket/vendor/matthiasmullie/minify/src/CSS.php(528): implode(Array, '|') #1 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-content/plugins/wp-rocket/vendor/matthiasmullie/minify/src/CSS.php(314): MatthiasMullie\Minify\CSS->shortenColors('.arqam-widget-c...') #2 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-content/plugins/wp-rocket/vendor/matthiasmullie/minify/src/Minify.php(111): MatthiasMullie\Minify\CSS->execute(NULL) #3 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-content/plugins/wp-rocket/inc/classes/optimization/CSS/class-minify.php(175): MatthiasMullie\Minify\Minify->minify() #4 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-content/plugins/wp-rocket/inc/classes/optimization/CSS/class-minify.php(128): WP_Rocket\Optimization\CSS\Minify->minify('/home/clients/6...', '/home/clients/6...') #5 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-content/plugins/wp-rocket/inc/classes/optimization/CSS/class-minify.php(66): WP_Rocket\Optimization\CSS\Minify->replace_url('https://www.zer...') #6 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-content/plugins/wp-rocket/inc/classes/subscriber/Optimization/class-abstract-minify-subscriber.php(85): WP_Rocket\Optimization\CSS\Minify->optimize('<!DOCTYPE html>...') #7 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-content/plugins/wp-rocket/inc/classes/subscriber/Optimization/class-minify-css-subscriber.php(44): WP_Rocket\Subscriber\Optimization\Minify_Subscriber->optimize('<!DOCTYPE html>...') #8 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-includes/class-wp-hook.php(308): WP_Rocket\Subscriber\Optimization\Minify_CSS_Subscriber->process('<!DOCTYPE html>...') #9 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-includes/plugin.php(205): WP_Hook->apply_filters('<!DOCTYPE html>...', Array) #10 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-content/plugins/wp-rocket/inc/classes/Buffer/class-optimization.php(94): apply_filters('rocket_buffer', '<!DOCTYPE html>...') #11 [internal function]: WP_Rocket\Buffer\Optimization->maybe_process_buffer('<!DOCTYPE html>...', 9) #12 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-includes/functions.php(5279): ob_end_flush() #13 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-includes/class-wp-hook.php(308): wp_ob_end_flush_all('') #14 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters(NULL, Array) #15 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #16 /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-includes/load.php(1124): do_action('shutdown') #17 [internal function]: shutdown_action_hook() #18 {main} thrown in /home/clients/6b2a64de70d730cb2cd05fb6192bdebe/zerovirus.fr/www/wp-content/plugins/wp-rocket/vendor/matthiasmullie/minify/src/CSS.php on line 528