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)
Спочатку запропоновано в цьому блозі, можливо надіслати посилання користувачу, який використовує AWS SSO, що якщо користувач прийме, зловмисник зможе отримати токен для видавання себе за користувача та отримати доступ до всіх ролей, до яких користувач має доступ у Identity Center.
Для виконання цієї атаки необхідні такі умови:
Жертва повинна використовувати Identity Center
Зловмисник повинен знати субдомен, який використовує жертва <victimsub>.awsapps.com/start
Лише з цією інформацією, зловмисник зможе надіслати посилання користувачу, яке, якщо прийняте, надасть зловмиснику доступ до облікового запису AWS користувача.
Finding the subdomain
Перший крок зловмисника - дізнатися, який субдомен використовує компанія жертви в їх Identity Center. Це можна зробити за допомогою OSINT або вгадування + BF, оскільки більшість компаній використовуватимуть свою назву або варіацію своєї назви тут.
З цією інформацією можливо отримати регіон, в якому було налаштовано Identity Center:
Згенеруйте посилання для жертви та надішліть його
Запустіть наступний код, щоб згенерувати посилання для входу в AWS SSO, щоб жертва могла аутентифікуватися. Для демонстрації запустіть цей код у консолі Python і не виходьте з неї, оскільки пізніше вам знадобляться деякі об'єкти для отримання токена:
Надішліть згенероване посилання жертві, використовуючи свої чудові навички соціальної інженерії!
Чекайте, поки жертва його прийме
Якщо жертва вже увійшла в AWS, їй просто потрібно буде прийняти надання дозволів, якщо ні, їй потрібно буде увійти в систему, а потім прийняти надання дозволів. Ось як виглядає запит сьогодні:
Отримати токен доступу SSO
Якщо жертва прийняла запит, виконайте цей код, щоб згенерувати токен SSO, видаючи себе за користувача:
Токен доступу SSO є дійсним протягом 8 годин.
Видати себе за користувача
Цікаво знати, що попередня атака працює навіть якщо використовується "непіддатливе MFA" (webAuth). Це тому, що попередній робочий процес ніколи не залишає використаний домен OAuth. На відміну від інших фішингових атак, де користувачеві потрібно підмінити домен входу, у випадку, коли робочий процес коду пристрою підготовлений так, що код відомий пристрою, і користувач може увійти навіть на іншій машині. Якщо підтвердити запит, пристрій, просто знаючи початковий код, зможе отримати облікові дані для користувача.
Для отримання додаткової інформації перегляньте цей пост.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)