
Gerador rápido e personalizável de wordlists de subdomínios usando DSL
Recursos • Instalação • Uso • Executando o AlterX • Entrar no Discord
Gerador de wordlist de subdomínios rápido e personalizável usando DSL.

Para instalar o alterx, você precisa ter o Golang 1.19 instalado no seu sistema. Você pode baixar o Golang aqui. Após instalar o Golang, você pode usar o seguinte comando para instalar o 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
Alvos disponíveis no 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
Você pode usar o seguinte comando para ver os flags e opções disponíveis:
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 ??o que torna o alterx diferente de outras ferramentas de permutação de subdomínios como goaltdns é o seu recurso de scripting. O alterx recebe padrões como entrada e gera uma wordlist de permutações de subdomínios com base nesse padrão, semelhante ao que o nuclei faz com fuzzing-templates.
O que torna a Enumeração Ativa de Subdomínios difícil é a probabilidade de encontrar um domínio que realmente exista. Se a descoberta de possíveis subdomínios for representada em uma escala, ela deve parecer algo como
Using Wordlist < generate permutations with subdomains (goaltdns) < alterx
Quase todas as ferramentas populares de permutação de subdomínios têm padrões fixos (hardcoded) e, quando executadas, criam wordlists que contêm milhões de subdomínios, o que diminui a viabilidade de testá-los por força bruta com ferramentas como dnsx. Não há uma convenção real para nomear subdomínios; isso geralmente depende de quem registra o subdomínio. Com o alterx, é possível criar padrões baseados nos resultados de enumeração passiva de subdomínios, o que aumenta a probabilidade de encontrar um subdomínio e a viabilidade de testá-los por força bruta.
O alterx usa uma sintaxe semelhante à de variáveis dos nuclei-templates. É possível escrever seus próprios padrões usando essas variáveis. Quando domínios são passados como entrada, o alterx avalia a entrada e extrai variáveis dela.
{{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)
| Variável | 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 |
{{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`
| Variável | 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}} | - | - | - |
Em termos simples, um padrão pode ser considerado um template que descreve que tipo de padrões o alterx deve gerar.
// 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