Aller au contenu
TAAF-OPS --:-- UTC

TP Bonus - Intégration Windows Active Directory

📡 Poste SOC · La Réunion — vous étendez la détection sur Alfred Faure (Crozet), à ~2 900 km, côté Windows/AD. Liaison SATCOM nominale.

🎯 Objectif métier — ne pas laisser le domaine Windows être l’angle mort du SIEM.

L’attaque du jour J a transité par un poste Windows : PowerShell obfusqué (-enc) à 08h14, puis svc_backup propulsé Domain Admin à 09h45. Sans agent côté Windows, le SIEM est borgne d’un œil — il voit Falco sur Linux mais pas l’AD. Ce bonus rend le domaine bavard : chaque ouverture de session, chaque commande suspecte remonte à Wazuh.

Ce TP bonus complète l’architecture SIEM TAAF en ajoutant la surveillance d’un environnement Windows Active Directory. Il permet d’étendre la détection et corrélation d’événements aux systèmes Windows d’entreprise.

Prérequis : Module SIEM core (TP 1-3) terminé + TP Bonus Wazuh déployé.

graph TB
 subgraph "Infrastructure TAAF"
 NC[Nextcloud TAAF<br/>Port: 8080]
 PG[PostgreSQL AF<br/>Base de données]
 NC -.-> PG
 end

 subgraph "Réseau: siem-network"
 subgraph "Runtime Security"
 F[Falco<br/>Runtime Security]
 end

 subgraph "SIEM Central"
 WM[Wazuh Manager<br/>API: 55000<br/>Agents: 1514/1515]
 WI[Wazuh Indexer<br/>OpenSearch<br/>Port: 9200]
 WD[Wazuh Dashboard<br/>Web UI<br/>Port: 5601]

 WM <--> WI
 WD --> WI
 WD --> WM
 end
 end

 subgraph "Réseau: taaf-monitoring"
 GA[Grafana Alloy<br/>Log Collector<br/>Port: 12345]
 L[Loki<br/>Log Storage<br/>Port: 3100]
 GR[Grafana<br/>Monitoring<br/>Port: 3000]

 GA --> L
 GR --> L
 end

 subgraph "Extension Windows (Bonus)"
 AD[Active Directory<br/>Domain Controller<br/>IP: IP_AD]
 WA[Wazuh Agent<br/>Windows<br/>Port: 1514]

 AD --> WA
 end

 subgraph "Notifications"
 D[Discord<br/>Security Alerts<br/>Webhook]
 end

 %% Flux SIEM (Wazuh) - Stack 100% Indépendante
 F -->|Runtime Events|WM
 WA -->|Windows Events|WM
 WM -->|Critical Alerts|D

 %% Flux Monitoring (Loki/Grafana) - Stack 100% Indépendante
 NC -->|App Logs|GA
 PG -->|DB Logs|GA
 GA -->|Logs Stream|L

 %% Surveillance (sans flux de données)
 F -.->|Monitor|NC
 F -.->|Monitor|PG

 %% Accès utilisateur
 U[Administrateur]
 U --> WD
 U --> F
 U --> GR
 U --> AD

 %% Styling
 classDef security fill:#ff9999,stroke:#333,stroke-width:2px
 classDef siem fill:#99ccff,stroke:#333,stroke-width:2px
 classDef monitoring fill:#99ff99,stroke:#333,stroke-width:2px
 classDef infra fill:#ffcc99,stroke:#333,stroke-width:2px
 classDef windows fill:#e6ccff,stroke:#333,stroke-width:2px
 classDef notification fill:#cc99ff,stroke:#333,stroke-width:2px

 class F security
 class WM,WI,WD siem
 class GA,L,GR monitoring
 class NC,PG infra
 class AD,WA windows
 class D notification

🎯 Objectif métier — étendre la détection à un Active Directory Windows et corréler les événements Linux et Windows dans un seul SIEM.

  • Intégrer un Active Directory dans l’architecture SIEM
  • Configurer les agents Wazuh Windows
  • Surveiller les événements de sécurité Windows
  • Corréler les événements Linux et Windows
  • Détecter les attaques inter-systèmes

Partie 1 : Réutiliser l’Active Directory existant

Section intitulée « Partie 1 : Réutiliser l’Active Directory existant »

1.1 Pas de nouveau domaine — on repart de TAAF-AD-001

