Do dzisiejszego wpisu natchnął mnie przypadek, gdzie użytkownik kliknął w złośliwy link, zalogował się przez co jego dane logowania wyciekły. Atakujący po zalogowaniu się na skrzynkę (zapewne przy pomocy automatu) tworzą reguły, które albo usuwają określone maile – z reguły są to maile od IT oraz od nadawcy złośliwego maila. Nazwa tych reguł ma wartość „.” – kropka.
Przygotowałem krótki skrypt, który pozwoli przejrzeć wszystkie reguły na wszystkich skrzynkach mailowych oraz zidentyfikować te, które mają określoną wcześniej nazwę.
Na początku musimy zainstalować moduł ExchangeOnline:
1 2 3 |
Install-Module -Name ExchangeOnlineManagement Import-Module ExchangeOnlineManagement |
Następnym krokiem będzie podłączenie się do Exchange kontem administracyjnym.
1 |
Connect-ExchangeOnline |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# Wpisz nazwę reguły, którą chcesz sprawdzić $ruleName= "." # Pobierz listę wszystkich skrzynek $mailboxes = Get-ExoMailbox -ResultSize Unlimited # Przeszukaj reguły w każdej skrzynce foreach ($mailbox in $mailboxes) { $rules = Get-InboxRule -Mailbox $mailbox.Identity # Sprawdź, czy reguła o określonej nazwie istnieje w skrzynce $ruleExists = $rules | Where-Object { $_.Name -eq $ruleName} if ($ruleExists) { Write-Host "Reguła '$ruleName' istnieje w skrzynce: $($mailbox.DisplayName) - $($mailbox.UserPrincipalName)" } } |
Efektem tego zapytania będą takie komunikaty:
1 |
Reguła '.' istnieje w skrzynce: Imię Nazwisko - i.nazwisko@domena.pl |