
Script PowerShell aidant les répondants aux incidents à découvrir des mécanismes de persistance potentiels de l'adversaire.
Trawler est un script PowerShell conçu pour aider les intervenants en réponse aux incidents à découvrir des indicateurs potentiels de compromission sur les hôtes Windows, principalement axé sur les mécanismes de persistance, notamment les tâches planifiées, les services, les modifications du registre, les éléments de démarrage, les modifications de binaires, etc.
Actuellement, trawler peut détecter la plupart des techniques de persistance spécifiquement mentionnées par MITRE et Atomic Red Team, avec des détections ajoutées régulièrement.
Téléchargez et exécutez simplement trawler.ps1 depuis une invite PowerShell/CMD Administrative - toutes les détections seront affichées dans la console et écrites dans un CSV ('detections.csv') dans le répertoire de travail actuel. Le CSV généré contiendra le nom de la détection, la source, le risque, les métadonnées et la technique MITRE correspondante.
Ou utilisez cette ligne unique depuis un terminal PowerShell Administrateur :
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/joeavanzato/Trawler/main/trawler.ps1'))
Certaines détections disposent de listes d'autorisation intégrées pour aider à éliminer le bruit des configurations Windows par défaut (10/2016/2019/2022) - tâches planifiées attendues, services, etc. Bien sûr, il est toujours possible pour les attaquants de détourner directement ces éléments et de se faire passer avec beaucoup de détails pour un processus OS par défaut - prenez soin d'utiliser plusieurs formes d'analyse et de détection face à des adversaires compétents.
Si vous avez des exemples ou des idées pour des détections supplémentaires, n'hésitez pas à soumettre un Issue ou un PR avec les détails techniques/références pertinents - la base de code est un peu désordonnée pour le moment et sera nettoyée au fil du temps.
De plus, si vous identifiez des faux positifs évidents, veuillez me le signaler en ouvrant un issue ou un PR sur GitHub ! Les coupables évidents seront les COM, Services ou Tâches non standard.
-scanoptions : Parcourir les détections possibles et sélectionner un sous-ensemble à l'aide de termes séparés par des virgules (ex. .\trawler.ps1 -scanoptions Services,Processes) ou passer pour effectuer toutes les détections
-quiet : Supprimer la sortie des détections dans la console
-snapshot : Chemin vers une sortie JSON précédente de trawler à utiliser comme liste d'autorisation.
-outpath : Définir un chemin de fichier personnalisé pour enregistrer la sortie des détections (par défaut "$PSScriptRoot\detections.csv")
-drivetarget : Définir la variable pour un lecteur cible monté (ex. .\trawler.ps1 -targetdrive "D:") - (par défaut système local)
-daysago : Définir combien de 'jours en arrière' nous voulons prendre en compte pour les détections basées sur le temps (par défaut 45)
-hashmode : Définir l'algorithme de hachage que nous voulons utiliser pour les détections prises en charge - prend en charge sha1, md5 ou sha256 (par défaut sha1)
-evtx : Activer la création d'une source de journal des événements et l'écriture des détections dans le journal des événements d'application sous Source=trawler avec EID=9001 (par défaut désactivé)
PersistenceSniper est un outil génial - je l'ai beaucoup utilisé par le passé - mais il y a quelques points clés qui différencient ces utilitaires
Dans l'ensemble, ces outils sont extrêmement similaires mais abordent le problème sous des angles légèrement différents - PersistenceSniper renvoie toutes les informations à l'analyste pour examen tandis que Trawler essaie de limiter ce qui est renvoyé aux seuls résultats susceptibles d'être des mécanismes de persistance adverses potentiels. En conséquence, il est possible d'avoir des faux négatifs avec trawler si un adversaire imite complètement un élément de la liste d'autorisation.
À titre d'exemple - PersistenceSniper renverra tous les services Windows 'non sûrs' tandis que trawler ne renverra que ceux qui correspondent à une règle de détection spécifique, etc.
Trawler prend en charge le chargement d'une liste d'autorisation à partir d'un 'instantané' - pour ce faire, deux étapes sont nécessaires.
C'est tout - toutes les détections pertinentes puiseront alors dans le fichier d'instantané comme liste d'autorisation pour réduire le bruit et identifier tout changement potentiel à l'image de base qui aurait pu se produire.
(La mise en place de listes d'autorisation est implémentée pour la plupart des vérifications mais pas toutes - toujours en cours d'implémentation active)
Souvent lors d'une enquête, les analystes peuvent monter un nouveau lecteur qui représente un périphérique Windows imagé - Trawler prend désormais partiellement en charge l'analyse de ces lecteurs montés via l'utilisation du paramètre '-drivetarget'.