Salta ai contenuti

Cloudlist Foglio Informativo per Elencare Asset Cloud

Panoramica

Cloudlist è uno strumento multi-cloud sviluppato da Project Discovery per elencare asset da vari provider cloud. È progettato per aiutare i team di sicurezza a migliorare i loro sforzi di Attack Surface Management scoprendo e monitorando asset cloud attraverso molteplici provider, inclusi AWS, Azure, GCP, DigitalOcean, Linode, Alibaba Cloud, e altri.

Ciò che distingue Cloudlist dagli strumenti specifici del provider è la sua interfaccia unificata per interrogare simultaneamente più provider cloud. Questo semplifica significativamente il processo di mantenimento di un inventario di asset cloud, specialmente per organizzazioni che utilizzano più provider cloud. Cloudlist fornisce un output coerente indipendentemente dal provider, rendendo più facile l’integrazione in workflow di sicurezza e pipeline di automazione.

Cloudlist è principalmente destinato ai blue team per mantenere visibilità sulla loro infrastruttura cloud, ma è anche prezioso per i red team e i penetration tester che necessitano di comprendere la superficie di attacco di un’organizzazione. Fornendo una visione completa degli asset cloud, Cloudlist aiuta i professionisti della sicurezza a identificare potenziali rischi di sicurezza, come servizi esposti, risorse non configurate correttamente o deployment non autorizzati.

Installazione

Utilizzando Go

Would you like me to continue with the remaining sections?```bash

Install using Go (requires Go 1.20 or later)

go install -v github.com/projectdiscovery/cloudlist/cmd/cloudlist@latest

Verify installation

cloudlist -version


### Using Docker

```bash
# Pull the latest Docker image
docker pull projectdiscovery/cloudlist:latest

# Run Cloudlist using Docker
docker run -it projectdiscovery/cloudlist:latest -h

Using Homebrew (macOS)

# Install using Homebrew
brew install cloudlist

# Verify installation
cloudlist -version

Using PDTM (Project Discovery Tools Manager)

# Install PDTM first if not already installed
go install -v github.com/projectdiscovery/pdtm/cmd/pdtm@latest

# Install Cloudlist using PDTM
pdtm -i cloudlist

# Verify installation
cloudlist -version

On Kali Linux

# Install using apt
sudo apt install cloudlist

# Verify installation
cloudlist -version

Basic Usage

Listing Cloud Assets

# List assets from all configured providers
cloudlist

# List assets from a specific provider
cloudlist -provider aws

# List assets from multiple providers
cloudlist -provider aws,azure,gcp

Output Options

# Save results to a file
cloudlist -o results.txt

# Output in JSON format
cloudlist -json -o results.json

# Silent mode (only results)
cloudlist -silent

Provider Configuration

AWS Configuration

# Add AWS provider with access key and secret key
cloudlist -add aws -aws-access-key AKIAIOSFODNN7EXAMPLE -aws-secret-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

# Add AWS provider with profile
cloudlist -add aws -aws-profile default

# Add AWS provider with session token
cloudlist -add aws -aws-access-key AKIAIOSFODNN7EXAMPLE -aws-secret-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY -aws-session-token AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk

Azure Configuration

# Add Azure provider with client ID, client secret, and tenant ID
cloudlist -add azure -azure-client-id 00000000-0000-0000-0000-000000000000 -azure-client-secret EXAMPLE-SECRET -azure-tenant-id 00000000-0000-0000-0000-000000000000

# Add Azure provider with subscription ID
cloudlist -add azure -azure-client-id 00000000-0000-0000-0000-000000000000 -azure-client-secret EXAMPLE-SECRET -azure-tenant-id 00000000-0000-0000-0000-000000000000 -azure-subscription-id 00000000-0000-0000-0000-000000000000

GCP Configuration

# Add GCP provider with service account key file
cloudlist -add gcp -gcp-service-account-key /path/to/service-account-key.json

# Add GCP provider with credentials file
cloudlist -add gcp -gcp-credentials-file /path/to/credentials.json

