
किसी संगठन द्वारा सब्सक्राइब किए गए SaaS सेवाओं का पता लगाता है, केवल बाहरी रूप से देखे जा सकने वाले डेटा का उपयोग करके। शैडो IT डिस्कवरी के लिए बनाया गया।
▄▄▓▓▓▓▓▓▓▓▓▄▄
▄▓▓▒▒▒▒▒▒▒▒▒▒▒▓▓▄ Yowie · उस SaaS का पता लगाना जिसके बारे में किसी ने आपको नहीं बताया
▓▓▒▒░░░░░░░░░░░▒▒▓▓
▓▒░░ ● ● ░▒▓ Domain acme.com.au
▓▒░░ ▼ ░▒▓ Candidates acme, acmecorp
▓▓▒░░ ╰───╯ ░▒▓▓
▀▓▓▒▒░░░░░░░░░▒▒▓▓▀
▀▀▓▓▓▓▓▓▓▓▓▓▓▀▀
किसी संगठन द्वारा सब्सक्राइब किए गए SaaS सेवाओं का पता लगाता है, केवल बाहरी रूप से अवलोकनीय डेटा का उपयोग करके। शैडो IT डिस्कवरी के लिए बनाया गया: खोजने लायक सेवाएँ वे हैं जिनके बारे में किसी ने आपको नहीं बताया।
ऑस्ट्रेलियाई बुश क्रिप्टिड के नाम पर, क्योंकि आप कुछ ऐसा खोज रहे हैं जिसके होने से सब इनकार करते हैं।

