
OSINT संग्रह से सुरक्षा अंतर्दृष्टि के लिए URLs निकालता है
OSINT आर्काइव्स से सुरक्षा अंतर्दृष्टि के लिए URL निकालता है।
Urx एक कमांड-लाइन टूल है जिसे OSINT आर्काइव्स, जैसे Wayback Machine और Common Crawl से URL एकत्र करने के लिए डिज़ाइन किया गया है। दक्षता के लिए Rust में निर्मित, यह एक साथ कई डेटा स्रोतों से पूछताछ करने के लिए अतुल्यकालिक प्रसंस्करण का लाभ उठाता है। यह टूल किसी निर्दिष्ट डोमेन के लिए URL जानकारी एकत्र करने की प्रक्रिया को सरल बनाता है, एक व्यापक डेटासेट प्रदान करता है जिसका उपयोग सुरक्षा परीक्षण और विश्लेषण सहित विभिन्न उद्देश्यों के लिए किया जा सकता है।

# https://crates.io/crates/urx
cargo install urx
# https://formulae.brew.sh/formula/urx
brew install urx
git clone https://github.com/hahwul/urx.git
cd urx
cargo build --release
संकलित बाइनरी target/release/urx पर उपलब्ध होगी।
# एकल डोमेन स्कैन करें
urx example.com
# एकाधिक डोमेन स्कैन करें
urx example.com example.org
# फ़ाइल से डोमेन स्कैन करें
cat domains.txt | urx
Usage: urx [OPTIONS] [DOMAINS]...
Arguments:
[DOMAINS]... URL प्राप्त करने के लिए डोमेन
Options:
-c, --config <CONFIG> लोड करने के लिए कॉन्फ़िग फ़ाइल
--provider-config <PATH> केवल API कुंजियाँ रखने वाली अलग प्रदाता कॉन्फ़िग फ़ाइल (डिफ़ॉल्ट: $XDG_CONFIG_HOME/urx/provider-config.toml). CLI/env > provider-config > main config.
-h, --help सहायता प्रिंट करें
-V, --version संस्करण प्रिंट करें
इनपुट विकल्प:
--files <FILES>... फ़ाइलों से सीधे URL पढ़ें (WARC, URLTeam संपीड़ित और पाठ फ़ाइलों का समर्थन करता है)
--domain-list <PATH> स्कैन करने के लिए नई-पंक्ति-पृथक डोमेन की फ़ाइल (दोहराने योग्य; स्थितीय DOMAINS और stdin के साथ विलय; `#` टिप्पणियां अनुमत)
आउटपुट विकल्प:
-o, --output <OUTPUT> आउटपुट फ़ाइल में परिणाम लिखें
--output-dir <PATH> इस निर्देशिका में प्रति डोमेन एक फ़ाइल लिखें (एक्सटेंशन --format से मेल खाता है). --output / stdout के साथ सह-अस्तित्व।
-f, --format <FORMAT> आउटपुट स्वरूप (जैसे, "plain", "json", "csv") [डिफ़ॉल्ट: plain]
--merge-endpoint समान पथ वाले एंडपॉइंट और URL पैरामीटर मर्ज करें
--normalize-url बेहतर डीडुप्लिकेशन के लिए URL सामान्य करें (क्वेरी पैरामीटर सॉर्ट करता है, अनुगामी स्लैश हटाता है)
प्रदाता विकल्प:
--providers <PROVIDERS>
उपयोग करने के लिए प्रदाता (कॉमा-पृथक, जैसे, "wayback,cc,otx,arquivo,vt,urlscan") [डिफ़ॉल्ट: wayback,cc,otx]
--exclude-providers <EXCLUDE_PROVIDERS>
बाहर करने के लिए प्रदाता (कॉमा-पृथक). --providers / --all-providers के साथ विरोध पर जीतता है।
--all-providers
सभी समर्थित प्रदाता सक्षम करें। API-कुंजी वाले प्रदाता केवल तब सक्रिय होते हैं जब कोई कुंजी उपलब्ध हो।
--list-providers
सभी समर्थित प्रदाता सूचीबद्ध करें फिर बाहर निकलें।
--subs
खोज करते समय उपडोमेन शामिल करें
--cc-index <CC_INDEX>
उपयोग करने के लिए Common Crawl इंडेक्स; समानांतर में कई इंडेक्स से पूछताछ करने के लिए कॉमा-पृथक सूची स्वीकार करता है (जैसे `CC-MAIN-2026-17,CC-MAIN-2025-51`). `latest` (डिफ़ॉल्ट) collinfo.json के माध्यम से नवीनतम को हल करता है। [डिफ़ॉल्ट: latest]
--wayback-from <DATE>
Wayback Machine परिणामों को DATE पर या उसके बाद के स्नैपशॉट तक सीमित करें (YYYY/YYYYMM/YYYYMMDD/YYYYMMDDhhmmss)
--wayback-to <DATE>
Wayback Machine परिणामों को DATE पर या उससे पहले के स्नैपशॉट तक सीमित करें (वही प्रारूप जैसे --wayback-from)
--vt-api-key <VT_API_KEY>
VirusTotal के लिए API कुंजी (रोटेशन के लिए कई बार इस्तेमाल किया जा सकता है, कॉमा-पृथक कुंजियों के साथ URX_VT_API_KEY पर्यावरण चर का भी उपयोग कर सकते हैं)
--urlscan-api-key <URLSCAN_API_KEY>
Urlscan के लिए वैकल्पिक API कुंजी; प्रदाता अनाम रूप से भी काम करता है (दर-सीमित ~30 req/min प्रति IP). रोटेशन के लिए कई बार इस्तेमाल किया जा सकता है, या URX_URLSCAN_API_KEY (कॉमा-पृथक कुंजियाँ) के माध्यम से।
--github-api-key <GITHUB_API_KEY>
GitHub Code Search प्रदाता के लिए व्यक्तिगत एक्सेस टोकन (URX_GITHUB_API_KEY भी पढ़ता है, रोटेशन के लिए कॉमा-पृथक)
खोज विकल्प:
--exclude-robots robots.txt खोज बाहर करें
--exclude-sitemap sitemap.xml खोज बाहर करें
प्रदर्शन विकल्प:
-v, --verbose विस्तृत आउटपुट दिखाएं
--silent मूक मोड (कोई आउटपुट नहीं)
--no-progress कोई प्रगति पट्टी नहीं
--show-sources आउटपुट URL को उन प्रदाताओं के साथ चिह्नित करें जिन्होंने उन्हें लौटाया
--stats रन के अंत में stderr पर प्रति-प्रदाता सारांश प्रिंट करें
फ़िल्टर विकल्प:
-p, --preset <PRESET>
फ़िल्टर प्रीसेट (जैसे, "no-resources,no-images,no-audio,only-js,only-style")
-e, --extensions <EXTENSIONS>
URL को केवल विशिष्ट एक्सटेंशन वाले तक सीमित करें (कॉमा-पृथक, जैसे, "js,php,aspx")
--exclude-extensions <EXCLUDE_EXTENSIONS>
URL को विशिष्ट एक्सटेंशन वाले बाहर करने के लिए फ़िल्टर करें (कॉमा-पृथक, जैसे, "html,txt")
--patterns <PATTERNS>
URL को केवल विशिष्ट पैटर्न वाले तक सीमित करें (कॉमा-पृथक)
--exclude-patterns <EXCLUDE_PATTERNS>
URL को विशिष्ट पैटर्न वाले बाहर करने के लिए फ़िल्टर करें (कॉमा-पृथक)
--show-only-host
केवल URL का होस्ट भाग दिखाएं
--show-only-path
केवल URL का पथ भाग दिखाएं
--show-only-param
केवल URL का पैरामीटर भाग दिखाएं
--min-length <MIN_LENGTH>
शामिल करने के लिए न्यूनतम URL लंबाई
--max-length <MAX_LENGTH>
शामिल करने के लिए अधिकतम URL लंबाई
--strict
सटीक होस्ट सत्यापन लागू करें (डिफ़ॉल्ट)
नेटवर्क विकल्प:
--network-scope <NETWORK_SCOPE> नियंत्रित करें कि नेटवर्क सेटिंग्स किन घटकों पर लागू होती हैं (all, providers, testers, या providers,testers) [डिफ़ॉल्ट: all]
--proxy <PROXY> HTTP अनुरोधों के लिए प्रॉक्सी का उपयोग करें (प्रारूप: <http://proxy.example.com:8080>)
--proxy-auth <PROXY_AUTH> प्रॉक्सी प्रमाणीकरण क्रेडेंशियल्स (प्रारूप: username:password)
--insecure SSL प्रमाणपत्र सत्यापन छोड़ें (स्व-हस्ताक्षरित प्रमाणपत्र स्वीकार करें)
--random-agent HTTP अनुरोधों के लिए यादृच्छिक User-Agent का उपयोग करें
--timeout <TIMEOUT> अनुरोध टाइमआउट सेकंड में [डिफ़ॉल्ट: 120]
--retries <RETRIES> असफल अनुरोधों के लिए पुनः प्रयासों की संख्या [डिफ़ॉल्ट: 2]
--parallel <PARALLEL> प्रति प्रदाता एक साथ लाए गए अधिकतम डोमेन (और एक साथ URL परीक्षण); एक प्रदाता का --rate-limit उनके बीच साझा किया जाता है [डिफ़ॉल्ट: 5]
--rate-limit <RATE_LIMIT> दर सीमा (प्रति सेकंड अनुरोध)
--rate-limit-by <PAIRS> प्रति-प्रदाता दर ओवरराइड (जैसे `vt=1,wayback=10`); सूचीबद्ध नहीं किए गए प्रदाताओं के लिए --rate-limit पर वापस आता है
--max-time <MAX_TIME> प्रदाता गणना समय पर वैश्विक सीमा सेकंड में (0 = असीमित) [डिफ़ॉल्ट: 0]
परीक्षण विकल्प:
--check-status
एकत्रित URL का HTTP स्थिति कोड जांचें [उपनाम: ----cs]
--include-status <INCLUDE_STATUS>
विशिष्ट HTTP स्थिति कोड या पैटर्न वाले URL शामिल करें (जैसे, --is=200,30x) [उपनाम: ----is]
--exclude-status <EXCLUDE_STATUS>
विशिष्ट HTTP स्थिति कोड या पैटर्न वाले URL बाहर करें (जैसे, --es=404,50x,5xx) [उपनाम: ----es]
--extract-links
एकत्रित URL से अतिरिक्त लिंक निकालें (HTTP अनुरोधों की आवश्यकता है)
# परिणाम एक फ़ाइल में सहेजें
urx example.com -o results.txt
# JSON स्वरूप में आउटपुट
urx example.com -f json -o results.json
# केवल JavaScript फ़ाइलों के लिए फ़िल्टर
urx example.com -e js
# HTML और टेक्स्ट फ़ाइलों को बाहर करें
urx example.com --exclude-extensions html,txt
# API एंडपॉइंट के लिए फ़िल्टर
urx example.com --patterns api,v1,graphql
# विशिष्ट पैटर्न को बाहर करें
urx example.com --exclude-patterns static,images
# फ़िल्टर प्रीसेट का उपयोग करें (--exclude-extensions=png,jpg,..... के समान)
urx example.com -p no-images
# विशिष्ट प्रदाताओं का उपयोग करें
urx example.com --providers wayback,otx
# कुंजी रहित Arquivo.pt (पुर्तगाली वेब आर्काइव) प्रदाता जोड़ें
urx example.com --providers wayback,cc,otx,arquivo
# URLScan बिना कुंजी के काम करता है (अनाम, दर-सीमित); कुंजी केवल सीमाएं बढ़ाती है
urx example.com --providers urlscan
# VirusTotal और URLScan प्रदाताओं का उपयोग करना
# 1. प्रदाताओं में स्पष्ट रूप से जोड़ें (कमांड लाइन के माध्यम से API कुंजियों के साथ)
urx example.com --providers=vt,urlscan --vt-api-key=*** --urlscan-api-key=***
# 2. API कुंजियों के लिए पर्यावरण चर का उपयोग करना
URX_VT_API_KEY=*** URX_URLSCAN_API_KEY=*** urx example.com --providers=vt,urlscan
# 3. स्वचालित सक्षमीकरण: API कुंजी प्रदान करने पर प्रदाता स्वचालित रूप से जोड़े जाते हैं
urx example.com --vt-api-key=*** --urlscan-api-key=*** # --providers में निर्दिष्ट करने की आवश्यकता नहीं
# 4. एकाधिक API कुंजी रोटेशन (दर सीमाओं को कम करने के लिए)
# कई कुंजियों के लिए दोहराए गए फ्लैग का उपयोग करना
urx example.com --vt-api-key=key1 --vt-api-key=key2 --vt-api-key=key3
# कॉमा-पृथक कुंजियों के साथ पर्यावरण चर का उपयोग करना
URX_VT_API_KEY=key1,key2,key3 URX_URLSCAN_API_KEY=ukey1,ukey2 urx example.com
# CLI फ्लैग और पर्यावरण चर का संयोजन (CLI कुंजियां पहले उपयोग की जाती हैं)
URX_VT_API_KEY=env_key1,env_key2 urx example.com --vt-api-key=cli_key1 --vt-api-key=cli_key2
# robots.txt और sitemap.xml से URL डिफ़ॉल्ट रूप से शामिल होते हैं
# robots.txt फ़ाइलों से URL बाहर करें
urx example.com --exclude-robots
# sitemap से URL बाहर करें
urx example.com --exclude-sitemap
# उपडोमेन शामिल करें
urx example.com --subs
# एकत्रित URL की स्थिति जांचें
urx example.com --check-status
# पाठ फ़ाइल से सीधे URL पढ़ें
urx --files urls.txt
# फ़ाइल इनपुट को फ़िल्टरिंग के साथ जोड़ें
urx --files urls.txt --patterns api,admin -f json
# एकत्रित URL से अतिरिक्त लिंक निकालें
urx example.com --extract-links
# नेटवर्क कॉन्फ़िगरेशन
urx example.com --proxy http://localhost:8080 --timeout 60 --parallel 10 --insecure
# उन्नत फ़िल्टरिंग
urx example.com -e js,php --patterns admin,login --exclude-patterns logout,static --min-length 20
# HTTP स्थिति कोड आधारित फ़िल्टरिंग
urx example.com --include-status 200,30x,405 --exclude-status 20x
# होस्ट सत्यापन अक्षम करें
urx example.com --strict false
# URL सामान्यीकरण और डीडुप्लिकेशन
# क्वेरी पैरामीटर सॉर्ट करके और अनुगामी स्लैश हटाकर URL सामान्य करें
urx example.com --normalize-url
# व्यापक डीडुप्लिकेशन के लिए सामान्यीकरण को एंडपॉइंट मर्जिंग के साथ जोड़ें
urx example.com --normalize-url --merge-endpoint
# फ़ाइल इनपुट के साथ URL सामान्यीकरण
urx --files urls.txt --normalize-url
Urx दोहराए गए स्कैन के लिए प्रदर्शन में सुधार करने और केवल नए URL खोजने के लिए वृद्धिशील स्कैनिंग के लिए कैशिंग का समर्थन करता है।
# SQLite के साथ कैशिंग सक्षम करें (डिफ़ॉल्ट)
urx example.com --cache-type sqlite --cache-path ~/.urx/cache.db
# वितरित कैशिंग के लिए Redis का उपयोग करें
urx example.com --cache-type redis --redis-url redis://localhost:6379
# वृद्धिशील स्कैनिंग - अंतिम स्कैन के बाद से केवल नए URL दिखाएं
urx example.com --incremental
# कैश TTL (टाइम-टू-लाइव) 12 घंटे पर सेट करें
urx example.com --cache-ttl 43200
# कैशिंग पूरी तरह से अक्षम करें
urx example.com --no-cache
# वृद्धिशील स्कैनिंग को फ़िल्टर के साथ जोड़ें
urx example.com --incremental -e js,php --patterns api
# कैशिंग सेटिंग्स के साथ कॉन्फ़िगरेशन फ़ाइल
urx -c example/config.toml example.com
# दैनिक निगरानी - केवल नए URL पर अलर्ट
urx target.com --incremental --silent | notify-tool
# कुशल डोमेन सूची प्रसंस्करण
cat domains.txt | urx --incremental --cache-ttl 3600 > new_urls.txt
# Redis के साथ वितरित टीम स्कैनिंग
urx example.com --cache-type redis --redis-url redis://shared-cache:6379
# विकास के दौरान तेज़ पुन: स्कैन
urx test-domain.com --cache-ttl 300 # तीव्र पुनरावृत्तियों के लिए 5 मिनट कैश
Urx अन्य सुरक्षा और जांच टूल्स के साथ पाइपलाइनों में अच्छी तरह से काम करता है:
# डोमेन खोजें, फिर URL खोजें
echo "example.com" | urx | grep "login" > potential_targets.txt
# अन्य टूल्स के साथ जोड़ें
cat domains.txt | urx --patterns api | other-tool
Urx gau (GetAllUrls) से प्रेरित था, एक उपकरण जो AlienVault के Open Threat Exchange, Wayback Machine और Common Crawl से ज्ञात URL प्राप्त करता है। समान मुख्य कार्यक्षमता साझा करते हुए, Urx को प्रदर्शन, समवर्ती और विस्तारित फ़िल्टरिंग क्षमताओं पर ध्यान केंद्रित करते हुए Rust में जमीन से बनाया गया था।
Urx एक ओपन-सोर्स प्रोजेक्ट है और इसे ❤️ से बनाया गया है यदि आप इस प्रोजेक्ट में योगदान देना चाहते हैं, तो कृपया CONTRIBUTING.md देखें और अपनी शानदार सामग्री के साथ पुल-अनुरोध भेजें।