# Add GCP provider with project ID
cloudlist -add gcp -gcp-service-account-key /path/to/service-account-key.json -gcp-project-id example-project-id

DigitalOcean Configuration

# Add DigitalOcean provider with API token
cloudlist -add digitalocean -do-token YOUR_DIGITALOCEAN_API_TOKEN

Linode Configuration

# Add Linode provider with API token
cloudlist -add linode -linode-token YOUR_LINODE_API_TOKEN

Alibaba Cloud Configuration

# Add Alibaba Cloud provider with access key and secret key
cloudlist -add alibaba -alibaba-access-key YOUR_ALIBABA_ACCESS_KEY -alibaba-secret-key YOUR_ALIBABA_SECRET_KEY

# Add Alibaba Cloud provider with region
cloudlist -add alibaba -alibaba-access-key YOUR_ALIBABA_ACCESS_KEY -alibaba-secret-key YOUR_ALIBABA_SECRET_KEY -alibaba-region cn-hangzhou

Cloudflare Configuration

# Add Cloudflare provider with API token
cloudlist -add cloudflare -cloudflare-token YOUR_CLOUDFLARE_API_TOKEN

# Add Cloudflare provider with API key and email
cloudlist -add cloudflare -cloudflare-key YOUR_CLOUDFLARE_API_KEY -cloudflare-email your-email@example.com

Advanced Usage

Provider Management

# List configured providers
cloudlist -list

# Remove a provider
cloudlist -remove aws

# Remove all providers
cloudlist -remove-all

Filtering Options

# Filter by resource type
cloudlist -resource-type instance

# Filter by multiple resource types
cloudlist -resource-type instance,storage

# Filter by tag
cloudlist -tag key=value

# Filter by multiple tags
cloudlist -tag key1=value1,key2=value2

Resource Types

# List specific resource types
cloudlist -resource-type instance  # List only instances
cloudlist -resource-type storage   # List only storage resources
cloudlist -resource-type network   # List only network resources
cloudlist -resource-type database  # List only database resources
cloudlist -resource-type container # List only container resources
cloudlist -resource-type function  # List only serverless functions

Output Formatting

# Format output as IP:port
cloudlist -format "\\\\{\\\\{.IP\\\\}\\\\}:\\\\{\\\\{.Port\\\\}\\\\}"

# Format output as hostname and IP
cloudlist -format "\\\\{\\\\{.Hostname\\\\}\\\\} (\\\\{\\\\{.IP\\\\}\\\\})"

# Format output as JSON with specific fields
cloudlist -json -format "\\\\{\\\\{.ID\\\\}\\\\},\\\\{\\\\{.Name\\\\}\\\\},\\\\{\\\\{.IP\\\\}\\\\},\\\\{\\\\{.Provider\\\\}\\\\}"

Integration with Other Tools

Pipeline with HTTPX

# List cloud assets and probe for HTTP services
cloudlist -silent|httpx -silent

# List cloud assets, filter by port, and probe for HTTP services
cloudlist -silent|grep ":80"|httpx -silent

Pipeline with Nuclei

# List cloud assets, probe for HTTP services, and scan for vulnerabilities
cloudlist -silent|httpx -silent|nuclei -t cves/

# List cloud assets from specific provider and scan for vulnerabilities
cloudlist -provider aws -silent|httpx -silent|nuclei -t exposures/
```### Pipeline with Naabu
   ### Pipeline con Naabu
```bash
# List cloud assets and scan for open ports
cloudlist -silent|naabu -silent

# List cloud assets and scan for specific ports
cloudlist -silent|naabu -p 80,443,8080 -silent
```## Output Customization
   ## Personalizzazione dell'Output
```bash
# Output only IP addresses
cloudlist -silent -format "\\\\{\\\\{.IP\\\\}\\\\}"

# Output hostname and provider
cloudlist -silent -format "\\\\{\\\\{.Hostname\\\\}\\\\} (\\\\{\\\\{.Provider\\\\}\\\\})"

