
Generador rápido y personalizable de listas de palabras de subdominios mediante DSL
Características • Instalación • Uso • Ejecutando AlterX • Únete a Discord
Generador de listas de palabras de subdominios rápido y personalizable usando DSL.

Para instalar alterx, necesitas tener Golang 1.19 instalado en tu sistema. Puedes descargar Golang desde aquí. Después de instalar Golang, puedes usar el siguiente comando para instalar 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
Objetivos disponibles 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
Puedes usar el siguiente comando para ver las banderas y opciones disponibles:
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 ??lo que hace que alterx sea diferente de cualquier otra herramienta de permutación de subdominios como goaltdns es su funcionalidad de scripting. alterx toma patrones como entrada y genera una lista de palabras de permutaciones de subdominios basada en ese patrón, similar a lo que nuclei hace con fuzzing-templates .
Lo que hace difícil la Enumeración Activa de Subdominios es la probabilidad de encontrar un dominio que realmente exista. Si la búsqueda de subdominios posibles se representara en una escala, se vería algo así como
Using Wordlist < generate permutations with subdomains (goaltdns) < alterx
Casi todas las herramientas populares de permutación de subdominios tienen patrones hardcodeados y cuando se ejecutan crean listas de palabras que contienen subdominios por millones, lo que reduce la viabilidad de hacer fuerza bruta con herramientas como dnsx. No existe una convención real para nombrar subdominios y normalmente depende de la persona que registra el subdominio. Con alterx es posible crear patrones basados en los resultados de la enumeración pasiva de subdominios, lo que aumenta la probabilidad de encontrar un subdominio y la viabilidad de hacer fuerza bruta sobre ellos.
alterx utiliza una sintaxis similar a variables, parecida a la de nuclei-templates. Se pueden escribir patrones propios usando estas variables. Cuando se pasan dominios como entrada, alterx evalúa la entrada y extrae variables de ella.
{{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)
| Variable | 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`
| Variable | 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}} | - | - | - |
un patrón, en términos simples, puede considerarse como una plantilla que describe qué tipo de patrones debe generar alterx.
// 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