Utilisation de RSA NetWitness pour détecter la collecte d’informations d’identification: lsassy

Il y a quelques jours sur Github, Hackndo a publié un outil ( https://github.com/Hackndo/lsassy ) qui est capable de vider la mémoire de LSASS à l’aide de LOLBins (Living of the Land Binaries) – généralement, nous voyons des attaquants utiliser Utilitaire SysInternals ProcDump pour le faire. Lsassy utilise la fonction MiniDump du comsvcs.dll afin de vider la mémoire du processus LSASS; cette action ne peut être effectuée qu’en tant que SYSTEM, elle crée donc une tâche planifiée en tant que SYSTEM, l’exécute et la supprime.

Nous avons décidé de tester cet outil dans notre laboratoire et de voir comment nous pourrions détecter cela avec NetWitness.

L’attaque

Pour se retrancher davantage et trouver des actifs intéressants, un attaquant devra se déplacer latéralement vers d’autres points de terminaison du réseau. Atteindre cet objectif implique souvent de passer par plusieurs systèmes, ainsi que de vider le LSASS pour extraire les informations d’identification. Dans la capture d’écran ci-dessous, nous utilisons l’outil lsassy pour vider les informations d’identification d’un hôte distant auquel nous avons actuellement accès:

La sortie de cette commande nous montre les informations d’identification d’un compte que nous connaissons déjà, mais nous montre également les informations d’identification d’un compte que nous n’avions pas auparavant, 
tomcat-svc .

Analyse du réseau NetWitness

J’aime commencer mon enquête tous les matins en jetant un Å“il à la méta-clé Indicateurs de compromis , de cette façon, je peux identifier toute nouvelle méta-valeur d’intérêt.

En reconstruisant la session, nous pouvons voir la tâche planifiée à distance qui a été créée et analyser ce qu’elle fait. Sur la capture d’écran ci-dessous, nous pouvons voir que la tâche créée utilisera CMD pour lancer une commande pour localiser LSASS, puis la vider dans \ Windows \ Temp \ tmp.dmp en utilisant la fonction MiniDump dans comsvcs.dll:

cmd.exe / C pour / f « tokens = 1,2 delims = » ^% A dans (‘ »tasklist / fi » Imagename eq lsass.exe « | find » lsass «  »‘) do C: \ Windows \ System32 \ rundll32.exe C: \ windows \ System32 \ comsvcs.dll, MiniDump ^% B \ Windows \ Temp \ tmp.dmp complet

Cette tâche laisse également derrière elle d’autres artefacts d’intérêt. Dans la capture d’écran ci-dessous, nous pouvons voir le vidage LSASS tmp.dmp en cours de création

Cela rend l’utilisation par défaut de lsassy facile à détecter avec une logique de règle d’application simple comme celle ci-dessous. Bien sûr, les noms et l’emplacement du vidage peuvent être modifiés, mais les attaquants ont généralement tendance à laisser les valeurs par défaut pour ces types d’outils:

service = 139 && directory = ‘windows \\ temp \\’ && filename = ‘tmp.dmp’

Analyse des points finaux NetWitness

De même avec Endpoint, j’aime commencer mes investigations en ouvrant les méta clés Compromise – IOC, BOC et EOC. De là, je peux voir toutes les méta-valeurs qui se démarquent, ou les trier itérativement. L’une des méta-valeurs d’intérêt ci-dessous est, Ã©numère les processus sur le système local :

En pivotant dans la vue Événements pour cette méta-valeur, nous pouvons voir cmd.exe lancer la liste des tâches pour rechercher lsass.exe – pour obtenir un accès approprié, la commande s’exécute également avec des privilèges de niveau SYSTÈME – c’est quelque chose que vous devez surveiller régulièrement:

Après avoir vu cette commande, ce serait une bonne idée de regarder toutes les activités ciblées vers LSASS pour ce point final. Pour ce faire, je peux utiliser la requête filename.dst = ‘lsass.exe’ et commencer à enquêter en ouvrant des méta-clés comme celles ci-dessous. Quelque chose qui se démarque comme intéressant est l’utilisation de rundll32.exe pour charger une fonction appelée minidump à partir du comsvcs.dll:

En pivotant dans la vue Événements, nous pouvons voir la commande complète beaucoup plus facilement. Ici, nous pouvons voir que rundll32.exe charge la fonction MiniDump à partir de comsvcs.dll et transmet certains paramètres, tels que l’ID de processus de vidage (qui a été trouvé par l’énumération initiale du processus), l’emplacement et le nom du vidage et le mot clé plein:

Cette activité peut être récupérée en utilisant la logique suivante dans une règle d’application. Cela sera bientôt disponible via RSA Live, mais vous pouvez continuer et implémenter / vérifier votre environnement maintenant:

device.type = ‘nwendpoint’ && category = ‘process event’ && (filename.all = ‘rundll32.exe’) && ((param.src contient ‘comsvcs.dll’ && param.src contient ‘minidump’) || ( param.dst contient ‘comsvcs.dll’ && param.dst contient ‘minidump’)

Conclusion

Il est important de surveiller de manière cohérente le comportement du réseau et des points de terminaison pour détecter des actions anormales, et de ne pas se fier uniquement aux détections prêtes à l’emploi. De nouvelles méthodes / outils d’attaque sont constamment développés, mais les actions que ces outils prennent laissent toujours des traces de pas, c’est au (x) défenseur (s) de repérer les anomalies et de trier en conséquence. Cela étant dit, RSA met constamment à jour les détections d’attaques telles que celle présentée dans ce post – nous avons travaillé avec l’équipe de contenu pour que cet usage de l’outil soit détecté avec du contenu prêt à l’emploi.

Share Button