153 lines
6.9 KiB
Markdown
153 lines
6.9 KiB
Markdown
# DeepBlueCLI
|
||
|
||
DeepBlueCLI - un module PowerShell pour la chasse aux menaces (Threat Hunting) via les journaux d'événements Windows.
|
||
|
||
https://sahelcyber.com
|
||
|
||
Des exemples de fichiers EVTX se trouvent dans le répertoire `.\evtx`.
|
||
|
||
**Note :** Si votre antivirus s'affole après avoir téléchargé DeepBlueCLI, il réagit probablement aux fichiers EVTX inclus dans le répertoire `.\evtx` (qui contiennent des journaux de lignes de commande d'attaques malveillantes, entre autres artefacts). Les fichiers EVTX sont inoffensifs. Vous devrez peut-être configurer votre antivirus pour qu'il ignore le répertoire de DeepBlueCLI.
|
||
|
||
## Table des Matières
|
||
- [Utilisation](#usage)
|
||
- [Journaux d'événements Windows traités](#windows-event-logs-processed)
|
||
- [Événements détectés](#detected-events)
|
||
- [Exemples](#examples)
|
||
- [Sortie](#output)
|
||
- [Configuration de la journalisation](#logging-setup)
|
||
- Voir le [README de DeepBlue.py](READMEs/README-DeepBlue.py.md) pour les informations sur DeepBlue.py
|
||
- Voir le [README de DeepBlueHash](READMEs/README-DeepBlueHash.md) pour les informations sur DeepBlueHash (mise en liste blanche via les journaux Sysmon)
|
||
|
||
## Usage :
|
||
|
||
`.\DeepBlue.ps1 <nom_journal_evenements> <nom_fichier_evtx>`
|
||
|
||
Consultez le [README sur Set-ExecutionPolicy](READMEs/Set-ExecutionPolicy.md) si vous recevez une erreur "l'exécution de scripts est désactivée sur ce système".
|
||
|
||
### Traiter le journal de sécurité local de Windows (PowerShell doit être exécuté en tant qu'Administrateur) :
|
||
|
||
`.\DeepBlue.ps1`
|
||
|
||
ou :
|
||
|
||
`.\DeepBlue.ps1 -log security`
|
||
|
||
### Traiter le journal système local de Windows :
|
||
|
||
`.\DeepBlue.ps1 -log system`
|
||
|
||
### Traiter un fichier evtx :
|
||
|
||
`.\DeepBlue.ps1 .\evtx\new-user-security.evtx`
|
||
|
||
## Journaux d'événements Windows traités
|
||
|
||
- Sécurité Windows
|
||
- Système Windows
|
||
- Application Windows
|
||
- Windows PowerShell
|
||
- Sysmon
|
||
|
||
### Journaux de ligne de commande traités
|
||
|
||
Voir la section [Configuration de la journalisation](#logging-setup) ci-dessous pour savoir comment configurer ces journaux.
|
||
|
||
- Événement de sécurité Windows ID 4688
|
||
- Événements Windows PowerShell ID 4103 et 4104
|
||
- Événement Sysmon ID 1
|
||
|
||
## Événements détectés
|
||
|
||
* Comportement de compte suspect
|
||
* Création d'utilisateur
|
||
* Utilisateur ajouté à des groupes locaux/globaux/universels
|
||
* Tentatives de deviner le mot de passe (plusieurs échecs de connexion, un seul compte)
|
||
* Attaque par pulvérisation de mots de passe via échec de connexion (plusieurs échecs, plusieurs comptes)
|
||
* Attaque par pulvérisation de mots de passe via informations d'identification explicites
|
||
* Bloodhound (privilèges d'administrateur attribués au même compte avec plusieurs ID de sécurité)
|
||
* Audit de la ligne de commande/Sysmon/PowerShell
|
||
* Lignes de commande longues
|
||
* Recherches par expressions régulières (Regex)
|
||
* Commandes obfusquées
|
||
* PowerShell lancé via WMIC ou PsExec
|
||
* PowerShell Net.WebClient Downloadstring
|
||
* Commandes compressées/encodées en Base64 (avec décompression/décodage automatique)
|
||
* EXE ou DLL non signés
|
||
* Audit des services
|
||
* Création de service suspecte
|
||
* Erreurs de création de service
|
||
* Arrêt/démarrage du service Journal d'événements Windows (manipulation potentielle des journaux)
|
||
* Mimikatz
|
||
* `lsadump::sam`
|
||
* Blocages EMET & Applocker
|
||
|
||
...et plus encore.
|
||
|
||
## Exemples
|
||
|
||
| Événement | Commande |
|
||
|---|---|
|
||
| Manipulation du journal d'événements | `.\DeepBlue.ps1 .\evtx\disablestop-eventlog.evtx` |
|
||
| Cible native Metasploit (sécurité) | `.\DeepBlue.ps1 .\evtx\metasploit-psexec-native-target-security.evtx` |
|
||
| Cible native Metasploit (système) | `.\DeepBlue.ps1 .\evtx\metasploit-psexec-native-target-system.evtx` |
|
||
| Cible PowerShell Metasploit (sécurité) | `.\DeepBlue.ps1 .\evtx\metasploit-psexec-powershell-target-security.evtx` |
|
||
| Cible PowerShell Metasploit (système) | `.\DeepBlue.ps1 .\evtx\metasploit-psexec-powershell-target-system.evtx` |
|
||
| Mimikatz `lsadump::sam` | `.\DeepBlue.ps1 .\evtx\mimikatz-privesc-hashdump.evtx` |
|
||
| Création d'un nouvel utilisateur | `.\DeepBlue.ps1 .\evtx\new-user-security.evtx` |
|
||
| Obfuscation (encodage) | `.\DeepBlue.ps1 .\evtx\Powershell-Invoke-Obfuscation-encoding-menu.evtx` |
|
||
| Obfuscation (chaîne de caractères) | `.\DeepBlue.ps1 .\evtx\Powershell-Invoke-Obfuscation-string-menu.evtx` |
|
||
| Tentatives de deviner le mot de passe | `.\DeepBlue.ps1 .\evtx\smb-password-guessing-security.evtx` |
|
||
| Attaque par pulvérisation de mots de passe | `.\DeepBlue.ps1 .\evtx\password-spray.evtx` |
|
||
| PowerSploit (sécurité) | `.\DeepBlue.ps1 .\evtx\powersploit-security.evtx` |
|
||
| PowerSploit (système) | `.\DeepBlue.ps1 .\evtx\powersploit-system.evtx` |
|
||
| PSAttack | `.\DeepBlue.ps1 .\evtx\psattack-security.evtx` |
|
||
| Utilisateur ajouté au groupe administrateur| `.\DeepBlue.ps1 .\evtx\new-user-security.evtx` |
|
||
|
||
## Sortie
|
||
|
||
DeepBlueCLI génère des objets PowerShell, permettant une variété de méthodes et de types de sortie, y compris JSON, HTML, CSV, etc.
|
||
|
||
Par exemple :
|
||
|
||
| Type de Sortie | Syntaxe |
|
||
|---|---|
|
||
| CSV | `.\DeepBlue.ps1 .\evtx\psattack-security.evtx \| ConvertTo-Csv` |
|
||
| Format liste (défaut) | `.\DeepBlue.ps1 .\evtx\psattack-security.evtx \| Format-List` |
|
||
| Format tableau | `.\DeepBlue.ps1 .\evtx\psattack-security.evtx \| Format-Table` |
|
||
| GridView | `.\DeepBlue.ps1 .\evtx\psattack-security.evtx \| Out-GridView` |
|
||
| HTML | `.\DeepBlue.ps1 .\evtx\psattack-security.evtx \| ConvertTo-Html` |
|
||
| JSON | `.\DeepBlue.ps1 .\evtx\psattack-security.evtx \| ConvertTo-Json` |
|
||
| XML | `.\DeepBlue.ps1 .\evtx\psattack-security.evtx \| ConvertTo-Xml` |
|
||
|
||
## Configuration de la journalisation
|
||
|
||
### Événement de sécurité 4688 (Audit de la ligne de commande) :
|
||
|
||
Activez l'audit de la ligne de commande Windows : https://support.microsoft.com/fr-fr/kb/3004375
|
||
|
||
### Événement de sécurité 4625 (Échecs de connexion) :
|
||
|
||
Nécessite l'audit des échecs de connexion : https://technet.microsoft.com/fr-fr/library/cc976395.aspx
|
||
|
||
### Audit PowerShell (PowerShell 5.0) :
|
||
|
||
DeepBlueCLI utilise la journalisation des modules (événement PowerShell 4103) et la journalisation des blocs de script (4104). Il n'utilise pas la transcription.
|
||
|
||
Voir : https://www.fireeye.com/blog/threat-research/2016/02/greater_visibilityt.html
|
||
|
||
Pour obtenir la ligne de commande PowerShell (et pas seulement le bloc de script) sur Windows 7 jusqu'à Windows 8.1, ajoutez ce qui suit à `\Windows\System32\WindowsPowerShell\v1.0\profile.ps1` :
|
||
```powershell
|
||
$LogCommandHealthEvent = $true
|
||
$LogCommandLifecycleEvent = $true
|
||
|
||
Consultez les liens suivants pour plus d'informations :
|
||
- https://logrhythm.com/blog/powershell-command-line-logging/
|
||
- http://hackerhurricane.blogspot.com/2014/11/i-powershell-logging-what-everyone.html
|
||
|
||
Sysmon
|
||
|
||
Installez Sysmon depuis Sysinternals : https://docs.microsoft.com/fr-fr/sysinternals/downloads/sysmon
|
||
|
||
DeepBlue et DeepBlueHash utilisent actuellement les événements Sysmon 1, 6 et 7.
|
||
|
||
Journalisez les hachages SHA256. Les autres sont acceptables ; DeepBlueHash utilisera SHA256. |