Section intitulée « 1.1 Pas de nouveau domaine — on repart de TAAF-AD-001 »

Le domaine univ-taaf.internal est déjà déployé sur TAAF-AD-001 (cf. dépôt active-directory). Ce TP bonus ne réinstalle pas de forêt AD : il se branche sur l’existant.

Fenêtre de terminal
# Sur TAAF-AD-001 — vérifier que le domaine répond
Get-ADDomain | Select-Object DNSRoot, NetBIOSName
# → DNSRoot=univ-taaf.internal, NetBIOSName=UNIV-TAAF
  • TAAF-AD-001 déjà provisionné (OU, groupes, comptes — scripts Create-OU-TAAF.ps1, Create-Groups.ps1, Creat-user.ps1, Create-Admin-Users.ps1, Create-Service-Accounts.ps1 du dépôt active-directory)
  • Connectivité réseau avec l’infrastructure SIEM

Pas de comptes fictifs : ce TP réutilise les comptes réellement provisionnés par les scripts du dépôt active-directory :

CompteOrigineRôle dans ce TP
antoine.mercierCreat-user.ps1 (Chercheur Océanographe, UR Saint-Denis)Cible des simulations brute force / élévation de privilèges (§4.2, §4.3)
svc_backupCreate-Service-Accounts.ps1 (compte de service, Backup Operators)Référence pour la règle d’élévation vers Domain Admins (Event 4728)
d_jean.martinCreate-Admin-Users.ps1 (Admin domaine)Compte d’administration de référence, hors périmètre de test
Fenêtre de terminal
# Vérifier que le compte de test existe déjà
Get-ADUser -Identity "antoine.mercier" -Properties MemberOf

Fenêtre de terminal
# Télécharger l'agent Wazuh Windows
Invoke-WebRequest -Uri "https://packages.wazuh.com/4.x/windows/wazuh-agent-4.7.0-1.msi" -OutFile "C:\temp\wazuh-agent.msi"
# Installation silencieuse avec configuration
msiexec.exe /i C:\temp\wazuh-agent.msi /quiet WAZUH_MANAGER="IP_VM2" WAZUH_AGENT_GROUP="windows" WAZUH_REGISTRATION_SERVER="IP_VM2"
<!-- C:\Program Files (x86)\ossec-agent\ossec.conf -->
<ossec_config>
<client>
<server>
<address>IP_VM2</address>
<port>1514</port>
<protocol>tcp</protocol>
</server>
<config-profile>windows</config-profile>
<notify_time>10</notify_time>
<time-reconnect>60</time-reconnect>
<auto_restart>yes</auto_restart>
</client>
<localfile>
<location>Security</location>
<log_format>eventchannel</log_format>
</localfile>
<localfile>
<location>System</location>
<log_format>eventchannel</log_format>
</localfile>
<localfile>
<location>Application</location>
<log_format>eventchannel</log_format>
</localfile>
<!-- Surveillance spécifique Active Directory -->
<localfile>
<location>Microsoft-Windows-Security-Auditing</location>
<log_format>eventchannel</log_format>
</localfile>
</ossec_config>
Fenêtre de terminal
# Démarrer le service Wazuh
Start-Service WazuhSvc
# Vérifier le statut
Get-Service WazuhSvc
# Vérifier les logs
Get-Content "C:\Program Files (x86)\ossec-agent\logs\ossec.log" -Tail 20

<!-- rules/windows-ad-rules.xml sur Wazuh Manager -->
<group name="windows,authentication,">
<rule id="100001" level="10">
<decoded_as>windows_eventchannel</decoded_as>
<field name="win.eventdata.logonType">2</field>
<field name="win.system.eventID">4625</field>
<description>Windows logon failure (brute force attempt)</description>
<group>authentication_failed,</group>
</rule>
<rule id="100002" level="12" frequency="5" timeframe="300">
<if_matched_sid>100001</if_matched_sid>
<same_source_ip />
<description>Multiple failed logon attempts from same IP - Possible brute force attack</description>
<group>authentication_failures,brute_force,</group>
</rule>
</group>

Règle de détection d’élévation de privilèges

