
Generatore di wordlist per sottodomini veloce e personalizzabile che utilizza DSL
Funzionalità • Installazione • Utilizzo • Eseguire AlterX • Unisciti a Discord
Generatore di wordlist di sottodomini veloce e personalizzabile tramite DSL.

Per installare alterx, devi avere Golang 1.19 installato sul tuo sistema. Puoi scaricare Golang da qui. Dopo aver installato Golang, puoi usare il seguente comando per installare alterx:
go install github.com/projectdiscovery/alterx/cmd/alterx@latest
# Clone the repository
git clone https://github.com/projectdiscovery/alterx.git
cd alterx
# Build using Makefile
make build
# Or build manually
go build ./cmd/alterx
Target disponibili del Makefile:
make help # Show all available targets
make build # Build the binary
make test # Run tests
make test-coverage # Run tests with coverage
make lint # Run linter
make fmt # Format code
make clean # Clean build artifacts
make install # Install to $GOPATH/bin
Puoi usare il seguente comando per vedere i flag e le opzioni disponibili:
Fast and customizable subdomain wordlist generator using DSL.
Usage:
./alterx [flags]
Flags:
INPUT:
-l, -list string[] subdomains to use when creating permutations (stdin, comma-separated, file)
-p, -pattern string[] custom permutation patterns input to generate (comma-seperated, file)
-pp, -payload value custom payload pattern input to replace/use in key=value format (-pp 'word=words.txt')
OUTPUT:
-es, -estimate estimate permutation count without generating payloads
-o, -output string output file to write altered subdomain list
-ms, -max-size int Max export data size (kb, mb, gb, tb) (default mb)
-v, -verbose display verbose output
-silent display results only
-version display alterx version
CONFIG:
-config string alterx cli config file (default '$HOME/.config/alterx/config.yaml')
-en, -enrich enrich wordlist by extracting words from input
-ac string alterx permutation config file (default '$HOME/.config/alterx/permutation_v0.0.1.yaml')
-limit int limit the number of results to return (default 0)
UPDATE:
-up, -update update alterx to latest version
-duc, -disable-update-check disable automatic alterx update check
alterx ??Ciò che rende alterx diverso da qualsiasi altro strumento di permutazione dei sottodomini come goaltdns è la sua funzionalità di scripting. alterx accetta pattern come input e genera una wordlist di permutazioni di sottodomini basata su quel pattern, in modo simile a ciò che nuclei fa con fuzzing-templates.
Ciò che rende difficile l'Active Subdomain Enumeration è la probabilità di trovare un dominio che esista davvero. Se la ricerca di possibili sottodomini fosse rappresentata su una scala, dovrebbe apparire più o meno così
Using Wordlist < generate permutations with subdomains (goaltdns) < alterx
Quasi tutti i popolari strumenti di permutazione dei sottodomini hanno pattern hardcoded e quando vengono eseguiti creano wordlist che contengono milioni di sottodomini, riducendo la fattibilità di eseguire bruteforce su di essi con strumenti come dnsx. Non esiste una vera convenzione per nominare i sottodomini e di solito dipende dalla persona che registra il sottodominio. Con alterx è possibile creare pattern basati sui risultati della passive subdomain enumeration, aumentando la probabilità di trovare un sottodominio e la fattibilità di eseguire bruteforce su di essi.
alterx utilizza una sintassi simile a quella delle variabili di nuclei-templates. È possibile scrivere i propri pattern usando queste variabili. Quando i domini vengono passati come input, alterx valuta l'input ed estrae le variabili da esso.
{{sub}} : subdomain prefix or left most part of a subdomain
{{suffix}} : everything except {{sub}} in subdomain name is suffix
{{tld}} : top level domain name (ex com,uk,in etc)
{{etld}} : also know as public suffix (ex co.uk , gov.in etc)
{{sld}} : second-level domain (ex for api.scanme.sh => {{sld}} is scanme)
{{root}} : also known as eTLD+1 i.e only root domain (ex for api.scanme.sh => {{root}} is scanme.sh)
{{subN}} : here N is an integer (ex {{sub1}} , {{sub2}} etc) .
// {{subN}} is advanced variable which exists depending on input
// lets say there is a multi level domain cloud.nuclei.scanme.sh
// in this case {{sub}} = cloud and {{sub1}} = nuclei`
In termini semplici, un pattern può essere considerato come un template che descrive quali tipi di pattern alterx dovrebbe generare.
// Below are some of example patterns which can be used to generate permutations
// assuming api.scanme.sh was given as input and variable {{word}} was given as input with only one value prod
// alterx generates subdomains for below patterns
"{{sub}}-{{word}}.{{suffix}}" // ex: api-prod.scanme.sh
"{{word}}-{{sub}}.{{suffix}}" // ex: prod-api.scanme.sh
"{{word}}.{{sub}}.{{suffix}}" // ex: prod.api.scanme.sh
"{{sub}}.{{word}}.{{suffix}}" // ex: api.prod.scanme.sh
Ecco un esempio di file di configurazione dei pattern - https://github.com/projectdiscovery/alterx/blob/main/permutations.yaml che può essere facilmente personalizzato in base alle proprie esigenze.
Questo file di configurazione genera permutazioni di sottodomini per assessment di sicurezza o penetration test utilizzando pattern personalizzabili e payload dinamici. I pattern includono quelli basati su trattino, basati su punto e altri. Gli utenti possono creare sezioni di payload personalizzate, come parole, identificatori di regione o numeri, per soddisfare le proprie esigenze specifiche.
Ad esempio, un utente potrebbe definire una nuova sezione di payload env con valori come prod e dev, quindi usarla in pattern come {{env}}-{{word}}.{{suffix}} per generare sottodomini come prod-app.example.com e dev-api.example.com. Questa flessibilità consente di ottenere elenchi di sottodomini su misura per scenari di test unici e ambienti target specifici.
Il file di configurazione dei pattern predefinito utilizzato per la generazione è archiviato nella directory $HOME/.config/alterx/, ed è possibile utilizzare anche un file di configurazione personalizzato tramite l'opzione -ac.
Un esempio di esecuzione di alterx su un elenco esistente di sottodomini passivi di tesla.com ci ha fornito 10 ulteriori NUOVI e validi sottodomini risolti tramite dnsx.
$ chaos -d tesla.com | alterx | dnsx
___ ____ _ __
/ _ | / / /____ ____| |/_/
/ __ |/ / __/ -_) __/> <
/_/ |_/_/\__/\__/_/ /_/|_|
projectdiscovery.io
[INF] Generated 8312 permutations in 0.0740s
auth-global-stage.tesla.com
auth-stage.tesla.com
digitalassets-stage.tesla.com
errlog-stage.tesla.com
kronos-dev.tesla.com
mfa-stage.tesla.com
paymentrecon-stage.tesla.com
sso-dev.tesla.com
shop-stage.tesla.com
www-uat-dev.tesla.com
Analogamente, l'opzione -enrich può essere usata per popolare i sottodomini noti come input di parole per generare permutazioni consapevoli del target.
$ chaos -d tesla.com | alterx -enrich
___ ____ _ __
/ _ | / / /____ ____| |/_/
/ __ |/ / __/ -_) __/> <
/_/ |_/_/\__/\__/_/ /_/|_|
projectdiscovery.io
[INF] Generated 662010 permutations in 3.9989s
Puoi modificare i pattern predefiniti in fase di esecuzione usando l'opzione CLI -pattern.
$ chaos -d tesla.com | alterx -enrich -p '{{word}}-{{suffix}}'
___ ____ _ __
/ _ | / / /____ ____| |/_/
/ __ |/ / __/ -_) __/> <
/_/ |_/_/\__/\__/_/ /_/|_|
projectdiscovery.io
[INF] Generated 21523 permutations in 0.7984s
È anche possibile sovrascrivere il valore delle variabili esistenti usando le opzioni CLI -payload.
$ alterx -list tesla.txt -enrich -p '{{word}}-{{year}}.{{suffix}}' -pp word=keywords.txt -pp year=2023
___ ____ _ __
/ _ | / / /____ ____| |/_/
/ __ |/ / __/ -_) __/> <
/_/ |_/_/\__/\__/_/ /_/|_|
projectdiscovery.io
[INF] Generated 21419 permutations in 1.1699s
Per maggiori informazioni, consulta il blog del rilascio - https://blog.projectdiscovery.io/introducing-alterx-simplifying-active-subdomain-enumeration-with-patterns/
Dai anche un'occhiata ai seguenti progetti open-source simili che potrebbero adattarsi al tuo workflow:
altdns, goaltdns, gotator, ripgen, dnsgen, dmut, permdns, str-replace, dnscewl, regulator
alterx è creato con ❤️ dal team di projectdiscovery e distribuito sotto Licenza MIT.
| Variabile | api.scanme.sh | admin.dev.scanme.sh | cloud.scanme.co.uk |
|---|
{{sub}} | api | admin | cloud |
{{suffix}} | scanme.sh | dev.scanme.sh | scanme.co.uk |
{{tld}} | sh | sh | uk |
{{etld}} | - | - | co.uk |
| Variabile | api.scanme.sh | admin.dev.scanme.sh | cloud.scanme.co.uk |
|---|
{{sld}} | scanme | scanme | scanme |
{{root}} | scanme.sh | scanme.sh | scanme.co.uk |
{{sub1}} | - | dev | - |
{{sub2}} | - | - | - |