<summary><strong>Leer AWS-hacking van nul tot held met</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
WebSocket-verbindinge word tot stand gebring deur 'n aanvanklike **HTTP** handskud en is ontwerp om **langdurig** te wees, wat bidireksionele boodskappe op enige tyd moontlik maak sonder die nodig vir 'n transaksionele stelsel. Dit maak WebSockets besonders voordelig vir toepassings wat **lae latensie of bediener-geïnisieerde kommunikasie** vereis, soos lewendige finansiële datastrome.
'n Gedetailleerde verduideliking oor die vestiging van WebSocket-verbindinge kan hier geraadpleeg word [**hier**](https://infosecwriteups.com/cross-site-websocket-hijacking-cswsh-ce2a6b0747fc). Kortliks word WebSocket-verbindinge gewoonlik geïnisieer deur kliëntkant JavaScript soos hieronder getoon:
Tydens die verbinding totstandkoming, word 'n handshake uitgevoer tussen die webblaaier en bediener oor HTTP. Die handshake proses behels dat die webblaaier 'n versoek stuur en die bediener antwoord, soos geïllustreer in die volgende voorbeelde:
- Die `Connection` en `Upgrade` koppele dui die begin van 'n WebSocket handshake aan.
- Die `Sec-WebSocket-Version` kop dui die gewenste WebSocket-protokolverisie aan, gewoonlik `13`.
- 'n Base64-gekodeerde lukrake waarde word gestuur in die `Sec-WebSocket-Key` kop, wat verseker dat elke handshake uniek is en help om probleme met opgeslane proksi's te voorkom. Hierdie waarde is nie vir outentisering nie, maar om te bevestig dat die respons nie deur 'n verkeerd gekonfigureerde bediener of opgeslote gegenereer word nie.
- Die `Sec-WebSocket-Accept` kop in die bediener se respons is 'n has van die `Sec-WebSocket-Key`, wat die bediener se voorneme om 'n WebSocket-verbinding oop te maak, bevestig.
As jy vind dat kliënte gekoppel is aan 'n **HTTP-websocket** vanaf jou huidige plaaslike netwerk, kan jy 'n [ARP Spoofing-aanval](../generic-methodologies-and-resources/pentesting-network/#arp-spoofing) probeer om 'n MitM-aanval tussen die kliënt en die bediener uit te voer.\
Sodra die kliënt probeer om te koppel, kan jy dan gebruik maak van:
Jy kan die **werktuig** [**https://github.com/PalindromeLabs/STEWS**](https://github.com/PalindromeLabs/STEWS) gebruik om outomaties websockets te ontdek, vingerafdruk te neem en te soek vir bekende kwesbaarhede.
* **Burp Suite** ondersteun MitM websockets kommunikasie op 'n baie soortgelyke manier as vir gewone HTTP kommunikasie.
* Die [**socketsleuth**](https://github.com/snyk/socketsleuth) **Burp Suite-uitbreiding** sal jou in staat stel om Websocket kommunikasie beter te bestuur in Burp deur die **geskiedenis** te kry, **onderskeppingreëls** in te stel, **pas en vervang** reëls te gebruik, **Intruder** en **AutoRepeater** te gebruik.
* [**WSSiP**](https://github.com/nccgroup/wssip)**:** Afkorting vir "**WebSocket/Socket.io Proxy**", hierdie werktuig, geskryf in Node.js, bied 'n gebruikerskoppelvlak om alle WebSocket- en Socket.IO-kommunikasie tussen die kliënt en bediener te **vang, onderskep, aangepaste** boodskappe te stuur en te sien.
* [**wsrepl**](https://github.com/doyensec/wsrepl) is 'n **interaktiewe websocket REPL** wat spesifiek ontwerp is vir penetrasietoetsing. Dit bied 'n koppelvlak om **inkomende websocket-boodskappe waar te neem en nuwes te stuur**, met 'n maklik-om-te-gebruik raamwerk vir die **outomatiese** kommunikasie.
* [**https://websocketking.com/**](https://websocketking.com/) dit is 'n **web om te kommunikeer** met ander webwerwe deur gebruik te maak van **websockets**.
* [**https://hoppscotch.io/realtime/websocket**](https://hoppscotch.io/realtime/websocket) onder andere tipes kommunikasie/protokolle, bied dit 'n **web om te kommunikeer** met ander webwerwe deur gebruik te maak van **websockets**.
In [**Burp-Suite-Extender-Montoya-Course**](https://github.com/federicodotta/Burp-Suite-Extender-Montoya-Course) het jy 'n kode om 'n webwerf te begin met behulp van websockets en in [**hierdie pos**](https://security.humanativaspa.it/extending-burp-suite-for-fun-and-profit-the-montoya-way-part-3/) kan jy 'n verduideliking vind.
**Cross-site WebSocket-ontvoering**, ook bekend as **cross-origin WebSocket-ontvoering**, word geïdentifiseer as 'n spesifieke geval van **[Cross-Site Request Forgery (CSRF)](csrf-cross-site-request-forgery.md)** wat WebSocket-handskommunikasies affekteer. Hierdie kwesbaarheid ontstaan wanneer WebSocket-handskommunikasies slegs geverifieer word deur middel van **HTTP-koekies** sonder CSRF-token of soortgelyke sekuriteitsmaatreëls.
Aanvallers kan dit uitbuit deur 'n **skadelike webbladsy** te hê wat 'n kruis-oorsprong WebSocket-verbinding met 'n kwesbare toepassing inisieer. Gevolglik word hierdie verbinding beskou as deel van die slagoffer se sessie met die toepassing, wat die gebrek aan CSRF-beskerming in die sessiehanteringmeganisme uitbuit.
Let daarop dat wanneer 'n **websocket**-verbinding **opgestel** word, die **koekie** na die bediener **gestuur** word. Die bediener kan dit gebruik om elke **spesifieke gebruiker te koppel aan sy websocket-sessie gebaseer op die gestuurde koekie**.
Dus, as byvoorbeeld die **websocket**-bediener die geskiedenis van die gesprek terugstuur van 'n gebruiker as 'n boodskap met "**READY**" gestuur word, sal 'n eenvoudige XSS wat die verbinding opstel (die **koekie** sal outomaties gestuur word om die slagoffer-gebruiker te magtig) deur "**READY**" te stuur in staat wees om die geskiedenis van die gesprek te **herwin**.
In hierdie blogpos [https://snyk.io/blog/gitpod-remote-code-execution-vulnerability-websockets/](https://snyk.io/blog/gitpod-remote-code-execution-vulnerability-websockets/) het die aanvaller daarin geslaag om **arbitrêre Javascript in 'n subdomein** van die domein waar die websocket kommunikasie plaasvind, uit te voer. Omdat dit 'n **subdomein** was, is die **koekie** gestuur, en omdat die **Websocket nie die Oorsprong behoorlik nagegaan het nie**, was dit moontlik om daarmee te kommunikeer en **tokens daaruit te steel**.
Kopieer die webtoepassing wat jy wil naboots (die .html-lêers byvoorbeeld) en voeg hierdie kode by binne die skrips waar die websocket kommunikasie plaasvind:
Laai nou die `wsHook.js` lêer af vanaf [https://github.com/skepticfx/wshook](https://github.com/skepticfx/wshook) en **stoor dit binne die vouer met die web lêers**.\
Deur die webtoepassing bloot te stel en 'n gebruiker daarmee te laat verbind, sal jy in staat wees om die gestuurde en ontvangste boodskappe via die websocket te steel:
Aangesien WebSockets 'n meganisme is om data na die bedienerkant en kliëntkant te stuur, afhangende van hoe die bediener en kliënt die inligting hanteer, kan WebSockets gebruik word om verskeie ander kwesbaarhede soos XSS, SQLi of enige ander algemene web-kwesbaarheid te misbruik deur die inset van 'n gebruiker van 'n websocket.
Hierdie kwesbaarheid kan jou in staat stel om omgekeerde proksi-beperkings te omseil deur hulle te laat glo dat 'n websocket-kommunikasie tot stand gebring is (selfs al is dit nie waar nie). Dit kan 'n aanvaller in staat stel om toegang te verkry tot verborge eindpunte. Vir meer inligting, kyk na die volgende bladsy:
<summary><strong>Leer AWS-hacking van nul tot held met</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.