
एक संगठनात्मक नेटवर्क स्कैनिंग के लिए तेज़ और व्यापक उपकरण
विशेषताएँ • उपयोग • स्थापना • उपयोग • योगदान • अतिरिक्त नोट्स
Domainim एक तेज़ डोमेन टोही उपकरण है जो संगठनात्मक नेटवर्क स्कैनिंग के लिए है। यह उपकरण OSINT, ब्रूटफोर्सिंग, DNS रिज़ॉल्विंग आदि तकनीकों का उपयोग करके किसी संगठन की संरचना का संक्षिप्त अवलोकन प्रदान करने का लक्ष्य रखता है।
वर्तमान विशेषताएँ (v1.0.1)-

वर्चुअल होस्टनाम गणना
रिवर्स DNS लुकअप
वाइल्डकार्ड उपडोमेन का पता लगाता है (ब्रूटफोर्सिंग के लिए)
बुनियादी TCP पोर्ट स्कैनिंग
उपडोमेन इनपुट के रूप में स्वीकार किए जाते हैं
परिणाम JSON फ़ाइल में निर्यात करें
कुछ विशेषताएँ निर्माणाधीन हैं। अधिक जानकारी के लिए नियोजित विशेषताएँ देखें।
यह परियोजना Sublist3r से प्रेरित है। पोर्ट स्कैनर मॉड्यूल NimScan पर आधारित है।
आप इस रेपो को स्रोत से बना सकते हैं-
git clone [email protected]:pptx704/domainim
nimble build
./domainim <domain> [--ports=<ports>]
या, आप रिलीज़ पेज से बाइनरी डाउनलोड कर सकते हैं। ध्यान रखें कि बाइनरी केवल Debian आधारित सिस्टम पर परीक्षण किया गया है।
./domainim <domain> [--ports=<ports> | -p:<ports>] [--wordlist=<filename> | l:<filename> [--rps=<int> | -r:<int>]] [--dns=<dns> | -d:<dns>] [--out=<filename> | -o:<filename>]
<domain> वह डोमेन है जिसे गिनना है। यह एक उपडोमेन भी हो सकता है।-- ports | -p स्कैन किए जाने वाले पोर्ट का एक स्ट्रिंग विनिर्देश है। यह निम्नलिखित में से एक हो सकता है-
all - सभी पोर्ट स्कैन करें (1-65535)none - पोर्ट स्कैनिंग छोड़ें (डिफ़ॉल्ट)t<n> - शीर्ष n पोर्ट स्कैन करें (nmap की तरह)। उदाहरण t100 शीर्ष 100 पोर्ट स्कैन करता है। अधिकतम मान 5000 है। यदि n 5000 से अधिक है, तो इसे 5000 पर सेट किया जाएगा।80 पोर्ट 80 स्कैन करता है80-100 पोर्ट 80 से 100 स्कैन करता है80,443,8080 पोर्ट 80, 443 और 8080 स्कैन करता है80,443,8080-8090,t500 पोर्ट 80, 443, 8080 से 8090 और शीर्ष 500 पोर्ट स्कैन करता है--dns | -d DNS सर्वर का पता है। यह एक मान्य IPv4 पता होना चाहिए और वैकल्पिक रूप से पोर्ट नंबर शामिल कर सकता है-
उदाहरण
./domainim nmap.org --ports=all./domainim google.com --ports=none --dns=8.8.8.8#53./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt --rps=1500./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt --outfile=results.json./domainim mysite.com --ports=t50,5432,7000-9000 --dns=1.1.1.1सहायता मेनू ./domainim --help या ./domainim -h का उपयोग करके एक्सेस किया जा सकता है।
Usage:
domainim <domain> [--ports=<ports> | -p:<ports>] [--wordlist=<filename> | l:<filename> [--rps=<int> | -r:<int>]] [--dns=<dns> | -d:<dns>] [--out=<filename> | -o:<filename>]
domainim (-h | --help)
Options:
-h, --help Show this screen.
-p, --ports Ports to scan. [default: `none`]
Can be `all`, `none`, `t<n>`, single value, range value, combination
-l, --wordlist Wordlist for subdomain bruteforcing. Bruteforcing is skipped for invalid file.
-d, --dns IP and Port for DNS Resolver. Should be a valid IPv4 with an optional port [default: system default]
-r, --rps DNS queries to be made per second [default: 1024 req/s]
-o, --out JSON file where the output will be saved. Filename must end with `.json`
Examples:
domainim domainim.com -p:t500 -l:wordlist.txt --dns:1.1.1.1#53 --out=results.json
domainim sub.domainim.com --ports=all --dns:8.8.8.8 -t:1500 -o:results.json
परिणामों के लिए JSON स्कीमा इस प्रकार है-
[
{
"subdomain": string,
"data": [
"ipv4": string,
"vhosts": [string],
"reverse_dns": string,
"ports": [int]
]
}
]
nmap.org के लिए उदाहरण JSON यहाँ पाया जा सकता है।
योगदान का स्वागत है। बेझिझक एक पुल अनुरोध या एक मुद्दा खोलें।
यह परियोजना अभी भी अपने प्रारंभिक चरण में है। इसकी कई सीमाएँ हैं जिनके बारे में मैं जानता हूँ।
मैं जिन दो इंजनों का उपयोग कर रहा हूँ (मैं उन्हें इंजन कहता हूँ क्योंकि Sublist3r ऐसा करता है) वर्तमान में किसी प्रकार की प्रतिक्रिया सीमा रखते हैं। dnsdumpster अधिकतम 100 उपडोमेन प्राप्त कर सकता है। crt.sh भी बहुत अधिक परिणाम होने पर परिणामों को यादृच्छिक करता है। crt.sh के साथ एक और समस्या यह है कि यह कभी-कभी SQL त्रुटि लौटाता है। इसलिए कुछ डोमेन के लिए, अलग-अलग रन में परिणाम भिन्न हो सकते हैं। मैं भविष्य में और इंजन जोड़ने की योजना बना रहा हूँ (कम से कम एक ब्रूट फोर्स इंजन)।
पोर्ट स्कैनर में केवल ping प्रतिक्रिया समय + 750ms टाइमआउट है। इससे गलत नकारात्मक परिणाम हो सकते हैं। चूंकि domainim पोर्ट स्कैनिंग के लिए नहीं है बल्कि एक त्वरित अवलोकन प्रदान करने के लिए है, ऐसे मामले स्वीकार्य हैं। हालांकि, मैं टाइमआउट बढ़ाने के लिए एक फ्लैग जोड़ने की योजना बना रहा हूँ। इसी कारण से, फ़िल्टर किए गए पोर्ट नहीं दिखाए जाते हैं। अधिक व्यापक पोर्ट स्कैनिंग के लिए, मैं Nmap का उपयोग करने की सलाह देता हूँ। Domainim दर-सीमित को भी बायपास नहीं करता है (यदि कोई है)।
ऐसा लग सकता है कि vhostnames को जिस तरह से मुद्रित किया जाता है, वह सिर्फ दोहराव लाता है।

