AWS - Identity Center & SSO Unauthenticated Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Początkowo zaproponowane w tym wpisie na blogu, możliwe jest wysłanie linku do użytkownika korzystającego z AWS SSO, który, jeśli użytkownik zaakceptuje, pozwoli atakującemu uzyskać token do podszywania się pod użytkownika i uzyskać dostęp do wszystkich ról, do których użytkownik ma dostęp w Identity Center.
Aby przeprowadzić ten atak, wymagania są następujące:
Ofiara musi korzystać z Identity Center
Atakujący musi znać subdomenę używaną przez ofiarę <victimsub>.awsapps.com/start
Mając tylko powyższe informacje, atakujący będzie mógł wysłać link do użytkownika, który, jeśli zostanie zaakceptowany, przyzna atakującemu dostęp do konta użytkownika AWS.
Znalezienie subdomeny
Pierwszym krokiem atakującego jest ustalenie subdomeny, której używa firma ofiary w swoim Identity Center. Można to zrobić za pomocą OSINT lub zgadywania + BF, ponieważ większość firm będzie używać swojej nazwy lub jej wariacji.
Mając te informacje, możliwe jest uzyskanie regionu, w którym skonfigurowano Identity Center:
Wygeneruj link dla ofiary i wyślij go
Uruchom poniższy kod, aby wygenerować link logowania AWS SSO, aby ofiara mogła się uwierzytelnić. Do demonstracji uruchom ten kod w konsoli Pythona i nie wychodź z niej, ponieważ później będziesz potrzebować niektórych obiektów do uzyskania tokena:
Wyślij wygenerowany link do ofiary, używając swoich niesamowitych umiejętności inżynierii społecznej!
Czekaj, aż ofiara to zaakceptuje
Jeśli ofiara była już zalogowana w AWS, wystarczy, że zaakceptuje przyznanie uprawnień, jeśli nie była, będzie musiała zalogować się, a następnie zaakceptować przyznanie uprawnień. Tak wygląda obecnie monit:
Uzyskaj token dostępu SSO
Jeśli ofiara zaakceptowała monit, uruchom ten kod, aby wygenerować token SSO, podszywając się pod użytkownika:
Token dostępu SSO jest ważny przez 8h.
Podszyj się pod użytkownika
Ciekawe jest to, że poprzedni atak działa nawet jeśli używane jest "unphisable MFA" (webAuth). Dzieje się tak, ponieważ poprzedni workflow nigdy nie opuszcza używanej domeny OAuth. W przeciwieństwie do innych ataków phishingowych, gdzie użytkownik musi zastąpić domenę logowania, w przypadku, gdy workflow kodu urządzenia jest przygotowane, kod jest znany przez urządzenie i użytkownik może zalogować się nawet na innym komputerze. Jeśli zaakceptuje monit, urządzenie, znając początkowy kod, będzie w stanie odzyskać dane uwierzytelniające dla użytkownika.
Aby uzyskać więcej informacji, sprawdź ten post.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)