Jeśli posiadasz konto w Microsoft Azure AD i skrzynkę pocztową w Microsoft 365 (Office 365) i jest ona nieodpowiednio zabezpieczona to możesz być źródłem ataku, który opisujemy poniżej.


Konta przechowywane w chmurze, a bezpieczeństwo

Ponieważ coraz więcej firm przenosi swoją infrastrukturę do chmury, cyberprzestępcy dostosowują swoje techniki do atakowania tych zasobów. Jedną z większych zmian jest przejście do korzystania z usługi Azure Active Directory (Azure AD) zamiast rozwiązania on-prem (lokalnego Active Directory). Dlatego dzisiaj skoncentrujemy się na atakach na chmurę Azure z użyciem hasła użytkownika.

Użytkowników w chmurze cyberprzestępcy głownie atakują przy użyciu starszych protokołów IMAP/POP/SMTP stosując najczęściej metodę Brute Force (łamania hasła) oraz Password Spraying (próba odgadnięcia hasła innym hasłem ze słownika). Ataki z obejściem mechanizmów MFA są rzadsze, ale też się zdarzają (pisaliśmy o tym tutaj).


Atak Password Spraying

Ataki Password Spraying wykorzystują znane nazwy loginów i hasła ujawniane w dużych wyciekach danych uwierzytelniających. Według Microsoft i przeprowadzonej przez socjalistów analizie ruchu w usłudze Office 365, ataki na konta wykorzystujące starszy typ uwierzytelniania opisują następujące statystyki:

  • Ponad 99% ataków polegających na próbach odgadnięcia hasła (metoda Password Spaying ) wykorzystuje starsze protokoły uwierzytelniania
  • Ponad 97% ataków z wykorzystaniem znanych przestępcom poświadczeń wykorzystuje starsze uwierzytelnianie.
  • Konta usługi Office 365 w organizacjach, które wyłączyły starsze uwierzytelnianie, doświadczają o 67%mniej włamań niż te, w których jest włączone.

Narządzie do łamania haseł Office 365

Spray365 to nowo powstałe narzędzie do przeprowadzania ataków typu Password Spraying, które identyfikuje prawidłowe poświadczenia dla kont Microsoft (Office 365 / Azure AD).
Czym Spray365 różni się od wielu innych narzędzi do rozpylania haseł, które są dostępne w Internecie? Według jego twórców:

„Główna różnica to przeprowadzenie ataku z przygotowanego wcześniej „planu wykonania”. Chociaż posiadanie wstępnie wygenerowanego planu wykonania, który opisuje operację „spraying” na długo przed jej wystąpieniem, ma wiele innych korzyści, które wykorzystuje Spray365, umożliwia to również wznowienie rozpylania hasła (opcja -R) po błędzie sieci lub innej przerwie. Chociaż najłatwiej jest wygenerować plan wykonania ataku bezpośrednio przy użyciu Spray365, inne narzędzia, które tworzą zgodną strukturę JSON, ułatwiają tworzenie unikalnych przepływów pracy rozpylania haseł.”

Spray365 udostępnia kilka opcji, które są przydatne podczas „sprayingu” poświadczeń. Do wykrywania i omijania niezabezpieczonych zasad dostępu warunkowego, które są skonfigurowane w celu ograniczenia typów dozwolonych urządzeń, można użyć losowych agentów użytkownika. Podobnie argument „–shuffle_auth_order” to świetny sposób na „spraying” poświadczeń w mniej przewidywalny sposób. Ta opcja została dodana w celu ominięcia inteligentnych blokad kont (np. Azure Smart Lockout). Chociaż nie jest to idealne, losowa kolejność prób uwierzytelnienia ma również inne zalety, takie jak utrudnienie wykrywania tych operacji „sprayingu”. Spray365 obsługuje również proxy ruchu przez HTTP/HTTPS, który dobrze integruje się z innymi narzędziami, takimi jak Burp Suite do manipulowania źródłem operacji „sprayingu”.


Hackowanie kont w Office 365

W celu przeprowadzenia ataku potrzebujemy komputer z zainstalowanym środowiskiem Python 3. W naszym przypadku jest to komputer z systemem Kali. Atakowanym środowiskiem będzie Office 365, gdzie utworzyliśmy nowy tenant w Azure i 3 testowe konta użytkowników:

