## Endiguement
En tant qu'administrateur du domaine :
```powershell
# Pré-requis : Connect-MgGraph ou Connect-AzureAD
$UserUPN = "
[email protected]"
# Bloquer la connexion
Update-MgUser -UserId $UserUPN -AccountEnabled $false
# Révoquer les tokens (Force la déconnexion immédiate)
Revoke-MgUserSignInSession -UserId $UserUPN -All $true
# Vérifier les méthodes MFA sur le compte compromis
Get-MgUserAuthenticationMethod -UserId $UserUPN | Select-Object MethodType, DeviceTag, CreatedDateTime
```
## Vérification de la portée de l'attaque
```powershell
# Pré-requis : Connect-ExchangeOnline
# Voir les mails envoyés les dernières 24h (ou 48h)
Get-MessageTrace -SenderAddress "
[email protected]" -StartDate (Get-Date).AddHours(-24) -EndDate (Get-Date) | Select-Object Received, RecipientAddress, Subject, Status, ClientIP
# Eventuellement les grouper pour voir les volumes anormaux
Get-MessageTrace -SenderAddress "
[email protected]" -StartDate (Get-Date).AddHours(-48) | Group-Object Subject | Sort-Object Count -Descending
```
## Les méthodes de persistance
### Rules
Le principe est de vérifier si des règles de redirection n'ont pas été mises en place par l'attaquant.
```powershell
# Inbox rules
Get-InboxRule -Mailbox "
[email protected]" | Select-Object Name, Description, RedirectTo, ForwardTo, ForwardAsAttachmentTo
# Forwarding SMTP
Get-Mailbox -Identity "
[email protected]" | Select-Object DeliverToMailboxAndForward, ForwardingAddress, ForwardingSmtpAddress
```
### Application OAuth
Vérifier si l'attaquant n'a pas enregistré une Application malveillante avec le compte compromis, qui lui permettrait par la suite de garder un accès.
```
Aller sur le portail microsoft => Applications d'entreprise => filtrer sur "toutes les applications" => vérifier les applications par date de création => faire un check des dernières applications et leurs permissions.
```
## Analyse des logs
Chercher les activités de l'utilisateur sur une certaine période de temps.
```powershell
Search-UnifiedAuditLog -StartDate (Get-Date).AddDays(-2) -EndDate (Get-Date) -FreeText "
[email protected]" -ResultSize 5000 | Select-Object CreationTime, UserIds, Operations, Workload, IPAddress
```
## Remédiation/Purge via Purview
Si l'attaquant a envoyé des mails en interne, il est possible de les supprimer des boites mails des utilisateurs. Le mieux est d'utiliser Purview, qui est le module compliance de microsoft, l'action sera auditable facilement par la suite en cas de besoin.
```powershell
# Connexion
Connect-IPPSSession
# Définir la requête (Ex: Sujet contient "Le sujet du mail" envoyé par la victime)
$SearchName = "Incident-BEC-Remove-Phish"
$KQLQuery = 'From:
[email protected] AND Subject:"Le sujet du mail"'
# Créer et lancer la recherche
New-ComplianceSearch -Name $SearchName -ExchangeLocation All -ContentMatchQuery $KQLQuery
Start-ComplianceSearch -Identity $SearchName
# Attendre que le statut soit "Completed"
Get-ComplianceSearch -Identity $SearchName | Select-Object Status
# Obtenir un aperçu des résultats
Get-ComplianceSearchAction -SearchName $SearchName -Preview
```
Nous pouvons ensuite lancer la purge : il existe deux possibilités pour l'effacement des mails: HardDelete et SoftDelete => le SoftDelete va garder le mail dans les éléments supprimés, ce qui peut être utile dans certains cas.
```powershell
# Lancer la purge (HardDelete = irrécupérable par l'utilisateur)
New-ComplianceSearchAction -SearchName $SearchName -Purge -PurgeType SoftDelete
# Vérifier le statut de la purge
Get-ComplianceSearchAction -Identity "${SearchName}_Purge" | Select-Object Status, Results
```