Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CloudPrivs — Determina i privilegi dalle credenziali cloud tramite test di forza bruta. | Kitploit
Strumenti/GitHubGitHub/abstractclass/cloudprivs
Escalation di PrivilegiAnalisi delle VulnerabilitàRaccolta InformazioniPenetration TestingSicurezza Cloud
GitHubabstractclass/cloudprivs

CloudPrivs

Determina i privilegi dalle credenziali cloud tramite test di forza bruta.

Vedi Repository
69226 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CloudPrivs

Ho le credenziali, e ora?

Panoramica

CloudPrivs è uno strumento che sfrutta la potenza esistente di SDK come Boto3 per forzare i privilegi di tutti i servizi cloud al fine di determinare quali privilegi esistono per un dato insieme di credenziali.

Questo strumento è utile per Pentesters, Red Teamer e altri professionisti della sicurezza. I servizi cloud in genere non offrono alcun modo per determinare quali autorizzazioni ha un dato insieme di credenziali, e l'enorme numero di servizi e operazioni rende scoraggiante la verifica manuale. Ciò significa che potrebbe essere possibile un'escalation dei privilegi a partire da un insieme di credenziali, ma nessuno lo saprebbe mai perché semplicemente non sanno che le credenziali AWS trovate possono eseguire Lambda.

Installazione

Attualmente non disponibile su PyPi, ma ci sto lavorando

Pip (semplice)

root@kitploit:~
git clone https://github.com/AbstractClass/CloudPrivs
cd CloudPrivs
python -m pip install -e .

Questo è senza un ambiente virtuale e non è raccomandato se si eseguono molti programmi Python.

Pip (consigliato)

root@kitploit:~
git clone https://github.com/AbstractClass/CloudPrivs
cd CloudPrivs
python -m  venv venv/
./venv/bin/activate # activate.ps1 su Windows
python -m pip install -e .

Puoi anche usare Pyenv+virtualenv se disponibile:

root@kitploit:~
git clone https://github.com/AbstractClass/CloudPrivs
cd CloudPrivs
pyenv virtualenv CloudPrivs
pyenv local CloudPrivs
python -m pip install -e .

Utilizzo

cloudprivs [PROVIDER] [ARGS]

Provider

Attualmente l'unico provider disponibile è AWS, ma sto lavorando su GCP. Se vuoi aiutare, vedi #Personalizzazione.

AWS

root@kitploit:~
Opzioni:
  -v, --verbose                Mostra i test falliti e con errore nell'output
  -s, --services TESTO         Testa solo i servizi specificati invece di tutti
                               i servizi disponibili
  -p, --profile TESTO          Il nome del profilo AWS da scansionare; se non
                               specificato, verranno usate le variabili d'ambiente
  -t, --custom-tests FILE      Posizione del file YAML con test personalizzati.
                               Leggi la documentazione per maggiori informazioni
  -r, --regions TESTO          Un elenco di filtri per abbinare le regioni,
                               ad es. "us", "eu-west", "ap-north-1"
  --help                       Mostra questo messaggio e termina.

Suggerimenti

Più argomenti sono supportati per --region e --service, ma devono essere forniti con il flag ogni volta, ad es. cloudprivs aws -r us -r eu -s ec2 -s lambda. Nemmeno a me piace, ma è una limitazione di Click per cui non ho ancora trovato una soluzione alternativa.

Nota che il flag region supporta corrispondenze parziali; gli argomenti più comuni sono -r us -r eu per coprire solo le regioni comuni.

I risultati sono visualizzati raggruppati per regione e ogni riga contiene un caso di test e il risultato del test.

Errori

Se lo strumento incontra errori imprevisti durante i test, verranno emessi su stderr man mano che si verificano, il che significa che possono interrompere il flusso dell'output; se non vuoi vederli, puoi reindirizzare stderr.

Come funziona

A differenza di altri strumenti come WeirdAAL che scrivono a mano ogni caso di test, CloudPrivs interroga direttamente l'SDK Boto3 per generare dinamicamente un elenco di tutti i servizi disponibili e di tutte le regioni disponibili per ogni servizio.

Una volta generato un elenco completo, ogni funzione viene chiamata senza argomenti per impostazione predefinita, anche se è supportata l'opzione di aggiungere argomenti personalizzati per operazione (maggiori informazioni in #Personalizzazione)

