<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
WebSocket कनेक्शन **HTTP** के ऊपर शुरू किए जाते हैं और आमतौर पर **लंबे समय तक चलते हैं**। संदेश **किसी भी समय किसी भी दिशा में भेजे जा सकते हैं** और ये लेन-देन की प्रकृति के नहीं होते। कनेक्शन सामान्यतः खुला और निष्क्रिय रहता है जब तक कि क्लाइंट या सर्वर में से कोई एक संदेश भेजने के लिए तैयार न हो।\
WebSockets विशेष रूप से उन परिस्थितियों में उपयोगी होते हैं जहां **कम-विलंबता या सर्वर-प्रेरित संदेश** की आवश्यकता होती है, जैसे कि वित्तीय डेटा की वास्तविक समय की फीड्स।
(यहां आपको एक सारांश मिलेगा लेकिन एक **वेब सॉकेट कनेक्शन कैसे बनाया जाता है** के बारे में **अधिक विस्तृत गाइड** आप [**यहां**](https://infosecwriteups.com/cross-site-websocket-hijacking-cswsh-ce2a6b0747fc) पा सकते हैं।)\
WebSocket कनेक्शन सामान्यतः निम्नलिखित जैसे क्लाइंट-साइड JavaScript का उपयोग करके बनाए जाते हैं:
**`wss`** प्रोटोकॉल एक एन्क्रिप्टेड **TLS** कनेक्शन पर WebSocket स्थापित करता है, जबकि **`ws`** प्रोटोकॉल एक **अनएन्क्रिप्टेड** कनेक्शन का उपयोग करता है।
कनेक्शन स्थापित करने के लिए, ब्राउज़र और सर्वर HTTP पर एक WebSocket हैंडशेक करते हैं। ब्राउज़र निम्नलिखित जैसा एक WebSocket हैंडशेक अनुरोध जारी करता है:
* अनुरोध और प्रतिक्रिया में **`Connection`** और **`Upgrade`** हेडर्स **इंगित** करते हैं कि यह एक **WebSocket handshake** है।
* **`Sec-WebSocket-Version`** अनुरोध हेडर उस **WebSocket प्रोटोकॉल संस्करण** को निर्दिष्ट करता है जिसका उपयोग क्लाइंट करना चाहता है। यह आमतौर पर `13` होता है।
* **`Sec-WebSocket-Key`** अनुरोध हेडर में एक Base64-एन्कोडेड **रैंडम मान** होता है, जिसे प्रत्येक handshake अनुरोध में यादृच्छिक रूप से उत्पन्न किया जाना चाहिए।
* **`Sec-WebSocket-Accept`** प्रतिक्रिया हेडर में `Sec-WebSocket-Key` अनुरोध हेडर में प्रस्तुत मान का एक हैश होता है, जिसे प्रोटोकॉल विनिर्देश में परिभाषित एक विशिष्ट स्ट्रिंग के साथ जोड़ा जाता है। यह गलत कॉन्फ़िगर सर्वरों या कैशिंग प्रॉक्सीज़ से भ्रामक प्रतिक्रियाओं को रोकने के लिए किया जाता है।
**`Sec-WebSocket-Key`** हेडर में एक **रैंडम मान** होता है ताकि कैशिंग प्रॉक्सीज़ से होने वाली त्रुटियों को रोका जा सके, और **यह प्रमाणीकरण या सत्र संचालन उद्देश्यों के लिए उपयोग नहीं किया जाता है** (_यह CSRF टोकन नहीं है_).
यदि आप पाते हैं कि क्लाइंट आपके वर्तमान स्थानीय नेटवर्क से **HTTP websocket** से जुड़े हुए हैं, तो आप [ARP Spoofing Attack](../generic-methodologies-and-resources/pentesting-network/#arp-spoofing) का प्रयास कर सकते हैं ताकि क्लाइंट और सर्वर के बीच MitM हमला कर सकें।\
एक बार जब क्लाइंट आपसे जुड़ने की कोशिश करता है, तब आप उपयोग कर सकते हैं:
आप **tool** [**https://github.com/PalindromeLabs/STEWS**](https://github.com/PalindromeLabs/STEWS) का उपयोग करके websockets में ज्ञात **vulnerabilities** की खोज, फिंगरप्रिंट और खोज स्वचालित रूप से कर सकते हैं।
* **Burp Suite** MitM websockets संचार का समर्थन करता है जिस तरह से यह सामान्य HTTP संचार के लिए करता है।
* [**socketsleuth**](https://github.com/snyk/socketsleuth) **Burp Suite extension** आपको Burp में Websocket संचार को बेहतर ढंग से प्रबंधित करने की अनुमति देगा, जिसमें **history** प्राप्त करना, **interception rules** सेट करना, **match and replace** नियमों का उपयोग करना, **Intruder** और **AutoRepeater** का उपयोग करना शामिल है।
* [**WSSiP**](https://github.com/nccgroup/wssip): "**WebSocket/Socket.io Proxy**" के लिए छोटा, यह उपकरण, Node.js में लिखा गया, एक यूजर इंटरफेस प्रदान करता है जो **capture, intercept, send custom** संदेश भेजने और सभी WebSocket और Socket.IO संचार को देखने के लिए क्लाइंट और सर्वर के बीच में होता है।
* [**wsrepl**](https://github.com/doyensec/wsrepl) एक **interactive websocket REPL** है जो विशेष रूप से पेनेट्रेशन टेस्टिंग के लिए डिजाइन किया गया है। यह एक इंटरफेस प्रदान करता है जो **incoming websocket messages को देखने और नए संदेश भेजने** के लिए होता है, इस संचार को **automating** करने के लिए एक आसान-से-उपयोग फ्रेमवर्क के साथ।
* [**https://websocketking.com/**](https://websocketking.com/) यह एक **web to communicate** है जो अन्य webs के साथ **websockets** का उपयोग करता है।
* [**https://hoppscotch.io/realtime/websocket**](https://hoppscotch.io/realtime/websocket) अन्य प्रकार के संचार/प्रोटोकॉल के बीच, यह एक **web to communicate** प्रदान करता है जो अन्य webs के साथ **websockets** का उपयोग करता है।
[**Burp-Suite-Extender-Montoya-Course**](https://github.com/federicodotta/Burp-Suite-Extender-Montoya-Course) में आपके पास websockets का उपयोग करके एक web लॉन्च करने के लिए कोड है और [**इस पोस्ट**](https://security.humanativaspa.it/extending-burp-suite-for-fun-and-profit-the-montoya-way-part-3/) में आपको एक स्पष्टीकरण मिल सकता है।
यह तब उत्पन्न होता है जब **WebSocket handshake** अनुरोध केवल **HTTP cookies** पर निर्भर करता है सत्र प्रबंधन के लिए और इसमें कोई CSRF टोकन या अन्य अप्रत्याशित मूल्य **नहीं होते हैं**।\
एक हमलावर अपने डोमेन पर एक **malicious web page** बना सकता है जो कमजोर एप्लिकेशन के साथ एक cross-site WebSocket कनेक्शन स्थापित करता है। एप्लिकेशन इस कनेक्शन को एप्लिकेशन के साथ पीड़ित उपयोगकर्ता के सत्र के **context में संभालेगा**।
ध्यान दें कि जब **websocket** कनेक्शन **स्थापित करते हैं** तो **cookie** सर्वर को **भेजी जाती है**। सर्वर इसका उपयोग प्रत्येक **विशिष्ट****उपयोगकर्ता** को उसके **websocket** **session से जोड़ने के लिए कर सकता है जो भेजी गई cookie के आधार पर होता है।
फिर, अगर **उदाहरण के लिए****websocket****server** एक उपयोगकर्ता की बातचीत का इतिहास वापस भेजता है अगर एक संदेश "**READY"** भेजा जाता है, तो एक **सरल XSS** कनेक्शन स्थापित करना (cookie **स्वचालित रूप से भेजी जाएगी** पीड़ित उपयोगकर्ता को प्राधिकृत करने के लिए) "**READY**" **भेजना** बातचीत के इतिहास को **प्राप्त** करने में सक्षम होगा।
इस ब्लॉग पोस्ट [https://snyk.io/blog/gitpod-remote-code-execution-vulnerability-websockets/](https://snyk.io/blog/gitpod-remote-code-execution-vulnerability-websockets/) में हमलावर ने **एक सबडोमेन में मनमानी जावास्क्रिप्ट को निष्पादित करने** का प्रबंधन किया, जो डोमेन के उस हिस्से में था जहां वेब सॉकेट संचार हो रहा था। चूंकि यह एक **सबडोमेन** था, **कुकी****भेजी** जा रही थी, और चूंकि **वेबसॉकेट ने ओरिजिन की जांच सही ढंग से नहीं की**, इससे उसके साथ संवाद करना और **उससे टोकन चुराना** संभव हो गया।
जिस वेब एप्लिकेशन की आप नकल करना चाहते हैं (उदाहरण के लिए .html फाइलें) उसकी प्रतिलिपि बनाएं और जिस स्क्रिप्ट में वेबसॉकेट संचार हो रहा है उसमें यह कोड जोड़ें:
अब [https://github.com/skepticfx/wshook](https://github.com/skepticfx/wshook) से `wsHook.js` फाइल डाउनलोड करें और **इसे वेब फाइलों वाले फोल्डर में सेव करें**।\
वेब एप्लिकेशन को उजागर करने और एक यूजर को इससे जोड़ने पर आप websocket के माध्यम से भेजे गए और प्राप्त संदेशों को चुरा सकेंगे:
चूंकि Web Sockets एक तंत्र हैं **सर्वर साइड और क्लाइंट साइड को डेटा भेजने के लिए**, इस पर निर्भर करता है कि सर्वर और क्लाइंट जानकारी को कैसे संभालते हैं, **Web Sockets का उपयोग XSS, SQLi या किसी अन्य सामान्य वेब भेद्यता का शोषण करने के लिए किया जा सकता है जिसमें एक उपयोगकर्ता के websocket से इनपुट हो।**
यह भेद्यता आपको **रिवर्स प्रॉक्सीज की पाबंदियों को बायपास करने की अनुमति दे सकती है** उन्हें यह विश्वास दिलाकर कि एक **websocket संचार स्थापित किया गया था** (भले ही यह सच न हो)। इससे हमलावर को **छिपे हुए एंडपॉइंट्स तक पहुँचने की अनुमति मिल सकती है**। अधिक जानकारी के लिए निम्नलिखित पृष्ठ देखें:
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें**।
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।