
DSL का उपयोग करके तेज़ और अनुकूलन योग्य सबडोमेन वर्डलिस्ट जनरेटर
विशेषताएँ • स्थापना • उपयोग • AlterX चलाना • Discord से जुड़ें
DSL का उपयोग करके तेज़ और अनुकूलन योग्य सबडोमेन वर्डलिस्ट जनरेटर।

alterx स्थापित करने के लिए, आपके सिस्टम पर Golang 1.19 स्थापित होना चाहिए। आप Golang को यहाँ से डाउनलोड कर सकते हैं। Golang स्थापित करने के बाद, alterx स्थापित करने के लिए निम्नलिखित कमांड का उपयोग करें:
go install github.com/projectdiscovery/alterx/cmd/alterx@latest
# रिपॉजिटरी को क्लोन करें
git clone https://github.com/projectdiscovery/alterx.git
cd alterx
# Makefile का उपयोग करके निर्माण करें
make build
# या मैन्युअल रूप से निर्माण करें
go build ./cmd/alterx
उपलब्ध Makefile लक्ष्य:
make help # सभी उपलब्ध लक्ष्य दिखाएँ
make build # बाइनरी बनाएँ
make test # परीक्षण चलाएँ
make test-coverage # कवरेज के साथ परीक्षण चलाएँ
make lint # लिंटर चलाएँ
make fmt # कोड को प्रारूपित करें
make clean # निर्माण कलाकृतियों को साफ़ करें
make install # $GOPATH/bin पर स्थापित करें
आप उपलब्ध फ़्लैग और विकल्प देखने के लिए निम्नलिखित कमांड का उपयोग कर सकते हैं:
DSL का उपयोग करके तेज़ और अनुकूलन योग्य सबडोमेन वर्डलिस्ट जनरेटर।
उपयोग:
./alterx [flags]
फ़्लैग:
इनपुट:
-l, -list string[] क्रमपरिवर्तन बनाने के लिए उपयोग किए जाने वाले सबडोमेन (stdin, अल्पविराम-पृथक, फ़ाइल)
-p, -pattern string[] उत्पन्न करने के लिए कस्टम क्रमपरिवर्तन पैटर्न इनपुट (अल्पविराम-पृथक, फ़ाइल)
-pp, -payload value कस्टम पेलोड पैटर्न इनपुट को key=value प्रारूप में बदलने/उपयोग करने के लिए (-pp 'word=words.txt')
आउटपुट:
-es, -estimate पेलोड उत्पन्न किए बिना क्रमपरिवर्तन गणना का अनुमान लगाएँ
-o, -output string बदले गए सबडोमेन सूची लिखने के लिए आउटपुट फ़ाइल
-ms, -max-size int अधिकतम निर्यात डेटा आकार (kb, mb, gb, tb) (डिफ़ॉल्ट mb)
-v, -verbose विस्तृत आउटपुट प्रदर्शित करें
-silent केवल परिणाम प्रदर्शित करें
-version alterx संस्करण प्रदर्शित करें
कॉन्फ़िग:
-config string alterx cli कॉन्फ़िग फ़ाइल (डिफ़ॉल्ट '$HOME/.config/alterx/config.yaml')
-en, -enrich इनपुट से शब्द निकालकर वर्डलिस्ट को समृद्ध करें
-ac string alterx क्रमपरिवर्तन कॉन्फ़िग फ़ाइल (डिफ़ॉल्ट '$HOME/.config/alterx/permutation_v0.0.1.yaml')
-limit int लौटाए जाने वाले परिणामों की संख्या सीमित करें (डिफ़ॉल्ट 0)
अपडेट:
-up, -update alterx को नवीनतम संस्करण में अपडेट करें
-duc, -disable-update-check स्वचालित alterx अपडेट जाँच अक्षम करें
alterx क्यों ??alterx को अन्य किसी भी सबडोमेन क्रमपरिवर्तन टूल जैसे goaltdns से अलग बनाने वाली बात इसकी स्क्रिप्टिंग सुविधा है। alterx पैटर्न को इनपुट के रूप में लेता है और उस पैटर्न के आधार पर सबडोमेन क्रमपरिवर्तन वर्डलिस्ट उत्पन्न करता है, जैसे nuclei fuzzing-templates के साथ करता है।
सक्रिय सबडोमेन गणना को कठिन बनाने वाली बात वास्तव में मौजूद डोमेन खोजने की संभावना है। यदि संभावित सबडोमेन खोजने को एक पैमाने पर दर्शाया जाए तो यह कुछ इस प्रकार दिखना चाहिए:
वर्डलिस्ट का उपयोग करना < सबडोमेन के साथ क्रमपरिवर्तन उत्पन्न करना (goaltdns) < alterx
लगभग सभी लोकप्रिय सबडोमेन क्रमपरिवर्तन टूल में हार्डकोडेड पैटर्न होते हैं और जब ऐसे टूल चलाए जाते हैं तो वे लाखों में सबडोमेन वाली वर्डलिस्ट बनाते हैं और इससे dnsx जैसे टूल से ब्रूटफोर्स करने की व्यवहार्यता कम हो जाती है। सबडोमेन नामकरण का कोई वास्तविक सम्मेलन नहीं है और यह आमतौर पर सबडोमेन पंजीकृत करने वाले व्यक्ति पर निर्भर करता है। alterx के साथ निष्क्रिय सबडोमेन गणना परिणामों के आधार पर पैटर्न बनाना संभव है, जिससे सबडोमेन खोजने की संभावना और उन्हें ब्रूटफोर्स करने की व्यवहार्यता बढ़ जाती है।
alterx nuclei-टेम्पलेट्स के समान चर-जैसी सिंटैक्स का उपयोग करता है। कोई इन चरों का उपयोग करके अपने स्वयं के पैटर्न लिख सकता है। जब डोमेन इनपुट के रूप में पास किए जाते हैं तो alterx इनपुट का मूल्यांकन करता है और उसमें से चर निकालता है।
{{sub}} : सबडोमेन उपसर्ग या सबडोमेन का सबसे बायाँ भाग
{{suffix}} : सबडोमेन नाम में {{sub}} को छोड़कर सब कुछ प्रत्यय है
{{tld}} : शीर्ष स्तर डोमेन नाम (जैसे com, uk, in आदि)
{{etld}} : सार्वजनिक प्रत्यय के रूप में भी जाना जाता है (जैसे co.uk, gov.in आदि)
{{sld}} : द्वितीय-स्तर डोमेन (जैसे api.scanme.sh के लिए {{sld}} scanme है)
{{root}} : eTLD+1 के रूप में भी जाना जाता है, यानी केवल रूट डोमेन (जैसे api.scanme.sh के लिए {{root}} scanme.sh है)
{{subN}} : यहाँ N एक पूर्णांक है (जैसे {{sub1}}, {{sub2}} आदि) ।
// {{subN}} एक उन्नत चर है जो इनपुट पर निर्भर करता है
// मान लीजिए कि एक बहु-स्तरीय डोमेन है cloud.nuclei.scanme.sh
// इस मामले में {{sub}} = cloud और {{sub1}} = nuclei`
पैटर्न को सरल शब्दों में एक टेम्पलेट के रूप में माना जा सकता है जो बताता है कि alterx को किस प्रकार के पैटर्न उत्पन्न करने चाहिए।
// नीचे कुछ उदाहरण पैटर्न दिए गए हैं जिनका उपयोग क्रमपरिवर्तन उत्पन्न करने के लिए किया जा सकता है
// मान लें कि api.scanme.sh इनपुट के रूप में दिया गया था और वेरिएबल {{word}} केवल एक मान prod के साथ इनपुट के रूप में दिया गया था
// alterx नीचे दिए गए पैटर्न के लिए सबडोमेन उत्पन्न करता है
"{{sub}}-{{word}}.{{suffix}}" // उदा: api-prod.scanme.sh
"{{word}}-{{sub}}.{{suffix}}" // उदा: prod-api.scanme.sh
"{{word}}.{{sub}}.{{suffix}}" // उदा: prod.api.scanme.sh
"{{sub}}.{{word}}.{{suffix}}" // उदा: api.prod.scanme.sh
यहाँ एक उदाहरण पैटर्न कॉन्फ़िग फ़ाइल है - https://github.com/projectdiscovery/alterx/blob/main/permutations.yaml जिसे आवश्यकतानुसार आसानी से अनुकूलित किया जा सकता है।
यह कॉन्फ़िगरेशन फ़ाइल अनुकूलन योग्य पैटर्न और गतिशील पेलोड का उपयोग करके सुरक्षा मूल्यांकन या पैठ परीक्षणों के लिए सबडोमेन क्रमपरिवर्तन उत्पन्न करती है। पैटर्न में डैश-आधारित, डॉट-आधारित और अन्य शामिल हैं। उपयोगकर्ता अपनी विशिष्ट आवश्यकताओं के अनुरूप कस्टम पेलोड अनुभाग जैसे शब्द, क्षेत्र पहचानकर्ता या संख्याएँ बना सकते हैं।
उदाहरण के लिए, एक उपयोगकर्ता env नामक एक नया पेलोड अनुभाग परिभाषित कर सकता है जिसमें prod और dev जैसे मान हों, और फिर इन पैटर्न में {{env}}-{{word}}.{{suffix}} जैसे पैटर्न में उपयोग कर सकता है ताकि prod-app.example.com और dev-api.example.com जैसे सबडोमेन उत्पन्न हो सकें। यह लचीलापन अद्वितीय परीक्षण परिदृश्यों और लक्ष्य वातावरणों के लिए अनुकूलित सबडोमेन सूची की अनुमति देता है।
पीढ़ी के लिए उपयोग की जाने वाली डिफ़ॉल्ट पैटर्न कॉन्फ़िग फ़ाइल $HOME/.config/alterx/ निर्देशिका में संग्रहीत होती है, और कस्टम कॉन्फ़िग फ़ाइल का उपयोग -ac विकल्प का उपयोग करके भी किया जा सकता है।
tesla.com के मौजूदा निष्क्रिय सबडोमेन की सूची पर alterx चलाने का एक उदाहरण हमें dnsx का उपयोग करके हल किए गए 10 अतिरिक्त नए और मान्य सबडोमेन देता है।
$ chaos -d tesla.com | alterx | dnsx
___ ____ _ __
/ _ | / / /____ ____| |/_/
/ __ |/ / __/ -_) __/> <
/_/ |_/_/\__/\__/_/ /_/|_|
projectdiscovery.io
[INF] 0.0740s में 8312 क्रमपरिवर्तन उत्पन्न हुए
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
इसी प्रकार, ज्ञात सबडोमेन को विश्व इनपुट के रूप में जनसंख्या करने के लिए -enrich विकल्प का उपयोग किया जा सकता है ताकि लक्ष्य-जागरूक क्रमपरिवर्तन उत्पन्न किए जा सकें।
$ chaos -d tesla.com | alterx -enrich
___ ____ _ __
/ _ | / / /____ ____| |/_/
/ __ |/ / __/ -_) __/> <
/_/ |_/_/\__/\__/_/ /_/|_|
projectdiscovery.io
[INF] 3.9989s में 662010 क्रमपरिवर्तन उत्पन्न हुए
आप -pattern CLI विकल्प का उपयोग करके रनटाइम पर डिफ़ॉल्ट पैटर्न बदल सकते हैं।
$ chaos -d tesla.com | alterx -enrich -p '{{word}}-{{suffix}}'
___ ____ _ __
/ _ | / / /____ ____| |/_/
/ __ |/ / __/ -_) __/> <
/_/ |_/_/\__/\__/_/ /_/|_|
projectdiscovery.io
[INF] 0.7984s में 21523 क्रमपरिवर्तन उत्पन्न हुए
-payload CLI विकल्प का उपयोग करके मौजूदा चर मानों को ओवरराइट करना भी संभव है।
$ alterx -list tesla.txt -enrich -p '{{word}}-{{year}}.{{suffix}}' -pp word=keywords.txt -pp year=2023
___ ____ _ __
/ _ | / / /____ ____| |/_/
/ __ |/ / __/ -_) __/> <
/_/ |_/_/\__/\__/_/ /_/|_|
projectdiscovery.io
[INF] 1.1699s में 21419 क्रमपरिवर्तन उत्पन्न हुए
अधिक जानकारी के लिए, कृपया रिलीज़ ब्लॉग देखें - https://blog.projectdiscovery.io/introducing-alterx-simplifying-active-subdomain-enumeration-with-patterns/
नीचे दिए गए समान ओपन-सोर्स प्रोजेक्ट्स भी देखें जो आपके वर्कफ़्लो में फिट हो सकते हैं:
altdns, goaltdns, gotator, ripgen, dnsgen, dmut, permdns, str-replace, dnscewl, regulator
alterx को projectdiscovery टीम ने ❤️ से बनाया है और MIT License के तहत वितरित किया गया है।
| चर | 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 |
| चर | 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}} | - | - | - |