
आंतरिक नेटवर्क होस्ट्स की पहचान और उनके खिलाफ एक्सप्लॉइट लॉन्च करने के लिए एक फ्रेमवर्क। यह WebRTC IP गणना, WebSockets और बाहरी संसाधन फिंगरप्रिंटिंग के साथ काम करता है।
आंतरिक नेटवर्क होस्ट्स की पहचान करने और उनके विरुद्ध एक्सप्लॉइट लॉन्च करने के लिए एक फ्रेमवर्क। यह WebRTC IP गणना, WebSocket होस्ट स्कैनिंग और बाहरी संसाधन फिंगरप्रिंटिंग के माध्यम से काम करता है।
आधुनिक वेब ब्राउज़र में sonar.js पेलोड लोड करने पर निम्नलिखित होगा:
<img src="https://raw.githubusercontent.com/mandatoryprogrammer/sonar.js/HEAD/x"> और <link rel="stylesheet" type="text/css" href="x"> के माध्यम से होस्ट से लिंक करके और onload इवेंट को हुक करके उसे फिंगरप्रिंट करने का प्रयास करता है। यदि अपेक्षित संसाधन सफलतापूर्वक लोड होते हैं, तो यह उपयोगकर्ता द्वारा प्रदान किए गए एक्सप्लॉइट को शुरू करने के लिए पूर्व-निर्धारित JavaScript कॉलबैक को ट्रिगर करेगा।sonar.js फिंगरप्रिंट के एक डेटाबेस पर काम करता है। फिंगरप्रिंट एक डिवाइस पर ज्ञात संसाधनों की एक सूची मात्र है जिन्हें onload के माध्यम से लिंक और पहचाना जा सकता है। इसके उदाहरणों में चित्र, CSS स्टाइलशीट और यहां तक कि बाहरी JavaScript भी शामिल हैं।
एक उदाहरण फिंगरप्रिंट डेटाबेस नीचे देखा जा सकता है:
var fingerprints = [
{
'name': "ASUS RT-N66U",
'resources': ["/images/New_ui/asustitle.png","/images/loading.gif","/images/alertImg.png","/images/New_ui/networkmap/line_one.png","/images/New_ui/networkmap/lock.png","/images/New_ui/networkmap/line_two.png","/index_style.css","/form_style.css","/NM_style.css","/other.css"],
'callback': function( ip ) {
// Insert exploit here
},
},
{
'name': "Linksys WRT54G",
'resources': ["/UILinksys.gif","/UI_10.gif","/UI_07.gif","/UI_06.gif","/UI_03.gif","/UI_02.gif","/UI_Cisco.gif","/style.css"],
'callback': function( ip ) {
// Insert exploit here
},
},
]
उपरोक्त डेटाबेस में दो उपकरणों, ASUS RT-N66U वाईफाई राउटर और Linksys WRT54G वाईफाई राउटर के फिंगरप्रिंट हैं।
प्रत्येक डेटाबेस प्रविष्टि में निम्नलिखित हैं:
name: यह पहचानने के लिए एक फ़ील्ड कि फिंगरप्रिंट किस उपकरण के लिए है। यह HP Officejet 4500 प्रिंटर या Linksys WRT54G राउटर जैसा कुछ हो सकता है।resources: यह CSS स्टाइलशीट, चित्र या यहां तक कि JavaScript फ़ाइलों जैसे संसाधनों के सापेक्ष लिंक की एक सरणी है। यदि आप इन संसाधनों को 8080 जैसे गैर-मानक पोर्ट पर होने की उम्मीद करते हैं, तो पोर्ट सहित संसाधन सेट करें: :8080/unique.css। ध्यान रखें कि JavaScript जैसी सक्रिय सामग्री वाले बाहरी संसाधनों का उपयोग खतरनाक है क्योंकि यह निष्पादन के सामान्य प्रवाह को बाधित कर सकता है।callback: यदि ये सभी संसाधन गणना किए गए होस्ट पर मौजूद पाए जाते हैं, तो callback फ़ंक्शन को डिवाइस के IP पते के एकल तर्क के साथ कॉल किया जाता है।अपने स्वयं के फिंगरप्रिंट बनाकर, आप कस्टम एक्सप्लॉइट बना सकते हैं जो sonar.js द्वारा पहचाने जाने पर आंतरिक उपकरणों के विरुद्ध लॉन्च किए जाएंगे। सामान्य एक्सप्लॉइट में क्रॉस-साइट रिक्वेस्ट फोर्जरी (CSRF), क्रॉस-साइट स्क्रिप्टिंग (XSS) आदि जैसी चीजें शामिल हैं। विचार यह है कि आप इन कमजोरियों का उपयोग राउटर DNS कॉन्फ़िगरेशन को संशोधित करने, आंतरिक फ़ाइल सर्वर से फ़ाइलें डंप करने और अधिक जैसे काम करने के लिए कर सकते हैं।
फिंगरप्रिंट बनाने के आसान तरीके के लिए, निम्नलिखित Chrome एक्सटेंशन देखें जो आपके द्वारा देखे जा रहे पृष्ठ के लिए स्वचालित रूप से फिंगरप्रिंट टेम्पलेट कोड उत्पन्न करता है:
Chrome एक्सटेंशन स्थापित करने के लिए यहां क्लिक करें

sonar.js का उपयोग करके, एक पेंटेस्टिंग टीम आंतरिक लॉगिंग सर्वर, राउटर, प्रिंटर, VOIP फोन और अधिक जैसी चीजों के विरुद्ध वेब एक्सप्लॉइट बना सकती है। आंतरिक नेटवर्क अक्सर कम सुरक्षित होने के कारण, CSRF और XSS जैसे हमले किसी होस्ट के आंतरिक नेटवर्क पर उपकरणों के कॉन्फ़िगरेशन को हथियाने में शक्तिशाली हो सकते हैं। क्या हमने बताया कि यह सब एक इंटरनेट वेबपेज से किया जा सकता है?
यदि आपके पास प्रिंटर, राउटर या कोई अन्य आंतरिक सेवा जैसा कोई उपकरण है, तो कृपया हमें एक फिंगरप्रिंट सबमिट करें ताकि हम इसे अपने मास्टर डेटाबेस में जोड़ सकें। हम समय के साथ अधिक उपकरणों के लिए और अधिक फिंगरप्रिंट जोड़ेंगे, लेकिन हम उन उपकरणों तक ही सीमित हैं जिन तक हमारी पहुंच है।