Taken
AWS के डैंगलिंग इलास्टिक IP का उपयोग करके सबडोमेन को हाईजैक करें और सबडोमेन टेकओवर का एक कार्यशील POC प्राप्त करें।
Subdomain Takeover से आप क्या कर सकते हैं -
- कुकीज़ चुराना, यदि कुकीज़ का डोमेन एट्रिब्यूट हाईजैक किए गए सबडोमेन पर सेट हो।
- CORS अनुरोध, यदि Access-Control-Allow-Origin हाईजैक किए गए सबडोमेन पर सेट हो।
- OAuth रिडायरेक्शन से प्राधिकरण कोड प्राप्त करना, यदि हाईजैक किया गया सबडोमेन व्हाइटलिस्टेड हो।
- XSS के लिए CSP नीतियाँ, यदि CSP नीति इस सबडोमेन को व्हाइटलिस्ट करती हो।
- ClickJacking, यदि X-Frame-Options इस सबडोमेन को व्हाइटलिस्ट करता हो।
- स्पूफ मेल, यदि SPF रिकॉर्ड इस सबडोमेन को व्हाइटलिस्ट करता हो।
ऑटोमेशन का विचार इस प्रकार है -
- सबडोमेन प्राप्त करें।
- केवल AWS IP को सहेजने के लिए रिवर्स लुकअप करें।
- हर मिनट EC2 इंस्टेंस को पुनरारंभ करें और हर रीस्टार्ट पर पब्लिक IP घूमता रहे। इसे अपनी मौजूदा सबडोमेन IP सूची से मिलाएँ और आपके पास एक कार्यशील सबडोमेन टेकओवर POC होगा।
- जैसे ही आप किसी सबडोमेन को हाईजैक करें, ईमेल से सूचित करें।
उद्धरण
यदि आप इस सॉफ़्टवेयर का उपयोग अपने शोध पत्रों, लेखों आदि में करते हैं, तो कृपया उद्धृत करें।
@software{Agrawal_Taken_AWS_Subdomain_2020,
author = {Agrawal, Vaibhav},
month = oct,
title = {{Taken: AWS Subdomain TakeOver at Scale}},
url = {https://github.com/In3tinct/Taken},
version = {1.0},
year = {2020}
}
पूर्वापेक्षाएँ
- AWS खाता
- Linux और Bash स्क्रिप्ट का ज्ञान
प्रयुक्त तकनीक/फ्रेमवर्क
निर्मित
विशेषताएँ
- सबडोमेन एकत्र करें और केवल AWS IP को लक्षित करने के लिए रिवर्स लुकअप करें।
- IP को घुमाएँ (EC2 इंस्टेंस को पुनरारंभ करके) जब तक कि वह सूची में किसी एक IP से मेल न खा जाए।
- मिलान होने पर, उस IP/होस्ट को एक व्हाइटलिस्ट फ़ाइल में जोड़ा जाता है, ताकि वह फिर से न घूमे, और एक ईमेल सूचना भेजी जाए।
उपयोग के विस्तृत चरण
- एक t2.medium (अटैक मशीन) इंस्टेंस बनाएं, मुफ्त 24*365।
- एक या अधिक क्षेत्रों में t3a.nano इंस्टेंस प्रकार के 5-10 इंस्टेंस बनाएं (संभवतः सबसे सस्ते), 5 मिनट लगते हैं, SG Group को केवल अपने पब्लिक IP के लिए खोलें।
- इंस्टेंस को रोकने/शुरू करने के लिए AWS API कुंजियाँ बनाएं।
- अपनी अटैक मशीन पर SSH करें।
- ईमेल सूचना उपयोगिता SSMTP स्थापित करें।
https://www.digitalocean.com/community/questions/how-to-send-emails-from-a-bash-script-using-ssmtp
- सबडोमेन एकत्र करने के लिए subfinder और sublist3r.py उपकरण स्थापित करें। (या कोई अन्य उपकरण जो आप चाहते हैं, लेकिन उन्हें subdomain-collection स्क्रिप्ट में जोड़ना होगा)
इन्हें सेट अप करने के लिए चरणों का पालन करें
https://github.com/aboul3la/Sublist3r
https://github.com/projectdiscovery/subfinder
- Taken रिपॉजिटरी को क्लोन करें और subdomain-collection स्क्रिप्ट चलाने के लिए एक स्क्रीन सत्र खोलें।
यदि आप स्क्रीन सत्र का उपयोग करना नहीं जानते हैं - https://linuxize.com/post/how-to-use-linux-screen/
- उन सभी डोमेन के साथ एक टेक्स्ट फ़ाइल बनाएं जिन्हें आप लक्षित करना चाहते हैं, इसे उसी निर्देशिका में "alldomains" नाम से सहेजें और फिर subdomain-collection स्क्रिप्ट चलाएं। यह स्क्रिप्ट subfinder और sublist3r.py का उपयोग करती है। यह एक या अधिक डोमेन के सभी सबडोमेन की सूची "subdomain:IP" प्रारूप में प्रति पंक्ति उत्पन्न करेगी। बाद में इसका उपयोग मिलान और सूचित करने के लिए किया जाएगा।
- एक और स्क्रीन सत्र खोलें और उस सत्र में AWS क्रेडेंशियल निर्यात करें।
AWS कुंजियाँ निर्यात करना।
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE आपके AWS खाते की एक्सेस कुंजी।
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY आपके AWS खाते की गुप्त एक्सेस कुंजी।
टेकओवर स्क्रिप्ट को एक अलग स्क्रीन सत्र में चलाएं। आप प्रत्येक क्षेत्र के लिए अलग-अलग स्क्रीन सत्र में भी चला सकते हैं (नीचे स्क्रीनशॉट देखें)।
तर्क - AWS में प्रत्येक क्षेत्र से संबद्ध अलग-अलग IP सबनेट होते हैं। US में स्थित कंपनियों को लक्षित करने के लिए, उच्च संभावना है कि वे किसी भी US क्षेत्र में चल रही हैं, लेकिन उनके पास अन्य क्षेत्रों जैसे आयरलैंड, फ्रैंकफर्ट आदि में भी संपत्तियाँ हो सकती हैं। इसलिए एक क्षेत्र में 10 संपत्तियाँ चलाने के बजाय, कंपनी के मुख्यालय वाले क्षेत्र में 5 और विभिन्न क्षेत्रों में अन्य 5 चलाने का प्रयास करें।
स्क्रीन सत्र उदाहरण-
ईमेल सूचना -

एक सबडोमेन हाईजैक कर लिया, आगे क्या -
उस होस्ट में SSH करें, एक सरल HTML फ़ाइल बनाएँ और एक Python सर्वर शुरू करें, और आपके पास एक कार्यशील POC होगा।
(मैं अगले रिलीज़ में इसे भी स्वचालित करने की योजना बना रहा हूँ)
बल्क में चलाना
मैंने HackerOne और Bugcrowd पर सभी सार्वजनिक प्रोग्रामों और शीर्ष 500 SaaS Forbes/SaaS कंपनियों के डेटा को स्क्रैप किया, उनके सबडोमेन एकत्र किए और हिट करना शुरू किया।
24 घंटों के भीतर मैं 3 सबडोमेन को हाईजैक करने में सक्षम था। कुल 10 इंस्टेंस 3 विभिन्न क्षेत्रों में चल रहे थे। सफलता दर चल रहे इंस्टेंस की संख्या पर अत्यधिक निर्भर करती है।
चूँकि स्क्रिप्ट से आप 24 घंटों में लगभग 1440 IP बदलते हैं, 10 इंस्टेंस के साथ यह 24 घंटों में लगभग 14400 IP हो जाएगा।
संदर्भ
सबडोमेन एकत्र करने के लिए उपयोग किए गए उपकरण।
https://github.com/projectdiscovery/subfinder
https://github.com/aboul3la/Sublist3r
योगदान
- बग रिपोर्ट करें।
- सुधार के लिए सुझाव।
- भविष्य के विस्तार के लिए सुझाव।
भविष्य के विस्तार
- उसी स्क्रिप्ट का उपयोग करके EC2 इंस्टेंस बनाना।
- AWS Beanstalk का उपयोग करके HTTP सेवा का ऑटो डिप्लॉय जोड़ना।
लाइसेंस
GNUV3 © [In3tinct]