⬅ Retour à Sherlocks · 🏠 Accueil du repo
Campfire-1 — DFIR (Very Easy)¶
| Catégorie | DFIR |
| Difficulté | Very Easy |
| Récompense | 180 XP |
| Artefacts | SECURITY-DC.evtx, Powershell-Operational.evtx, fichiers Prefetch (.pf) |
Scénario¶
Alonzo spotted weird files on his computer and informed the newly assembled SOC team. Assessing the situation, it is believed a Kerberoasting attack may have occurred in the network. It is your job to confirm the findings by analyzing the provided evidence.
Artefacts fournis¶
| Fichier | Description |
|---|---|
SECURITY-DC.evtx |
Journal de sécurité du contrôleur de domaine DC01.forela.local |
Powershell-Operational.evtx |
Journal PowerShell de la workstation compromise |
C:\Windows\prefetch\*.pf |
Fichiers Prefetch de la workstation (preuves d'exécution) |
L'archive est protégée par un mot de passe (
hacktheblue) et chiffrée en AES : il faut 7-Zip pour l'extraire,Expand-Archivene la gère pas.
Outils¶
- Event Viewer : lecture des
.evtx - PECmd (Eric Zimmerman) : parsing des fichiers Prefetch
- Timeline Explorer (Eric Zimmerman) : lecture et filtrage du CSV produit par PECmd
Flux de résolution¶
flowchart LR
A["SECURITY-DC.evtx\nEID 4769 + 0x17"] --> B["Service ciblé\nMSSQLService"]
B --> C["IP source\n172.17.79.129"]
C --> D["PowerShell logs\nEID 4104"]
D --> E["powerview.ps1\n03:16:32"]
E --> F["Prefetch\n(PECmd)"]
F --> G["Rubeus.exe\n03:18:08"]
Solution pas à pas¶
Task 1 — Date et heure du Kerberoasting (UTC)¶
Dans SECURITY-DC.evtx, filtrer sur l'Event ID 4769 (demande de ticket de service Kerberos). Le journal en contient 16.
Un Kerberoasting se reconnaît à la combinaison suivante :
| Champ | Valeur recherchée | Pourquoi |
|---|---|---|
ServiceName |
ni krbtgt, ni un nom finissant par $ |
on exclut le TGT et les comptes machine, on garde les comptes de service |
TicketEncryptionType |
0x17 (RC4) |
RC4 se casse beaucoup plus vite hors ligne que l'AES (0x12) |
FailureCode |
0x0 |
la demande a réussi, l'attaquant a bien obtenu le ticket |
Une recherche sur 0x17 fait ressortir un seul événement : un ticket demandé par alonzo.spire@FORELA.LOCAL.
Réponse : 2024-05-21 03:18:09
⚠️ Event Viewer affiche l'heure locale de la machine d'analyse (ici
8:18 AM). Les réponses HTB sont attendues en UTC : la valeur fiable est le champSystemTimede l'onglet Details, qui se termine parZ.
Task 2 — Service ciblé¶
Dans le même événement 4769, champ Service Name.
Réponse : MSSQLService
Un compte de service SQL est une cible classique : il a un SPN, son mot de passe est souvent faible et il est parfois très privilégié.
Task 3 — IP de la workstation¶
Dans le même événement, champ Client Address.
Le préfixe ::ffff: indique une adresse IPv4 encapsulée en IPv6, on ne garde que l'IPv4.
Réponse : 172.17.79.129
Task 4 — Fichier utilisé pour énumérer l'Active Directory¶
On pivote sur la workstation avec Powershell-Operational.evtx, en filtrant sur l'Event ID 4104 (Script Block Logging), qui enregistre le contenu complet des scripts exécutés.
Le premier événement, à 03:16:29 UTC, est une commande de contournement de la politique d'exécution :
Elle est suivie d'une série de script blocks tous horodatés à la même seconde. Le premier bloc (1 sur 20) contient l'en-tête reconnaissable du script :
Les événements d'erreur du même journal confirment le chemin : une première tentative de chargement de C:\Users\alonzo.spire\Downloads\powerview.ps1 échoue (running scripts is disabled on this system), d'où le -ep bypass juste après.
Réponse : powerview.ps1
PowerView est un outil d'énumération AD (utilisateurs, groupes, SPN, relations de confiance) qui permet de repérer les comptes Kerberoastables.
Task 5 — Heure d'exécution du script (UTC)¶
Le premier événement 4104 contenant le script PowerView, onglet Details :
Réponse : 2024-05-21 03:16:32
Task 6 — Chemin complet de l'outil de Kerberoasting¶
Parser les Prefetch avec PECmd :
.\PECmd.exe -d "<chemin>\Triage\Workstation\2024-05-21T033012_triage_asset\C\Windows\prefetch" --csv . --csvf analysis.csv
Ouvrir analysis.csv dans Timeline Explorer, puis :
- Filtrer la colonne
Last Runsur le jour de l'incident (2024-05-21). - Garder les exécutables qui n'ont pas de
Previous Run: ce sont des programmes lancés pour la première fois sur la machine. - Un nom ressort :
RUBEUS.EXE, avec un seul lancement.
Le chemin complet se lit dans la colonne Files Loaded (double-clic sur la valeur) :
On remplace la partie \VOLUME{...} par C:.
Réponse : C:\Users\Alonzo.spire\Downloads\Rubeus.exe
Rubeus est l'outil de référence pour les attaques Kerberos (Kerberoasting, pass-the-ticket, overpass-the-hash, S4U).
Task 7 — Heure d'exécution de Rubeus (UTC)¶
Colonne Last Run de la ligne RUBEUS.EXE :
Réponse : 2024-05-21 03:18:08
Timeline de l'attaque¶
| Heure (UTC) | Source | Événement |
|---|---|---|
| 03:16:29 | PowerShell (EID 4104) | powershell -ep bypass : contournement de la politique d'exécution |
| 03:16:32 | PowerShell (EID 4104) | Chargement de powerview.ps1 (énumération AD) |
| 03:18:08 | Prefetch | Exécution de Rubeus.exe depuis Downloads |
| 03:18:09 | DC — Security (EID 4769) | Ticket RC4 demandé pour MSSQLService depuis 172.17.79.129 |
Rubeus a été lancé 1 seconde avant que le DC journalise la demande de ticket : la corrélation entre les trois sources est directe.
Réponses résumées¶
| Task | Réponse |
|---|---|
| 1 — Date/heure du Kerberoasting | 2024-05-21 03:18:09 |
| 2 — Service ciblé | MSSQLService |
| 3 — IP de la workstation | 172.17.79.129 |
| 4 — Fichier d'énumération AD | powerview.ps1 |
| 5 — Exécution du script | 2024-05-21 03:16:32 |
| 6 — Chemin de l'outil | C:\Users\Alonzo.spire\Downloads\Rubeus.exe |
| 7 — Exécution de l'outil | 2024-05-21 03:18:08 |
Détection¶
Requête Splunk équivalente au filtre de la Task 1 :
Event.System.EventID="4769" Event.EventData.TicketEncryptionType="0x17" Event.EventData.ServiceName!="*$"
| table Event.EventData.ServiceName, Event.EventData.TargetUserName, Event.EventData.IpAddress
Points clés¶
- Kerberoasting : tout utilisateur du domaine peut demander un ticket de service pour n'importe quel SPN, puis le casser hors ligne. Aucun privilège particulier n'est nécessaire.
- Signature dans les logs du DC : EID 4769 + chiffrement RC4 (
0x17) + service qui n'est nikrbtgtni un compte machine. - Script Block Logging (EID 4104) est précieux : il garde le contenu des scripts même chargés en mémoire, ce qui permet d'identifier l'outil (ici PowerView) et l'heure exacte.
- Le Prefetch prouve qu'un programme a été exécuté, avec la date de dernier lancement et les fichiers chargés (donc le chemin complet).
- Astuce Timeline Explorer : filtrer les exécutables sans
Previous Runisole les programmes lancés pour la première fois. - Penser au fuseau horaire : Event Viewer et les outils affichent l'heure locale, alors que les preuves sont en UTC.
- Remédiation : mots de passe longs et aléatoires (ou gMSA) pour les comptes de service, chiffrement AES uniquement, et alerte sur les demandes de tickets RC4.