Section intitulée « Règle de détection d’élévation de privilèges »
<rule id="100003" level="12">
<decoded_as>windows_eventchannel</decoded_as>
<field name="win.system.eventID">4728</field>
<field name="win.eventdata.groupName">Administrators|Domain Admins</field>
<description>User added to privileged group</description>
<group>privilege_escalation,</group>
</rule>
Fenêtre de terminal
# Configuration des politiques d'audit
auditpol /set /category:"Logon/Logoff" /success:enable /failure:enable
auditpol /set /category:"Account Management" /success:enable /failure:enable
auditpol /set /category:"Privilege Use" /success:enable /failure:enable
auditpol /set /category:"Policy Change" /success:enable /failure:enable
auditpol /set /category:"Object Access" /success:enable /failure:enable
# Vérification de la configuration
auditpol /get /category:*

Fenêtre de terminal
# Depuis la VM SIEM - vérifier les agents connectés
docker exec wazuh-manager /var/ossec/bin/agent_control -l
# Vérifier les logs de l'agent Windows
docker exec wazuh-manager tail -f /var/ossec/logs/alerts/alerts.log | grep "IP_AD"
Fenêtre de terminal
# Script de simulation de brute force (à exécuter sur une machine distante)
$domain = "univ-taaf.internal"
$username = "antoine.mercier"
$passwords = @("password", "123456", "admin", "taaf2023", "motdepasse")
foreach ($password in $passwords) {
try {
$credential = New-Object System.Management.Automation.PSCredential($username, (ConvertTo-SecureString $password -AsPlainText -Force))
Write-Host "Tentative avec mot de passe: $password"
# Simulation de connexion qui échouera
Start-Process -FilePath "runas" -ArgumentList "/user:$domain\$username cmd" -Credential $credential -ErrorAction Stop
}
catch {
Write-Host "Échec attendu pour: $password"
}
Start-Sleep -Seconds 2
}
Fenêtre de terminal
# Ajouter temporairement un utilisateur aux admins (puis le retirer)
Add-ADGroupMember -Identity "Domain Admins" -Members "antoine.mercier"
Start-Sleep -Seconds 10
Remove-ADGroupMember -Identity "Domain Admins" -Members "antoine.mercier" -Confirm:$false

Accéder à Wazuh Dashboard (https://IP_VM2) et créer :

  1. Visualisation des connexions Windows

    • Filtre : rule.groups: authentication
    • Type : Table avec IP source, utilisateur, statut
  2. Carte des tentatives de brute force

    • Filtre : rule.groups: brute_force
    • Type : Géolocalisation des IP sources
  3. Timeline des événements de privilèges

    • Filtre : rule.groups: privilege_escalation
    • Type : Histogramme temporel
<!-- Corrélation : connexion suspecte Windows suivie d'activité Falco -->
<rule id="100010" level="14" timeframe="600">
<if_matched_group>brute_force</if_matched_group>
<if_matched_group>falco</if_matched_group>
<same_source_ip />
<description>Suspicious correlation: Windows brute force followed by container activity</description>
<group>correlation,multi_system_attack,</group>
</rule>

# datasource.yml pour Wazuh
apiVersion: 1
datasources:
- name: Wazuh-OpenSearch
type: opensearch
url: http://IP_VM2:9200
database: wazuh-alerts-*
jsonData:
timeField: timestamp
interval: "1m"
  • Événements Falco (conteneurs Linux)
  • Événements Wazuh Windows (Active Directory)
  • Corrélations temporelles entre systèmes
  • Géolocalisation des attaques

Ajout au rapport principal :

  1. Extension Windows Active Directory
    • Architecture hybride Linux/Windows
    • Configuration agents Wazuh Windows
    • Règles de détection spécifiques Windows
    • Cas d’usage de corrélation inter-systèmes
    • Dashboard unifié multi-plateformes
  • Simulation d’attaque coordonnée Linux-Windows
  • Détection et corrélation en temps réel
  • Investigation forensique multi-systèmes

Techniques supplémentaires :

  • Administration Active Directory de base
  • Configuration agents SIEM Windows
  • Corrélation d’événements multi-plateformes
  • Analyse forensique hybride Linux/Windows

Transversales :

  • Sécurité en environnement hybride
  • Intégration d’infrastructures hétérogènes
  • Vision globale de la sécurité d’entreprise

  • PowerShell pour automatisation
  • Intégration avec GPO (Group Policy Objects)
  • Surveillance des contrôleurs de domaine

Type : TP Bonus optionnel Niveau : Avancé Prérequis : TP principal terminé + notions Windows Server/Active Directory