निम्नलिखित के रूप में मुद्रित करना बेहतर हो सकता था-
ack.nmap.org, issues.nmap.org, nmap.org, research.nmap.org, scannme.nmap.org, svn.nmap.org, www.nmap.org
↳ 45.33.49.119
↳ Reverse DNS: ack.nmap.org.
लेकिन पहले परीक्षण के दौरान, मुझे ऐसे मामले मिले जहाँ सभी IPs एक ही सेट के vhostnames द्वारा साझा नहीं किए गए थे। इसलिए मैंने इसे इसी तरह रखने का फैसला किया।

DNS सर्वर में किसी प्रकार की दर-सीमा हो सकती है। इसलिए मैंने प्रति क्वेरी IPv4 रिज़ॉल्विंग के लिए यादृच्छिक विलंब (0-300ms के बीच) जोड़ा। यह DNS सर्वर को एक साथ सभी क्वेरी प्राप्त न करने देने के लिए है, बल्कि अधिक प्राकृतिक तरीके से। ब्रूटफोर्सिंग विधि के लिए, डिफ़ॉल्ट मान 0-1000ms के बीच है लेकिन इसे --rps | -t फ्लैग का उपयोग करके बदला जा सकता है।
एक विशेष सीमा जो मुझे परेशान कर रही है वह यह है कि DNS रिज़ॉल्वर किसी डोमेन के लिए सभी IPs नहीं लौटाता है। इसलिए सभी (या अधिकांश) IPs प्राप्त करने के लिए कई क्वेरी करना आवश्यक है। लेकिन फिर, यह जानना संभव नहीं है कि किसी डोमेन के लिए कितने IPs हैं। मुझे अभी भी इसका समाधान निकालना है। साथ ही, nim-ndns CNAME रिकॉर्ड का समर्थन नहीं करता है। इसलिए, यदि किसी डोमेन में CNAME रिकॉर्ड है, तो इसे हल नहीं किया जाएगा। मैं इसके लिए लेखक से प्रतिक्रिया की प्रतीक्षा कर रहा हूँ।
अभी के लिए, यदि कोई संभावित वाइल्डकार्ड उपडोमेन पाया जाता है तो ब्रूटफोर्सिंग छोड़ दी जाती है। ऐसा इसलिए है क्योंकि यदि किसी डोमेन में वाइल्डकार्ड उपडोमेन है, तो ब्रूटफोर्सिंग सभी संभावित उपडोमेन के लिए IPv4 हल करेगी। हालांकि, यह मान्य उपडोमेन को भी छोड़ देगा (जैसे scanme.nmap.org छोड़ दिया जाएगा भले ही यह वाइल्डकार्ड मान न हो)। मैं बाद में ब्रूटफोर्सिंग को मजबूर करने के लिए एक --force-brute | -fb फ्लैग जोड़ूंगा।
उपडोमेन इनपुट के लिए VHost गणना के लिए भी ऐसी ही बात सच है। चूंकि, दिए गए उपडोमेन के साथ समाप्त होने वाले URL वापस आते हैं, समान डोमेन के उपडोमेन पर विचार नहीं किया जाता है। उदाहरण के लिए, scannme.nmap.org को ack.nmap.org के लिए मुद्रित नहीं किया जाएगा लेकिन something.ack.nmap.org मुद्रित हो सकता है। मैं nmap.org के सभी उपडोमेन खोज सकता हूँ लेकिन यह उपडोमेन को इनपुट के रूप में रखने के उद्देश्य को विफल कर देगा।
MIT लाइसेंस। पूर्ण पाठ के लिए LICENSE देखें।
a.b.c.d - DNS सर्वर का उपयोग करें a.b.c.d पर पोर्ट 53 परa.b.c.d#n - DNS सर्वर का उपयोग करें a.b.c.d पर पोर्ट e पर--wordlist | -l - वर्डलिस्ट फ़ाइल का पथ। इसका उपयोग उपडोमेन ब्रूटफोर्सिंग के लिए किया जाता है। यदि फ़ाइल अमान्य है, तो ब्रूटफोर्सिंग छोड़ दी जाएगी। आप SecLists से एक वर्डलिस्ट प्राप्त कर सकते हैं। रिलीज़ पेज पर भी एक वर्डलिस्ट प्रदान की गई है।--rps | -r - ब्रूटफोर्स के दौरान प्रति सेकंड किए जाने वाले अनुरोधों की संख्या। डिफ़ॉल्ट मान 1024 req/s है। यह ध्यान देने योग्य है कि DNS क्वेरी बैचों में की जाती हैं और अगला बैच पिछले एक के पूरा होने के बाद ही बनाया जाता है। चूंकि क्वेरी दर-सीमित हो सकती हैं, मान बढ़ाना हमेशा तेज़ परिणाम की गारंटी नहीं देता है।--out | -o - आउटपुट फ़ाइल का पथ। आउटपुट JSON प्रारूप में सहेजा जाएगा। फ़ाइल नाम .json के साथ समाप्त होना चाहिए।