
उपडोमेन गणना उपकरण, अतुल्यकालिक DNS पैकेट, 1 सेकंड में 1600,000 उपडोमेन स्कैन करने के लिए pcap का उपयोग करें
English | 中文
KSubdomain एक स्टेटलेस तकनीक पर आधारित सबडोमेन ब्रूटफोर्स टूल है, जो अभूतपूर्व स्कैनिंग गति और अत्यंत कम मेमोरी उपयोग प्रदान करता है। यह रॉ सॉकेट्स का उपयोग करके सीधे नेटवर्क एडॉप्टर को संचालित करता है, सिस्टम कर्नेल प्रोटोकॉल स्टैक को बायपास करता है, और एक विश्वसनीय स्टेट टेबल रीट्रांसमिशन मैकेनिज्म के साथ परिणामों की पूर्णता सुनिश्चित करता है। Windows, Linux, macOS का समर्थन करता है, यह बड़े पैमाने पर DNS संपत्ति पता लगाने के लिए पसंदीदा उपकरण है।
--interface दोहराकर कई नेटवर्क कार्ड निर्दिष्ट करें, बैंडविड्थ को स्टैक करें, कई आउटगोइंग IP का उपयोग करेंEnumStream/VerifyStream कॉलबैक API प्रदान करता है, परिणामों की रिअल-टाइम प्रोसेसिंग4 कोर CPU, 5M बैंडविड्थ, 100,000 शब्दकोश परीक्षण:
Releases पर जाकर अपने सिस्टम के लिए नवीनतम संस्करण डाउनलोड करें।
निर्भरता स्थापना:
libpcap-dev स्थापित करेंgit clone https://github.com/boy-hack/ksubdomain.git
cd ksubdomain
# ldflags के माध्यम से संस्करण संख्या इंजेक्ट करने की सलाह दी जाती है
go build -ldflags "-X github.com/boy-hack/ksubdomain/v2/pkg/core/conf.Version=v2.x.y" \
-o ksubdomain ./cmd/ksubdomain
या go install का उपयोग करें:
go install github.com/boy-hack/ksubdomain/v2/cmd/ksubdomain@latest
नोट: चलाने के लिए root /
CAP_NET_RAWअनुमति आवश्यक है (रॉ सॉकेट कैप्चर)
उपयोग:
ksubdomain [ग्लोबल विकल्प] <कमांड> [कमांड विकल्प]
कमांड:
enum, e एन्युमेरेशन मोड: मुख्य डोमेन के सबडोमेन का ब्रूटफोर्स
verify, v सत्यापन मोड: सत्यापित करें कि डोमेन सूची हल होती है या नहीं
test स्थानीय नेटवर्क कार्ड की अधिकतम पैकेट भेजने की गति का परीक्षण करें
device उपलब्ध नेटवर्क कार्ड जानकारी देखें
help, h सहायता प्रदर्शित करें
ग्लोबल विकल्प:
--help, -h सहायता प्रदर्शित करें
--version, -v संस्करण जानकारी प्रिंट करें
प्रदान की गई डोमेन सूची में DNS रिजॉल्यूशन रिकॉर्ड हैं या नहीं, इसकी जाँच करता है।
विकल्प:
--domain, -d डोमेन निर्दिष्ट करें (दोहराया जा सकता है)
--filename, -f डोमेन सूची फ़ाइल से पढ़ें
--stdin मानक इनपुट से पढ़ें
--bandwidth, -b बैंडविड्थ सीमा, जैसे 5m, 10m, 100m (डिफ़ॉल्ट 3m)
--resolvers, -r DNS सर्वर निर्दिष्ट करें (डिफ़ॉल्ट अंतर्निहित का उपयोग करें)
--output, -o आउटपुट फ़ाइल पथ
--format, -f आउटपुट प्रारूप: txt (डिफ़ॉल्ट), json, csv, jsonl
--silent, -s शांत मोड, केवल डोमेन आउटपुट करें (बैनर और लॉग न दिखाएं)
--only-domain, --od केवल डोमेन आउटपुट करें, IP/रिकॉर्ड न दिखाएं
--retry पुनः प्रयास संख्या, -1 का अर्थ अनंत पुनः प्रयास (डिफ़ॉल्ट 3)
--timeout एकल क्वेरी टाइमआउट सेकंड (डिफ़ॉल्ट 6)
--interface, -e नेटवर्क कार्ड नाम निर्दिष्ट करें (दोहराया जा सकता है, मल्टी-नेटवर्क-कार्ड समवर्ती)
--wildcard-filter वाइल्डकार्ड फ़िल्टर: none (डिफ़ॉल्ट), basic, advanced
--predict सबडोमेन पूर्वानुमान मोड सक्षम करें
--quiet, -q परिणाम स्क्रीन पर न प्रिंट करें (केवल फ़ाइल में लिखें)
--color, -c रंगीन आउटपुट
# एकल/एकाधिक डोमेन सत्यापित करें
./ksubdomain v -d www.example.com -d mail.example.com
# फ़ाइल से पढ़ें, txt के रूप में सहेजें
./ksubdomain v -f domains.txt -o output.txt
# पाइप इनपुट, बैंडविड्थ 10M, शांत मोड डाउनस्ट्रीम टूल के साथ जोड़ें
cat domains.txt | ./ksubdomain v --stdin -b 10m -s --od | httpx -silent
# उन्नत वाइल्डकार्ड फ़िल्टर, JSONL आउटपुट
./ksubdomain v -f domains.txt --wildcard-filter advanced --format jsonl -o output.jsonl
# मल्टी-नेटवर्क-कार्ड समवर्ती (बैंडविड्थ स्टैकिंग)
./ksubdomain v -f domains.txt --interface eth0 --interface eth1
शब्दकोश और पूर्वानुमान एल्गोरिदम के आधार पर निर्दिष्ट डोमेन के सबडोमेन का ब्रूटफोर्स।
विकल्प:
--domain, -d लक्ष्य मुख्य डोमेन (दोहराया जा सकता है)
--domain-list, --ds बैच मुख्य डोमेन फ़ाइल
--filename, -f शब्दकोश फ़ाइल पथ (डिफ़ॉल्ट अंतर्निहित शब्दकोश का उपयोग करें)
--use-ns-records डोमेन NS रिकॉर्ड पढ़ें और DNS रिज़ॉल्वर में जोड़ें
(अन्य विकल्प verify मोड के समान)
# एकल डोमेन एन्युमेरेट करें (अंतर्निहित शब्दकोश का उपयोग करें)
./ksubdomain e -d example.com
# शब्दकोश फ़ाइल निर्दिष्ट करें
./ksubdomain e -d example.com -f subdomains.txt -o result.txt
# पूर्वानुमान मोड + उन्नत वाइल्डकार्ड फ़िल्टर सक्षम करें
./ksubdomain e -d example.com --predict --wildcard-filter advanced
# बैच में कई मुख्य डोमेन एन्युमेरेट करें
./ksubdomain e --domain-list roots.txt -b 10m --format jsonl -o result.jsonl
# पाइप के माध्यम से httpx से जोड़ें
./ksubdomain e -d example.com --od -s | httpx -silent
# नेटवर्क कार्ड की अधिकतम पैकेट भेजने की गति का परीक्षण करें
./ksubdomain test
# उपलब्ध नेटवर्क कार्ड देखें
./ksubdomain device
--timeout मैन्युअल सेट करने की आवश्यकता नहीं है, इंजन स्वचालित रूप से मापे गए RTT (एक्सपोनेंशियल वेटेड मूविंग एवरेज, EWMA α=0.125) के आधार पर टाइमआउट ऊपरी और निचली सीमाओं को डायनेमिक रूप से समायोजित करता है, जिससे अनपेक्षित चूक कम होती है और अनावश्यक प्रतीक्षा से बचा जाता है।
--interface दोहराकर कई नेटवर्क कार्ड का उपयोग करके एक साथ पैकेट भेजें, एकाधिक goroutine एक ही domainChan साझा करते हैं और प्रतिस्पर्धात्मक रूप से उपभोग करते हैं, स्वाभाविक रूप से लोड संतुलन प्राप्त होता है:
./ksubdomain e -d example.com --interface eth0 --interface eth1 -b 20m
--predict सक्षम करने पर, उपकरण पहले से खोजे गए सबडोमेन के आधार पर संभावित संबंधित सबडोमेन की भविष्यवाणी करता है, जिससे खोज दर बढ़ती है।
none: कोई फ़िल्टर नहीं (डिफ़ॉल्ट)basic: बुनियादी फ़िल्टर, स्पष्ट वाइल्डकार्ड IP को हटाएंadvanced: उन्नत फ़िल्टर, बहु-आयामी निर्णय# httpx के साथ जीवित वेब का पता लगाएं
./ksubdomain e -d example.com -s --od | httpx -silent
# nuclei के साथ भेद्यता स्कैनिंग
./ksubdomain e -d example.com -s --od | nuclei -l /dev/stdin
# JSONL स्ट्रीमिंग प्रोसेसिंग, केवल A रिकॉर्ड लें
./ksubdomain e -d example.com --format jsonl | jq -r 'select(.type=="A") | .domain'
# एकाधिक डोमेन बैच + डुप्लिकेट हटाना
./ksubdomain e --domain-list roots.txt -s --od | sort -u > all_subs.txt
macOS:
# BPF बफ़र छोटा है, बैंडविड्थ को सीमित करने की सलाह दी जाती है
sudo ./ksubdomain e -d example.com -b 5m
WSL/WSL2:
# सामान्यतः eth0 का उपयोग करें
./ksubdomain e -d example.com --interface eth0
Windows:
# पहले Npcap स्थापित करें, व्यवस्थापक के रूप में चलाएँ
.\ksubdomain.exe enum -d example.com
go get github.com/boy-hack/ksubdomain/v2/sdk
import "github.com/boy-hack/ksubdomain/v2/sdk"
scanner := sdk.NewScanner(&sdk.Config{
Bandwidth: "5m",
Retry: 3,
WildcardFilter: "advanced",
})
// ब्लॉकिंग, सभी परिणाम एकत्रित करना
results, err := scanner.Enum("example.com")
// स्ट्रीमिंग कॉलबैक, रिअल-टाइम प्रोसेसिंग
err = scanner.EnumStream(ctx, "example.com", func(r sdk.Result) {
fmt.Printf("%s => %v\n", r.Domain, r.Records)
})
अधिक जानकारी के लिए SDK दस्तावेज़ और API दस्तावेज़ देखें।
# यूनिट परीक्षण (root की आवश्यकता नहीं)
go test ./pkg/...
# रिग्रेशन परीक्षण (root + नेटवर्क आवश्यक)
go build -o ksubdomain ./cmd/ksubdomain
sudo go test ./test/regression/... -tags regression -v -timeout 120s
MIT लाइसेंस — विवरण के लिए LICENSE देखें।
| उपकरण | विधि | समय | सफलता संख्या |
|---|
| KSubdomain | pcap नेटवर्क कार्ड पैकेट | ~30 सेकंड | 1397 |
| massdns | pcap/सॉकेट | ~3 मिनट 29 सेकंड | 1396 |
| dnsx | सॉकेट | ~5 मिनट 26 सेकंड | 1396 |
| प्रारूप | विवरण | उपयोग परिदृश्य |
|---|
txt | डोमेन => रिकॉर्ड, रिअल-टाइम आउटपुट | डिफ़ॉल्ट, मानव पठनीय |
json | पूर्ण JSON, पूर्ण होने पर लिखें | प्रोग्राम पार्सिंग |
csv | CSV तालिका, पूर्ण होने पर लिखें | डेटा विश्लेषण |
jsonl | प्रति पंक्ति एक JSON, रिअल-टाइम आउटपुट | स्ट्रीमिंग प्रोसेसिंग, पाइप कनेक्शन |