AWS - S3 Post Exploitation
Reading time: 4 minutes
tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
S3
For more information check:
AWS - S3, Athena & Glacier Enum
Конфіденційна інформація
Іноді ви зможете знайти конфіденційну інформацію, доступну для читання у бакетах. Наприклад, terraform state secrets.
Pivoting
Різні платформи можуть використовувати S3 для зберігання чутливих активів. Наприклад, airflow може зберігати там DAGs code, або веб-сторінки можуть безпосередньо обслуговуватися з S3. Зловмисник із правами на запис може modify the code у бакеті, щоб pivot на інші платформи, або takeover accounts, змінюючи JS файли.
S3 Ransomware
У цьому сценарії, attacker creates a KMS (Key Management Service) key in their own AWS account або в іншому скомпрометованому акаунті. Потім вони роблять цей key accessible to anyone in the world, дозволяючи будь-якому AWS user, role, або account шифрувати об'єкти за допомогою цього ключа. Однак ці об'єкти не можна буде розшифрувати.
Зловмисник визначає цільовий S3 bucket and gains write-level access до нього різними методами. Це може бути через неправильну конфігурацію бакета, яка робить його публічним, або через отримання доступу до самої AWS середовища. Зловмисник зазвичай орієнтується на бакети, що містять конфіденційну інформацію, таку як personally identifiable information (PII), protected health information (PHI), логи, резервні копії та інше.
Щоб визначити, чи можна націлити бакет під ransomware, зловмисник перевіряє його конфігурацію. Це включає перевірку, чи увімкнено S3 Object Versioning та чи увімкнено multi-factor authentication delete (MFA delete). Якщо Object Versioning не увімкнено, зловмисник може продовжити. Якщо Object Versioning увімкнено, але MFA delete вимкнено, зловмисник може disable Object Versioning. Якщо й Object Versioning, і MFA delete увімкнені, здійснити ransomware конкретного бакета стає складніше.
Використовуючи AWS API, зловмисник replaces each object in the bucket with an encrypted copy using their KMS key. Це фактично шифрує дані в бакеті, роблячи їх недоступними без ключа.
Щоб посилити тиск, зловмисник планує видалення KMS key, який використовувався в атаці. Це дає цілі 7-денне вікно для відновлення даних, перш ніж ключ буде видалено і дані стануть остаточно втраченими.
Наприкінці зловмисник може завантажити фінальний файл, зазвичай з назвою "ransom-note.txt", який містить інструкції для цілі щодо того, як отримати свої файли. Цей файл завантажується без шифрування, ймовірно, щоб привернути увагу цілі та повідомити про атаку ransomware.
s3:RestoreObject
Зловмисник із дозволом s3:RestoreObject може реактивувати об'єкти, заархівовані в Glacier або Deep Archive, роблячи їх тимчасово доступними. Це дозволяє відновлювати та вивозити історично заархівовані дані (резервні копії, snapshots, логи, сертифікації, старі секрети), які зазвичай недоступні. Якщо зловмисник поєднає цей дозвіл із правами на читання (наприклад, s3:GetObject), він може отримати повні копії конфіденційних даних.
aws s3api restore-object \
--bucket <BUCKET_NAME> \
--key <OBJECT_KEY> \
--restore-request '{
"Days": <NUMBER_OF_DAYS>,
"GlacierJobParameters": { "Tier": "Standard" }
}'
s3:Delete*
Зловмисник, який має дозвіл s3:Delete*, може видаляти об'єкти, версії та цілі бакети, порушувати резервні копії та спричиняти негайну й незворотну втрату даних, знищення доказів та компрометацію резервних або відновлювальних артефактів.
# Delete an object from a bucket
aws s3api delete-object \
--bucket <BUCKET_NAME> \
--key <OBJECT_KEY>
# Delete a specific version
aws s3api delete-object \
--bucket <BUCKET_NAME> \
--key <OBJECT_KEY> \
--version-id <VERSION_ID>
# Delete a bucket
aws s3api delete-bucket \
--bucket <BUCKET_NAME>
Для додаткової інформації check the original research.
tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
HackTricks Cloud