# Output JSON with specific fields
cloudlist -json -format "\\\\{\\\\{.ID\\\\}\\\\},\\\\{\\\\{.Name\\\\}\\\\},\\\\{\\\\{.IP\\\\}\\\\},\\\\{\\\\{.Provider\\\\}\\\\}"
```### Filtering Output
   ### Filtraggio dell'Output
```bash
# Filter by IP address
cloudlist -silent|grep "192.168"

# Filter by hostname
cloudlist -silent|grep "example.com"

# Filter by provider
cloudlist -silent|grep "aws"

# Filter by port
cloudlist -silent|grep ":443"
```## Advanced Filtering
   ## Filtraggio Avanzato
```bash
# Filter AWS resources by region
cloudlist -provider aws -silent|grep "us-east-1"

# Filter Azure resources by resource group
cloudlist -provider azure -silent|grep "production-rg"

# Filter GCP resources by project
cloudlist -provider gcp -silent|grep "example-project"
```### Resource Type Filtering
   ### Filtraggio per Tipo di Risorsa
```bash
# Filter by instance type
cloudlist -silent|grep "t2.micro"

# Filter by storage type
cloudlist -silent|grep "s3"

# Filter by database type
cloudlist -silent|grep "rds"
```## Troubleshooting
   ## Risoluzione dei Problemi
```bash
   # Verify provider configuration
   cloudlist -list

   # Update provider credentials
   cloudlist -remove aws
   cloudlist -add aws -aws-access-key NEW_ACCESS_KEY -aws-secret-key NEW_SECRET_KEY
   ```### Common Issues
   ### Problemi Comuni
```bash
   # Reduce concurrency
   cloudlist -concurrency 5

   # Add delay between requests
   cloudlist -delay 2
   ```1. **Authentication Issues**
    1. **Problemi di Autenticazione**
```bash
   # Check if credentials have sufficient permissions
   # For AWS, ensure the IAM user/role has the necessary read permissions
   # For Azure, ensure the service principal has the Reader role
   # For GCP, ensure the service account has the necessary viewer roles
   ```2. **Rate Limiting**
    2. **Limitazione dei Tassi**
```bash
   # Check if provider is configured correctly
   cloudlist -list

   # Try a different provider
   cloudlist -provider azure

   # Check if resources exist in the account
   ```3. **Permission Issues**
    3. **Problemi di Autorizzazione**
```bash
# Enable verbose mode
cloudlist -v

# Show debug information
cloudlist -debug

# Check provider configuration
cloudlist -list
```4. **No Results**
    4. **Nessun Risultato**
`$HOME/.config/cloudlist/config.yaml`### Debugging
    ### Debug
```yaml
# Example configuration file
providers:
  - id: aws
    aws:
      access_key: AKIAIOSFODNN7EXAMPLE
      secret_key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
  - id: azure
    azure:
      client_id: 00000000-0000-0000-0000-000000000000
      client_secret: EXAMPLE-SECRET
      tenant_id: 00000000-0000-0000-0000-000000000000
  - id: gcp
    gcp:
      service_account_key: /path/to/service-account-key.json
