# 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 ` 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.