
مولّد سريع وقابل للتخصيص لقوائم كلمات النطاقات الفرعية باستخدام DSL
الميزات • التثبيت • الاستخدام • تشغيل AlterX • انضم إلى Discord
مولّد قوائم كلمات النطاقات الفرعية سريع وقابل للتخصيص باستخدام DSL.

لتثبيت alterx، يجب أن يكون لديك Golang 1.19 مثبتًا على نظامك. يمكنك تنزيل Golang من هنا. بعد تثبيت Golang، يمكنك استخدام الأمر التالي لتثبيت 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
أهداف 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
يمكنك استخدام الأمر التالي لعرض الأعلام والخيارات المتاحة:
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 ؟؟ما يجعل alterx مختلفًا عن أي أدوات توليد تبديلات النطاقات الفرعية الأخرى مثل goaltdns هو ميزة البرمجة النصية الخاصة به. يأخذ alterx الأنماط كمدخلات ويولّد قائمة كلمات تبديلات النطاقات الفرعية بناءً على ذلك النمط، على غرار ما يفعله nuclei مع fuzzing-templates.
ما يجعل العد النشط للنطاقات الفرعية صعبًا هو احتمالية العثور على نطاق موجود فعلًا. إذا تم تمثيل إيجاد النطاقات الفرعية المحتملة على مقياس، فسيبدو شيئًا مثل:
Using Wordlist < generate permutations with subdomains (goaltdns) < alterx
تقريبًا جميع أدوات توليد تبديلات النطاقات الفرعية الشائعة تحتوي على أنماط مبرمجة مسبقًا (hardcoded)، وعند تشغيل هذه الأدوات فإنها تنشئ قوائم كلمات تحتوي على ملايين النطاقات الفرعية، مما يقلل من جدوى تخمينها (bruteforce) باستخدام أدوات مثل dnsx. لا توجد اصطلاحات فعلية لتسمية النطاقات الفرعية، وعادةً ما يعتمد ذلك على الشخص الذي يسجّل النطاق الفرعي. مع alterx، من الممكن إنشاء أنماط بناءً على نتائج العد السلبي للنطاقات الفرعية، مما يزيد من احتمالية العثور على نطاق فرعي وجدوى تخمينها.
يستخدم alterx صيغة تشبه المتغيرات مشابهة لـ nuclei-templates. يمكن للمستخدم كتابة أنماطه الخاصة باستخدام هذه المتغيرات. عند تمرير النطاقات كمدخلات، يقوم alterx بتقييم المدخلات واستخراج المتغيرات منها.
{{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)
| المتغير | 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`
| المتغير | 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}} | - | - | - |
يمكن اعتبار النمط بعبارات بسيطة بمثابة قالب يصف أنواع الأنماط التي يجب أن يولّدها 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
فيما يلي ملف تكوين أنماط مثال - https://github.com/projectdiscovery/alterx/blob/main/permutations.yaml ويمكن تخصيصه بسهولة حسب الحاجة.
يقوم ملف التكوين هذا بتوليد تبديلات النطاقات الفرعية لتقييمات الأمان أو اختبارات الاختراق باستخدام أنماط قابلة للتخصيص وحمولات ديناميكية. تتضمن الأنماط المستندة إلى الشرطة والنقطة وغيرها. يمكن للمستخدمين إنشاء أقسام حمولات مخصصة، مثل الكلمات أو معرّفات المناطق أو الأرقام، لتناسب احتياجاتهم الخاصة.