```## Configuration
    ## Configurazione
```bash
# Set Cloudlist configuration via environment variables
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AZURE_CLIENT_ID=00000000-0000-0000-0000-000000000000
export AZURE_CLIENT_SECRET=EXAMPLE-SECRET
export AZURE_TENANT_ID=00000000-0000-0000-0000-000000000000
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account-key.json
```### Configuration File
    ### File di Configurazione

| Bandiera | Descrizione |
|------|-------------|
| `-provider` | Provider(s) da cui elencare gli asset |
| `-resource-type` | Tipo/i di risorse da elencare |
| `-tag` | Tag(s) per filtrare le risorse |
| `-format` | Formato di output personalizzato |
| `-o, -output` | File in cui scrivere l'output |
| `-json` | Scrivi l'output in formato JSON |
| `-silent` | Mostra solo i risultati nell'output |
| `-v, -verbose` | Mostra output dettagliato |
| `-debug` | Mostra informazioni di debug |
| `-concurrency` | Numero di richieste concorrenti |
| `-delay` | Ritardo tra le richieste in secondi |
| `-add` | Aggiungi un nuovo provider |
| `-remove` | Rimuovi un provider |
| `-remove-all` | Rimuovi tutti i provider |
| `-list` | Elenco dei provider configurati |
| `-version` | Mostra versione Cloudlist |Cloudlist uses a configuration file located at 
    Cloudlist utilizza un file di configurazione situato in

| Bandiera | Descrizione |
|------|-------------|
| `-aws-access-key` | Chiave di accesso AWS |
| `-aws-secret-key` | Chiave segreta AWS |
| `-aws-session-token` | Token di sessione AWS |
| `-aws-profile` | Nome profilo AWS |
| `-aws-region` | Regione AWS |. You can customize various settings in this file:
    . Puoi personalizzare varie impostazioni in questo file:

| Bandiera | Descrizione |
|------|-------------|
| `-azure-client-id` | ID client di Azure |
| `-azure-client-secret` | Segreto client di Azure |
| `-azure-tenant-id` | ID tenant di Azure |
| `-azure-subscription-id` | ID sottoscrizione Azure |### Environment Variables
    ### Variabili di Ambiente

| Bandiera | Descrizione |
|------|-------------|
| `-gcp-service-account-key` | File chiave dell'account di servizio GCP |
| `-gcp-credentials-file` | File delle credenziali GCP |
| `-gcp-project-id` | ID del progetto GCP |## Reference
    ## Riferimenti

| Bandiera | Descrizione |
|------|-------------|
| `-do-token` | Token API di DigitalOcean |### Command Line Options
    ### Opzioni della Riga di Comando

| Bandiera | Descrizione |
|------|-------------|
| `-linode-token` | Token API Linode |### Provider-Specific Options
    ### Opzioni Specifiche del Provider

| Bandiera | Descrizione |
|------|-------------|
| `-alibaba-access-key` | Chiave di accesso Alibaba Cloud |
| `-alibaba-secret-key` | Chiave segreta di Alibaba Cloud |
| `-alibaba-region` | Regione Alibaba Cloud |#### Opzioni Cloudflare

| Bandiera | Descrizione |
|------|-------------|
| `-cloudflare-token` | Token API Cloudflare |
| `-cloudflare-key` | Chiave API Cloudflare |
| `-cloudflare-email` | Email Cloudflare |### Provider Supportati

| Provider | Descrizione |
|----------|-------------|
| `aws` | Amazon Web Services |
| `azure` | Microsoft Azure |
| `gcp` | Google Cloud Platform |
| `digitalocean` | DigitalOcean |
| `linode` | Linode |
| `alibaba` | Alibaba Cloud |
| `cloudflare` | Cloudflare |### Tipi di Risorse Supportate

| Tipo | Descrizione |
|------|-------------|
| `instance` | Macchine virtuali e istanze |
| `storage` | Risorse di storage (ad es. bucket S3, Azure Blobs) |
| `network` | Risorse di rete (ad es., load balancer, VPC) |
| `database` | Risorse di database (ad es., RDS, Azure SQL) |
| `container` | Risorse dei container (ad es., ECS, AKS) |
| `function` | Funzioni serverless (ad es. Lambda, Azure Functions) |## Risorse

- [Documentazione Ufficiale](https://docs.projectdiscovery.io/tools/cloudlist)
- [Repository GitHub](https://github.com/projectdiscovery/cloudlist)
- [Discord di Project Discovery](https://discord.gg/projectdiscovery)

---

*Questo cheat sheet fornisce un riferimento completo per l'utilizzo di Cloudlist, dalla visualizzazione base degli asset al filtraggio avanzato e all'integrazione con altri strumenti. Per le informazioni più aggiornate, fare sempre riferimento alla documentazione ufficiale.*