Files
DeepBlueCLI/README.md

6.9 KiB

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

Usage :

.\DeepBlue.ps1 <nom_journal_evenements> <nom_fichier_evtx>

Consultez le README sur Set-ExecutionPolicy 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 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 :

$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.