Nota: alcune funzioni AWS possono comportare costi quando vengono chiamate; ho permesso solo operazioni che iniziano con get_, list_ e describe_ per mitigare i costi accidentali, cosa che nei miei test sembra essere sicura, ma per favore usalo con cautela. Questo sembra essere sicuro per altri strumenti come enumerate-iam. Non garantisco che non si incorra accidentalmente in costi chiamando tutte queste funzioni (anche senza argomenti).

Personalizzazione

CloudPrivs supporta una facile estensione/personalizzazione in due aree:

  • Provider
  • Test personalizzati

Provider

Implementare un nuovo provider (ad es. GCP) è semplice:

  1. Scrivi la logica per eseguire i test; la convenzione di denominazione e la struttura non contano.
  2. Nella cartella CloudPrivs/providers, crea una nuova cartella per il tuo provider (ad es. 'gcp').
  3. Nel file CloudPrivs/providers/__init__.py, aggiungi il tuo provider alla variabile __all__; deve corrispondere al nome della cartella.
  4. Crea un file chiamato cli.py nella cartella del tuo provider.
  5. Usa Click per creare una CLI per il tuo provider e chiama la funzione di ingresso della CLI cli (vedi il provider AWS come riferimento).
  6. Fatto! Eseguire cloudprivs <provider> dovrebbe ora mostrare la tua CLI.

Test personalizzati

Il provider AWS supporta l'iniezione di argomenti quando si chiamano funzioni AWS. Questa funzionalità è fornita perché spesso una funzione AWS richiede argomenti per essere chiamata e in alcuni casi questi argomenti possono essere variabili fisse. Ciò significa che se possiamo fornire variabili fittizie, possiamo aumentare la copertura dei test. In altri casi possiamo iniettare argomenti come dryrun=true per velocizzare le chiamate.

I test personalizzati sono memorizzati in un file YAML in cloudprivs/providers/aws/CustomTests.yaml.

La struttura del YAML è la seguente:

root@kitploit:~
---
<nome-servizio>:
    - <nome-funzione>:
        args:
            - <arg1>
            - <arg2>
        kwargs:
            arg1: val1
            arg2: val2

Nota: Il nome della funzione supporta corrispondenze parziali; ciò significa che puoi usare un nome di funzione come 'describe_' e gli argomenti specificati verranno iniettati in tutte le funzioni che contengono 'describe_'. Le regole vengono abbinate in base al 'primo trovato'; quindi se vuoi sovrascrivere una regola generica, posiziona la tua regola più specifica sopra quella generica. Ad esempio:

root@kitploit:~
ec2:
    - describe_instances:
        args:
        kwargs:
            DryRun: True
            NoPaginate: True
    - describe_:
        args:
        kwargs:
            DryRun: True

Aggiungere nuove regole

Le nuove regole possono essere aggiunte modificando il file CustomTests.yaml esistente o creando un nuovo file YAML e specificandolo con il flag --custom-tests. Il nuovo file verrà unito al file di test esistente e eventuali valori duplicati verranno sovrascritti, con il file fornito che avrà la priorità.

Utilizzo come libreria

AWS

Il provider AWS è scritto come libreria per l'integrazione in altri strumenti. Puoi usarlo come segue:

root@kitploit:~
import boto3
from cloudprivs.providers.aws import service
from concurrent.futures import ThreadPoolExecutor

session = boto3.Session('default')
with ThreadPoolExecutor(15) as executor:
  iam = service.Service('iam', session, executor=executor)
  scan_results = iam.scan() # coprirà tutte le regioni elencate nell'executor (tutte le regioni disponibili per impostazione predefinita)
  formatted_results = iam.pretty_print_scan(scan_results)
  print(formatted_results)

Tutto è completamente documentato nel codice; dovrebbe essere abbastanza facile da comprendere.

Roadmap

Questo strumento è funzionale, ma è lungi dall'essere completo. Sto lavorando attivamente a nuove funzionalità e sono aperto a contributi, quindi sentiti libero di aprire Issue/Richieste di funzionalità e inviare PR.

Funzionalità pianificate

  • Aggiungere lo strumento a PyPi
  • Supporto GCP
  • Output JSON
  • Aggiungere test unitari
  • Migrazione a Golang
Scarica lo strumento