Top Related Projects
Automating situational awareness for cloud penetration tests.
Multi-Cloud Security Auditing Tool
Cloud Security Posture Management (CSPM)
CloudMapper helps you analyze your Amazon Web Services (AWS) environments.
The AWS exploitation framework, designed for testing the security of Amazon Web Services environments.
Cloudsplaining is an AWS IAM Security Assessment tool that identifies violations of least privilege and generates a risk-prioritized report.
Quick Overview
Cloudlist is an open-source tool designed to enumerate cloud assets across multiple providers. It helps security professionals and developers discover and list assets associated with cloud accounts, providing a comprehensive view of an organization's cloud infrastructure.
Pros
- Supports multiple cloud providers (AWS, Azure, GCP, DigitalOcean, Alibaba Cloud, and more)
- Easy to use with a simple command-line interface
- Provides detailed output in various formats (JSON, CSV, YAML)
- Actively maintained and regularly updated
Cons
- Requires API keys or credentials for each cloud provider, which may pose security risks if not handled properly
- Limited customization options for filtering and sorting results
- May not cover all possible asset types for each cloud provider
- Performance can be slow when enumerating large cloud infrastructures
Getting Started
- Install Cloudlist:
go install -v github.com/projectdiscovery/cloudlist/cmd/cloudlist@latest
- Create a configuration file (e.g.,
config.yaml) with your cloud provider credentials:
cloudlist:
- provider: aws
profile_name: default
- provider: azure
client_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
client_secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
tenant_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
subscription_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- Run Cloudlist:
cloudlist -config config.yaml
This will enumerate assets across the configured cloud providers and display the results in the terminal. You can use additional flags like -o to specify an output file or -j for JSON output.
Competitor Comparisons
Automating situational awareness for cloud penetration tests.
Pros of CloudFox
- More comprehensive cloud enumeration and attack surface mapping
- Supports multiple cloud providers (AWS, Azure, GCP)
- Includes advanced features like privilege escalation checks
Cons of CloudFox
- More complex setup and configuration
- Steeper learning curve for new users
- May require additional permissions for full functionality
Code Comparison
CloudFox:
func (e *Enumerator) EnumerateIAMUsers() ([]*iam.User, error) {
var users []*iam.User
err := e.IAMClient.ListUsersPages(&iam.ListUsersInput{},
func(page *iam.ListUsersOutput, lastPage bool) bool {
users = append(users, page.Users...)
return !lastPage
})
return users, err
}
CloudList:
func (p *AWSProvider) listUsers(ctx context.Context) ([]cloud.User, error) {
var users []cloud.User
input := &iam.ListUsersInput{}
err := p.iamClient.ListUsersPagesWithContext(ctx, input,
func(page *iam.ListUsersOutput, lastPage bool) bool {
for _, user := range page.Users {
users = append(users, cloud.User{ID: *user.UserId, Name: *user.UserName})
}
return !lastPage
})
return users, err
}
Both projects aim to enumerate cloud resources, but CloudFox offers a more comprehensive set of features for cloud security assessment. CloudList, on the other hand, provides a simpler and more focused approach to resource discovery. The code comparison shows similar implementations for listing IAM users, with CloudFox using a dedicated Enumerator struct and CloudList utilizing a provider-specific approach.
Multi-Cloud Security Auditing Tool
Pros of ScoutSuite
- Comprehensive security auditing tool for multiple cloud providers (AWS, Azure, GCP, etc.)
- Generates detailed HTML reports with security findings and recommendations
- Supports custom rulesets for tailored security assessments
Cons of ScoutSuite
- Requires more setup and configuration compared to Cloudlist
- May have a steeper learning curve for users new to cloud security auditing
- Can be slower to run due to its comprehensive nature
Code Comparison
ScoutSuite (Python):
from ScoutSuite.core.cli_parser import ScoutSuiteArgumentParser
from ScoutSuite.core.console_manager import ConsoleManager
from ScoutSuite.core.exceptions import RuleExceptions
from ScoutSuite.core.processingengine import ProcessingEngine
from ScoutSuite.core.ruleset import Ruleset
Cloudlist (Go):
package main
import (
"github.com/projectdiscovery/cloudlist/pkg/runner"
"github.com/projectdiscovery/gologger"
)
func main() {
options := runner.ParseOptions()
runner.New(options).Run()
}
ScoutSuite is a more comprehensive tool for cloud security auditing, offering detailed reports and custom rulesets. However, it may require more setup and have a steeper learning curve. Cloudlist, on the other hand, is simpler to use and focuses on quick enumeration of cloud assets across multiple providers. The code comparison shows that ScoutSuite is written in Python and has a more complex structure, while Cloudlist is written in Go and has a simpler main function.
Cloud Security Posture Management (CSPM)
Pros of Cloudsploit
- Comprehensive security and compliance checks across multiple cloud providers
- Extensive documentation and community support
- Integrates with CI/CD pipelines for automated security scanning
Cons of Cloudsploit
- Requires more setup and configuration compared to Cloudlist
- May have a steeper learning curve for beginners
- Limited to security and compliance checks, not asset discovery
Code Comparison
Cloudlist (asset discovery):
func (p *Provider) getInstances(ctx context.Context) ([]cloudlist.Asset, error) {
var assets []cloudlist.Asset
input := &ec2.DescribeInstancesInput{}
result, err := p.ec2Client.DescribeInstances(ctx, input)
if err != nil {
return nil, err
}
// Process instances and add to assets
}
Cloudsploit (security check):
const async = require('async');
const helpers = require('../../../helpers/aws');
module.exports = {
title: 'Open SSH',
category: 'EC2',
description: 'Ensures SSH (port 22) is not open to the public',
more_info: 'While some ports such as HTTP and HTTPS are required to be open...',
link: 'http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/authorizing-access-to-an-instance.html',
recommended_action: 'Restrict SSH access to trusted IP addresses',
apis: ['EC2:describeSecurityGroups', 'EC2:describeNetworkInterfaces', 'Lambda:listFunctions'],
settings: {
ec2_skip_unused_groups: {
name: 'EC2 Skip Unused Groups',
description: 'When set to true, skip checking security groups that are not associated with a network interface',
regex: '^(true|false)$',
default: 'false'
}
},
run: function(cache, settings, callback) {
// Plugin logic
}
};
CloudMapper helps you analyze your Amazon Web Services (AWS) environments.
Pros of CloudMapper
- More comprehensive visualization capabilities, including interactive network diagrams
- Supports advanced security assessments and risk analysis
- Offers detailed reporting and customizable outputs
Cons of CloudMapper
- Primarily focused on AWS, limiting its use for multi-cloud environments
- Steeper learning curve and more complex setup process
- Less frequent updates compared to CloudList
Code Comparison
CloudMapper:
from cloudmapper.nodes import Account, Region
from cloudmapper.prepare import build_data_structure
account = Account(None, 'demo')
region = Region(account, 'us-west-2')
build_data_structure(account, region, args)
CloudList:
package main
import (
"github.com/projectdiscovery/cloudlist/pkg/inventory"
)
func main() {
inventory.New().GetCloudAssets()
}
CloudMapper offers a more structured approach with separate classes for accounts and regions, while CloudList provides a simpler, more straightforward implementation for retrieving cloud assets. CloudMapper's code suggests a more detailed and granular analysis of cloud infrastructure, whereas CloudList focuses on quick and efficient asset discovery across multiple cloud providers.
The AWS exploitation framework, designed for testing the security of Amazon Web Services environments.
Pros of pacu
- More comprehensive AWS security testing tool with a broader range of modules
- Interactive command-line interface for easier navigation and use
- Supports session management for multiple AWS environments
Cons of pacu
- Focused solely on AWS, while cloudlist supports multiple cloud providers
- Steeper learning curve due to its more complex feature set
- Requires more setup and configuration compared to cloudlist's simpler approach
Code Comparison
pacu:
import boto3
from botocore.exceptions import ClientError
def run(args, pacu_main):
session = pacu_main.get_active_session()
print('Starting module...')
client = pacu_main.get_boto3_client('ec2')
cloudlist:
func (p *AWSProvider) getInstances(ctx context.Context) ([]cloud.Resource, error) {
var resources []cloud.Resource
err := p.ec2Client.DescribeInstancesPagesWithContext(ctx, &ec2.DescribeInstancesInput{}, func(page *ec2.DescribeInstancesOutput, _ bool) bool {
for _, reservation := range page.Reservations {
for _, instance := range reservation.Instances {
Both tools aim to interact with cloud resources, but pacu focuses on AWS security testing with a Python-based approach, while cloudlist is written in Go and provides a more general-purpose cloud resource enumeration across multiple providers.
Cloudsplaining is an AWS IAM Security Assessment tool that identifies violations of least privilege and generates a risk-prioritized report.
Pros of Cloudsplaining
- Focuses specifically on AWS IAM policy analysis and security assessment
- Provides detailed reports and visualizations of IAM misconfigurations
- Integrates well with existing AWS security workflows and tools
Cons of Cloudsplaining
- Limited to AWS IAM policies, while Cloudlist covers multiple cloud providers
- Requires more setup and configuration compared to Cloudlist's simpler approach
- May have a steeper learning curve for users unfamiliar with AWS IAM concepts
Code Comparison
Cloudlist example:
cloudlist -config config.yaml
Cloudsplaining example:
from cloudsplaining.scan.policy_document import PolicyDocument
policy = PolicyDocument(policy_dict)
findings = policy.analyze()
While Cloudlist focuses on discovering and listing cloud assets across multiple providers with a simple command-line interface, Cloudsplaining provides in-depth analysis of AWS IAM policies using a Python-based approach. Cloudlist offers broader coverage but less detailed analysis, while Cloudsplaining provides deep insights into AWS IAM misconfigurations but is limited to that specific use case.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Features ⢠Installation ⢠Usage ⢠Configuration ⢠Running cloudlist ⢠Supported providers ⢠Library ⢠Join Discord
Cloudlist is a multi-cloud tool for getting Assets from Cloud Providers. This is intended to be used by the blue team to augment Attack Surface Management efforts by maintaining a centralized list of assets across multiple clouds with very little configuration efforts.
Features
- List Cloud assets with multiple configurations
- Multiple Cloud providers support
- Keyless authentication support (AWS IRSA / instance profiles, GCP workload identity)
- Multiple output format support
- Multiple filters support
- Highly extensible making adding new providers a breeze
- stdout support to work with other tools in pipelines
Usage
cloudlist -h
This will display help for the tool. Here are all the switches it supports.
Cloudlist is a tool for listing Assets from multiple cloud providers.
Usage:
./cloudlist [flags]
Flags:
CONFIGURATION:
-config string cloudlist flag config file (default "$HOME/.config/cloudlist/config.yaml")
-pc, -provider-config string provider config file (default "$HOME/.config/cloudlist/provider-config.yaml")
FILTERS:
-p, -provider value display results for given providers (comma-separated) (default linode,fastly,heroku,terraform,digitalocean,consul,cloudflare,hetzner,nomad,do,scw,openstack,alibaba,aws,gcp,namecheap,kubernetes,azure, custom)
-id string[] display results for given ids (comma-separated)
-host display only hostnames in results
-ip display only ips in results
-s, -service value query and display results from given service (comma-separated) (default cloudfront,gke,domain,compute,ec2,instance,cloud-function,app,eks,custom,consul,droplet,vm,ecs,fastly,alb,s3,lambda,elb,cloud-run,route53,publicip,dns,service,nomad,lightsail,ingress,apigateway)
-es, -exclude-service value services to skip for a provider (comma-separated)
-ep, -exclude-private exclude private ips in cli output
UPDATE:
-up, -update update cloudlist to latest version
-duc, -disable-update-check disable automatic cloudlist update check
OUTPUT:
-o, -output string output file to write results
-json write output in json format
-version display version of cloudlist
-v display verbose output
-silent display only results in output
Documentation
GCP Asset API Support
Cloudlist supports two approaches for GCP asset discovery:
- Organization-Level Asset API - Comprehensive organization-wide discovery using Cloud Asset Inventory API
- Individual Service APIs - Fast project-specific discovery using individual GCP service APIs
For detailed setup instructions, required permissions, service account configuration, and usage examples, see:
Contribution
Please check PROVIDERS.md and DESIGN.md to include support for new cloud providers in Cloudlist.
- Fork this project
- Create your feature branch (
git checkout -b new-provider) - Commit your changes (
git commit -am 'Added new cloud provider') - Push to the branch (
git push origin new-provider) - Create new Pull Request
Acknowledgments
Thank you for inspiration
License
cloudlist is made with ð¤ by the projectdiscovery team and licensed under MIT
Top Related Projects
Automating situational awareness for cloud penetration tests.
Multi-Cloud Security Auditing Tool
Cloud Security Posture Management (CSPM)
CloudMapper helps you analyze your Amazon Web Services (AWS) environments.
The AWS exploitation framework, designed for testing the security of Amazon Web Services environments.
Cloudsplaining is an AWS IAM Security Assessment tool that identifies violations of least privilege and generates a risk-prioritized report.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot