Rapports de campagne¶
Stentor génère des rapports d'engagement professionnel dans 6 formats d'exportation sur 7 types de rapports. Les rapports sont liés aux campagnes et extraient les données des beacons, des tâches, des informations d'identification, des listeners et des profils malléables.
Types de rapports¶
| Type | Clé | Description |
|---|---|---|
| Campagne complète | full | Résumé complet de la mission combinant toutes les sections |
| ** Chronologie de l'activité ** | activity | Exécution chronologique des tâches avec les mappages MITRE ATT&CK |
| Hôtes | hosts | Cibler les systèmes avec des sessions, des informations d'identification et des services découverts |
| Indicateurs de compromis | indicators | Payloads (SHA256), IOC réseau, artefacts de fichiers/registres, métadonnées PE, en-têtes HTTP |
| Séances | sessions | Détails de la session Beacon avec historique des commandes par session |
| TTP | ttp | Utilisation de la technique MITRE ATT&CK avec statistiques tactiques |
| Ingénierie sociale | social_eng | Analyse des visites du profileur avec répartition géographique et plateforme |
Formats d'exportation¶
| Formater | Type de contenu | Tous types | Remarques |
|---|---|---|---|
application/pdf | Oui | Rendu via Maroto v2 avec tableaux, pagination et titres stylisés | |
| DOCX | application/vnd.openxmlformats-officedocument.wordprocessingml.document | Oui | Prend en charge le titre, la description, le filtrage des hôtes, le masquage des e-mails/mots de passe |
| JSON | application/json | Oui | Sérialisation JSON native |
| CSV | text/csv | Tous sauf full | Injection CSV désinfectée |
| TSV | text/tab-separated-values | Tous sauf full | Variante séparée par des tabulations |
| XML | application/xml | Tous sauf full | Schéma XML structuré |
API¶
Exporter le point de terminaison¶
| Paramètre | Type | Obligatoire | Valeurs |
|---|---|---|---|
format | chaîne | Oui | pdf, json, csv, tsv, xml, docx |
type | chaîne | Oui | full, activity, hosts, indicators, sessions, ttp, social_eng |
title | chaîne | Non | Titre du rapport personnalisé (DOCX uniquement) |
description | chaîne | Non | Paragraphe de description (DOCX uniquement) |
host_filter | chaîne | Non | Filtrer sur des hôtes spécifiques (DOCX uniquement) |
mask_emails | bool | Non | Remplacez les e-mails par ***@***.*** (DOCX uniquement) |
mask_passwords | bool | Non | Remplacez les hachages NTLM par ******** (DOCX uniquement) |
Exemples :
Contenu du rapport¶
Chronologie des activités¶
Chaque entrée comprend :
- Horodatage, nom d'hôte, nom d'utilisateur, PID
- Description de l'activité et type de tâche
- ID technique MITRE ATT&CK et ID MITRE
- Statut de la tâche (succès/échec)
Le mappage technique vers MITRE est automatique pour les types de tâches connus (PowerShell → T1059.001, WMI → T1047, injection de processus → T1055.003, etc.).
Indicateurs de compromis¶
Le rapport du CIO extrait des indicateurs de l'ensemble de la campagne :
- Payloads : Nom, hachage SHA256, format (exe/dll/service_exe), architecture
- IOC réseau : Hôte, port, protocole, objectif
- Hôtes contactés : Adresses IP des beacons connectées, avec noms d'écoute et de profil
- IOC du système de fichiers : Chemins et hachages des tâches de persistance
- IOC de registre : Clés et valeurs issues de la persistance et de la création de services
- Métadonnées PE : Taille, SHA256, somme de contrôle, point d'entrée, horodatage de compilation, sections
- En-têtes HTTP : En-têtes de requête et de réponse GET/POST provenant de profils C2 malléables
Rapport TTP¶
Regroupe les techniques par tactique MITRE ATT&CK avec statistiques d'utilisation :
- ID de la technique, nom, tactique
- Nombre d'utilisations et horodatage de la première utilisation
- Résumé tactique : techniques par tactique, utilisations totales
Rapport de l'AIIC DSL¶
Des rapports personnalisés peuvent être générés par programme via les scripts CNA :
| Fonction | Description |
|---|---|
report($title) | Initialiser un nouveau rapport |
page($title) | Ajouter une nouvelle page |
h1($text) ... h4($text) | Titres (16 pts, 14 pts, 12 pts, 10 pts) |
p($text) | Texte du paragraphe |
br() | Saut de ligne / espaceur |
describe($text) | Bloc de description |
table(@headers, @rows) | Tableau de données |
kvtable(%hash) | Table clé-valeur à partir du hachage |
layout($cols) | Définir la disposition des colonnes |
bookmark($name) | Ancre de signet PDF |
report_save($path) | Générer un PDF et l'enregistrer dans un fichier |
report_generate() | Générer un PDF et renvoyer des octets bruts |
Exemple de script CNA :
report("Custom Engagement Report");
page("Executive Summary");
h1("Engagement Overview");
p("This report summarizes findings from the authorized penetration test conducted on 2026-02-19.");
page("Compromised Hosts");
h2("Target Systems");
@headers = @("Hostname", "IP", "OS", "Access Level");
@rows = @(
@("DC01", "10.10.10.10", "Windows Server 2022", "Domain Admin"),
@("SQL01", "10.10.10.50", "Windows Server 2019", "Local Admin")
);
table(@headers, @rows);
report_save("/tmp/custom-report.pdf");