Script Agresseur de Vérification de Santé du Beacon
Joe Vest (Twitter : @joevest)
Description
Ce script agresseur utilise le champ de note d'un beacon pour indiquer l'état de santé de celui-ci. Cela est réalisé en ...
- Suivant le temps de sommeil/jitter actuel de chaque beacon
- Calculant la santé sur la base d'un "temps de connexion maximal attendu"
- Mettant à jour le champ de note avec une icône appropriée chaque minute en utilisant l'événement
heartbeat_1m
- Étiquetant les nouveaux beacons comme "NOUVEAU" avec l'heure d'arrivée
- Ajoutant l'ID du beacon et le PID au message du journal d'événement initial du beacon
Démo
Démo sur YouTube
Vérifications de santé et icônes
☑ - symbole indiquant que le beacon est actif et fonctionne
Calculé lorsque la dernière connexion est inférieure au temps de connexion maximal attendu (sommeil + (sommeil * .01 * jitter))
p. ex., Un beacon avec sleep 300 20 aurait un temps de connexion maximal attendu de 360 calculé comme 300 + (300 * .01 * 20).
💀 - symbole indiquant que le beacon est mort
Calculé lorsque le temps de la dernière connexion est supérieur au temps de connexion maximal attendu * 2. C'est ce qu'on appelle le "temps mort".
p. ex., Un beacon avec sleep 300 20 aurait un temps mort de 720.
❎ - symbole indiquant que le beacon a été tué par un opérateur.
Si beacon['alive'] est faux, alors un opérateur a tué/quitté ce beacon et le beacon a accusé réception de la commande de sortie.
⚠ - symbole indiquant que le beacon est en train de mourir
Calculé lorsque la dernière connexion est supérieure au temps de connexion maximal attendu et inférieure au temps mort.
⏸ - symbole indiquant que le beacon est en pause.
Il s'agit d'un beacon lié qui a été déconnecté mais qui est toujours considéré comme vivant. Ces beacons dépendent d'un parent pour la communication. Au lieu de les marquer comme morts, ils sont marqués comme en pause. Il n'existe pas de bon moyen de suivre les processus des beacons déconnectés.
Ce qui suit montre à quoi ressemblent ces icônes dans le client Cobalt Strike.

L'ID du beacon et le PID ont été ajoutés au message du journal d'événement initial du beacon.

Utilisation
Chargez le fichier beaconhealth.cna via le gestionnaire de scripts.
Utilisez la fonction get_BeaconHealthCheck_settings dans la console de script pour afficher le suivi sommeil/jitter du beacon.
Ce que vous devez savoir sur le script
- Il utilise le champ Note. Vous êtes libre de le modifier comme vous le souhaitez. Le premier caractère de la note sera mis à jour lors d'une vérification de santé avec le symbole approprié.
- Les beacons liés n'ont pas de sommeil. Les temps de sommeil sont suivis par le parent du beacon lié
- Les paramètres de sommeil ne sont pas vérifiés avant d'être suivis. Définir le sommeil sur un beacon mort peut entraîner un changement de symbole avant que le sommeil réel n'ait été traité par le beacon.
- La vérification de santé est conçue pour surveiller les beacons de longue durée.
- La santé est mesurée chaque minute
- Cela peut encore être trop agressif
- Vous pouvez ajuster le timing en modifiant l'événement heartbeat qui déclenche une vérification.
- La base de données de suivi n'est pas persistante. Si vous fermez le client Cobalt Strike et vous reconnectez, la base de données sera actualisée et les beacons peuvent être marqués comme NOUVEAU