AWS Pentesting
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)
Перед початком pentesting середовища AWS є кілька основних речей, які вам потрібно знати про те, як працює AWS, щоб допомогти вам зрозуміти, що потрібно робити, як знаходити неправильні налаштування та як їх експлуатувати.
Концепції, такі як ієрархія організації, IAM та інші базові концепції, пояснюються в:
AWS - Basic InformationTools to simulate attacks:
Щоб провести аудит середовища AWS, дуже важливо знати: які послуги використовуються, що експонується, хто має доступ до чого, і як внутрішні AWS послуги та зовнішні послуги з'єднані.
З точки зору Red Team, перший крок для компрометації середовища AWS - це отримати деякі облікові дані. Ось кілька ідей, як це зробити:
Leaks в github (або подібних) - OSINT
Соціальна інженерія
Повторне використання паролів (витоки паролів)
Вразливості в AWS-Hosted Applications
Server Side Request Forgery з доступом до метаданих
Читання локальних файлів
/home/USERNAME/.aws/credentials
C:\Users\USERNAME\.aws\credentials
3rd parties breached
Внутрішній співробітник
Cognito облікові дані
Або шляхом компрометації неавтентифікованої служби, що експонується:
AWS - Unauthenticated Enum & AccessАбо, якщо ви проводите огляд, ви можете просто попросити облікові дані з цими ролями:
AWS - Permissions for a PentestПісля того, як ви змогли отримати облікові дані, вам потрібно знати, кому належать ці облікові дані, і до чого вони мають доступ, тому вам потрібно виконати деяку базову енумерацію:
Якщо ви знайшли SSRF на машині всередині AWS, перевірте цю сторінку для трюків:
Однією з перших речей, які вам потрібно знати, є те, хто ви є (в якому обліковому записі ви знаходитесь та інша інформація про середовище AWS):
Зверніть увагу, що компанії можуть використовувати canary tokens для виявлення, коли токени крадуться та використовуються. Рекомендується перевірити, чи є токен canary token, перш ніж його використовувати. Для отримання додаткової інформації перевірте цю сторінку.
Якщо у вас достатньо прав, перевірка привілеїв кожної сутності всередині облікового запису AWS допоможе вам зрозуміти, що ви та інші ідентичності можете робити і як підвищити привілеї.
Якщо у вас недостатньо прав для перерахування IAM, ви можете викрасти їх за допомогою брутфорсу, щоб їх з'ясувати. Перевірте як виконати перерахування та брутфорс у:
AWS - IAM, Identity Center & SSO EnumТепер, коли ви маєте деяку інформацію про свої облікові дані (і якщо ви червона команда, сподіваюся, ви не були виявлені). Час з'ясувати, які сервіси використовуються в середовищі. У наступному розділі ви можете перевірити деякі способи перерахування деяких загальних сервісів.
AWS має вражаючу кількість сервісів, на наступній сторінці ви знайдете основну інформацію, перерахування шпаргалок**,** як уникнути виявлення, отримати стійкість та інші пост-експлуатаційні трюки про деякі з них:
AWS - ServicesЗверніть увагу, що вам не потрібно виконувати всю роботу вручну, нижче в цьому пості ви можете знайти розділ про автоматизовані інструменти.
Більше того, на цьому етапі ви могли виявити більше сервісів, доступних для неавтентифікованих користувачів, ви можете мати можливість їх експлуатувати:
AWS - Unauthenticated Enum & AccessЯкщо ви можете перевірити принаймні свої власні привілеї над різними ресурсами, ви могли б перевірити, чи можете ви отримати додаткові привілеї. Вам слід зосередитися принаймні на привілеях, зазначених у:
AWS - Privilege EscalationПід час перерахування сервісів AWS ви могли знайти деякі з них, які відкривають елементи в Інтернет (порти VM/контейнерів, бази даних або сервіси черг, знімки або кошики...). Як пентестер/червона команда, ви завжди повинні перевіряти, чи можете ви знайти чутливу інформацію / вразливості на них, оскільки вони можуть надати вам додатковий доступ до облікового запису AWS.
У цій книзі ви повинні знайти інформацію про те, як знайти відкриті сервіси AWS та як їх перевірити. Щодо того, як знайти вразливості у відкритих мережевих сервісах, я б рекомендував вам шукати конкретний сервіс у:
Коли обліковий запис управління створює нові облікові записи в організації, у новому обліковому записі створюється нова роль, за замовчуванням називана OrganizationAccountAccessRole
, і надається політика AdministratorAccess обліковому запису управління для доступу до нового облікового запису.
Отже, для доступу як адміністратора до дочірнього облікового запису вам потрібно:
Компрометувати обліковий запис управління та знайти ID дочірніх облікових записів та імена ролі (за замовчуванням OrganizationAccountAccessRole), що дозволяє обліковому запису управління отримати доступ як адміністратор.
Щоб знайти дочірні облікові записи, перейдіть до розділу організацій у консолі aws або виконайте aws organizations list-accounts
Ви не можете знайти назви ролей безпосередньо, тому перевірте всі користувацькі політики IAM і шукайте будь-які, що дозволяють sts:AssumeRole
над раніше виявленими дочірніми обліковими записами.
Компрометувати принципала в обліковому записі управління з дозволом sts:AssumeRole
над роллю в дочірніх облікових записах (навіть якщо обліковий запис дозволяє будь-кому з облікового запису управління видавати себе, оскільки це зовнішній обліковий запис, специфічні дозволи sts:AssumeRole
є необхідними).
aws-recon: Багатопотоковий інструмент для збору інвентаризації, орієнтований на безпеку AWS, написаний на Ruby.
cloudlist: Cloudlist - це інструмент для багатохмарного отримання активів (імена хостів, IP-адреси) від постачальників хмарних послуг.
cloudmapper: CloudMapper допомагає вам аналізувати ваші середовища Amazon Web Services (AWS). Тепер він містить набагато більше функціональності, включаючи аудит на предмет проблем безпеки.
cartography: Cartography - це інструмент на Python, який консолідує інфраструктурні активи та відносини між ними в інтуїтивно зрозумілому графічному вигляді, що працює на базі Neo4j.
starbase: Starbase збирає активи та відносини з сервісів і систем, включаючи хмарну інфраструктуру, SaaS-додатки, засоби безпеки та інше в інтуїтивно зрозумілому графічному вигляді, підтримуваному базою даних Neo4j.
aws-inventory: (Використовує python2) Це інструмент, який намагається виявити всі ресурси AWS, створені в обліковому записі.
aws_public_ips: Це інструмент для отримання всіх публічних IP-адрес (як IPv4/IPv6), пов'язаних з обліковим записом AWS.
SkyArk: Виявляє найбільш привілейованих користувачів у сканованому середовищі AWS, включаючи AWS Shadow Admins. Він використовує powershell. Ви можете знайти визначення привілейованих політик у функції Check-PrivilegedPolicy
в https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1.
pacu: Pacu - це відкритий фреймворк експлуатації AWS, призначений для тестування безпеки в наступальних цілях проти хмарних середовищ. Він може перераховувати, знаходити неправильні конфігурації та експлуатувати їх. Ви можете знайти визначення привілейованих дозволів в https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam__privesc_scan/main.py#L134 всередині словника user_escalation_methods
.
Зверніть увагу, що pacu перевіряє лише ваші власні шляхи підвищення привілеїв (не в межах облікового запису).
PMapper: Principal Mapper (PMapper) - це скрипт і бібліотека для виявлення ризиків у конфігурації AWS Identity and Access Management (IAM) для облікового запису AWS або організації AWS. Він моделює різних IAM Users та Roles в обліковому записі як орієнтований граф, що дозволяє перевіряти privilege escalation та альтернативні шляхи, якими зловмисник може отримати доступ до ресурсу або дії в AWS. Ви можете перевірити permissions used to find privesc шляхи у файлах, що закінчуються на _edges.py
в https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing
cloudsplaining: Cloudsplaining - це інструмент оцінки безпеки AWS IAM, який виявляє порушення принципу найменших привілеїв і генерує звіт у форматі HTML з пріоритетом ризику. Він покаже вам потенційно переповнені привілеї клієнта, вбудовані та aws політики та які принципи мають доступ до них. (Він не тільки перевіряє на privesc, але й інші види цікавих дозволів, рекомендовано використовувати).
cloudjack: CloudJack оцінює облікові записи AWS на наявність вразливостей перехоплення піддоменів внаслідок розділених конфігурацій Route53 та CloudFront.
ccat: Список репозиторіїв ECR -> Завантажити репозиторій ECR -> Встановити бекдор -> Завантажити з бекдором зображення
Dufflebag: Dufflebag - це інструмент, який шукає через публічні знімки Elastic Block Storage (EBS) на наявність секретів, які могли бути випадково залишені.
cloudsploit: CloudSploit від Aqua - це проект з відкритим кодом, призначений для виявлення ризиків безпеки в облікових записах хмарної інфраструктури, включаючи: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI) та GitHub (не шукає ShadowAdmins).
Prowler: Prowler - це інструмент з відкритим кодом для проведення оцінок найкращих практик безпеки AWS, аудитів, реагування на інциденти, безперервного моніторингу, зміцнення та готовності до судово-медичної експертизи.
CloudFox: CloudFox допомагає вам отримати ситуаційну обізнаність у незнайомих хмарних середовищах. Це інструмент командного рядка з відкритим вихідним кодом, створений для допомоги тестувальникам на проникнення та іншим фахівцям з наступальної безпеки у знаходженні експлуатованих шляхів атаки в хмарній інфраструктурі.
ScoutSuite: Scout Suite - це інструмент для аудиту безпеки в мульти-хмарах з відкритим кодом, який дозволяє оцінювати безпекову позицію хмарних середовищ.
cs-suite: Cloud Security Suite (використовує python2.7 і виглядає непідтримуваним)
Zeus: Zeus - це потужний інструмент для найкращих практик зміцнення AWS EC2 / S3 / CloudTrail / CloudWatch / KMS (виглядає непідтримуваним). Він перевіряє лише стандартно налаштовані облікові дані в системі.
cloud-custodian: Cloud Custodian - це механізм правил для управління обліковими записами та ресурсами публічного хмари. Він дозволяє користувачам визначати політики для забезпечення добре керованої хмарної інфраструктури, яка є як безпечною, так і оптимізованою за витратами. Він консолідує багато з тих випадкових скриптів, які мають організації, в легкий і гнучкий інструмент з єдиними метриками та звітністю.
pacbot: Policy as Code Bot (PacBot) - це платформа для безперервного моніторингу відповідності, звітування про відповідність та автоматизації безпеки для хмари. У PacBot політики безпеки та відповідності реалізовані як код. Всі ресурси, виявлені PacBot, оцінюються відповідно до цих політик для оцінки відповідності політикам. Рамка автоматичного виправлення PacBot надає можливість автоматично реагувати на порушення політик, вживаючи попередньо визначені дії.
streamalert: StreamAlert - це безсерверна, реальна система аналізу даних, яка дозволяє вам збирати, аналізувати та сповіщати про дані з будь-якого середовища, використовуючи джерела даних та логіку сповіщення, які ви визначаєте. Команди комп'ютерної безпеки використовують StreamAlert для сканування терабайтів журналів щодня для виявлення інцидентів та реагування на них.
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)