go install -v github.com/projectdiscovery/chaos-client/cmd/chaos@latest
chaos -h
This will display help for the tool. Here are all the switches it supports.
Flag | Description | Example |
---|---|---|
-d |
Domain to find subdomains for | chaos -d uber.com |
-count |
Show statistics for the specified domain | chaos -d uber.com -count |
-o |
File to write output to (optional) | chaos -d uber.com -o uber.txt |
-json |
Print output as json | chaos -d uber.com -json |
-key |
Chaos key for API | chaos -key API_KEY |
-dL |
File with list of domains (optional) | chaos -dL domains.txt |
-silent |
Make the output silent | chaos -d uber.com -silent |
-version |
Print current version of chaos client | chaos -version |
-verbose |
Show verbose output | chaos -verbose |
-update |
updates to latest version | chaos -up |
-disable-update-check |
disables automatic update check | chaos -duc |
You can also set the API key as an environment variable in your bash profile.
export CHAOS_KEY=CHAOS_API_KEY
You can get your API key by either signing up or logging in at cloud.projectdiscovery.io.
In order to get subdomains for a domain, use the following command.
chaos -d uber.com -silent
restaurants.uber.com
testcdn.uber.com
approvalservice.uber.com
zoom-logs.uber.com
eastwood.uber.com
meh.uber.com
webview.uber.com
kiosk-api.uber.com
utmbeta-staging.uber.com
getmatched-staging.uber.com
logs.uber.com
dca1.cfe.uber.com
cn-staging.uber.com
frontends-primary.uber.com
eng.uber.com
guest.uber.com
kiosk-home-staging.uber.com
- The API is rate-limited to 60 request / min / ip
- Chaos API only supports domain name to query.
Chaos
can be utilized as a library for subdomain enumeration by instantiating the Options
struct and populating it with the same options that would be specified via CLI.
package main
import (
"os"
"github.com/projectdiscovery/chaos-client/internal/runner"
"github.com/projectdiscovery/chaos-client/pkg/chaos"
)
func main() {
var results []chaos.Result
opts := &runner.Options{
Domain: "projectdiscovery.io",
APIKey: os.Getenv("CHAOS_KEY"),
OnResult: func(result interface{}) {
if val, ok := result.(chaos.Result); !ok {
results = append(results, val)
}
},
}
runner.RunEnumeration(opts)
}
π‘ Note
To run the program, you need to set the CHAOS_KEY
environment variable to your Chaos API key.
You are welcomed to join our Discord Community. You can also follow us on Twitter to keep up with everything related to chaos project.
Thanks again for your contribution and keeping the community vibrant. β€οΈ