
Générateur de wordlist de sous-domaines rapide et personnalisable utilisant DSL
Fonctionnalités • Installation • Utilisation • Exécution d'AlterX • Rejoindre Discord
Générateur de listes de sous-domaines rapide et personnalisable utilisant DSL.

Pour installer alterx, vous devez avoir Golang 1.19 installé sur votre système. Vous pouvez télécharger Golang ici. Après avoir installé Golang, vous pouvez utiliser la commande suivante pour installer alterx :
go install github.com/projectdiscovery/alterx/cmd/alterx@latest
# Clonez le dépôt
git clone https://github.com/projectdiscovery/alterx.git
cd alterx
# Compilez avec le Makefile
make build
# Ou compilez manuellement
go build ./cmd/alterx
Cibles Makefile disponibles :
make help # Afficher toutes les cibles disponibles
make build # Compiler le binaire
make test # Exécuter les tests
make test-coverage # Exécuter les tests avec couverture
make lint # Exécuter le linter
make fmt # Formater le code
make clean # Nettoyer les artefacts de compilation
make install # Installer dans $GOPATH/bin
Vous pouvez utiliser la commande suivante pour voir les drapeaux et options 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 ??Ce qui rend alterx différent des autres outils de permutation de sous-domaines comme goaltdns est sa fonctionnalité de scripting. alterx prend des modèles en entrée et génère une liste de mots de permutation de sous-domaines basée sur ce modèle, similaire à ce que nuclei fait avec fuzzing-templates.
Ce qui rend la « Recherche active de sous-domaines » difficile est la probabilité de trouver un domaine qui existe réellement. Si l'on représente la recherche de sous-domaines possibles sur une échelle, cela devrait ressembler à ceci :
Utilisation d'une liste de mots < générer des permutations avec sous-domaines (goaltdns) < alterx
Presque tous les outils de permutation de sous-domaines populaires ont des modèles codés en dur, et lorsque ces outils sont exécutés, ils créent une liste de mots contenant des sous-domaines en millions, ce qui réduit la faisabilité de les bruteforcer avec des outils comme dnsx. Il n'y a pas de convention réelle pour nommer les sous-domaines, cela dépend généralement de la personne qui enregistre le sous-domaine. Avec alterx, il est possible de créer des modèles basés sur les résultats de la « Recherche passive de sous-domaines », ce qui augmente la probabilité de trouver un sous-domaine et la faisabilité de les bruteforcer.
alterx utilise une syntaxe similaire aux variables des modèles nuclei. On peut écrire ses propres modèles en utilisant ces variables. Lorsque des domaines sont passés en entrée, alterx évalue l'entrée et en extrait les variables.
{{sub}} : préfixe de sous-domaine ou partie la plus à gauche d'un sous-domaine
{{suffix}} : tout sauf {{sub}} dans le nom du sous-domaine constitue le suffixe
{{tld}} : nom de domaine de premier niveau (ex. com, uk, in, etc.)
{{etld}} : également appelé suffixe public (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}} : domaine de deuxième niveau (ex. pour api.scanme.sh => {{sld}} est scanme)
{{root}} : également connu sous le nom de eTLD+1, c'est-à-dire uniquement le domaine racine (ex. pour api.scanme.sh => {{root}} est scanme.sh)
{{subN}} : ici N est un entier (ex. {{sub1}} , {{sub2}} etc.)
// {{subN}} est une variable avancée qui existe selon l'entrée
// disons qu'il y a un domaine multi-niveaux cloud.nuclei.scanme.sh
// dans ce cas {{sub}} = cloud et {{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 modèle, en termes simples, peut être considéré comme un template qui décrit quel type de motifs alterx doit générer.