574 signatures covering 412 vendors नौ डिटेक्टरों में, साथ ही 104 पुष्टि की प्रतीक्षा में पार्क किए गए। निष्कर्ष ग्रेड किए गए हैं और प्रत्येक के साथ वह रिकॉर्ड या प्रतिक्रिया होती है जिसने उसे उत्पन्न किया।
go build -o yowie ./cmd/yowie
Go 1.22 या बाद का संस्करण। सिग्नेचर पैक बाइनरी में एम्बेडेड हैं, इसलिए डिप्लॉय करने के लिए एक ही फ़ाइल पर्याप्त है।
yowie [flags] <domain> [candidate ...]
डोमेन संगठन का रूट डोमेन है। कैंडिडेट वे छोटी स्ट्रिंग्स हैं जिनके नाम पर विक्रेता टेनेंट का नाम हो सकता है — ट्रेडिंग नाम, संक्षिप्ताक्षर, अधिग्रहण से विरासत में मिले पुराने ब्रांड। जितने हो सकें उतने दें; प्रत्येक एक और मौका है टेनेंट खोजने का। कोई न दिए जाने पर, डोमेन का पहला लेबल उपयोग किया जाता है।
yowie acme.com.au acme acmecorp acmegroup
yowie -format html -o report.html acme.com.au acme
yowie -format json acme.com.au | jq '.findings[] | select(.confidence=="high")'
yowie -only dns,spf,dmarc -compact acme.com.au
yowie -signatures ./signatures -validate
| Detector | Signal |
|---|---|
dns | TXT verification tokens, CNAME, MX और NS रिकॉर्ड |
vanity | संगठन के नाम पर विक्रेता-होस्टेड टेनेंट (acme.zendesk.com) |
http | बिना DNS फुटप्रिंट वाली सेवाओं के लिए एप्लिकेशन-लेयर फिंगरप्रिंट |
spf | पूरा SPF include ग्राफ, नेस्टेड includes और redirects का अनुसरण करते हुए |
dmarc | DMARC aggregate/forensic रिपोर्ट गंतव्य |
bimi | BIMI लोगो और Verified Mark Certificate होस्टिंग |
mta-sts | MTA-STS नीति सामग्री |
tenant | Microsoft tenant ID, federated identity provider, और sibling domains |
ct | Certificate Transparency लॉग्स से सबडोमेन, हल किए गए और एट्रिब्यूट किए गए |
-only या -skip से चुनें, जैसे तेज़ DNS-only पास के लिए -skip ct,http।
अंतिम दो पर एक नोट आवश्यक है, क्योंकि वे ऐसी चीज़ें खोजते हैं जो एक सिग्नेचर सूची नहीं खोज सकती।
tenant Microsoft के unauthenticated endpoints से पूछता है कि डोमेन किसका है।
Autodiscover की federation जानकारी उसी टेनेंट से जुड़े हर डोमेन को लौटाती है, जो
नियमित रूप से बिज़नेस यूनिट, अधिग्रहण और परित्यक्त ब्रांड सामने लाती है। प्रत्येक एक और
डोमेन है जिसे स्कैन करने लायक है।
ct डिस्कवरी मॉडल को उलट देता है। हर अन्य जाँच एक निश्चित सूची के विरुद्ध पूछती है
"क्या यह संगठन विक्रेता X का उपयोग करता है?", इसलिए यह केवल उन विक्रेताओं को खोज सकती है
जिनके लिए किसी ने पहले से सिग्नेचर लिखा है। CT पूछता है "इस संगठन ने वास्तव में अपने
सबडोमेन किस ओर इंगित किए हैं?" एक टीम जो किसी उत्पाद के लिए साइन अप करती है और
support.acme.com को जोड़ती है, उसे एक सर्टिफिकेट जारी होता है, और वह सर्टिफिकेट सार्वजनिक
और स्थायी होता है। किसी सिग्नेचर से मेल न खाने वाले लक्ष्य लीड्स के रूप में रिपोर्ट किए
जाते हैं, और इसी तरह आप वह चीज़ खोजते हैं जिसे खोजने के बारे में आपको पता ही नहीं था।
निष्कर्ष ग्रेड किए गए हैं, और ग्रेड ही मुख्य बात है:
acme.blogspot.com शायद आपका acme न हो।एक ही विक्रेता पर दो स्वतंत्र डिटेक्टरों का सहमत होना एक Probable निष्कर्ष को Confirmed में पदोन्नत करता है। प्रत्येक निष्कर्ष के साथ वह सटीक रिकॉर्ड या प्रतिक्रिया होती है जिसने उसे ट्रिगर किया, इसलिए टूल को दोबारा चलाए बिना एक रिपोर्ट बचाव योग्य होती है।
पदोन्नति में एक अपवाद है, और यही "यह टेनेंट मौजूद है" और "यह टेनेंट आपका है" के बीच का अंतर है — accuracy के अंतर्गत namespace नोट देखें।
-no-unknown अनएट्रिब्यूटेड लीड्स को हटा देता है यदि आप केवल सिग्नल चाहते हैं।
-format cli (डिफ़ॉल्ट), json, jsonl, csv, html। फ़ाइल में लिखने के लिए -o
उपयोग करें। HTML रिपोर्ट स्व-निहित है — कोई बाहरी एसेट नहीं — इसलिए यह ईमेल किए जाने या
शेयर ड्राइव पर रखे जाने पर भी काम करती है।
प्रगति stderr पर और परिणाम stdout पर जाते हैं, इसलिए yowie -format json acme.com > out.json
अभी भी एक लाइव प्रगति लाइन दिखाता है।
सिग्नेचर signatures/*.yaml में रहते हैं। बाइनरी उन्हें एम्बेड करती है; -signatures <dir>
या YOWIE_SIGNATURES=<dir> इसके बजाय डिस्क से लोड करता है, और इसी तरह आप बिना रीबिल्ड
किए इटरेट करते हैं।
version: 1
pack: dns-txt
description: "Domain-ownership verification tokens published as TXT records."
defaults:
confidence: high
signatures:
- id: txt-1password
vendor: "1Password"
category: "Identity & Secrets"
type: txt
query: "{domain}"
match:
contains: "1password-site-verification"
{domain} रूट डोमेन में विस्तारित होता है, {candidate} प्रत्येक कैंडिडेट स्ट्रिंग में।
{candidate} का संदर्भ देने वाला सिग्नेचर प्रत्येक कैंडिडेट के लिए एक बार मूल्यांकित
किया जाता है।
| Type | Matches | Notes |
|---|---|---|
txt, cname, mx, ns | query के रिकॉर्ड्स के विरुद्ध match.contains | केस-असंवेदनशील |
vanity_a, vanity_cname | बेसलाइन तुलना; कोई match ब्लॉक नहीं | query में {candidate} होना चाहिए |
http | अकेले match.present, match.absent, या match.status | नीचे status handling देखें |
spf_include | हल किए गए SPF include ग्राफ के विरुद्ध match.contains | |
dmarc_rua | DMARC रिपोर्ट गंतव्यों के विरुद्ध match.contains | |
cname_target | query एक बेयर होस्टिंग सफ़िक्स है | ct द्वारा खोजे गए hosts पर लागू; * एक लेबल से मेल खाता है |
disabled: true एक सिग्नेचर को उसके पीछे के शोध को खोए बिना पार्क कर देता है।
notes: एनालिस्ट मार्गदर्शन को रिपोर्ट तक पहुँचाता है।
संपादन के बाद yowie -validate चलाएँ। वैलिडेशन सख्त है — एक अज्ञात key एक त्रुटि है,
चुपचाप कोई-न-कोई क्रिया नहीं — और पैक्स को go test द्वारा भी जाँचा जाता है, इसलिए एक
टाइपो हर भविष्य के स्कैन में चुपचाप आपकी कवरेज नहीं छीन सकता।
| Pack | Contents |
|---|---|
dns-txt, dns-cname, dns-mx | Verification tokens और delegated hostnames। लाइव। |
email-spf, email-dmarc | Senders और DMARC processors। लाइव। |
vanity-tenants, http-endpoints | Tenant hostnames और app fingerprints। लाइव। |
cname-targets | CT-discovered subdomains के लिए hosting suffixes। लाइव। |
ai-services | AI और LLM प्लेटफ़ॉर्म। पार्क किया गया। |
file-transfer | Managed file transfer — MOVEit, GoAnywhere, Egnyte। पार्क किया गया। |
finance-procurement | Finance, expense, payroll, procurement। पार्क किया गया। |
security-grc | Security tooling और compliance automation। पार्क किया गया। |
graveyard | Unverified entries, और वे प्लेटफ़ॉर्म जिनके ऑपरेटर की पहचान नहीं हो सकी। पार्क किया गया। |
पाँच पैक पूरी तरह से अक्षम होकर आते हैं। वे संरचनात्मक रूप से पूर्ण हैं और वैलिडेशन पास करते हैं, लेकिन उनके match मानदंड कभी किसी लाइव टेनेंट के विरुद्ध पुष्ट नहीं किए गए, इसलिए स्कैन के दौरान उनका मूल्यांकन नहीं होता।