Zaczynamy od instalacji narzędzia.


Krok 1 – instalacja narzędzia

Instalację narzędzia wykonamy za pomocą poniższych komend:

$ git clone https://github.com/MarkoH17/Spray365
$ cd Spray365
~/Spray365$ pip3 install -r requirements.txt
~/Spray365$ python3 spray365.py


Krok 2 – przygotowanie planu wykonania

Po instalacji należy przygotować plan wykonania, za pomocą którego będziemy później atakować chmurę. Służy do tego parametr „-g” (generate). Warto też wcześniej przygotować plik zawierający atakowane loginy oraz plik z hasłami (można skorzystać ze słownika wyciekniętych haseł dostępnych w Internecie). Parametr „–delay” określa opóźnienie w kolejnych próbach odgadnięcia hasła.

$ python3 spray365.py -g “scieżka_do_pliku_planu_wykonania” -d “nazwa_domeny” -u “plik_z_nazwami_użytkowników” -pf “plik_z_hasłami_użytkowników” –delay “opóźnienie_w_sekundach”

W przypadku naszej domeny docelowa komenda będzie wyglądać następująco (pliki „users” i „passwords” przygotowaliśmy wcześniej)

$ python3 spray365.py -g ex-plan.s365 -d domena.onmicrosoft.com -u users -pf passwords –delay 5


Krok 3 – przeprowadzenie ataku

Jeśli mamy przygotowany plan wykonania i pliki z nazwami oraz hasłami użytkowników możemy rozpocząć fazę ataku. Przełącznik „-s” (spray) wskaże nam plan jaki mamy użyć. Inne ciekawe parametry można znaleźć tutaj.

$ python3 spray365.py -s “nazwa_pliku_z_planem wykonania”

Na powyższym ekranie widzimy, że narzędzie odgadło hasło na użytkownika „pentester” w trzecim przebiegu i zalogowało się poprawnie przy użyciu urządzenia (agenta) „windows_net_mgmt_api”.


Jak sobie radzić?

Nieudane oraz udane próby logowania zostały odłożone w logach Azure, dlatego warto je przede wszystkim monitorować oraz zwracać uwagę z jakich klientów i adresów IP logują się nasze konta.
W naszym przypadku w logach Azure cała operacja ataku i skanowania została odnotowana w postaci następujących logów:

Opisywany powyżej przykład to oczywiście tylko jeden z wielu ataków na środowisko chmurowe. Jego prostota pokazuje, że może wykonać go prawie każdy. Oczywiście rozsądnym zabezpieczeniem takich prób logowania jest włączenie na kontach zabezpieczenia MFA, ale to nie do końca rozwiąże problem, ponieważ niektóre protokoły komunikacyjne nie korzystają z MFA i nawet jeśli logujemy się do poczty Office 365 za pomocą hasła i MFA, cyberprzestępca może się zalogować na nasze konto (jak odgadnie hasło) np. po włączonym domyślnie protokole IMAP albo POP lub innej, niezabezpieczonej usłudze.
Należy sobie zatem zadać pytanie, czy jesteśmy w stanie się dowiedzieć o próbie ataku na nasze konta i bardziej zabezpieczyć nasze środowisko? Zwykłe techniki, takie jak automatyczne odgadywanie haseł w Office 365 (tzw. Password Spraying), nadal mogą okazać się skuteczne, ale coraz częściej można je zniwelować dzięki bezpieczniejszym konfiguracjom, zestawom narzędzi obronnych i zwiększonej świadomości ze strony zespołów Blue Team.

Pamiętać należy też o włączonej standardowo obsłudze starych metod uwierzytelniania w Azure. Aby zasady MFA i Practice Protect były skuteczne, starsze uwierzytelnianie musi być blokowane na poziomie usługi Office 365. Dzieje się tak, ponieważ starsze protokoły uwierzytelniania, takie jak POP, SMTP, IMAP i MAPI, nie mogą wymuszać MFA, co czyni je preferowanymi punktami wejścia dla cyberprzestępców atakujących Twoją organizację.

O innych atakach i zabezpieczeniach na pewno napiszemy później.

Podziel się z innymi tym artykułem!