$20 में RCE की कोशिश करते-करते गलती से `.mobi` एडमिन बन जाने की घटना
(labs.watchtowr.com)- watchTowr Labs ने लगभग $20 में एक्सपायर हो चुका dotmobiregistry.net डोमेन रजिस्टर किया, जिससे उसे पुराने
.mobiWHOIS सर्वर होस्टनेम पर नियंत्रण मिल गया, और यह पुष्टि हुई कि पुराने WHOIS क्लाइंट और TLS/SSL सर्टिफिकेट वेरिफिकेशन फ्लो अब भी उसी पते पर भरोसा करते हैं .mobiका आधिकारिक WHOIS सर्वर अबwhois.nic.mobiहै, लेकिन कई टूल अब भी पुराने पतेwhois.dotmobiregistry.netको hardcoded रखकर क्वेरी भेज रहे थे- 30 अगस्त 2024 को अस्थायी WHOIS सर्वर तैनात करने के बाद 4 सितंबर तक 135,000 से अधिक unique systems और 25 लाख क्वेरियां आईं, जिससे पता चला कि छोड़ा हुआ legacy डोमेन अब भी वास्तविक इंटरनेट इन्फ्रास्ट्रक्चर से व्यापक रूप से जुड़ा है
- कुछ TLS/SSL certificate authorities
.mobiडोमेन ownership verification के लिए WHOIS-आधारित email verification का उपयोग कर रहे थे, और GlobalSign टेस्ट मेंmicrosoft.mobiके verification email candidate के रूप मेंwhois@watchtowr.comदिखा - शोधकर्ताओं ने कोई malicious certificate वास्तव में जारी नहीं कराया, और बाद में UK के NCSC तथा ShadowServer ने उस डोमेन को sinkhole से जोड़कर वैध
.mobiWHOIS responses को proxy करने की व्यवस्था की
$20 का एक्सपायर डोमेन WHOIS इन्फ्रास्ट्रक्चर बनकर फिर जीवित हो गया
- watchTowr Labs का मूल लक्ष्य यह खोजना था कि WHOIS client जब server responses को parse करते हैं, तब कहीं व्यावहारिक रूप से exploitable RCE तो नहीं बनता
- शुरुआती प्रयोगों में उन्होंने WHOIS server बनकर लंबी strings लौटाईं और देखा कि कुछ clients आसानी से crash हो जाते हैं
- लेकिन आम तौर पर किसी attacker को WHOIS response नियंत्रित करने के लिए इनमें से किसी एक चीज़ की ज़रूरत होती थी
- network layer पर WHOIS traffic को intercept करने वाला MITM
- वास्तविक WHOIS server का access
- attacker के नियंत्रण वाले server की ओर जाने वाला WHOIS referral
- ये शर्तें वास्तविक हमले में ऊँची बाधा थीं, लेकिन
.mobiके पुराने WHOIS server domain के एक्सपायर हो जाने से स्थिति बदल गई .mobiWHOIS server पहलेwhois.dotmobiregistry.netपर था और बाद मेंwhois.nic.mobiपर शिफ्ट हो गया, जबकि पुराना डोमेनdotmobiregistry.netलगभग दिसंबर 2023 में एक्सपायर हो चुका था- watchTowr ने यह डोमेन रजिस्टर करने के बाद
whois.dotmobiregistry.netके पीछे WHOIS server लगाया, ताकि देखा जा सके कि पुराने पते को hardcode किए हुए WHOIS clients अब भी वहां क्वेरी भेजते हैं या नहीं
WHOIS server address की hardcoding से बना attack surface
- WHOIS में हर TLD के लिए अलग server होता है, लेकिन client उस server को real time में कैसे ढूँढे, इसके लिए standardized mechanism कमजोर है
- व्यवहार में IANA द्वारा प्रकाशित text list के आधार पर WHOIS tools अक्सर server address को development के समय hardcode कर देते हैं
- जब server address बहुत कम बदलता है तो समस्या कम दिखती है, लेकिन पता बदलने और पुराना डोमेन एक्सपायर होने पर पुराने clients छोड़े हुए पते पर क्वेरी भेजते रह सकते हैं
- watchTowr ने
lglassserver पर आने वाली WHOIS requests का जवाब दिया और नकली WHOIS data लौटाया, जिसमें हर query target का मालिक watchTowr दिखता था - response में ASCII art और queries बंद करने का अनुरोध भी शामिल था
देखी गई क्वेरियों का पैमाना और स्रोत
- 30 अगस्त 2024 को WHOIS server तैनात करने के कुछ ही घंटों में 76,000 से अधिक unique source IPs ने क्वेरी की
- लगभग दो दिनों में SQLite DB में 13 लाख क्वेरियां जमा हो गईं, और 4 सितंबर 2024 तक 25 लाख क्वेरियां तथा 135,000 से अधिक unique systems दर्ज हुए
- क्वेरियों के स्रोतों में बड़े domain registrars और WHOIS सुविधा देने वाली साइटें शामिल थीं
domain.comgodaddy.comwho.iswhois.rusmallseo.toolsseocheki.netcentralops.netname.comwebchart.org
- security analysis services भी पुराने
.mobiWHOIS server का उपयोग कर रही थीं- urlscan.io
.mobidomain pages पर वही WHOIS result इस्तेमाल कर रहा था - VirusTotal ने watchTowr के अस्थायी WHOIS server को query किया और उसका result दिखाया
- urlscan.io
- mail servers और spam filters भी बड़ी संख्या में दिखे
- spam filter sender domain पर WHOIS lookup कर सकते हैं
- इनमें
cheapsender.emailसे लेकरmail.bdcustoms.gov.bdजैसे, बांग्लादेशी सरकारी इन्फ्रास्ट्रक्चर जैसे दिखने वाले hosts भी शामिल थे
.govसे जुड़े पते कई देशों में देखे गए- Argentina, Pakistan, India, Bangladesh, Indonesia, Bhutan, Philippines, Israel, Ethiopia, Ukraine, USA
- Brazil के उदाहरणों में
antispam.ap.gov.br,master.aneel.gov.brशामिल थे
.milस्रोतों में Swedish Armed Forces का उदाहरण भी सामने आया.eduऔर security vendors के स्रोत भी मिले, जिनमें Group-IB, Detectify, Censys का उल्लेख है- अगर
.govसिस्टम और mail servers.mobidomains से email प्राप्त करते समय WHOIS server को query करते हैं, तो कौन किससे संपर्क कर रहा है इसे passively observe करने की संभावना बनती है
पुराने WHOIS client vulnerabilities और RCE की संभावना
- watchTowr ने WHOIS response parsing vulnerabilities के पुराने उदाहरण खोजे और संबंधित CVE search results में 26 में से गलत WHOIS responses से trigger होने वाले bugs सिर्फ 3 बचे बताए
- ऐसे कम उदाहरण शायद इस धारणा से जुड़े हों कि वास्तविक exploitation के लिए TLD WHOIS server control जैसी कठिन पूर्वशर्त चाहिए
- phpWHOIS CVE-2015-5243 एक vulnerability है जिसमें WHOIS server से मिले data को PHP
evalसे चलाया जाता है, जिससे RCE संभव है- vulnerable code WHOIS response string में सिर्फ
\"को अधूरे तरीके से escape करकेevalको भेजता है - Netitude की analysis
”;phpinfo();//जैसा example payload दिखाती है - vulnerable phpWHOIS versions में
whois.dotmobiregistry.nethardcoded था
- vulnerable code WHOIS response string में सिर्फ
- Fail2Ban CVE-2021-32749 में WHOIS output को
mailtool तक ठीक से sanitize किए बिना भेजा जाता था, जिससे command injection संभव थी- Fail2Ban blocked IP के मालिक की जानकारी WHOIS से लेकर admin email में जोड़ सकता है
- लेकिन यह vulnerability IP address के WHOIS lookup में होती है, इसलिए watchTowr को मिला
.mobidomain WHOIS server control अकेले इसे सीधे trigger नहीं करता
- वास्तविक code execution के लिए अब भी ऐसा client चाहिए जो पुराने
.mobiWHOIS server को query करे और साथ ही उसकी implementation vulnerable भी हो
असर TLS/SSL certificate verification flow तक
- कुछ TLS/SSL certificate authorities domain ownership verify करने के लिए WHOIS data से administrative contact email parse करके उस पते पर verification link भेजने का विकल्प देती हैं
- watchTowr द्वारा सूचीबद्ध WHOIS-आधारित ownership verification समर्थित certificate authorities या resellers के उदाहरण इस प्रकार हैं
- Trustico
- Comodo
- SSLS
- GoGetSSL
- GlobalSign
- DigiSign
- Sectigo
- GoGetSSL टेस्ट में काल्पनिक
watchTowr.mobiCSR अपलोड करने पर watchTowr द्वारा सेट किया गयाwhois@watchtowr.comनहीं दिखा, और WHOIS सफल न होने की स्थिति जैसा placeholder email दिखा - Entrust टेस्ट में
microsoft.mobiका वैध WHOIS record parse हुआ और verification candidates में सिर्फmicrosoft.comdomain के emails दिखे, जबकिwatchTowr.mobiparse नहीं हुआ - GlobalSign टेस्ट में शुरू में लगा कि
microsoft.mobiWHOIS record parse नहीं हो रहा, लेकिन जब watchTowr ने वैध WHOIS server केmicrosoft.mobioutput format की नकल कर उसे अपने WHOIS server पर परोसा, तो परिणाम बदल गया - GlobalSign ने watchTowr के WHOIS server को query किया और response से
whois@watchtowr.comparse कर उसेmicrosoft.mobiके verification email के रूप में पेश किया - watchTowr यहीं रुक गया और किसी malicious TLS/SSL certificate को वास्तव में जारी नहीं कराया
- सिद्धांततः attack flow इस तरह हो सकता है
- पहले के authoritative hostname पर malicious WHOIS server तैनात किया जाए
- target
.mobidomain के लिए TLS/SSL certificate खरीदने की कोशिश की जाए - certificate authority WHOIS query करे और verification mail वास्तविक मालिक की जगह attacker के email पर भेज दे
- attacker link पर क्लिक करे और target domain के लिए TLS/SSL certificate हासिल कर ले
- ऐसी क्षमता होने पर traffic interception या target server impersonation जैसे हमले सिद्धांततः संभव हो सकते हैं
बाद की कार्रवाई और बाकी समस्या
- public disclosure से पहले UK के NCSC और ShadowServer Foundation ने मिलकर प्रतिक्रिया दी
dotmobiregistry.netडोमेन औरwhois.dotmobiregistry.nethostname को ShadowServer द्वारा उपलब्ध sinkhole system से जोड़ दिया गया- यह sinkhole
.mobidomains के लिए वैध WHOIS responses को proxy करता है - प्रभावित पक्षों को सूचित करने की प्रक्रिया भी बनाई गई
- यह मामला दिखाता है कि legacy infrastructure, छोड़े हुए domains, WHOIS-आधारित processing और TLS/SSL certificate verification procedures साथ मिलकर कैसे structural flaws पैदा कर सकते हैं
- MITM क्षमता रखने वाला पक्ष भी WHOIS data spoof करके इसी तरह के हमले की कोशिश कर सकता है, और certificate transparency जैसी व्यवस्थाओं के बावजूद बड़े पैमाने के हमलों में operational बाधाएँ बनी रहती हैं
1 टिप्पणियां
Hacker News की राय
इस स्थिति तक पहुंचने में कई लोगों की गलतियां जुड़ी रही होंगी, लेकिन एक बात साफ है जो इस खास हमले को रोक सकती थी: डोमेन को कभी expire न होने दें
.MOBI top-level domain का WHOIS server कुछ साल पहले
whois.dotmobiregistry.netसेwhois.nic.mobiपर migrate हुआ था, और लगता है किdotmobiregistry.netdomain दिसंबर 2023 के आसपास expire होकर छोड़ दिया गया थाजब कोई कंपनी सालाना 10 डॉलर कहकर कोई नया domain इस्तेमाल करना शुरू करती है, तो वह domain असल में हमेशा के लिए सालाना 10 डॉलर वाला asset बन जाता है। एक बार किसी domain का business से connection बन जाए, तो उस connection को पूरी तरह खत्म नहीं किया जा सकता
https://money.cnn.com/2016/01/29/technology/google-domain-pu...
आखिर में मुझे लगा कि calculation खुद ज्यादा मायने नहीं रखता, क्योंकि expired credit card या spam filtering की वजह से renewal notification छूट जाने और payment भूल जाने की संभावना ज्यादा है
बड़ी कंपनियां domain fee चुकाना कैसे नहीं भूलतीं? क्या वे महंगे registrar को लगभग “infinite” अवधि के renewal का जिम्मा देती हैं? यह काफी कठिन business operations problem लगता है
ऐसा लगता है कि किसी सुबह उठूंगा और खबर देखूंगा कि किसी दूर-दराज जगह के hotel room में बैठे किसी व्यक्ति ने पास के cafe Wi‑Fi hotspot से जुड़े Raspberry Pi पर कुछ किया और पूरा internet गायब हो गया
.mobiतक सीमित था[0] https://xkcd.com/2347/
[1] https://en.wikipedia.org/wiki/ARPANET#Debate_about_design_go...
[1] https://news.ycombinator.com/item?id=41482087
tools WHOIS server list को hardcode करके क्यों इस्तेमाल करते हैं?
लगता है DNS में इसे register करने का कोई standard तरीका है, लेकिन simple test करने पर कई top-level domains में record missing हैं। काम करने वाला उदाहरण
dig _nicname._tcp.fr SRV +noall +answerहै, और_nicname._tcp.fr. 3588 IN SRV 0 0 43 whois.nic.fr.return होता हैसाथ ही, इस पर एक expired internet draft भी है: https://datatracker.ietf.org/doc/html/draft-sanz-whois-srv-0...
mobi.whois.arpa. CNAME whois.nic.mobiहोने से भी समस्या हल हो सकती थी। हालांकि सभी को इस तरीके पर सहमत कराकर adopt करवाना मुश्किल हैनीचे fanf2 ने जैसा कहा, IANA WHOIS server से पहले query करना भी ठीक हो सकता है। https://www.iana.org/whois पर
mobiquery करने पर response के हिस्से के रूप मेंwhois: whois.nic.mobiलौटता हैdeveloper skill की कमी भी समस्या है, लेकिन AI hallucination इस स्थिति को और खराब करेगी
मैंने बहुत सारी teams देखी हैं जो यह नहीं समझतीं कि किसी domain को meaningful तरीके से एक बार इस्तेमाल करना शुरू कर दिया, तो उसे व्यावहारिक रूप से universe की heat death तक, कम से कम team की heat death तक, renew करना पड़ेगा
चाहे ऐसा मामला हो, या कहीं बचा हुआ पुराना लेकिन important URL, या किसी team member ने पुराने domain email से किसी service में sign up किया हो—यह जानना बेहद मुश्किल है कि पुराने domain को सच में कब छोड़ा जा सकता है
पुराने WHOIS server के एक expired domain को खरीदने भर से बनने वाला attack surface वाकई बहुत बड़ा है
WHOIS का असली समाधान RDAP है
दुर्भाग्य से यह country-code top-level domains के लिए अनिवार्य नहीं है, और non-country-code top-level domains में भी कई जगह यह ठीक से काम नहीं करता
https://en.wikipedia.org/wiki/Registration_Data_Access_Proto...
https://resolve.rs/domains/rdap-missing.html
बहुत शानदार काम
dotmobiregistry.netडोमेन औरwhois.dotmobiregisry.nethostname अब ShadowServer द्वारा दिए गए sinkhole system की ओर इशारा करते हैं, और बताया गया है कि यह system.mobiडोमेन के वैध WHOIS responses को proxy करता हैअगर ये डोमेन retire किए जाने वाले थे, तो 404 जैसा response लौटाना बेहतर होता। इन्हें सामान्य रूप से चलते रहने देने से आधिकारिक डोमेन पर switch करने की प्रेरणा घट जाती है
Domain not found.>>> Please update your code or tell your system administrator to use whois.nic.mobi, the authoritative WHOIS server for this domain. <<<मुझे लगता है कि computers को लेकर कुल approach ही fail होने के लिए तय है। यह perfect security पर निर्भर है, और मान लिया जाता है कि वह security SBOM जांच और बार-बार updates से हासिल हो जाएगी
लेकिन ऐसा कभी नहीं होगा। सिर्फ log4j को ही लें, तो कुल downloads में से 40% vulnerable versions के हैं। supply chain में कोई vendor बंद हो जाए या किसी component का maintenance रोक दे, तो बात ही अलग है
जैसे हमारा शरीर हमेशा microbes के साथ युद्ध का मैदान रहता है, वैसे ही हर चीज हमेशा bugs और holes से भरी रहने वाली है
शायद इसमें कई दशक लगेंगे, लेकिन रास्ता काफी साफ दिखता है। मेहनत करनी है, हर “सबक” से मिला ज्ञान लागू करना है, और रुकना नहीं है
कुल मिलाकर “हम यह करना नहीं चाहते थे, लेकिन स्थिति बढ़ती गई, और हर चरण में हमें उम्मीद से बड़ी चीज मिलती गई” वाला माहौल अच्छा लगा
अगर विरोध कर रहे लोगों ने बात सुनी होती और parsing ठीक कर ली होती, तो शायद लेखकों को इतनी मेहनत न करनी पड़ती
इसे उलटकर देखें, तो क्या हमें भरोसा करना चाहिए कि दुनिया के सभी WHOIS servers हमेशा असली और सुरक्षित हैं?
खासकर TLS validation करने वाली certificate authorities के नजरिए से, वे यह जानना नहीं चाहेंगी कि
whois somethingarbitrary.ruचलाने पर रूसी server की वजह से वे remote code execution के जोखिम में आ जाती हैं